一、ovs-dpdk ——安装配置

转载请注明出处,谢谢

a、安装方式

     目前安装ovs-dpdk的方式有两种:

  1. meson安装dpdk,再使用make安装ovs-dpdk

     2、使用meson ninja 安装dpdk请参考另一篇 meson ninja调试dpdk

b、安装ovs:

下载完对应dpdk版本的ovs进行解压;

        进入ovs目录

        ./boot.sh 检查依赖是否完整,不完整先下载依赖

http://www.openvswitch.org/support/ovscon2020/#C1

intel已经支持ovs-dpdk 依赖meson编译的dpdk库:

make

        make install   请检查确保安装到/usr/local ,否则请先执行 export DESTDIR=modprobe openvswitch 加载内核所需模块

c、配置ovs          

进入主目录/home/dou 执行

export PATH=$PATH:/usr/local/share/openvswitch/scripts

export DB_SOCK=/usr/local/var/run/openvswitch/db.sock

ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true

ovs-ctl --no-ovsdb-server --db-sock="$DB_SOCK" start

ovs-vsctl --no-wait set Open_vSwitch . \

    other_config:dpdk-socket-mem="1024"  配置大页

d、验证

              $ ovs-vsctl get Open_vSwitch . dpdk_initialized

true

$ ovs-vswitchd --version

ovs-vswitchd (Open vSwitch) 2.14.0

DPDK 19.11.2

e、创建用户态虚拟网桥

$ ovs-vsctl add-br br0 -- set bridge br0 datapath_type=netdev

       f:添加port:

              $ ovs-vsctl add-port br0 myportnameone -- set Interface myportnameone \

    type=dpdk options:dpdk-devargs=0000:01:00.0

$ ovs-vsctl add-port br0 myportnametwo -- set Interface myportnametwo \

type=dpdk options:dpdk-devargs=0000:01:00.1

后续使用方法,请参考:https://docs.openvswitch.org/en/latest/howto/dpdk/

使用vhost user ports 请参考:

https://docs.openvswitch.org/en/latest/topics/dpdk/vhost-user/

 

 

出现问题

       一、ovs-vsctl: unix:/usr/local/var/run/openvswitch/db.sock: database connection failed (No such file or directory)

ovs-vsctl exited with code 1

*** Error connecting to ovs-db with ovs-vsctl

Make sure that Open vSwitch is installed, that ovsdb-server is running, and that

"ovs-vsctl show" works correctly.

You may wish to try "service openvswitch-switch start"

 

最好添加开机运行脚本:

1、modprobe openvswitch

2、sudo ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock --remote=db:Open_vSwitch,Open_vSwitch,manager_options --pidfile --detach

3、ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true

4、ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem="512"

5、ovs-vsctl get Open_vSwitch . dpdk_initialized

       二、ovsdb-server: I/O error: open: /usr/local/etc/openvswitch/conf.db failed (No such file or directory)

则先进入openvswitch目录,以sudo运行:

1、sudo mkdir -p /usr/local/etc/openvswitch

2、sudo ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema

再运行之前的脚本

三、创建vhost

ovs-vsctl add-port br0 vhost-user-1 -- set Interface vhost-user-1 type=dpdkvhostuser

ovs-vsctl add-port br0 vhost-user-2 -- set Interface vhost-user-2 type=dpdkvhostuser  

四、如果你希望vhost-user的套接口创建在/usr/local/var/run/openvswitch的子目录下,需要在ovsdb中执行此目录:

   $ ovs-vsctl --no-wait set Open_vSwitch . other_config:vhost-sock-dir=subdir

默认在/usr/local/var/run/openvswitch/vhost-user-1

配置了子目录/usr/local/var/run/openvswitch/subdir/vhost-user-1

 五、对于qemu创建

       -chardev socket,id=char2,path=/usr/local/var/run/openvswitch/vhost-user-2

-netdev type=vhost-user,id=mynet2,chardev=char2,vhostforce

-device virtio-net-pci,mac=00:00:00:00:00:02,netdev=mynet2

此外,QEMU必须在hugetlbfs上分配VM的内存。vhost-user端口访问virtio-net设备的虚拟环和数据包缓冲区,其为在Hugetlbfs上映射的虚拟机的物理内存。开启vhost-user端口以映射虚拟机的内存到进程地址空间中,需将以下参数传递给qemu:

-object memory-backend-file,id=mem,size=3G,mem-path=/dev/hugepages,share=on

-numa node,memdev=mem -mem-prealloc

六、无法添加vhost-user-x bug ,建议删除目录下的/usr/local/var/run /openvswitch(/subdir)/vhost-user-x,然后重新添加即可添加成功。

建议每次关机前清理掉所有vhost-user-x 开机重新添加。

查看ovs统计:

       ovs-ofctl dump-ports br0

查看dpdk 统计:

       ovs-vsctl list interface vhost-user-1

设置ovs-dpdk cpumask:

ovs-vsctl set Open_vSwitch . other_config:pmd-cpu-mask=6

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Open vSwitch(OVS)是一个开源的虚拟交换机软件,用于实现网络交换功能。它提供了一套灵活的网络转发和流量处理机制,并且可以与不同类型的网络虚拟化技术(如OpenStack、KVM等)集成。 OVS-DPDK是OVS的一个变种,使用了Data Plane Development Kit(DPDK)来加速数据包处理。DPDK是一个用于快速数据包处理的开源项目,它提供了一组用户空间的库和驱动程序,使网络应用程序能够绕过操作系统内核,直接访问网络硬件。通过与DPDK集成,OVS-DPDK可以实现更高的数据包处理性能和更低的延迟。 OVS-DPDK具有以下特性: 1. 高性能:使用DPDK加速,可以处理更多的数据包以及更低的延迟。这使得OVS-DPDK非常适合需要高性能的虚拟化环境。 2. 大规模网络:OVS-DPDK支持大规模网络环境,可以处理数十万个虚拟机和大量的网络流量。 3. 高级流量管理:OVS-DPDK提供了丰富的流量管理功能,如流量分类、QoS(Quality of Service)、ACL(Access Control List)等,可以根据应用需求对流量进行精细控制和管理。 4. 灵活的虚拟化集成:OVS-DPDK可以与不同类型的虚拟化技术(如OpenStack、KVM等)集成,提供灵活的网络虚拟化解决方案。 总之,OVS-DPDK是在传统的OVS基础上加入了DPDK加速技术,以提供更高性能和更低延迟的网络转发和流量处理能力。这使得它成为虚拟化环境中处理大规模网络流量的理想选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值