Нет трафика к виртуальной машине

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,

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

    Нет трафика на виртуальную машину.

    Существует трафик от виртуальной машины к внешней стороне.

    Есть идеи?

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

    1

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

    2

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

    3

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

    4

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

    5

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

    1
    задан 17 January 2018 в 14:05
    1 ответ

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

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

    Основная идея все еще остается в силе. активация функции SR-IOV в ядре (Intel или AMD) и передача параметров ядра для установки его в «сквозном» режиме.

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

    0
    ответ дан 4 December 2019 в 04:15

    Теги

    Похожие вопросы