OnWorks Linux- und Windows-Online-WorkStations

Logo

Kostenloses Online-Hosting für WorkStations

<Zurück | Inhalte | Weiter>

5.5. OpenVswitch-DPDK


Da es sich um eine Bibliothek handelt, macht sie nicht viel alleine und ist daher auf neue Projekte angewiesen, die sie nutzen. Ein Konsument der Bibliothek, der bereits in der Ubuntu-Version 16.04 gebündelt ist, ist OpenVswitch mit DPDK-Unterstützung im Paket openvswitch-switch-dpdk.

Hier ein Beispiel für die Installation und Konfiguration eines einfachen OpenVswitch mit DPDK für die spätere Verwendung über libvirt/qemu-kvm.


sudo apt-get install openvswitch-switch-dpdk

sudo update-alternatives --set ovs-vswitchd /usr/lib/openvswitch-switch-dpdk/ovs-vswitchd-dpdk

echo "DPDK_OPTS='--dpdk -c 0x1 -n 4 -m 2048 --vhost-owner libvirt-qemu:kvm --vhost-perm 0664'" | sudo tee -a /etc/default/openvswitch-switch

Sudo-Dienst openvswitch-switch neu starten


Bitte denken Sie daran, dass Sie den Geräten vor dem Neustart DPDK-kompatible Treiber zuweisen müssen (siehe oben).


Die Sektion --vhost-owner libvirt-qemu:kvm --vhost-perm 0664 richtet vhost_user-Ports mit Besitzer-/Berechtigungen ein, um mit Ubuntus Art der Ausführung von qemu-kvm/libvirt mit reduzierten Berechtigungen für mehr Sicherheit kompatibel zu sein.

Bitte beachten Sie, dass der Abschnitt -m 2048 ist das einfachste Numa-Setup für ein Single-Socket-System. Wenn Sie über mehrere Sockets verfügen, möchten Sie möglicherweise beispielsweise definieren, wie Sie Ihren Speicher auf diese aufteilen -m 1024, 1024. Bitte beachten Sie, dass DPDK aus Leistungsgründen versucht, nur mit dem lokalen Speicher der Netzwerkkarten zu arbeiten, mit denen es funktioniert. Wenn Sie jedoch mehrere Knoten, aber alle Netzwerkkarten auf einem haben, sollten Sie eine Verteilung Ihrer Karten in Betracht ziehen. Wenn nicht, weisen Sie Ihren Speicher zumindest dem Knoten zu, auf dem sich die Karten befinden, zum Beispiel in einem Zwei-Knoten-System, das alle dem Knoten Nr. 2 zuweist: -m 0, 2048. Sie können das Tool verwenden lstopo aus dem paket hwloc-nox um zu sehen, auf welchem ​​Sockel sich Ihre Karten befinden.

Der OpenVswitch, den Sie jetzt gestartet haben, unterstützt alle Porttypen, die OpenVswitch normalerweise unterstützt, sowie DPDK-Porttypen. Hier ein Beispiel, wie man eine Bridge erstellt und – anstelle eines normalen externen Ports – einen externen DPDK-Port hinzufügt.


ovs-vsctl add-br ovsdpdkbr0 – set Bridge ovsdpdkbr0 datapath_type=netdev ovs-vsctl add-port ovsdpdkbr0 dpdk0 – set Interface dpdk0 type=dpdk



Image

Die Aktivierung von DPDK in Open vSwitch hat sich in Version 2.6 geändert. Also für Benutzer von Releases

>=16.10, aber auch für Benutzer des Ubuntu Cloud Archive37 >=neutron hat sich die Aktivierung im Vergleich zu der für Benutzer von Ubuntu 16.04 geändert. Die früher über DPDK_OPTS übergebenen Optionen werden jetzt über ovs-vsctl in der Open vSwitch-Konfigurationsdatenbank konfiguriert.


Das gleiche Beispiel wie oben würde auf die neue Art und Weise so aussehen:


Image

37 https://wiki.ubuntu.com/OpenStack/CloudArchive



# DPDK aktivieren

ovs-vsctl setze Open_vSwitch . „other_config:dpdk-init=true“

# auf Kern 0 ausführen

ovs-vsctl setze Open_vSwitch . „other_config:dpdk-lcore-mask=0x1“

# 2G große Seiten zuweisen (nicht Numa-Knoten-fähig)

ovs-vsctl setze Open_vSwitch . „other_config:dpdk-alloc-mem=2048“

# Gruppe/Berechtigungen für vhost-user-Sockets (erforderlich für die Arbeit mit libvirt/qemu) ovs-vsctl set Open_vSwitch . \

„other_config:dpdk-extra=--vhost-owner libvirt-qemu:kvm --vhost-perm 0666“


Weitere Informationen finden Sie in der zugehörigen Upstream-Dokumentation und in der Manpage der vswitch-Konfiguration, die im Paket bereitgestellt wird:

/usr/share/doc/openvswitch-common/INSTALL.DPDK.md.gz

/usr/share/doc/openvswitch-common/INSTALL.DPDK-ADVANCED.md.gz

man ovs-vswitchd.conf.db


Top OS Cloud Computing bei OnWorks: