PCIe passthrough/SR-IOV 啟用
grub部分: 點我前往
nano /etc/modules
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
kvmgt
update-initramfs -u -k all
注意要點
- 如果你的主板沒有開啟 Intel VT-D 或 AMD-VI (IOMMU) 以及可以開啟 SR-IOV 的選項時, 代表了你的"硬體平台非常有可能 (99.9%) 不支援"
- 所有在"同一個" iommu group 下面的 device, "需要一起 " passthrough 給 vm. 所以主板的 PCH 以及 PCI-E 設備的 firmware 一定要寫的夠好, 才能這樣子 passthrough.
- Intel/Mellanox/NVidia passthrough 的成功比率比較好. 伺服器主板的話, x9/x10/x11 系列都可以做到. 越舊然後便宜的主板 PCH Root 不夠使用, passthrough 機率非常低.
- 需要passthrough 的 pci-e device, 它們需要使用 vfio_pci 的驅動, 而不可以使用原本 igb-vf 的驅動, 那樣子硬體就被 host 拿去使用了, 而 vm guest 就無法使用.
VM端設定:
nano /etc/pve/qemu-server/XXX.conf
增加:
cpu: host
hostpci0: 03:00.1,pcie=1
hostpci1: 08:10.0,pcie=1
#當無法開機跳出不正確pcie id時 改為
hostpci0: 0000:03:00.1,pcie=1
machine: q35
註:伺服器部分或者做完之後沒有生效者請增加
echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf
update-initramfs -u
後重開機即可使用
GPU設定: GPU Passthrough
GVT-g注意事項:
Create VGPU (KVMGT only)
Use the uuid you generated to create VGPU, notes: if you want to boot up multi guests, you can use echo "uuid" > "/sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/i915-GVTg_V#ID_#Type/create", like below:
echo "a297db4a-f4c2-11e6-90f6-d3b88d6c9525" > "/sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/i915-GVTg_V5_4/create"
查詢啟用:
dmesg | grep IOMMU | grep enabled
Intel SR-IOV
echo /etc/modprobe.d/igb.conf >> options igb max_vfs=2,4
depmod -a
update-initramfs -u
LXC SR-IOV 啟用:
lxc.autodev = 1
lxc.net.0.type = phys # was veth
lxc.network.flags = up
lxc.network.link = enp4s16f1 # was virbr0
NVIDIA GPU Passthrough FIX
阅读剩余
THE END