Нет трафика на ВМ

TL; DR

(1) Только первые 2 VF передаются на виртуальную машину

а также

(2) Нет трафика на ВМ.

Настроить

  • Хост Ubuntu 16.04
  • Intel 82599 (поддерживает SR-IOV), подключенный через PCIe
  • Водитель ixgbe
  • Гостевая ВМ - Ubuntu 16.10
  • Использование Libvirt на KVM в качестве гипервизора

Процесс

Попытка использовать функциональность SR-IOV. обновление sriov_numvfs 4 в обеих сетевых картах - 4 VF на сетевую карту. Запуск виртуальной машины и подключение ее к обеим сетевым платам на Intel 82599.

Использование генератора трафика для проверки настроек.

вопрос

До запуска ВМ, ixgbe Драйвер создает еще 8 ссылок (по одной на VF) на хосте, все они видны в ip link и в состоянии вниз. После активации виртуальной машины только 2 VF (первая VF в каждом NIC, что означает функцию 0) передается в VM.

Перед активацией ВМ

  • проверка lspci на хосте отображаются как сетевые карты, так и все VF на шине PCI.
  • проверка ip link на хосте показаны все 8 ссылок, созданных драйвером (состояние не соответствует назначенным MAC-адресам), и обе карты NIC.

После активации ВМ

  • проверка lspci на хосте отображаются как сетевые карты, так и все VF на шине PCI.
  • проверка lspci в гостевой показывает только 2 переданных VF.
  • проверка ip link на хосте после активации виртуальной машины отображаются оставшиеся 6 каналов, созданные драйвером (с назначенными MAC-адресами), отображаются как сетевые карты, так и все VF (с назначенными MAC-адресами).
  • проверка ip link в гостевой системе показаны 2 NIC, которые подключены к VF (с MAC-адресами - правильный и соответствующий HW).
  • Проверка libvirt в хосте (virsh net-dumpxml на обеих сетевых картах) показывает все 8 VF, отсортированных и подключенных к виртуальной машине.

но...

Нет трафика на ВМ.

Есть трафик от виртуальной машины наружу.

Есть идеи?

Работаю над этим

1

Пытаясь обойти процесс автоматизации драйвера, перейдя по этой ссылке, виртуальная машина запускается с двумя мостовыми сетями к сетевым картам с двумя картами. ВМ работает нормально, и трафик идет от обеих сетевых плат. Затем новое устройство добавляется с помощью virsh attach-device Команда и команда выполняется успешно. Во-первых, файл XML содержит только адрес PCI VF. Никаких видимых изменений не видно в ВМ, а не в ip link, не в lspci... ничего такого. --config флаг был поднят, поэтому состояние проверяется снова после перезагрузки, и снова ничего. Затем PCI-адрес NIC (PF) добавляется явно, а также явно указывается MAC-адрес VF. После virsh attach-device с явными параметрами - все равно ничего.

2

Если перейти по базовому принципу, перейдя по этой ссылке, устройство PCI отсоединяется от хоста вручную и вводится в виртуальную машину. Конечным результатом является то, что карта PCIe не является vHBA и, следовательно, не совместима с NPIV (см. Здесь), и сообщение об ошибке уведомляет об этом соответственно.

3

Другой подход заключается в использовании passthrough режим пересылки, как описано здесь. Это не желательный режим работы, поскольку он намеренно разрешает доступ только одному vNIC к одному NIC за раз (и вся цель заключается в использовании функциональности SR-IOV), и поведение аналогично hostdev режим пересылки: если имя сетевого адаптера указано в pf Директива работает как основной мост, и если имя VF указано в pf Директива нет ничего.

4

Подобно подходу Passthrough, есть подход MACvTap, описанный здесь, здесь и здесь. Это не применимо. ixgbe Драйвер устанавливает имена ссылок VF, поэтому они обрабатываются по-разному. Нет возможности указать имена VF в качестве интерфейсов, а указание имени интерфейса приводит к передаче интерфейса, аналогичного passthrough режим пересылки. Это может быть связано с версией драйвера, версией ядра, версией libvirt или их комбинацией.

5

Смена SFP, похоже, тоже не помогает. Изменен на несколько разных моделей, ни одна из которых не работала с картой Intel, кроме той, которая действительно получала питание, и связь была установлена ​​(была видна на шине PCIe), но не была обнаружена ixgbe Драйвер, ни какие-либо другие модули ядра и интерфейсы не были созданы.

1 ответ

Решение

Параметры ядра, используемые для использования процессора, немного отличались от параметров других процессоров.

Игра с параметрами решила обе проблемы.

Основная идея по-прежнему заключается в активации функции SR-IOV в ядре (Intel или AMD) и передаче параметров ядра, чтобы установить его в режиме "сквозной передачи".

Используйте эту ссылку для дополнительных опций параметров ядра.

Другие вопросы по тегам