***kernel datapath的OVS編譯安裝python
- 下載源代碼
$ git clone https://github.com/openvswitch/ovs.git
- 準備工具:生成configure文件
- GNU make
$ make --version
- 一個C語言編譯器,GCC 4.6以上,Clang 3.4以上
$ gcc --version
- libssl
$ apt-get isntall libssl1.0.0
- libcap-ng0
$ apt-get install libcap-ng0
- libtool
$ apt-get install libtool
- autoconf
$ apt-get install autoconf
- Python 2.7,而且確保six庫可用
$ python
...(
看默認的python是不是2.7版本
)
$ pydoc modules | grep six
...(
若是沒有叫six的python module,請安裝python-pip
$ apt install python-pip
而後以下安裝six
$ pip install six
)
- 注意ovs 內核模塊的版本與Linux內核版本號
2.7版本的OVS能安裝在Linux 3.10~4.9的內核上
$ ./boot.sh
- 配置
$ ./configure \
--with-linux=/lib/modules/$(uname -r)/build 編譯內核模塊,指定當前內核地址
[CFLAGS="-g -o2"] 編譯用戶空間的代碼時的編譯參數,-g帶debug,-O2指定編譯器優化級別
[EXTRA_CFLAGS="-Wno-error=data-time"] 編譯內核模塊時的編譯參數
[--enable-Werror] 編譯其警告做爲錯誤處理
[LIBS=-ljemalloc] 使用jemalloc表明libc中的內存管理庫
- 編譯OVS
$ make
- 安裝OVS用戶態程序
$ make install
- 安裝內核模塊(把相關*.ko文件安裝至/lib/modules/$(uname -r)/extra/中
$ make modules_install
- 掛載安裝的內核模塊
$ /sbin/modprobe openvswitch
- 配置數據庫
$ mkdir -p /usr/local/etc/openvswitch
$ ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema
- 啓動數據庫程序
$ mkdir -p /usr/local/var/run/openvswitch
$ ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \
--remote=db:Open_vSwitch,Open_vSwitch,manager_options \
--private-key=db:Open_vSwitch,SSL,private_key \
--certificate=db:Open_vSwitch,SSL,certificate \
--bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert \
--pidfile --detach --log-file
- 初始化ovsdb數據庫
$ ovs-vsctl --no-wait init
- 啓動vswitchd守護進程
$ ovs-vswitchd --pidfile --detach --log-file
- 完成,能夠測試了
$ ovs-vsctl add-br br0
$ ovs-vsctl show
默認的LOG位於
/usr/local/var/log/openvswitch
下