OVS + kernel datapath 的安装

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OVS + kernel datapath 的安装相关的知识,希望对你有一定的参考价值。

 

***kernel datapath的OVS编译安装

  1. 下载源代码
    $ git clone https://github.com/openvswitch/ovs.git
  2. 准备工具:生成configure文件
    1. GNU make
      $ make --version
    2. 一个C语言编译器,GCC 4.6以上,Clang 3.4以上
      $ gcc --version
    3. libssl
      $ apt-get isntall libssl1.0.0
    4. libcap-ng0
      $ apt-get install libcap-ng0
    5. libtool
      $ apt-get install libtool
    6. autoconf
      $ apt-get install autoconf
    7. 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
      )
    8. 注意ovs 内核模块的版本与Linux内核版本号
      2.7版本的OVS能安装在Linux 3.10~4.9的内核上

  3. $ ./boot.sh
  4. 配置
    $ ./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中的内存管理库
  5. 编译OVS
    $ make
  6. 安装OVS用户态程序
    $ make install
  7. 安装内核模块(把相关*.ko文件安装至/lib/modules/$(uname -r)/extra/中
    $ make modules_install
  8. 挂载安装的内核模块
    $ /sbin/modprobe openvswitch
  9. 配置数据库
    $ mkdir -p /usr/local/etc/openvswitch
    $  ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema
  10. 启动数据库程序
    $ 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
  11. 初始化ovsdb数据库
    $ ovs-vsctl --no-wait init
  12. 启动vswitchd守护进程
    $ ovs-vswitchd --pidfile --detach --log-file
  13. 完成,可以测试了
    $ ovs-vsctl add-br br0
    $ ovs-vsctl show
 
默认的LOG位于
      /usr/local/var/log/openvswitch
 
 

 

以上是关于OVS + kernel datapath 的安装的主要内容,如果未能解决你的问题,请参考以下文章

OpenvSwitch 流表转换

OVS+DPDK Datapath 包分类技术

OpenStack: OVS安装

OVS中对于用户层和datapath层的多个通道利用epoll进行控制

Linux Kernel TCP/IP Stack — L2 Layer — Traffic Control Flower(硬件卸载功能)

ovs patch端口实现原理