openvswitch(ovs) 命令--vhost-user相关的配置

 

 

OVS-SETUP

1、清除之前的环境

killall ovsdb-server ovs-vswitchd
rm -f /var/run/openvswitch/vhost-user*
rm -f /etc/openvswitch/conf.db

2、启动ovsdb


[root@dpdktest openvswitch-2.12.0]export DB_SOCK=/var/run/openvswitch/db.sock

[root@dpdktest openvswitch-2.12.0]ovsdb-tool create /etc/openvswitch/conf.db /usr/share/openvswitch/vswitch.ovsschema
[root@dpdktest openvswitch-2.12.0]ovsdb-server --remote=punix:$DB_SOCK --remote=db:Open_vSwitch,Open_vSwitch,manager_options --pidfile --detach
[root@dpdktest openvswitch-2.12.0]ovs-vsctl --no-wait init
[root@dpdktest openvswitch-2.12.0]ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-lcore-mask=0x2 //绑定到第2个cpu核上
[root@dpdktest openvswitch-2.12.0]ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem=4096
[root@dpdktest openvswitch-2.12.0]ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
启动ovs-vswitch
[root@dpdktest openvswitch-2.12.0]ovs-vswitchd unix:$DB_SOCK --pidfile --detach --log-file=/var/log/openvswitch/ovs-vswitchd.log


3、查看支持DPDK是否成功:


ovs-vsctl get Open_vSwitch . dpdk_initialized
true

配置bridge
1 [root@dpdktest openvswitch-2.12.0]# ovs-vsctl add-br ovsbr0 -- set bridge ovsbr0 datapath_type=netdev

2、添加vhost-user-client-0/1 端口需要指定vhost-server-path值,表示socket文件路径。
ovs-vsctl add-port ovsbr0 vhost-client-0 -- set Interface vhost-client-0 type=dpdkvhostuserclient options:vhost-server-path=/usr/local/var/run/sock0
ovs-vsctl add-port ovsbr0 vhost-client-1 -- set Interface vhost-client-1 type=dpdkvhostuserclient options:vhost-server-path=/usr/local/var/run/sock1
ovs-vsctl show

在网桥ovsbr0上绑定真实dpdk的物理网卡

ovs-vsctl add-port ovsbr0 dpdkport0 -- set Interface dpdkport0 type=dpdk option:dpdk-devargs=0000:02:00.0

注:可以修改ovs桥中端口的mtu值方法如下:该命令设置可以在数据库持久,也可以配置物理接口
ovs-vsctl set interface ovsbr0 mtu_request=9000
ovs-vsctl set interface dpdkport0 mtu_request=9000
ovs-vsctl set interface vhost-client-1 mtu_request=9000
ovs-vsctl set interface vhost-client-0 mtu_request=9000

该命令清除恢复到默认的MTU

ovs-vsctl set interface vhost-client-0 mtu_request=[]

也可以直接使用添加端口的时候指定mtu值如下方式:

[root@dpdktest ~]# ovs-vsctl add-port ovsbr0 vhost-client-0 -- set Interface vhost-client-0 type=dpdkvhostuserclient options:vhost-server-path=/usr/local/var/run/sock0 mtu_request=9000
[root@dpdktest ~]# ovs-vsctl add-port ovsbr0 vhost-client-1 -- set Interface vhost-client-1 type=dpdkvhostuserclient options:vhost-server-path=/usr/local/var/run/sock1 mtu_request=9000
[root@dpdktest ~]# ovs-vsctl add-port ovsbr0 dpdkport0 -- set Interface dpdkport0 type=dpdk option:dpdk-devargs=0000:02:00.0 mtu_request=9000
[root@dpdktest ~]#

 

启动虚拟机命令:

taskset 0x3 qemu-system-mips64el -name guest=dpdk-test \
    -m 2048 -boot c -smp 2 \
    -drive file=/home/kvm/Loongnix-Server-1.7-gui-2007-RC14-clone.qcow2,if=virtio \
    -bios /usr/share/qemu/ls3a_bios.bin -M loongson7a -cpu Loongson-3A4000-COMP  \
    --enable-kvm \
    -net user,hostfwd=tcp::10022-:22 -net nic \
    -object memory-backend-file,id=mem,size=2048M,mem-path=/dev/hugepages,share=on \
    -numa node,memdev=mem -mem-prealloc \
    -chardev socket,id=char1,path=/usr/local/var/run/sock1,server \
    -netdev type=vhost-user,id=hostnet1,chardev=char1 \
    -device virtio-net-pci,netdev=hostnet1,id=net1,mac=52:54:00:02:d9:02 \

    -vga qxl -spice port=5911,addr=127.0.0.1,disable-ticketing \
    -d int -serial stdio -monitor telnet:localhost:3333,server,nowait

 

启动虚拟机后ssh登录虚拟机

ssh root@localhost -p 10022

稍后在补充完整的拓扑以及编译过程

参考链接:

https://wiki.qemu.org/Documentation/vhost-user-ovs-dpdk

https://blog.csdn.net/boilerplate/article/details/107740404

https://docs.openvswitch.org/en/latest/howto/dpdk/

https://www.cnblogs.com/wangjq19920210/p/8999887.html

http://doc.dpdk.org/dts/test_plans/vhost_qemu_mtu_test_plan.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
openvswitch是一种用于虚拟交换的开源软件。而ovs-dpdk是openvswitch的一种插件,它提供了使用Data Plane Development Kit(DPDK)的功能来加速虚拟交换。 硬件offload是指将一些计算任务交给硬件来执行,以提高性能和效率。在ovs-dpdk中,硬件offload用于加速虚拟交换功能,提供更高的吞吐量和更低的延迟。 通过使用DPDK,ovs-dpdk可以直接与网络接口卡(NIC)进行交互,绕过操作系统内核,减少了数据包在主机上的处理和拷贝操作,提高了数据包的处理速度。 ovs-dpdk的硬件offload功能主要包括以下几个方面: 1. 网络虚拟化加速:ovs-dpdk可以将网络虚拟化的一些关键任务,如虚拟交换机的转发、过滤、隧道封装等,通过硬件加速实现,提高虚拟机之间的通信性能。 2. 动态流表:通过与DPDK和硬件交互,ovs-dpdk可以动态地配置硬件流表,对数据包进行分类和处理,从而减少了软件处理所需的时间和资源。 3. 超大流量处理:ovs-dpdk支持高达数百万个数据包每秒(Mpps)的数据包处理能力,适用于高密度数据中心或网络交换机等场景,能够应对大规模流量需求。 总结起来,ovs-dpdk的硬件offload功能能够加速虚拟交换功能,提供更高的性能和效率。通过与DPDK和硬件配合,ovs-dpdk可以实现网络虚拟化加速、动态流表和超大流量处理等功能,满足高性能虚拟交换的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值