OnWorks Linux- und Windows-Online-WorkStations

Logo

Kostenloses Online-Hosting für WorkStations

<Zurück | Inhalte | Weiter>

5.9. Support und Fehlerbehebung


DPDK ist ein sich schnell entwickelndes Projekt. Bei der Suche nach Support und weiteren Anleitungen wird dringend empfohlen, zunächst zu prüfen, ob diese für die aktuelle Version gelten.

• DPDK-Mailinglisten38

• Für OpenVswitch-DPDK OpenStack-Mailinglisten39

• Bekannte Probleme im DPDK Launchpad-Bereich40

• Treten Sie den IRC-Kanälen #DPDK oder #openvswitch auf Freenode bei.


Probleme sind oft darauf zurückzuführen, dass im allgemeinen Setup kleine Details fehlen. Später verursachen diese fehlenden Details Probleme, deren Ursache schwer zu ermitteln ist. Ein häufiger Fall scheint das Problem „Netzwerkgerät dpdk0 konnte nicht geöffnet werden (kein solches Gerät)“ zu sein. Dies geschieht relativ spät beim Einrichten eines Ports in Open vSwitch mit DPDK. Meistens liegt die Ursache jedoch sehr früh bei der Einrichtung und Initialisierung. Hier ein Beispiel, wie eine ordnungsgemäße Initialisierung eines Geräts aussieht – dies finden Sie im Syslog/Journal beim Starten von Open vSwitch mit aktiviertem DPDK.


ovs-ctl[3560]: EAL: PCI-Gerät 0000:04:00.1 auf NUMA-Sockel 0 ovs-ctl[3560]: EAL: Sondentreiber: 8086:1528 rte_ixgbe_pmd ovs-ctl[3560]: EAL: PCI-Speicher zugeordnet bei 0x7f2140000000 ovs-ctl[3560]: EAL: PCI-Speicher zugeordnet bei 0x7f2140200000


Image

38 http://dpdk.org/ml

39 http://openvswitch.org/mlists

40 https://bugs.launchpad.net/ubuntu/+source/dpdk


Wenn dies fehlt, sei es durch ignorierte Karten, fehlgeschlagene Initialisierung oder aus anderen Gründen, gibt es später kein DPDK-Gerät, auf das verwiesen werden kann. Leider ist die Protokollierung auf Syslog/Journal und das OpenVSwitch-Protokoll verteilt. Um eine Gegenprüfung zu ermöglichen, hier ein Beispiel dafür, was in diesen Protokollen in Bezug auf den eingegebenen Befehl zu finden ist.


#Hinweis: Dieses Protokoll wurde mit dpdk 2.2 und openvswitch 2.5 erstellt. Untertitel:

CMD: das geben Sie ein

SYSLOG: (einschließlich EAL- und OVS-Nachrichten) OVS-LOG: (Openvswitch-Nachrichten)


#VORBEREITUNG

Binden Sie eine Schnittstelle an DPDK-UIO-Treiber, stellen Sie Hugepages zur Verfügung und aktivieren Sie DPDK auf OVS


CMD: Sudo-Dienst openvswitch-switch neu starten


SYSLOG:

2016-01-22T08:58:31.372Z|00003|daemon_unix(monitor)|INFO|pid 3329 gestorben, getötet (beendet), beendet

2016-01-22T08:58:33.377Z|00002|vlog|INFO|geöffnete Protokolldatei /var/log/openvswitch/ovs-vswitchd.log

2016T01:22:08Z|58|ovs_numa|INFO|33.381 CPU-Kerne auf NUMA-Knoten 00003 entdeckt. 12:0:2016Z|01|ovs_numa|INFO|22 NUMA-Knoten und 08 CPU-Kerne entdeckt 58-33.381-00004T1:12:2016Z|01|reconnect|INFO|unix:/var/run/openvswitch/db.sock:

verbinden...

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]: Offener vSwitch wird gestoppt... systemd[1]: Offener vSwitch wird gestoppt.

systemd[1]: Offene interne vSwitch-Einheit wird gestoppt... ovs-ctl[3541]: * ovs-vswitchd wird beendet (3329)

ovs-ctl[3541]: * ovsdb-server wird beendet (3318) systemd[1]: Gestoppt Offene interne vSwitch-Einheit. systemd[1]: Open vSwitch Internal Unit wird gestartet... ovs-ctl[3560]: * ovsdb-server wird gestartet

ovs-vsctl: ovs|00001|vsctl|INFO|Wird aufgerufen als ovs-vsctl --no-wait -- init -- set Open_vSwitch . Datenbankversion=7.12.1

ovs-vsctl: ovs|00001|vsctl|INFO|Wird aufgerufen als 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]: * Open vSwitch-System-IDs konfigurieren

ovs-ctl[3560]: 2016-01-22T08:58:31Z|00001|dpdk|INFO|Kein -vhost_sock_dir bereitgestellt – standardmäßig /var/run/openvswitch

ovs-vswitchd: ovs|00001|dpdk|INFO|Kein -vhost_sock_dir bereitgestellt – standardmäßig /var/run/openvswitch

ovs-ctl[3560]: EAL: Lcore 0 als Core 0 auf Socket 0 erkannt ovs-ctl[3560]: EAL: Lcore 1 als Core 1 auf Socket 0 erkannt ovs-ctl[3560]: EAL: Lcore 2 als Core erkannt 2 auf Sockel 0 ovs-ctl[3560]: EAL: Lcore 3 als Kern 3 auf Sockel 0 erkannt ovs-ctl[3560]: EAL: Lcore 4 als Kern 4 auf Sockel 0 erkannt



ovs-ctl[3560]: EAL: Lcore 5 als Core 5 auf Socket 0 erkannt ovs-ctl[3560]: EAL: Lcore 6 als Core 0 auf Socket 0 erkannt ovs-ctl[3560]: EAL: Lcore 7 als Core erkannt 1 auf Sockel 0 ovs-ctl[3560]: EAL: Lcore 8 als Kern 2 auf Sockel 0 erkannt ovs-ctl[3560]: EAL: Lcore 9 als Kern 3 auf Sockel 0 erkannt ovs-ctl[3560]: EAL: Erkannt lcore 10 als Kern 4 auf Sockel 0 ovs-ctl[3560]: EAL: lcore 11 als Kern 5 auf Sockel 0 erkannt

ovs-ctl[3560]: EAL: Unterstützt maximal 128 logische Kerne durch Konfiguration. ovs-ctl[3560]: EAL: 12 lcore(s) erkannt

ovs-ctl[3560]: EAL: VFIO-Module nicht alle geladen, VFIO-Unterstützung überspringen... ovs-ctl[3560]: EAL: Physisch zusammenhängenden Speicher einrichten...

ovs-ctl[3560]: EAL: Erfragen Sie einen virtuellen Bereich von 0x100000000 Bytes

ovs-ctl[3560]: EAL: Virtueller Bereich bei 0x7f2040000000 gefunden (Größe = 0x100000000) ovs-ctl[3560]: EAL: Anfordern von 4 Seiten der Größe 1024 MB von Socket 0

ovs-ctl[3560]: EAL: TSC-Frequenz beträgt ~2397202 KHz

ovs-vswitchd[3592]: EAL: TSC-Frequenz beträgt ~2397202 KHz

ovs-vswitchd[3592]: EAL: Master lcore 0 ist bereit (tid=fc6cbb00;cpuset=[0]) ovs-vswitchd[3592]: EAL: PCI-Gerät 0000:04:00.0 auf NUMA-Socket 0

ovs-vswitchd[3592]: EAL: Probe-Treiber: 8086:1528 rte_ixgbe_pmd

ovs-vswitchd[3592]: EAL: Nicht von einem unterstützten Kernel-Treiber verwaltet, übersprungen ovs-vswitchd[3592]: EAL: PCI-Gerät 0000:04:00.1 auf NUMA-Socket 0

ovs-vswitchd[3592]: EAL: Sondentreiber: 8086:1528 rte_ixgbe_pmd ovs-vswitchd[3592]: EAL: PCI-Speicher zugeordnet bei 0x7f2140000000 ovs-vswitchd[3592]: EAL: PCI-Speicher zugeordnet bei 0x7f2140200000

ovs-ctl[3560]: EAL: Master lcore 0 ist bereit (tid=fc6cbb00;cpuset=[0]) ovs-ctl[3560]: EAL: PCI-Gerät 0000:04:00.0 auf NUMA-Socket 0

ovs-ctl[3560]: EAL: Probe-Treiber: 8086:1528 rte_ixgbe_pmd

ovs-ctl[3560]: EAL: Nicht von einem unterstützten Kernel-Treiber verwaltet, übersprungen ovs-ctl[3560]: EAL: PCI-Gerät 0000:04:00.1 auf NUMA-Socket 0

ovs-ctl[3560]: EAL: Sondentreiber: 8086:1528 rte_ixgbe_pmd ovs-ctl[3560]: EAL: PCI-Speicher zugeordnet bei 0x7f2140000000 ovs-ctl[3560]: EAL: PCI-Speicher zugeordnet bei 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: Name: , 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: Name: , phys:0x83fd43380, len:0x2f700, virt:0x7f213fd43380, socket_id:0, flags:0

ovs-ctl[3560]: * ovs-vswitchd wird gestartet

ovs-ctl[3560]: * Remote-OVSDB-Manager werden aktiviert. systemd[1]: Gestartet. Öffnen Sie die interne vSwitch-Einheit. systemd[1]: Open vSwitch wird gestartet... systemd[1]: Open vSwitch gestartet.


CMD: sudo ovs-vsctl add-br ovsdpdkbr0 – Set Bridge ovsdpdkbr0 datapath_type=netdev


SYSLOG:



2016-01-22T08:58:56.344Z|00008|memory|INFO|37256 kB maximale residente Satzgröße nach 24.5 Sekunden

2016-01-22T08:58:56.346Z|00009|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath supports recirculation

2016T01:22:08Z|58|ofproto_dpif|INFO|netdev@ovs-netdev: Die MPLS-Label-Stack-Länge wurde als 56.346 ermittelt

2016T01:22:08Z|58|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath unterstützt eindeutige Flow-IDs

2016-01-22T08:58:56.346Z|00012|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath unterstützt ct_state nicht

2016-01-22T08:58:56.346Z|00013|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath unterstützt ct_zone nicht

2016-01-22T08:58:56.346Z|00014|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath unterstützt ct_mark nicht

2016-01-22T08:58:56.346Z|00015|ofproto_dpif|INFO|netdev@ovs-netdev: Datapath unterstützt ct_label nicht

2016-01-22T08:58:56.360Z|00016|bridge|INFO|bridge ovsdpdkbr0: Schnittstelle ovsdpdkbr0 auf Port 65534 hinzugefügt

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: Dienst-Controller „punix:/var/run/openvswitch/ovsdpdkbr0.mgmt“ hinzugefügt


OVS-LOG:

ovs-vsctl: ovs|00001|vsctl|INFO|Aufgerufen als ovs-vsctl add-br ovsdpdkbr0 -- set Bridge ovsdpdkbr0 datapath_type=netdev

systemd-udevd[3607]: Permanente MAC-Adresse für ovs-netdev konnte nicht generiert werden: Keine solche Datei oder kein solches Verzeichnis

Kernel: [50165.886554] Gerät ovs-netdev ist in den Promiscuous-Modus eingetreten. Kernel: [50165.901261] Gerät ovsdpdkbr0 ist in den Promiscuous-Modus gewechselt


CMD: sudo ovs-vsctl add-port ovsdpdkbr0 dpdk0 – set Interface dpdk0 type=dpdk


SYSLOG:

2016-01-22T08:59:06.369Z|00019|Speicher|INFO|Peak-Resident-Set-Größe ist in den letzten 155 Sekunden um 10.0 % gestiegen, von 37256 kB auf 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|1 PMD-Threads auf Numa-Knoten 0 erstellt dpdk2016'

2016-01-22T08:59:31.522Z|00024|bridge|INFO|bridge ovsdpdkbr0: Schnittstelle dpdk0 auf Port 1 hinzugefügt

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|Aufgerufen als 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(): Verwendung des einfachen TX-Codepfads ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx aktiviert.

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 aktiviert, bitte stellen Sie sicher, dass die RX-Burst-Größe nicht weniger als 4 beträgt (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(): Verwendung des einfachen TX-Codepfads ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx aktiviert.

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(): Verwendung des einfachen TX-Codepfads ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx aktiviert.

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(): Verwendung des einfachen TX-Codepfads ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx aktiviert.

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(): Verwendung des einfachen TX-Codepfads ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx aktiviert.

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(): Verwendung des einfachen TX-Codepfads ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx aktiviert.

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(): Verwendung des einfachen TX-Codepfads ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx aktiviert.

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(): Verwendung des einfachen TX-Codepfads ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx aktiviert.

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(): Verwendung des einfachen TX-Codepfads ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx aktiviert.

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(): Verwendung des einfachen TX-Codepfads ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx aktiviert.

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(): Verwendung des einfachen TX-Codepfads ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx aktiviert.

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(): Verwendung des einfachen TX-Codepfads ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx aktiviert.



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(): Verwendung des einfachen TX-Codepfads ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx aktiviert.

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(): Verwendung des einfachen TX-Codepfads ovs-vswitchd[3595]: PMD: ixgbe_set_tx_function(): Vector tx aktiviert.

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 aktiviert, bitte stellen Sie sicher, dass die RX-Burst-Größe nicht weniger als 4 beträgt (Port=0).


CMD: sudo ovs-vsctl add-port ovsdpdkbr0 vhost-user-1 – set Interface vhost-user-1 type=dpdkvhostuser


OVS-LOG:

2016-01-22T09:00:35.145Z|00026|dpdk|INFO|Socket /var/run/openvswitch/vhost-user-1 für vhost-user-Port vhost-user-1 erstellt

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

auf Port 2


SYSLOG:

ovs-vsctl: ovs|00001|vsctl|INFO|Aufgerufen als ovs-vsctl add-port ovsdpdkbr0 vhost-user-1 – set Interface vhost-user-1 type=dpdkvhostuser

ovs-vswitchd[3595]: VHOST_CONFIG: Socket erstellt, fd:46

ovs-vswitchd[3595]: VHOST_CONFIG: an /var/run/openvswitch/vhost-user-1 binden


Schließlich können wir den Umfragethread oben sehen

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ BEFEHL

3595 root 10 -10 4975344 103936 9916 S 100.0 0.3 33:13.56 ovs-vswitchd


Top OS Cloud Computing bei OnWorks: