(1) В виртуальную машину передаются только первые 2 VF
и
(2) Нет трафика на виртуальную машину.
ixgbe
Попытка использовать функциональность SR-IOV. Обновление sriov_numvfs
до 4 в обеих сетевых интерфейсах приводит к получению 4 VF на каждую сетевую карту. Запуск виртуальной машины и подключение ее к обоим сетевым адаптерам на Intel 82599.
Использование генератора трафика для проверки настройки.
Перед запуском виртуальной машины драйвер ixgbe
создает еще 8 ссылки (по одной на каждый VF) на хосте, все они видны в ip link
и находятся в нерабочем состоянии. После активации ВМ только 2 VF (первый VF в каждой NIC,
ip link
в гостевой системе показывает 2 сетевых адаптера, подключенных к VF (с MAC-адресами - правильными и соответствующими HW). 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
, ни какие-либо другие модули ядра и интерфейсы не создавались.
Параметры ядра, используемые для использования процессора, немного отличались от настроек других процессоров.
Игра с параметрами решила обе проблемы.
Основная идея все еще остается в силе. активация функции SR-IOV в ядре (Intel или AMD) и передача параметров ядра для установки его в «сквозном» режиме.
Используйте эту ссылку для получения дополнительных параметров ядра.