***kernel datapath的OVS編譯安裝
- 下載原始碼
$ 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的核心上
- GNU make
$ ./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
下