<Предыдущая | Содержание: | Следующая>
5.9. Поддержка и устранение неисправностей
DPDK - быстро развивающийся проект. В любом случае поиска поддержки и дополнительных руководств настоятельно рекомендуется сначала проверить, применимы ли они к текущей версии.
• Списки рассылки DPDK38
• Для списков рассылки OpenVswitch-DPDK OpenStack39
• Известные проблемы в области запуска DPDK.40
• Присоединяйтесь к каналам IRC #DPDK или #openvswitch на freenode.
Проблемы часто возникают из-за отсутствия мелких деталей в общей настройке. Позже эти недостающие детали вызывают проблемы, причину которых бывает трудно отследить. Типичным случаем является проблема «Не удалось открыть сетевое устройство dpdk0 (Нет такого устройства)». Это происходит довольно поздно при настройке порта в Open vSwitch с DPDK. Но основная причина в большинстве случаев кроется на ранних этапах установки и инициализации. Вот пример того, как выглядит правильная инициализация устройства - это можно найти в системном журнале / журнале при запуске Open vSwitch с включенным DPDK.
ovs-ctl [3560]: EAL: устройство PCI 0000: 04: 00.1 на сокете 0 NUMA ovs-ctl [3560]: EAL: драйвер зонда: 8086: 1528 rte_ixgbe_pmd ovs-ctl [3560]: EAL: память PCI, отображенная по адресу 0x7f2140000000 ovs-ctl [3560]: EAL: память PCI, отображенная в 0x7f2140200000
39 http://openvswitch.org/mlists
40 https://bugs.launchpad.net/ubuntu/+source/dpdk
Если он отсутствует из-за игнорирования карт, неудачной инициализации или по другим причинам, в дальнейшем не будет устройства DPDK, на которое можно было бы ссылаться. К сожалению, ведение журнала распространяется по системному журналу / журналу и журналу openvswitch. Чтобы разрешить некоторую перекрестную проверку, здесь приведен пример того, что можно найти в этих журналах относительно введенной команды.
# Примечание: этот журнал был взят с dpdk 2.2 и openvswitch 2.5. Подписи:
CMD: что вы вводите
SYSLOG: (включая сообщения EAL и OVS) OVS-LOG: (сообщения Openvswitch)
#ПОДГОТОВКА
Привяжите интерфейс к драйверам DPDK UIO, сделайте Hugepages доступными, включите DPDK на OVS
CMD: перезапуск службы sudo openvswitch-switch
СИСТЕМНЫЙ ЛОГ:
2016-01-22T08: 58: 31.372Z | 00003 | daemon_unix (monitor) | INFO | pid 3329 умер, убит (прекращено), выход
2016-01-22T08: 58: 33.377Z | 00002 | vlog | INFO | открытый файл журнала / var / log / openvswitch / ovs- vswitchd.log
2016-01-22T08: 58: 33.381Z | 00003 | ovs_numa | INFO | Обнаружено 12 ядер ЦП на узле NUMA 0 2016-01-22T08: 58: 33.381Z | 00004 | ovs_numa | INFO | Обнаружены 1 узел NUMA и 12 ядер ЦП 2016-01-22T08: 58: 33.381Z | 00005 | reconnect | INFO | unix: /var/run/openvswitch/db.sock:
подключение ...
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
ОВС-ЛОГ:
systemd [1]: остановить открытие vSwitch ... systemd [1]: остановить открытие vSwitch.
systemd [1]: Остановка открытия внутреннего модуля vSwitch ... ovs-ctl [3541]: * Удаление ovs-vswitchd (3329)
ovs-ctl [3541]: * Завершение работы ovsdb-server (3318) systemd [1]: остановлено открытие внутреннего модуля vSwitch. systemd [1]: Запуск внутреннего модуля Open vSwitch ... ovs-ctl [3560]: * Запуск ovsdb-server
ovs-vsctl: ovs | 00001 | vsctl | INFO | Вызывается как ovs-vsctl --no-wait - init - устанавливает Open_vSwitch. БД-версия = 7.12.1
ovs-vsctl: ovs | 00001 | vsctl | INFO | Вызывается как 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
ovs-ctl [3560]: 2016-01-22T08: 58: 31Z | 00001 | dpdk | INFO | Не указан -vhost_sock_dir - по умолчанию / var / run / openvswitch
ovs-vswitchd: ovs | 00001 | dpdk | INFO | Нет -vhost_sock_dir - по умолчанию / var / run / openvswitch
ovs-ctl [3560]: EAL: обнаружено lcore 0 как ядро 0 на сокете 0 ovs-ctl [3560]: EAL: обнаружено lcore 1 как ядро 1 на сокете 0 ovs-ctl [3560]: EAL: обнаружено lcore 2 как ядро 2 на сокете 0 ovs-ctl [3560]: EAL: Обнаружено lcore 3 как ядро 3 на сокете 0 ovs-ctl [3560]: EAL: Обнаружено lcore 4 как ядро 4 на сокете 0
ovs-ctl [3560]: EAL: Обнаружено lcore 5 как ядро 5 на сокете 0 ovs-ctl [3560]: EAL: Обнаружено lcore 6 как ядро 0 на сокете 0 ovs-ctl [3560]: EAL: Обнаружено lcore 7 как ядро 1 на сокете 0 ovs-ctl [3560]: EAL: Обнаружено lcore 8 как ядро 2 на сокете 0 ovs-ctl [3560]: EAL: Обнаружено lcore 9 как ядро 3 на сокете 0 ovs-ctl [3560]: EAL: Обнаружено lcore 10 как ядро 4 на сокете 0 ovs-ctl [3560]: EAL: обнаружено lcore 11 как ядро 5 на сокете 0
ovs-ctl [3560]: EAL: Поддержка максимум 128 логических ядер в зависимости от конфигурации. ovs-ctl [3560]: EAL: обнаружено 12 ядер
ovs-ctl [3560]: EAL: не все модули VFIO загружены, пропустить поддержку VFIO ... ovs-ctl [3560]: EAL: Настройка физически непрерывной памяти ...
ovs-ctl [3560]: EAL: запросить виртуальную область размером 0x100000000 байт
ovs-ctl [3560]: EAL: виртуальная область найдена по адресу 0x7f2040000000 (размер = 0x100000000) ovs-ctl [3560]: EAL: запрашиваются 4 страницы размером 1024 МБ из сокета 0
ovs-ctl [3560]: EAL: Частота TSC ~ 2397202 кГц
ovs-vswitchd [3592]: EAL: Частота TSC ~ 2397202 кГц
ovs-vswitchd [3592]: EAL: Master lcore 0 готов (tid = fc6cbb00; cpuset = [0]) ovs-vswitchd [3592]: EAL: устройство PCI 0000: 04: 00.0 на сокете 0 NUMA
ovs-vswitchd [3592]: EAL: драйвер датчика: 8086: 1528 rte_ixgbe_pmd
ovs-vswitchd [3592]: EAL: не управляется поддерживаемым драйвером ядра, пропущено ovs-vswitchd [3592]: EAL: устройство PCI 0000: 04: 00.1 на сокете NUMA 0
ovs-vswitchd [3592]: EAL: драйвер датчика: 8086: 1528 rte_ixgbe_pmd ovs-vswitchd [3592]: EAL: память PCI, отображенная на 0x7f2140000000 ovs-vswitchd [3592]: EAL: память PCI, отображенная на 0x7f2140200000
ovs-ctl [3560]: EAL: Master lcore 0 готов (tid = fc6cbb00; cpuset = [0]) ovs-ctl [3560]: EAL: устройство PCI 0000: 04: 00.0 на сокете 0 NUMA
ovs-ctl [3560]: EAL: драйвер датчика: 8086: 1528 rte_ixgbe_pmd
ovs-ctl [3560]: EAL: не управляется поддерживаемым драйвером ядра, пропущено ovs-ctl [3560]: EAL: устройство PCI 0000: 04: 00.1 на сокете NUMA 0
ovs-ctl [3560]: EAL: драйвер датчика: 8086: 1528 rte_ixgbe_pmd ovs-ctl [3560]: EAL: память PCI, отображенная в 0x7f2140000000 ovs-ctl [3560]: EAL: память PCI, отображенная в 0x7f2140200000
ovs-vswitchd [3592]: PMD: eth_ixgbe_dev_init (): MAC: 4, PHY: 3
ovs-vswitchd [3592]: PMD: eth_ixgbe_dev_init (): порт 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 (): порт 0 vendorID = 0x8086 deviceID = 0x1528 ovs-ctl [3560]: зона 0: имя: , физ: 0x83fffdec0, длина: 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]: Зона 2: имя: , Phys: 0x83fd43380, len: 0x2f700, virt: 0x7f213fd43380, socket_id: 0, флаги: 0
ovs-ctl [3560]: * Запуск ovs-vswitchd
ovs-ctl [3560]: * Включение удаленных менеджеров OVSDB systemd [1]: Запущено открытие внутреннего модуля vSwitch. systemd [1]: Запуск Open vSwitch ... systemd [1]: Запуск Open vSwitch.
CMD: sudo ovs-vsctl add-br ovsdpdkbr0 - установить мост ovsdpdkbr0 datapath_type = netdev
СИСТЕМНЫЙ ЛОГ:
2016-01-22T08: 58: 56.344Z | 00008 | память | ИНФОРМАЦИЯ | Максимальный размер резидентного набора 37256 КБ через 24.5 секунды
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: длина стека меток MPLS проверена как 3
2016-01-22T08: 58: 56.346Z | 00011 | ofproto_dpif | INFO | netdev @ ovs-netdev: Datapath поддерживает уникальные идентификаторы потоков
2016-01-22T08: 58: 56.346Z | 00012 | ofproto_dpif | INFO | netdev @ ovs-netdev: Datapath не поддерживает ct_state
2016-01-22T08: 58: 56.346Z | 00013 | ofproto_dpif | INFO | netdev @ ovs-netdev: Datapath не поддерживает ct_zone
2016-01-22T08: 58: 56.346Z | 00014 | ofproto_dpif | INFO | netdev @ ovs-netdev: Datapath не поддерживает ct_mark
2016-01-22T08: 58: 56.346Z | 00015 | ofproto_dpif | INFO | netdev @ ovs-netdev: Datapath не поддерживает ct_label
2016-01-22T08: 58: 56.360Z | 00016 | bridge | INFO | bridge ovsdpdkbr0: добавлен интерфейс ovsdpdkbr0 на порт 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: добавлен сервисный контроллер «punix: / var / run / openvswitch / ovsdpdkbr0.mgmt»
ОВС-ЛОГ:
ovs-vsctl: ovs | 00001 | vsctl | INFO | Вызывается как ovs-vsctl add-br ovsdpdkbr0 - устанавливает мост ovsdpdkbr0 datapath_type = netdev
systemd-udevd [3607]: не удалось сгенерировать постоянный MAC-адрес для ovs-netdev: нет такого файла или каталога
ядро: [50165.886554] устройство ovs-netdev перешло в беспорядочный режим ядро: [50165.901261] устройство ovsdpdkbr0 вошло в беспорядочный режим
CMD: sudo ovs-vsctl add-port ovsdpdkbr0 dpdk0 - установить интерфейс dpdk0 type = dpdk
СИСТЕМНЫЙ ЛОГ:
2016-01-22T08: 59: 06.369Z | 00019 | memory | INFO | максимальный размер резидентного набора вырос на 155% за последние 10.0 секунд, с 37256 кБ до 95008 кБ
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 на узле numa 0 2016-01-22T08: 59: 31.522Z | 00001 | dpif_netdev (pmd16) | INFO | Порт обработки ядра 0 ' dpdk0 '
2016-01-22T08: 59: 31.522Z | 00024 | bridge | INFO | bridge ovsdpdkbr0: добавлен интерфейс dpdk0 на порт 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-vsctl: ovs | 00001 | vsctl | INFO | Вызывается как порт добавления ovs-vsctl ovsdpdkbr0 dpdk0 - установить интерфейс 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 (): Использование простого пути кода tx ovs-vswitchd [3595]: PMD: ixgbe_set_tx_function (): Векторный tx включен.
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 (): Вектор rx включен, убедитесь, что размер пакета RX не меньше 4 (порт = 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 (): Использование простого пути кода tx ovs-vswitchd [3595]: PMD: ixgbe_set_tx_function (): Векторный tx включен.
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 (): Использование простого пути кода tx ovs-vswitchd [3595]: PMD: ixgbe_set_tx_function (): Векторный tx включен.
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 (): Использование простого пути кода tx ovs-vswitchd [3595]: PMD: ixgbe_set_tx_function (): Векторный tx включен.
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 (): Использование простого пути кода tx ovs-vswitchd [3595]: PMD: ixgbe_set_tx_function (): Векторный tx включен.
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 (): Использование простого пути кода tx ovs-vswitchd [3595]: PMD: ixgbe_set_tx_function (): Векторный tx включен.
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 (): Использование простого пути кода tx ovs-vswitchd [3595]: PMD: ixgbe_set_tx_function (): Векторный tx включен.
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 (): Использование простого пути кода tx ovs-vswitchd [3595]: PMD: ixgbe_set_tx_function (): Векторный tx включен.
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 (): Использование простого пути кода tx ovs-vswitchd [3595]: PMD: ixgbe_set_tx_function (): Векторный tx включен.
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 (): Использование простого пути кода tx ovs-vswitchd [3595]: PMD: ixgbe_set_tx_function (): Векторный tx включен.
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 (): Использование простого пути кода tx ovs-vswitchd [3595]: PMD: ixgbe_set_tx_function (): Векторный tx включен.
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 (): Использование простого пути кода tx ovs-vswitchd [3595]: PMD: ixgbe_set_tx_function (): Векторный tx включен.
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 (): Использование простого пути кода tx ovs-vswitchd [3595]: PMD: ixgbe_set_tx_function (): Векторный tx включен.
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 (): Использование простого пути кода tx ovs-vswitchd [3595]: PMD: ixgbe_set_tx_function (): Векторный tx включен.
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 (): Вектор rx включен, убедитесь, что размер пакета RX не меньше 4 (порт = 0).
CMD: sudo ovs-vsctl add-port ovsdpdkbr0 vhost-user-1 - установить интерфейс vhost-user-1 type = dpdkvhostuser
ОВС-ЛОГ:
2016-01-22T09: 00: 35.145Z | 00026 | dpdk | INFO | Socket / var / run / openvswitch / vhost-user-1 создан для порта 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
на порту 2
СИСТЕМНЫЙ ЛОГ:
ovs-vsctl: ovs | 00001 | vsctl | INFO | Вызывается как порт добавления ovs-vsctl ovsdpdkbr0 vhost-user-1 - установить интерфейс vhost-user-1 type = dpdkvhostuser
ovs-vswitchd [3595]: VHOST_CONFIG: сокет создан, fd: 46
ovs-vswitchd [3595]: VHOST_CONFIG: привязать к / var / run / openvswitch / vhost-user-1
В конце концов мы можем увидеть ветку опроса вверху
PID ПОЛЬЗОВАТЕЛЬ PR NI VIRT RES SHR S% CPU% MEM TIME + COMMAND
3595 корень 10-10 4975344 103936 9916 S 100.0 0.3 33: 13.56 ovs-vswitchd