ADC

Konfigurieren Sie eine NetScaler VPX-Instanz auf KVM für die Verwendung von OVS-DPDK-basierten Hostschnittstellen

您可以在一张NetScaler VPX-Instanz konfigurieren, die auf KVM (Fedora und RHOS) ausgeführt wird, um Open vSwitch (OVS) mit Data Plane Development Kit (DPDK) für eine bessere Netzwerkleistung zu verwenden. In diesem Dokument wird beschrieben, wie die NetScaler VPX-Instanz so konfiguriert wird, dass sie an denvhost-userPorts arbeitet, die von OVS-DPDK auf dem KVM-Host bereitgestellt werden.

OVSist ein Multilayer-Virtual Switch, der unter der Open-Source-Apache 2.0-Lizenz lizenziertDPDKist eine Reihe von Bibliotheken und Treibern für die schnelle Paketverarbeitung.

Die folgenden Versionen von Fedora, RHOS, OVS und DPDK sind für die Konfiguration einer NetScaler VPX-Instanz qualifiziert:

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

Voraussetzungen

Stellen Sie vor der Installation von DPDK sicher, dass der Host über 1 GB große Seiten verfügt.

Weitere Informationen finden Sie in dieserDokumentation zu den DPDK-Systemanforderungen. Es folgt eine Zusammenfassung der Schritte, die erforderlich sind, um eine NetScaler VPX-Instanz auf KVM für die Verwendung von OVS DPDK-basierten Host-Interfaces zu konfigurieren:

  • Installieren Sie DPDK.
  • Erstellen und installieren Sie OVS.
  • Erstellen Sie eine OVS-Brücke.
  • Schließen Sie eine physikalische Schnittstelle an die OVS-Brücke an.
  • Hängen Sievhost-userPorts an den OVS-Datenpfad an.
  • Stellen Sie einen KVM-VPX mit OVS-DPDK-basiertenvhost-userPorts bereit.

DPDK installieren

Um DPDK zu installieren, folgen Sie den Anweisungen in diesemOpen vSwitch mit DPDK-Dokument.

Erstellen und Installieren von OVS

Laden Sie OVS von derOVS-Downloadseite herunter. Erstellen und installieren Sie als Nächstes OVS mit einem DPDK-Datapath. Folgen Sie den Anweisungen im DokumentInstallieren von Open vSwitch.

Ausführlichere Informationen finden Sie imDPDK Getting Started Guide für Linux.

Erstellen einer OVS-Brücke

Geben Sie je nach Bedarf den Befehl Fedora oder RHOS ein, um eine OVS-Bridge zu erstellen:

Fedora-Befehl:

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

RHOS-Befehl:

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

Verbinden Sie die physische Schnittstelle mit der OVS-Brücke

Binden Sie die Ports an DPDK und verbinden Sie sie dann mit der OVS-Bridge, indem Sie die folgenden Fedora- oder RHOS-Befehle eingeben:

Fedora-Befehl:

> $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 

RHOS-Befehl:

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 

Die als Teil der Optionendpdk-devargsgezeigte gibt den PCI-BDF der jeweiligen physikalischen NIC an.

Anhängen vonvhost-userPorts an den OVS-Datenpfad

Geben Sie die folgenden Fedora- oder RHOS-Befehle ein, umvhost-userPorts an den OVS-Datenpfad anzuhängen:

Fedora-Befehl:

> $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* 

RHOS-Befehl:

ovs-vsctl添加一个端口ovs-br0 vhost-user1——设置强度rface 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* 

Stellen Sie einen KVM-VPX mit OVS-DPDK-basiertenvhost-userPorts bereit

Sie können eine VPX-Instanz auf Fedora KVM mit OVS-DPDK-basiertenvhost-userPorts nur von der CLI aus bereitstellen, indem Sie die folgenden QEMU-Befehle verwenden:Fedora Befehl:

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 

Verwenden Sie für RHOS die folgende XML-Beispieldatei, um die NetScaler VPX-Instanz mithilfe von bereitzustellenvirsh.

<域类型=“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     

Wichtige Hinweise

In der XML-Datei muss diehugepageGröße 1 GB betragen, wie in der Beispieldatei gezeigt.

    

In der Beispieldatei ist vhost-user1 auch dervhostBenutzerport, der an ovs-br0 gebunden ist.

<接口类型=“vhostuser”> < = ' 52:54:0 mac地址0:55:55:56'/>   

Um die NetScaler VPX-Instanz aufzurufen, verwenden Sie denvirshBefehl.

Konfigurieren Sie eine NetScaler VPX-Instanz auf KVM für die Verwendung von OVS-DPDK-basierten Hostschnittstellen