<Précédent | Table des matières | Suivant>
5.9. Assistance et dépannage
DPDK est un projet en évolution rapide. Dans tous les cas de recherche de support et de guides supplémentaires, il est fortement recommandé de vérifier d'abord s'ils s'appliquent à la version actuelle.
• Listes de diffusion DPDK38
• Pour les listes de diffusion OpenVswitch-DPDK OpenStack39
• Problèmes connus dans la zone de lancement DPDK40
• Rejoignez les canaux IRC #DPDK ou #openvswitch sur freenode.
Les problèmes sont souvent dus à de petits détails manquants dans la configuration générale. Plus tard, ces détails manquants causent des problèmes qui peuvent être difficiles à localiser à l'origine. Un cas courant semble être le problème "Impossible d'ouvrir le périphérique réseau dpdk0 (Aucun périphérique de ce type)". Cela se produit assez tard lors de la configuration d'un port dans Open vSwitch avec DPDK. Mais la cause première se situe la plupart du temps très tôt dans la configuration et l'initialisation. Voici un exemple à quoi ressemble une initialisation correcte d'un appareil - cela peut être trouvé dans le syslog/journal lors du démarrage d'Open vSwitch avec DPDK activé.
ovs-ctl[3560] : EAL : périphérique PCI 0000:04:00.1 sur le socket NUMA 0 ovs-ctl[3560] : EAL : pilote de sonde : 8086 :1528 rte_ixgbe_pmd ovs-ctl[3560] : EAL : mémoire PCI mappée à 0x7f2140000000 ovs-ctl[3560] : EAL : mémoire PCI mappée à 0x7f2140200000
39 http://openvswitch.org/mlists
40 https://bugs.launchpad.net/ubuntu/+source/dpdk
Si cela manque, que ce soit à cause de cartes ignorées, d'un échec d'initialisation ou d'autres raisons, plus tard il n'y aura plus de périphérique DPDK auquel se référer. Malheureusement, la journalisation est répartie entre syslog/journal et le journal openvswitch. Pour permettre une vérification croisée, voici un exemple de ce que l'on peut trouver dans ces journaux, par rapport à la commande entrée.
#Remarque : Ce journal a été pris avec dpdk 2.2 et openvswitch 2.5 Légendes :
CMD : que vous saisissez
SYSLOG : (y compris les messages EAL et OVS) OVS-LOG : (messages Openvswitch)
#PRÉPARATION
Lier une interface aux pilotes DPDK UIO, rendre Hugepages disponible, activer DPDK sur OVS
CMD : redémarrage du service sudo openvswitch-switch
SYSLOG :
2016-01-22T08:58:31.372Z|00003|daemon_unix(monitor)|INFO|pid 3329 est mort, tué (terminé), sortie
2016-01-22T08:58:33.377Z|00002|vlog|INFO|fichier journal ouvert /var/log/openvswitch/ovs- vswitchd.log
2016-01-22T08:58:33.381Z|00003|ovs_numa|INFO|Découvert 12 cœurs de processeur sur le nœud NUMA 0 2016-01-22T08:58:33.381Z|00004|ovs_numa|INFO|Découvert 1 nœud NUMA et 12 cœurs de processeur 2016-01-22T08:58:33.381Z|00005|reconnecter|INFO|unix:/var/run/openvswitch/db.sock :
de liaison...
2016-01-22T08:58:33.383Z|00006|reconnect|INFO|unix:/var/run/openvswitch/db.sock: connected 2016-01-22T08:58:33.386Z|00007|bridge|INFO|ovs-vswitchd (Open vSwitch) 2.5.0
OVS-LOG :
systemd[1] : Arrêt d'Open vSwitch... systemd[1] : Arrêt d'Open vSwitch.
systemd[1]: Arrêt de l'unité interne Open vSwitch... ovs-ctl[3541]: * Tuer ovs-vswitchd (3329)
ovs-ctl[3541] : * Tuer ovsdb-server (3318) systemd[1] : Ouvrir l'unité interne vSwitch arrêté. systemd[1] : Démarrage de l'unité interne Open vSwitch... ovs-ctl[3560] : * Démarrage de ovsdb-server
ovs-vsctl: ovs|00001|vsctl|INFO|Appelé comme ovs-vsctl --no-wait -- init -- set Open_vSwitch . db-version=7.12.1
ovs-vsctl: ovs|00001|vsctl|INFO|Appelé comme ovs-vsctl --no-wait set Open_vSwitch . ovs- version=2.5.0 "external-ids:system-id=\"e7c5ba80-bb14-45c1-b8eb-628f3ad03903\"" "system-type=\"Ubuntu\"" "system-version=\"16.04- xénial\""
ovs-ctl[3560] : * Configuration des ID système Open vSwitch
ovs-ctl[3560] : 2016-01-22T08:58:31Z|00001|dpdk|INFO|Pas de -vhost_sock_dir fourni - par défaut /var/run/openvswitch
ovs-vswitchd : ovs|00001|dpdk|INFO|Pas de -vhost_sock_dir fourni - par défaut sur /var/run/openvswitch
ovs-ctl[3560] : EAL : détecté lcore 0 en tant que core 0 sur le socket 0 ovs-ctl[3560] : EAL : détecté lcore 1 en tant que core 1 sur le socket 0 ovs-ctl[3560] : EAL : détecté lcore 2 en tant que core 2 sur le socket 0 ovs-ctl[3560] : EAL : détecté lcore 3 en tant que core 3 sur le socket 0 ovs-ctl[3560] : EAL : détecté lcore 4 en tant que core 4 sur le socket 0
ovs-ctl[3560] : EAL : détection de lcore 5 en tant que core 5 sur le socket 0 ovs-ctl[3560] : EAL : détection de lcore 6 en tant que core 0 sur le socket 0 ovs-ctl[3560] : EAL : détection de lcore 7 en tant que core 1 sur le socket 0 ovs-ctl[3560] : EAL : détecté lcore 8 comme core 2 sur le socket 0 ovs-ctl[3560] : EAL : détecté lcore 9 comme core 3 sur le socket 0 ovs-ctl[3560] : EAL : détecté lcore 10 en tant que core 4 sur le socket 0 ovs-ctl[3560] : EAL : a détecté lcore 11 en tant que core 5 sur le socket 0
ovs-ctl[3560] : EAL : prend en charge un maximum de 128 cœurs logiques par configuration. ovs-ctl[3560] : EAL : 12 lcore(s) détecté(s)
ovs-ctl[3560] : EAL : les modules VFIO ne sont pas tous chargés, ignorez le support VFIO... ovs-ctl[3560] : EAL : Configuration de la mémoire physiquement contiguë...
ovs-ctl[3560] : EAL : demande une zone virtuelle de 0x100000000 octets
ovs-ctl[3560] : EAL : zone virtuelle trouvée à 0x7f2040000000 (taille = 0x100000000) ovs-ctl[3560] : EAL : demande de 4 pages de taille 1024 Mo à partir du socket 0
ovs-ctl[3560] : EAL : la fréquence TSC est d'environ 2397202 KHz
ovs-vswitchd[3592] : EAL : la fréquence TSC est d'environ 2397202 KHz
ovs-vswitchd[3592] : EAL : le maître lcore 0 est prêt (tid=fc6cbb00;cpuset=[0]) ovs-vswitchd[3592] : EAL : périphérique PCI 0000:04:00.0 sur le socket NUMA 0
ovs-vswitchd[3592] : EAL : pilote de sonde : 8086:1528 rte_ixgbe_pmd
ovs-vswitchd[3592] : EAL : non géré par un pilote de noyau pris en charge, ignoré ovs-vswitchd[3592] : EAL : périphérique PCI 0000:04:00.1 sur le socket NUMA 0
ovs-vswitchd[3592] : EAL : pilote de sonde : 8086:1528 rte_ixgbe_pmd ovs-vswitchd[3592] : EAL : mémoire PCI mappée à 0x7f2140000000 ovs-vswitchd[3592] : EAL : mémoire PCI mappée à 0x7f2140200000
ovs-ctl[3560] : EAL : le maître lcore 0 est prêt (tid=fc6cbb00;cpuset=[0]) ovs-ctl[3560] : EAL : périphérique PCI 0000:04:00.0 sur le socket NUMA 0
ovs-ctl[3560] : EAL : pilote de sonde : 8086:1528 rte_ixgbe_pmd
ovs-ctl[3560] : EAL : non géré par un pilote de noyau pris en charge, ignoré ovs-ctl[3560] : EAL : périphérique PCI 0000:04:00.1 sur le socket NUMA 0
ovs-ctl[3560] : EAL : pilote de sonde : 8086:1528 rte_ixgbe_pmd ovs-ctl[3560] : EAL : mémoire PCI mappée à 0x7f2140000000 ovs-ctl[3560] : EAL : mémoire PCI mappée à 0x7f2140200000
ovs-vswitchd[3592] : PMD : eth_ixgbe_dev_init() : MAC : 4, PHY : 3
ovs-vswitchd[3592] : PMD : eth_ixgbe_dev_init() : port 0 vendorID=0x8086 deviceID=0x1528 ovs-ctl[3560] : PMD : eth_ixgbe_dev_init() : MAC : 4, PHY : 3
ovs-ctl[3560] : PMD : eth_ixgbe_dev_init() : port 0 vendorID=0x8086 deviceID=0x1528 ovs-ctl[3560] : Zone 0 : nom : , phys:0x83fffdec0, len:0x2080,
virt:0x7f213fffdec0, socket_id:0, flags:0
ovs-ctl[3560]: Zone 1: name:<MP_log_history>, phys:0x83fd73d40, len:0x28a0c0, virt:0x7f213fd73d40, socket_id:0, flags:0
ovs-ctl[3560] : Zone 2 : nom : , phys:0x83fd43380, len:0x2f700, virt:0x7f213fd43380, socket_id:0, drapeaux:0
ovs-ctl[3560] : * Démarrage de ovs-vswitchd
ovs-ctl[3560] : * Activation des gestionnaires OVSDB distants systemd[1] : Démarrage de l'unité interne vSwitch ouverte. systemd[1] : Démarrage d'Open vSwitch... systemd[1] : Démarrage d'Open vSwitch.
CMD : sudo ovs-vsctl add-br ovsdpdkbr0 -- définir le pont ovsdpdkbr0 datapath_type=netdev
SYSLOG :
2016-01-22T08:58:56.344Z|00008|memory|INFO|Taille de l'ensemble résident de pointe de 37256 Ko après 24.5 secondes
2016-01-22T08:58:56.346Z|00009|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath supports recirculation
2016-01-22T08:58:56.346Z|00010|ofproto_dpif|INFO|netdev@ovs-netdev : longueur de la pile d'étiquettes MPLS sondée comme 3
2016-01-22T08:58:56.346Z|00011|ofproto_dpif|INFO|netdev@ovs-netdev : Datapath prend en charge les identifiants de flux uniques
2016-01-22T08:58:56.346Z|00012|ofproto_dpif|INFO|netdev@ovs-netdev : Datapath ne prend pas en charge ct_state
2016-01-22T08:58:56.346Z|00013|ofproto_dpif|INFO|netdev@ovs-netdev : Datapath ne prend pas en charge ct_zone
2016-01-22T08:58:56.346Z|00014|ofproto_dpif|INFO|netdev@ovs-netdev : Datapath ne prend pas en charge ct_mark
2016-01-22T08:58:56.346Z|00015|ofproto_dpif|INFO|netdev@ovs-netdev : Datapath ne prend pas en charge ct_label
2016-01-22T08:58:56.360Z|00016|bridge|INFO|bridge ovsdpdkbr0 : ajout de l'interface ovsdpdkbr0 sur le port 65534
2016-01-22T08:58:56.361Z|00017|bridge|INFO|bridge ovsdpdkbr0: using datapath ID 00005a4a1ed0a14d
2016-01-22T08:58:56.361Z|00018|connmgr|INFO|ovsdpdkbr0 : contrôleur de service ajouté "punix:/var/run/openvswitch/ovsdpdkbr0.mgmt"
OVS-LOG :
ovs-vsctl : ovs|00001|vsctl|INFO|Appelé comme ovs-vsctl add-br ovsdpdkbr0 -- définir le pont ovsdpdkbr0 datapath_type=netdev
systemd-udevd[3607] : impossible de générer une adresse MAC persistante pour ovs-netdev : aucun fichier ou répertoire de ce type
noyau : [50165.886554] le périphérique ovs-netdev est entré en mode de proximité noyau : [50165.901261] le périphérique ovsdpdkbr0 est entré en mode de proximité
CMD : sudo ovs-vsctl add-port ovsdpdkbr0 dpdk0 -- définir l'interface dpdk0 type=dpdk
SYSLOG :
2016-01-22T08:59:06.369Z|00019|memory|INFO|la taille maximale de l'ensemble résident a augmenté de 155% au cours des 10.0 dernières secondes, passant de 37256 Ko à 95008 Ko
2016-01-22T08:59:06.369Z|00020|memory|INFO|handlers:4 ports:1 revalidators:2 rules:5 2016-01-22T08:59:30.989Z|00021|dpdk|INFO|Port 0: 8c:dc:d4:b3:6d:e9
2016-01-22T08:59:31.520Z|00022|dpdk|INFO|Port 0: 8c:dc:d4:b3:6d:e9
2016-01-22T08:59:31.521Z|00023|dpif_netdev|INFO|Création de threads 1 pmd sur le nœud numa 0 2016-01-22T08:59:31.522Z|00001|dpif_netdev(pmd16)|INFO|Port de traitement Core 0 ' dpdk0'
2016-01-22T08:59:31.522Z|00024|bridge|INFO|bridge ovsdpdkbr0 : interface ajoutée dpdk0 sur le port 1
2016-01-22T08:59:31.522Z|00025|bridge|INFO|bridge ovsdpdkbr0: using datapath ID 00008cdcd4b36de9
2016-01-22T08:59:31.523Z|00002|dpif_netdev(pmd16)|INFO|Core 0 processing port 'dpdk0'
OVS-LOG :
ovs-vsctl : ovs|00001|vsctl|INFO|Appelé comme ovs-vsctl add-port ovsdpdkbr0 dpdk0 -- définir l'interface dpdk0 type=dpdk
ovs-vswitchd[3595]: PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f211a79ebc0 hw_ring=0x7f211a7a6c00 dma_addr=0x81a7a6c00
ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Utilisation d'un chemin de code tx simple ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Vector tx activé.
ovs-vswitchd[3595]: PMD: ixgbe_dev_rx_queue_setup(): sw_ring=0x7f211a78a6c0 sw_sc_ring=0x7f211a786580 hw_ring=0x7f211a78e800 dma_addr=0x81a78e800
ovs-vswitchd[3595] : PMD : ixgbe_set_rx_function() : Vector rx activé, veuillez vous assurer que la taille de rafale RX n'est pas inférieure à 4 (port=0).
ovs-vswitchd[3595]: PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f211a79ebc0 hw_ring=0x7f211a7a6c00 dma_addr=0x81a7a6c00
ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Utilisation d'un chemin de code tx simple ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Vector tx activé.
ovs-vswitchd[3595]: PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f211a76e4c0 hw_ring=0x7f211a776500 dma_addr=0x81a776500
ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Utilisation d'un chemin de code tx simple ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Vector tx activé.
ovs-vswitchd[3595]: PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f211a756440 hw_ring=0x7f211a75e480 dma_addr=0x81a75e480
ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Utilisation d'un chemin de code tx simple ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Vector tx activé.
ovs-vswitchd[3595]: PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f211a73e3c0 hw_ring=0x7f211a746400 dma_addr=0x81a746400
ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Utilisation d'un chemin de code tx simple ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Vector tx activé.
ovs-vswitchd[3595]: PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f211a726340 hw_ring=0x7f211a72e380 dma_addr=0x81a72e380
ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Utilisation d'un chemin de code tx simple ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Vector tx activé.
ovs-vswitchd[3595]: PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f211a70e2c0 hw_ring=0x7f211a716300 dma_addr=0x81a716300
ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Utilisation d'un chemin de code tx simple ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Vector tx activé.
ovs-vswitchd[3595]: PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f211a6f6240 hw_ring=0x7f211a6fe280 dma_addr=0x81a6fe280
ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Utilisation d'un chemin de code tx simple ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Vector tx activé.
ovs-vswitchd[3595]: PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f211a6de1c0 hw_ring=0x7f211a6e6200 dma_addr=0x81a6e6200
ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Utilisation d'un chemin de code tx simple ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Vector tx activé.
ovs-vswitchd[3595]: PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f211a6c6140 hw_ring=0x7f211a6ce180 dma_addr=0x81a6ce180
ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Utilisation d'un chemin de code tx simple ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Vector tx activé.
ovs-vswitchd[3595]: PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f211a6ae0c0 hw_ring=0x7f211a6b6100 dma_addr=0x81a6b6100
ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Utilisation d'un chemin de code tx simple ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Vector tx activé.
ovs-vswitchd[3595]: PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f211a696040 hw_ring=0x7f211a69e080 dma_addr=0x81a69e080
ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Utilisation d'un chemin de code tx simple ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Vector tx activé.
ovs-vswitchd[3595]: PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f211a67dfc0 hw_ring=0x7f211a686000 dma_addr=0x81a686000
ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Utilisation d'un chemin de code tx simple ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Vector tx activé.
ovs-vswitchd[3595]: PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f211a665e40 hw_ring=0x7f211a66de80 dma_addr=0x81a66de80
ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Utilisation d'un chemin de code tx simple ovs-vswitchd[3595] : PMD : ixgbe_set_tx_function() : Vector tx activé.
ovs-vswitchd[3595]: PMD: ixgbe_dev_rx_queue_setup(): sw_ring=0x7f211a78a6c0 sw_sc_ring=0x7f211a786580 hw_ring=0x7f211a78e800 dma_addr=0x81a78e800
ovs-vswitchd[3595] : PMD : ixgbe_set_rx_function() : Vector rx activé, veuillez vous assurer que la taille de rafale RX n'est pas inférieure à 4 (port=0).
CMD : sudo ovs-vsctl add-port ovsdpdkbr0 vhost-user-1 -- définir l'interface vhost-user-1 type=dpdkvhostuser
OVS-LOG :
2016-01-22T09:00:35.145Z|00026|dpdk|INFO|Socket /var/run/openvswitch/vhost-user-1 créé pour le port vhost-user vhost-user-1
2016-01-22T09:00:35.145Z|00003|dpif_netdev(pmd16)|INFO|Core 0 processing port 'dpdk0'
2016-01-22T09:00:35.145Z|00004|dpif_netdev(pmd16)|INFO|Core 0 processing port 'vhost-user-1' 2016-01-22T09:00:35.145Z|00027|bridge|INFO|bridge ovsdpdkbr0: added interface vhost-user-1
sur le port 2
SYSLOG :
ovs-vsctl : ovs|00001|vsctl|INFO|Appelé comme ovs-vsctl add-port ovsdpdkbr0 vhost-user-1 -- définir l'interface vhost-user-1 type=dpdkvhostuser
ovs-vswitchd[3595] : VHOST_CONFIG : socket créé, fd:46
ovs-vswitchd[3595] : VHOST_CONFIG : se lier à /var/run/openvswitch/vhost-user-1
Finalement, nous pouvons voir le fil du sondage en haut
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMANDE
3595 racine 10 -10 4975344 103936 9916 S 100.0 0.3 33:13.56 ovs-vswitchd