Citrix ADC

在KVM上配置Citrix ADC VPX实例以使用基于OVS DPDK的主机接口

您可以对KVM (Fedora和罗斯)上运行的Citrix ADC VPX实例进行配置以结合使用Open vSwitch (ov)与数据平面开发工具包(数据飞机开发工具包,DPDK),从而提高网络性能。本文档介绍了如何配置Citrix ADC VPX实例以在KVM主机上由OVS-DPDK公开的vhost-user端口上运行。

机汇是根据开源Apache 2.0许可证许可的多层虚拟交换机。DPDK是一组用于快速数据包处理的库和驱动程序。

以下Fedora、ros、OVS和DPDK版本可用于配置Citrix ADC VPX实例:

Fedora 罗斯
Fedora 25 罗斯7.4
ov 2.7.0 ov 2.6.1
DPDK 16.11.12 DPDK 16.11.12

必备条件

在安装DPDK之前,请确保主机具有1gb大页。

有关更多信息,请参阅此DPDK系统要求文档。下面总结了将KVM上的Citrix ADC VPX实例配置为使用基于ov DPDK的主机接口所需的步骤:

  • 安装dpdk。
  • 构建和安装ovs。
  • 创建ovs桥接。
  • 将物理接口附加到ovs桥接。
  • vhost-user端口连接到ovs数据路径。
  • 为kvm-vpx置备基于ovs-dpdk的vhost-user端口。

安装DPDK

要安装dpdk,请按照此打开vSwitch与DPDK文档中的说明进行操作。

构建和安装ovs

从ovs下载页面下载机汇。然后,使用DPDK数据路径构建和安装ovs。按照安装打开vSwitch文档中的说明进行操作。

有关更多详细信息,请参阅《Linux版DPDK入门指南"

创建ovs桥接

根据您的需要,键入Fedora或ros命令以创建OVS桥接:

Fedora命令

> $OVS_DIR/utilities/ovs-vsctl add-br ovs-br0——set bridge ovs-br0 datapath_type=netdev 

罗斯命令

—set bridge ov -br0 datapath_type=netdev 

将物理接口附加到ovs桥接

键入以下Fedora或ros命令将端口绑定到DPDK,然后将其附加到OVS桥接:

Fedora命令

> $OVS_DIR/utilities/ovs-vsctl add-port ovs-br0 dpdk0——set Interface dpdk0 type=dpdk options:dpdk-devargs=0000:03:00.0 > $OVS_DIR/utilities/ovs-vsctl add-port ovs-br0 dpdk1——set Interface dpdk1 type=dpdk options:dpdk-devargs=0000:03:00.1 

罗斯命令

ovs-vsctl add-port ovs-br0 dpdk0——set Interface dpdk0 type=dpdk options:dpdk-devargs=0000:03:00.0 ovs-vsctl add-port ovs-br0 dpdk1——set Interface dpdk1 type=dpdk options:dpdk-devargs=0000:03:00.1 

作为选项的一部分显示的dpdk-devargs指定各个物理nic的pci bdf。

vhost-user端口连接到ovs数据路径

键入以下Fedora或ros命令将vhost-user端口附加到ovs数据路径:

Fedora命令

> $OVS_DIR/utilities/ovs-vsctl add-port ovs-br0 vhost-user1——set Interface vhost-user1 type=dpdkvhostuser——set Interface vhost-user1 mtu_request=9000 > $OVS_DIR/utilities/ovs-vsctl add-port ovs- user0 vhost- user0——set Interface vhost-user2 type=dpdkvhostuser——set Interface vhost-user2 mtu_request=9000 chmod g+w /usr/local/var/run/openvswitch/vhost* 

罗斯命令

ovs-vsctl add-port ovs-br0 vhost-user1——set Interface vhost-user1 type=dpdkvhostuser——set Interface vhost-user1 mtu_request=9000 ovs-vsctl add-port ovs-br0 vhost-user2——set Interface vhost-user2 type=dpdkvhostuser——set Interface vhost-user2 mtu_request=9000 chmod g+w /var/run/openvswitch/vhost* 

为kvm-vpx预配基于ovs-dpdk的vhost-user端口

只能在CLI中使用以下QEMU命令为Fedora KVM上的VPX实例预配基于OVS-DPDK的vhost-user端口:Fedora命令

qemu-system-x86_64 -name KVM-VPX -cpu host -enable-kvm -m 4096M \ -object memory-backend-file,id=mem,size=4096M,mem-path=/dev/hugepages,share=on -numa node,memdev=mem \ -mem-prealloc -smp sockets=1,cores=2 -drive file=,if=none,id=drive-ide0-0-0,format=< disk -image-format> \ -device ide-drive,bus=ide。0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \ -netdev type=tap,id=hostnet0,script=no,downscript=no,vhost=on \ -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:0:3c:d1:ae,bus=pci。0,addr=0x3 \ -chardev socket,id=char0,path= \ -netdev type=vhost-user,id=mynet1,chardev=char0,vhostforce -device virtio-net-pci,mac=00:00:00:00:00:01,netdev=mynet1,mrg_rxbuf=on \ -chardev socket,id=char1,path= \ -netdev type=vhost-user,id=mynet2,chardev=char1,vhostforce -device virtio-net pci,mac= 00:00:00:00:02,netdev=mynet2,mrg_rxbuf=on \——nographic 

对于ros,请使用以下示例XML文件通过使用virsh来预配Citrix ADC VPX实例。

 dpdk-vpx1 aedb844b-f6bc-48e6-a4c6-36577f2d68d6 16777216      6  4096        /machine   hvm        Haswell-noTSX Intel      dpdk-vpx1 aedb844b-f6bc-48e6-a4c6-36577f2d68d6 16777216 16777216      6  4096          /machine           <型号后退='allow'>Haswell-noTSX Intel            <时钟offset='utc'/> destroy restartdestroy  <模拟器>/usr/libexec/qemu-kvm     
< Address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> < Address type=' 0x0000' bus='0x00' slot='0x04' function='0x0'/>
<源类型='unix' path='/var/run/openvswitch/vhost-user4' mode='客户端'/> <模型类型='virtio'/> <地址类型='pci'域='0x0000'总线='0x00' slot='0x09'函数='0x0'/> <串行类型='pty'> <目标端口='0'/> <控制台类型='pty'> <目标类型='串行'端口='0'/> <输入类型='鼠标'总线='ps2'/> <输入类型='键盘'总线='ps2'/> <图形类型='vnc'端口='-1' autoport='yes'> <监听类型='地址'/> <视频> <模型 type='cirrus' vram='16384' heads='1' primary='yes'/>

注意事项

在XML文件中,hugepage大小必须为1gb,如示例文件所示。

    

此外,在示例文件中,vhost-user1为绑定到ovs-br0的vhost用户端口。

    

要启动Citrix ADC VPX实例,请开始使用virsh命令。

在KVM上配置Citrix ADC VPX实例以使用基于OVS DPDK的主机接口