Citrix ADC

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

通过在KVM (Fedora和RHOS)上配置Citrix ADC VPX实例,使用OVS (Open vSwitch)和DPDK (Data Plane Development Kit),可以获得更好的网络性能。本文档介绍如何配置Citrix ADC VPX实例,以便在vhost-userKVM主机上OVS-DPDK暴露的端口。

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

支持配置Citrix ADC VPX实例的Fedora、RHOS、OVS和DPDK版本如下:

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

先决条件

在安装DPDK之前,请确保主机有1 GB的大页面。

有关更多信息,请参阅此DPDK系统需求文档.以下是在KVM上配置Citrix ADC VPX实例以使用基于OVS dpdk的主机接口所需步骤的摘要:

  • 安装DPDK。
  • 构建并安装OVS。
  • 创建OVS网桥。
  • 将物理接口附加到OVS网桥上。
  • 附加vhost-user端口到OVS数据路径。
  • 配置基于OVS-DPDK的KVM-VPXvhost-user港口。

安装DPDK

要安装DPDK,请遵循本文给出的说明使用DPDK打开vSwitch文档。

构建并安装OVS

从OVS中下载OVS下载页面.接下来,使用DPDK数据路径构建和安装OVS。请按照中给出的说明操作安装Open vSwitch文档。

如需更详细资料,请DPDK Linux入门指南

创建OVS网桥

根据需要,输入Fedora或RHOS命令来创建OVS桥:

Fedora命令

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

罗斯命令

Ovs-vsctl add-br ovs-br0——set bridge ovs-br0 datapath_type=netdev 

将物理接口挂载到OVS网桥上

将端口绑定到DPDK,然后通过输入以下Fedora或RHOS命令将它们连接到OVS桥:

Fedora命令

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

罗斯命令

ovs-vsctl add-port ovs-br0 dpdk0——set接口dpdk0 type=dpdk options:dpdk-devargs= 00000:03:00.0 ovs-vsctl add-port ovs-br0 dpdk1——set接口dpdk1 type=dpdk options:dpdk-devargs= 00000:03:00.1 

dpdk-devargs作为选项的一部分,指定了相应物理网卡的PCI BDF。

附加vhost-user端口到OVS数据路径

输入下面的Fedora或RHOS命令来附加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-br0 vhost-user2——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 type=dpdkvhostuser——set Interface vhost-user2 type=dpdkvhostuser——set Interface vhost-user2 mtu_request=9000 chmod g+w /var/run/openvswitch/vhost* 

配置基于ovs - dpdk的KVM-VPXvhost-user港口

您可以在基于ovs - dpdk的Fedora KVM上配置VPX实例vhost-user只能通过以下QEMU命令从CLI中获取端口信息:Fedora命令

qemu-system-x86_64 -name KVM-VPX -cpu host -enable-kvm -m 4096M \ -object memory-backend-file,id=mem,size=4096M, memm -path=/dev/hugepages,share=on -numa node,memdev=mem \ - memm -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:00: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 

对于RHOS,使用以下示例XML文件通过使用virsh

 dpdk-vpx1 aedb844b-f6bc-48e6-a4c6-36577f2d68d6 16777216   <页大小='1048576' unit='KiB'/>   6      .     /machine  hvm              .    aedb844b-f6bc-48e6-a4c6-36577f2d68d6  16777216    <页大小='1048576' unit='KiB'/>              <内存模式='strict' nodeset='0'/>  <  < /machine   hvm                       <时钟offset='utc'/> destroy restartdestroy  /usr/libexec/qemu-kvm     
< Address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> < Address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
< Address type='pci' domain='0x0000' bus='0x00' slot='0x09' function='0x0'/>

注意事项

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

    

同样,在样例文件中,vhost-user1是vhost绑定ovs-br0的用户端口。

    

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

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