Перейти к содержанию

PCI-устройства

Вкладка PCI-устройства позволяет подключить к ВМ некоторые физические устройства сервера, подключенные по шине PCI/PCI-express. Необходимо учитывать, что подключение аппаратных средств сервера в ВМ может вызвать ошибку гипервизора, отказ в работе системных устройств или перехватить используемые другими частями системы устройства. Также некоторые устройства являются составными и не могут быть подключены к ВМ независимо.

Видеокарта может быть связана с аудио кодеком для HDMI. Некоторые сетевые карты могут быть 2/4/8-портовыми. Составные устройства необходимо подключать к ВМ целиком. При подключении к ВМ сетевых карт необходимо учитывать, что физическое устройство может быть занято для mgmt сети или для другого виртуального коммутатора.

Для подключения устройства PCI необходимо в окне управления PCI-устройствами нажать на кнопку Подключить pci-устройство и далее в открывшемся окне Подключение pci-устройств выбрать устройство и контроллер из раскрывающегося списка. Далее необходимо подтвердить операцию, нажав кнопку OK.

Добавление PCI-устройства

  • в CLI узла выполнить команду system pci set on '';
  • перезагрузить узел;
  • ВМ должна быть выключена;
  • подключить PCI-устройство.

При подключении видеокарты необходимо учитывать следующее:

  • обычная видеокарта состоит из двух устройств - видеокарты и аудиоустройства.

    Для стабильной работы необходимо подключать оба;

  • тип машины должен быть q35, тип загрузки - efi, это связано с некоторыми особенностями работы BIOS видеокарты;

  • подключать видеокарту необходимо строго на свободную шину. Для определения свободного номера можно воспользоваться командой vm xml, посмотреть, какой номер "bus" в устройствах свободен, и выбрать его при подключении устройства в pcie-root-port (если не было подключений дополнительных контроллеров, 5 свободен);

  • аудиоустройство требует отдельной шины.

Чтобы включить функцию предоставления доступа ВМ к части устройства SR-IOV, укажите параметр intel_iommu=on или amd_iommu=on, в зависимости от конфигурации вашего сервера, в конфигурационном файле загрузчика grub. Чтобы добиться максимальной производительности при использовании SR-IOV, задайте параметр iommu=pt в файле конфигурации загрузчика grub. В случае доступа ВМ к адаптеру напрямую не требуется использование преобразования DMA, за счет чего и улучшается производительность системы. Параметрiommu=pt нужен в основном для гипервизора и не влияет на работу ВМ. Если intel_iommu=on или amd_iommu=on работает, вы можете попробовать заменить их на iommu=pt или amd_iommu=pt в зависимости от конфигурации узла. Параметр pt включает IOMMU только для тех устройств, доступ к которым предоставлен ВМ и обеспечивает лучшую производительность узла.

Оригинал на английском языке

To enable SR-IOV in the kernel, configure intel_iommu=on in the grub file. To get the best performance, add iommu=pt (pass-through) to the grub file when using SR-IOV. When in pass-through mode, the adapter does not need to use DMA translation to the memory, and this improves the performance. iommu=pt is needed mainly with hypervisor performance is needed. If intel_iommu=on or amd_iommu=on works, you can try replacing them with iommu=pt or amd_iommu=pt. The pt option only enables IOMMU for devices used in passthrough and will provide better host performance.

В чем разница между PCI pass-through устройств к ВМ и IOMMU? PCI pass-through не требует вмешательств гипервизора для работы гостевой ОС с физическим устройством. IOMMU при работе не использует DMA трансляции гипервизора. Таким образом гипервизору не нужно обрабатывать запросы DMA, когда включен режим IOMMU. PCI pass-through и IOMMU работают совместно для обеспечения доступа гостевой ОС напрямую к физическому устройству.

Оригинал на английском языке

What is the difference between PCI pass-through and IOMMU pass-through? PCI pass-through model bypasses the hypervisor’s intervention to render the guest OS to take control of the physical device directly. IOMMU pass-through mode bypasses the DMA translation from the hypervisor. The hypervisor does not need to process DMA requests when IOMMU pass-through mode is enabled in Linux. PCI pass-through and IOMMU pass-through work collaboratively to enable the guest OS to have the direct control of the physical device.