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.