***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
下