Proxmox VE是一款常用的虚拟化软件,为了获得更好的性能或达成虚拟机绕过虚拟化软件直接调用计算机硬件,经常需要用到PCIe硬件直通。最常用的场景为网卡的直通,可以有效降低网络延迟、提高网卡性能或者其他高级功能。
基本条件
1、硬件需要支持IOMMU(I / O Memory Management Unit)中断重映射,一般情况下支持VT-d和AMD-Vi的cpu都是支持的。
2、Linux内核版本大于5.15。
需要注意的是一旦将硬件直通给某个虚拟机,宿主机和其他虚拟机均不能再使用该设备。
配置直通
1、使用命令nano界面打开/etc/default/grub文件。
root@pve:~# nano /etc/default/grub
2、文件内找到GRUB_CMDLINE_LINUX_DEFAULT="quiet"字段,修改为
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
iommu=pt为可选项,它可能会提高性能。
以上配置为Intel cpu的配置说明,AMD cpu一般默认启用iommu支持,如果没启用可以手动开启,找到GRUB_CMDLINE_LINUX_DEFAULT="quiet"字段,修改为
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"
3、编辑完成后,使用快捷键 Ctrl + O 回车保存文件,Ctrl + X 退出编辑器。
4、使用命令update-grub更新grub,并重启
update-grub && sleep 5s && reboot
5、重启完成后,执行命令dmesg | grep -e DMAR -e IOMMU查看改特性是否成功开启。执行改名了后如果有内容输出表示成功,继续下一步。
加载vfio模块
这仅在必要时启用IOMMU转换,将iommu分组相关的内核模块启用,从而可以提高VM中未使用的PCIe设备的性能。
1、使用命令nano打开 /etc/modules 文件,添加以下内容
vfio vfio_iommu_type1 vfio_pci vfio_virqfd
2、编辑完成后,使用快捷键 Ctrl + O 回车保存文件,Ctrl + X 退出编辑器。
3、执行命令update-initramfs -u -k all刷新initramfs。或者直接重启也是可以的。
引用内容
https://pve.proxmox.com/pve-docs/pve-admin-guide.html#qm_pci_passthrough
文章末尾固定信息
评论