ADC

Configurar una instancia de Citrix ADC VPX en KVM para utilizar interfaces de host basadas en OVS DPDK

Puede configurar una instancia de Citrix ADC VPX que se ejecute en KVM (Fedora y RHOS) para utilizar Open vSwitch (OVS) con el Kit de desarrollo de planos de datos (DPDK) para un mejor rendimiento de la red. En este documento se describe cómo configurar la instancia Citrix ADC VPX para que funcione en losvhost-userpuertos expuestos por OVS-DPDK en el host KVM.

OVSes un conmutador virtual multicapa licenciado bajo la licencia Apache 2.0 de código abierto.DPDKes un conjunto de bibliotecas y controladores para un procesamiento rápido de paquetes.

Las siguientes versiones de Fedora, RHOS, OVS y DPDK están calificadas para configurar una instancia de Citrix ADC VPX:

Fedora RHOS
Fedora 25 RHOS 7,4
OVS 2.7.0 OVS 2.6.1
DPDK 16.11.12 DPDK 16.11.12

Requisitos previos

Antes de instalar DPDK, asegúrese de que el host tiene páginas enormes de 1 GB.

Para obtener más información, consulte estadocumentación de requisitos del sistema de DPDK. A continuación se presenta un resumen de los pasos necesarios para configurar una instancia de Citrix ADC VPX en KVM para utilizar interfaces de host basadas en DPDK de OVS:

  • Instale DPDK.
  • Construir e instalar OVS.
  • Cree un puente OVS.
  • Conecte una interfaz física al puente OVS.
  • Conectevhost-userpuertos a la ruta de datos OVS.
  • Aprovisione un KVM-VPX convhost-userpuertos basados en OVS-DPDK.

Instalar DPDK

Para instalar DPDK, siga las instrucciones que se dan en este documentoOpen vSwitch con DPDK.

Crear e instalar OVS

Descargue OVS desde lapágina de descargasde OVS. A continuación, cree e instale OVS mediante una ruta de datos DPDK. Siga las instrucciones que figuran en el documentoInstalación de Open vSwitch.

Para obtener información más detallada,Guía de introducción de DPDK para Linux.

Creación de un puente OVS

Dependiendo de su necesidad, escriba el comando Fedora o RHOS para crear un puente OVS:

Comando de Fedora:

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

Comando RHOS:

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

Conecte la interfaz física al puente OVS

Enlace los puertos a DPDK y luego conéctelos al puente OVS escribiendo los siguientes comandos de Fedora o RHOS:

Comando de 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 

Comando RHOS:

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 

Eldpdk-devargsmostrado como parte de las opciones especifica el PCI BDF de la NIC física respectiva.

Adjuntarvhost-userpuertos a la ruta de datos OVS

Escriba los siguientes comandos de Fedora o RHOS para conectarvhost-userpuertos a la ruta de datos OVS:

Comando de 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* 

Comando RHOS:

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* 

Aprovisionamiento de un KVM-VPX convhost-userpuertos basados en OVS-DPDK

Puede aprovisionar una instancia VPX en KVM de Fedora convhost-userpuertos basados en OVS-DPDK solo desde la CLI mediante los siguientes comandos QEMU:comando 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= \ -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:00:02,netdev=mynet2,mrg_rxbuf=on \ --nographic 

Para RHOS, utilice el siguiente archivo XML de ejemplo para aprovisionar la instancia Citrix ADC VPX, mediantevirsh.

<域类型=“kvm”> <名称> dpdk-vpx1 < /名称> < uuid >edb844b-f6bc-48e6-a4c6-36577f2d68d6 16777216 16777216      6  4096           /machine   hvm        Haswell-noTSX Intel       dpdk-vpx1 aedb844b-f6bc-48e6-a4c6-36577f2d68d6 16777216 16777216      6  4096           /machine   hvm        Haswell-noTSX Intel              destroy restart destroy  /usr/libexec/qemu-kvm     

Puntos a tener en cuenta

En el archivo XML, elhugepagetamaño debe ser de 1 GB, como se muestra en el archivo de ejemplo.

    

Además, en el archivo de ejemplo vhost-user1 está el puerto devhostusuario vinculado a ovs-br0.

    

Para abrir la instancia Citrix ADC VPX, empiece a utilizar elvirshcomando.

Configurar una instancia de Citrix ADC VPX en KVM para utilizar interfaces de host basadas en OVS DPDK