OnWorks Linux i Windows Online WorkStation

logo

Darmowy hosting online dla stacji roboczych

<Poprzedni | Spis treści | Następne>

5.5. OpenVswitch-DPDK


Będąc biblioteką, sama niewiele zdziała, więc zależy od powstających projektów, które z niej korzystają. Jednym z konsumentów biblioteki, która jest już zawarta w wydaniu Ubuntu 16.04, jest OpenVswitch z obsługą DPDK w pakiecie openvswitch-switch-dpdk.

Oto przykład, jak zainstalować i skonfigurować podstawowy OpenVswitch przy użyciu DPDK do późniejszego wykorzystania przez 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 restart usługi openvswitch-switch


Pamiętaj, że przed ponownym uruchomieniem musisz przypisać urządzenia do sterowników zgodnych z DPDK (patrz wyżej).


Sekcja --vhost-właściciel libvirt-qemu:kvm --vhost-perm 0664 ustawi porty vhost_user z właścicielami/uprawnieniami, aby były zgodne ze sposobem uruchamiania qemu-kvm/libvirt w systemie Ubuntu z ograniczonymi uprawnieniami dla większego bezpieczeństwa.

Należy pamiętać, że sekcja -m 2048 to najbardziej podstawowa konfiguracja numa dla systemu z jednym gniazdem. Jeśli masz wiele gniazd, możesz na przykład chcieć zdefiniować, jak podzielić między nie pamięć -m 1024, 1024. Należy pamiętać, że DPDK będzie próbował pracować tylko z pamięcią lokalną dla kart sieciowych, z którymi współpracuje (ze względu na wydajność). To powiedziawszy, jeśli masz wiele węzłów, ale wszystkie karty sieciowe na jednym, powinieneś rozważyć rozłożenie kart. Jeśli nie, przynajmniej przydziel swoją pamięć do węzła, w którym znajdują się karty, na przykład w dwóch węzłach wszystko do węzła nr 2: -m 0, 2048. Możesz użyć narzędzia Istopo z pakietu hwloc-nox aby zobaczyć, w którym gnieździe znajdują się Twoje karty.

Uruchomiony teraz OpenVswitch obsługuje wszystkie typy portów, które zwykle obsługuje OpenVswitch, a także typy portów DPDK. Oto przykład jak stworzyć mostek i - zamiast zwykłego portu zewnętrznego - dodać do niego zewnętrzny port DPDK.


ovs-vsctl add-br ovsdpdkbr0 -- ustaw most ovsdpdkbr0 datapath_type=netdev ovs-vsctl add-port ovsdpdkbr0 dpdk0 -- ustaw interfejs dpdk0 type=dpdk



obraz

Włączenie DPDK w Open vSwitch zostało zmienione w wersji 2.6. A więc dla użytkowników wydań

>=16.10, ale także dla użytkowników Ubuntu Cloud Archive37 >=neutron włączenie uległo zmianie w porównaniu z dostępem dla użytkowników Ubuntu 16.04. Opcje poprzednio przekazywane przez DPDK_OPTS są teraz konfigurowane przez ovs-vsctl w bazie danych konfiguracji Open vSwitch.


Ten sam przykład, co powyżej, w nowy sposób wyglądałby następująco:


obraz

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



# Włącz DPDK

ovs-vsctl ustaw Open_vSwitch . „other_config:dpdk-init=true”

# uruchom na rdzeniu 0

ovs-vsctl ustaw Open_vSwitch . „other_config:dpdk-lcore-mask=0x1”

# Przydziel duże strony 2G (bez obsługi węzła Numa)

ovs-vsctl ustaw Open_vSwitch . „other_config: dpdk-alloc-mem=2048”

# grupa/uprawnienia dla gniazd vhost-user (wymagane do pracy z libvirt/qemu) ovs-vsctl set Open_vSwitch . \

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


Aby uzyskać więcej informacji, zapoznaj się z powiązaną dokumentacją nadrzędną i stroną podręcznika konfiguracji vswitch, dostarczoną w pakiecie:

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

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

man ovs-vswitchd.conf.db


Najlepsze przetwarzanie w chmurze dla systemu operacyjnego w OnWorks: