<Precedenti | Contenuti | Succ.>
5.9. Supporto e risoluzione dei problemi
DPDK è un progetto in rapida evoluzione. In ogni caso di ricerca di supporto e ulteriori guide si consiglia vivamente di verificare prima se si applicano alla versione corrente.
• Liste di distribuzione DPDK38
• Per le mailing list OpenVswitch-DPDK OpenStack39
• Problemi noti nell'area DPDK Launchpad40
• Unisciti ai canali IRC #DPDK o #openvswitch su freenode.
I problemi sono spesso dovuti alla mancanza di piccoli dettagli nella configurazione generale. In seguito, questi dettagli mancanti causano problemi che possono essere difficili da rintracciare alla loro causa principale. Un caso comune sembra essere il problema "impossibile aprire il dispositivo di rete dpdk0 (nessun dispositivo simile)". Ciò si verifica piuttosto tardi quando si configura una porta in Open vSwitch con DPDK. Ma la causa principale la maggior parte delle volte è molto presto nella configurazione e nell'inizializzazione. Ecco un esempio di come appare una corretta inizializzazione di un dispositivo - questo può essere trovato nel syslog/journal quando si avvia Open vSwitch con DPDK abilitato.
ovs-ctl[3560]: EAL: dispositivo PCI 0000:04:00.1 su socket NUMA 0 ovs-ctl[3560]: EAL: driver del probe: 8086:1528 rte_ixgbe_pmd ovs-ctl[3560]: EAL: memoria PCI mappata a 0x7f2140000000 ovs-ctl[3560]: EAL: memoria PCI mappata a 0x7f2140200000
39 http://openvswitch.org/mlists
40 https://bugs.launchpad.net/ubuntu/+source/dpdk
Se questo manca, a causa di tessere ignorate, inizializzazione fallita o altri motivi, in seguito non ci sarà alcun dispositivo DPDK a cui fare riferimento. Sfortunatamente il logging è distribuito su syslog/journal e sul log di openvswitch. Per consentire un controllo incrociato ecco un esempio di cosa si può trovare in questi log, relativo al comando inserito.
#Nota: questo registro è stato preso con dpdk 2.2 e openvswitch 2.5 Didascalie:
CMD: che tu entri
SYSLOG: (inclusi messaggi EAL e OVS) OVS-LOG: (messaggi Openvswitch)
#PREPARAZIONE
Associa un'interfaccia ai driver DPDK UIO, rendi disponibile Hugepages, abilita DPDK su OVS
CMD: riavvio sudo service openvswitch-switch
LOG DI SISTEMA:
2016-01-22T08:58:31.372Z|00003|daemon_unix(monitor)|INFO|pid 3329 morto, ucciso (terminato), in uscita
2016-01-22T08:58:33.377Z|00002|vlog|INFO|file di registro aperto /var/log/openvswitch/ovs-vswitchd.log
2016-01-22T08:58:33.381Z|00003|ovs_numa|INFO|Scoperti 12 core CPU sul nodo NUMA 0 2016-01-22T08:58:33.381Z|00004|ovs_numa|INFO|Scoperti 1 nodo NUMA e 12 core CPU 2016-01-22T08:58:33.381Z|00005|riconnetti|INFO|unix:/var/run/openvswitch/db.sock:
collegamento...
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
LOG OVS:
systemd[1]: Stop Open vSwitch... systemd[1]: Stop Open vSwitch.
systemd[1]: Arresto Open vSwitch Internal Unit... ovs-ctl[3541]: * Killing ovs-vswitchd (3329)
ovs-ctl[3541]: * Killing di ovsdb-server (3318) systemd[1]: Arrestato Open vSwitch Internal Unit. systemd[1]: Avvio di Open vSwitch Internal Unit... ovs-ctl[3560]: * Avvio di ovsdb-server
ovs-vsctl: ovs|00001|vsctl|INFO|Chiamato come ovs-vsctl --no-wait -- init -- set Open_vSwitch . db-versione=7.12.1
ovs-vsctl: ovs|00001|vsctl|INFO|Chiamato come 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- xenial\""
ovs-ctl[3560]: * Configurazione degli ID di sistema Open vSwitch
ovs-ctl[3560]: 2016-01-22T08:58:31Z|00001|dpdk|INFO|Nessuna -vhost_sock_dir fornita - impostazione predefinita su /var/run/openvswitch
ovs-vswitchd: ovs|00001|dpdk|INFO|Nessuna -vhost_sock_dir fornita - impostazione predefinita su /var/run/ openvswitch
ovs-ctl[3560]: EAL: lcore 0 rilevato come core 0 sul socket 0 ovs-ctl[3560]: EAL: lcore 1 rilevato come core 1 sul socket 0 ovs-ctl[3560]: EAL: lcore 2 rilevato come core 2 sul socket 0 ovs-ctl[3560]: EAL: rilevato lcore 3 come core 3 sul socket 0 ovs-ctl[3560]: EAL: rilevato lcore 4 come core 4 sul socket 0
ovs-ctl[3560]: EAL: lcore 5 rilevato come core 5 sul socket 0 ovs-ctl[3560]: EAL: lcore 6 rilevato come core 0 sul socket 0 ovs-ctl[3560]: EAL: lcore 7 rilevato come core 1 sul socket 0 ovs-ctl[3560]: EAL: rilevato lcore 8 come core 2 sul socket 0 ovs-ctl[3560]: EAL: rilevato lcore 9 come core 3 sul socket 0 ovs-ctl[3560]: EAL: rilevato lcore 10 come core 4 sul socket 0 ovs-ctl[3560]: EAL: rilevato lcore 11 come core 5 sul socket 0
ovs-ctl[3560]: EAL: supporta massimo 128 core logici per configurazione. ovs-ctl[3560]: EAL: 12 lcore rilevati
ovs-ctl[3560]: EAL: moduli VFIO non tutti caricati, salta il supporto VFIO... ovs-ctl[3560]: EAL: configurazione della memoria contigua fisicamente...
ovs-ctl[3560]: EAL: Chiedi un'area virtuale di 0x100000000 byte
ovs-ctl[3560]: EAL: Area virtuale trovata in 0x7f2040000000 (dimensione = 0x100000000) ovs-ctl[3560]: EAL: Richiesta di 4 pagine di dimensione 1024 MB dal socket 0
ovs-ctl[3560]: EAL: la frequenza TSC è ~2397202 KHz
ovs-vswitchd[3592]: EAL: la frequenza TSC è ~2397202 KHz
ovs-vswitchd[3592]: EAL: Master lcore 0 pronto (tid=fc6cbb00;cpuset=[0]) ovs-vswitchd[3592]: EAL: dispositivo PCI 0000:04:00.0 su socket NUMA 0
ovs-vswitchd[3592]: EAL: driver della sonda: 8086:1528 rte_ixgbe_pmd
ovs-vswitchd[3592]: EAL: non gestito da un driver del kernel supportato, ignorato ovs-vswitchd[3592]: EAL: dispositivo PCI 0000:04:00.1 su socket NUMA 0
ovs-vswitchd[3592]: EAL: driver del probe: 8086:1528 rte_ixgbe_pmd ovs-vswitchd[3592]: EAL: memoria PCI mappata a 0x7f2140000000 ovs-vswitchd[3592]: EAL: memoria PCI mappata a 0x7f2140200000
ovs-ctl[3560]: EAL: Master lcore 0 pronto (tid=fc6cbb00;cpuset=[0]) ovs-ctl[3560]: EAL: dispositivo PCI 0000:04:00.0 su socket NUMA 0
ovs-ctl[3560]: EAL: driver della sonda: 8086:1528 rte_ixgbe_pmd
ovs-ctl[3560]: EAL: non gestito da un driver del kernel supportato, ignorato ovs-ctl[3560]: EAL: dispositivo PCI 0000:04:00.1 su socket NUMA 0
ovs-ctl[3560]: EAL: driver del probe: 8086:1528 rte_ixgbe_pmd ovs-ctl[3560]: EAL: memoria PCI mappata a 0x7f2140000000 ovs-ctl[3560]: EAL: memoria PCI mappata a 0x7f2140200000
ovs-vswitchd[3592]: PMD: eth_ixgbe_dev_init(): MAC: 4, PHY: 3
ovs-vswitchd[3592]: PMD: eth_ixgbe_dev_init(): porta 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]: Zona 0: nome: , fisico:0x83fffdec0, lunghezza: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]: Zona 2: nome: , phys:0x83fd43380, len:0x2f700, virt:0x7f213fd43380, socket_id:0, flags:0
ovs-ctl[3560]: * Avvio di ovs-vswitchd
ovs-ctl[3560]: * Abilitazione dei gestori OVSDB remoti systemd[1]: Avviato Open vSwitch Internal Unit. systemd[1]: Avvio Apri vSwitch... systemd[1]: Avviato Apri vSwitch.
CMD: sudo ovs-vsctl add-br ovsdpdkbr0 -- imposta il bridge ovsdpdkbr0 datapath_type=netdev
LOG DI SISTEMA:
2016-01-22T08:58:56.344Z|00008|memoria|INFO|37256 kB dimensione set residente di picco dopo 24.5 secondi
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: lunghezza dello stack di etichette MPLS rilevata come 3
2016-01-22T08:58:56.346Z|00011|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath supporta ID di flusso univoci
2016-01-22T08:58:56.346Z|00012|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath non supporta ct_state
2016-01-22T08:58:56.346Z|00013|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath non supporta ct_zone
2016-01-22T08:58:56.346Z|00014|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath non supporta ct_mark
2016-01-22T08:58:56.346Z|00015|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath non supporta ct_label
2016-01-22T08:58:56.360Z|00016|bridge|INFO|bridge ovsdpdkbr0: aggiunta interfaccia ovsdpdkbr0 sulla porta 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: aggiunto il controller di servizio "punix:/var/run/openvswitch/ovsdpdkbr0.mgmt"
LOG OVS:
ovs-vsctl: ovs|00001|vsctl|INFO|Chiamato come ovs-vsctl add-br ovsdpdkbr0 -- imposta il bridge ovsdpdkbr0 datapath_type=netdev
systemd-udevd[3607]: impossibile generare un indirizzo MAC persistente per ovs-netdev: nessun file o directory di questo tipo
kernel: [50165.886554] il dispositivo ovs-netdev è entrato in modalità promiscua kernel: [50165.901261] il dispositivo ovsdpdkbr0 è entrato in modalità promiscua
CMD: sudo ovs-vsctl add-port ovsdpdkbr0 dpdk0 -- imposta Interface dpdk0 type=dpdk
LOG DI SISTEMA:
2016-01-22T08:59:06.369Z|00019|memoria|INFO|la dimensione del set residente di picco è cresciuta del 155% negli ultimi 10.0 secondi, da 37256 kB a 95008 kB
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|Creati 1 thread pmd sul nodo numa 0 2016-01-22T08:59:31.522Z|00001|dpif_netdev(pmd16)|INFO|Core 0 porta di elaborazione ' dpdk0'
2016-01-22T08:59:31.522Z|00024|bridge|INFO|bridge ovsdpdkbr0: aggiunta interfaccia dpdk0 sulla porta 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'
LOG OVS:
ovs-vsctl: ovs|00001|vsctl|INFO|Chiamato come ovs-vsctl add-port ovsdpdkbr0 dpdk0 -- set 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(): utilizzo del percorso del codice tx semplice ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx abilitato.
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 abilitato, assicurati che la dimensione del burst RX non sia inferiore a 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(): utilizzo del percorso del codice tx semplice ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx abilitato.
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(): utilizzo del percorso del codice tx semplice ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx abilitato.
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(): utilizzo del percorso del codice tx semplice ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx abilitato.
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(): utilizzo del percorso del codice tx semplice ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx abilitato.
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(): utilizzo del percorso del codice tx semplice ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx abilitato.
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(): utilizzo del percorso del codice tx semplice ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx abilitato.
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(): utilizzo del percorso del codice tx semplice ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx abilitato.
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(): utilizzo del percorso del codice tx semplice ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx abilitato.
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(): utilizzo del percorso del codice tx semplice ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx abilitato.
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(): utilizzo del percorso del codice tx semplice ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx abilitato.
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(): utilizzo del percorso del codice tx semplice ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx abilitato.
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(): utilizzo del percorso del codice tx semplice ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx abilitato.
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(): utilizzo del percorso del codice tx semplice ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx abilitato.
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 abilitato, assicurati che la dimensione del burst RX non sia inferiore a 4 (port=0).
CMD: sudo ovs-vsctl add-port ovsdpdkbr0 vhost-user-1 -- imposta Interface vhost-user-1 type=dpdkvhostuser
LOG OVS:
2016-01-22T09:00:35.145Z|00026|dpdk|INFO|Socket /var/run/openvswitch/vhost-user-1 creato per la porta 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
sulla porta 2
LOG DI SISTEMA:
ovs-vsctl: ovs|00001|vsctl|INFO|Chiamato come ovs-vsctl add-port ovsdpdkbr0 vhost-user-1 -- set Interface vhost-user-1 type=dpdkvhostuser
ovs-vswitchd[3595]: VHOST_CONFIG: socket creato, fd:46
ovs-vswitchd[3595]: VHOST_CONFIG: associa a /var/run/openvswitch/vhost-user-1
Alla fine possiamo vedere il thread del sondaggio in alto
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMANDO
3595 radice 10 -10 4975344 103936 9916 S 100.0 0.3 33:13.56 ovs-vswitchd