Stations de travail en ligne OnWorks Linux et Windows

Logo

Hébergement gratuit en ligne pour les postes de travail

<Précédent | Table des matières | Suivant>

5.5. OpenVswitch-DPDK


En tant que bibliothèque, elle ne fait pas grand-chose par elle-même, elle dépend donc des projets émergents qui l'utilisent. Un consommateur de la bibliothèque qui est déjà fourni dans la version Ubuntu 16.04 est OpenVswitch avec prise en charge DPDK dans le package openvswitch-switch-dpdk.

Voici un exemple d'installation et de configuration d'un OpenVswitch de base à l'aide de DPDK pour une utilisation ultérieure via 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

redémarrage du service sudo openvswitch-switch


N'oubliez pas que vous devez affecter les périphériques aux pilotes compatibles DPDK (voir ci-dessus) avant de redémarrer.


La section --vhost-owner libvirt-qemu:kvm --vhost-perm 0664 configurera les ports vhost_user avec les autorisations propriétaire/pour être compatible avec la manière Ubuntus d'exécuter qemu-kvm/libvirt avec des privilèges réduits pour plus de sécurité.

Veuillez noter que la section -mois 2048 est la configuration numa la plus basique pour un système à socket unique. Si vous avez plusieurs sockets, vous voudrez peut-être définir comment répartir votre mémoire entre eux, par exemple -m 1024, 1024. Veuillez noter que DPDK essaiera de fonctionner uniquement avec la mémoire locale des cartes réseau avec lesquelles il fonctionne (pour des raisons de performances). Cela dit, si vous avez plusieurs nœuds, mais toutes les cartes réseau sur une seule, vous devriez envisager de répartir vos cartes. Sinon, allouez au moins votre mémoire au nœud où résident les cartes, par exemple dans un nœud à deux au nœud #2 : -m 0, 2048. Vous pouvez utiliser l'outil l'arrêt du paquet hwloc-nox pour voir sur quelle prise se trouvent vos cartes.

L'OpenVswitch que vous avez maintenant démarré prend en charge tous les types de ports qu'OpenVswitch utilise habituellement, ainsi que les types de ports DPDK. Voici un exemple comment créer un pont et - au lieu d'un port externe normal - y ajouter un port DPDK externe.


ovs-vsctl add-br ovsdpdkbr0 -- définir le pont ovsdpdkbr0 datapath_type=netdev ovs-vsctl add-port ovsdpdkbr0 dpdk0 -- définir l'interface dpdk0 type=dpdk



image

L'activation de DPDK dans Open vSwitch a changé dans la version 2.6. Donc pour les utilisateurs de versions

>=16.10, mais aussi pour les utilisateurs de l'Ubuntu Cloud Archive37 >=neutron l'activation a changé par rapport à celle des utilisateurs d'Ubuntu 16.04. Les options précédemment transmises via DPDK_OPTS sont désormais configurées via ovs-vsctl dans la base de données de configuration Open vSwitch.


Le même exemple que ci-dessus ressemblerait à la nouvelle manière :


image

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



# Activer DPDK

ovs-vsctl définit Open_vSwitch . "autre_config:dpdk-init=true"

# exécuté sur le noyau 0

ovs-vsctl définit Open_vSwitch . "autre_config:dpdk-lcore-mask=0x1"

# Allouer d'énormes pages 2G (pas au courant du nœud Numa)

ovs-vsctl définit Open_vSwitch . "autre_config:dpdk-alloc-mem=2048"

# groupe/autorisations pour les sockets vhost-user (requis pour fonctionner avec libvirt/qemu) ovs-vsctl set Open_vSwitch . \

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


Veuillez consulter la documentation en amont associée et la page de manuel de la configuration vswitch fournie par le package pour plus de détails :

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

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

homme ovs-vswitchd.conf.db


Meilleur système d'exploitation Cloud Computing chez OnWorks :