1.确认硬件支持及biso功能开启

需要确认自己CPU是否支持虚拟化。intel要b75以上芯片组才支持。也就是说intel4代酷睿处理器以上,都支持。amd不明。具体可以到英特尔官网查看自己的CPU是否支持 英特尔® 虚拟化技术 (VT-x)

VT-D是io虚拟化。不是VT-X,具体请参考下面文章

https://zhuanlan.zhihu.com/p/50640466

有很多新手,以为主板开启虚拟化功能,就能直通了,其实不是!要开启vt-d才能io虚拟化。AMD平台是iommu,某些OEM主板上叫SRIOV。请注意。

2.修改引导设置


该步骤有两个方法可选,二选一即可!

方法1:

修改grub引导设置

使用nano /etc/default/grub去修改grub引导文件的设置

其实就是加入了iommu开启这个选项

#intel的的CPU修改为 
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_gvt=1 pcie_acs_override=downstream,multifunction video=vesafb:off video=efifb:off" 

#amd的CPU修改为  
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on"

更改完成后,刷新系统配置

update-grub
方法2:

(2023.7.5更新,最新方法,参考PVE7教程【篇一】硬件虚拟化 显卡直通与GVT-gproxmox(pve)折腾:开启IOMMU)

现在我们需要修改/etc/kernel/cmdline这个内核启动参数配置文件,在文件末尾添加该参数

intel_iommu=on iommu=pt i915.enable_gvt=1 pcie_acs_override=downstream,multifunction video=vesafb:off video=efifb:off

intel_iommu=on 是设置iommu功能开启(amd的cpu该参数名改为amd_iommu)

iommu=pt 是开启pt模式,官方文档说明:这仅在必要时才启用 IOMMU 转换,适配器不需要使用 DMA 转换到内存,因此可以提高虚拟机管理程序 PCIe 设备(未传递到 VM)的性能。意思就是开了能提高虚拟机调取PCIe的性能,那就开吧。

i915.enable_gvt=1 官方文档说明:Intel的 GVT-g 驱动程序集成在内核中,启用时加载模块。意思就是,想开启GVT-g的就添加这条,显卡直通的就不要添加了。

pcie_acs_override=downstream,multifunction 打ACS补丁,以细化pcie的IOMMU分组,解决CPU IOMMU分组问题

video=vesafb:off video=efifb:off 关闭一些显示功能以防冲突

更改完成后,刷新系统配置

proxmox-boot-tool refresh

2.2添加PVE内核模块
vi /etc/modules

添加这些内核模块进去(直接粘贴进去就好)

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
kvmgt

原理说明:

1、PCIe直通启用vfio vfio_iommu_type1 vfio_pci vfio_virqfd
2、vGPU和GVT-g需再添加kvmgt

2.3刷新内核启动参数
update-initramfs -u -k all

2.4重启后查看内核启动参数

重启后查看/proc/cmdline有没有将我们在/etc/kernel/cmdline的修改添加进去

cat /proc/cmdline
2.5验证是否开启
dmesg | grep -e DMAR -e IOMMU 


ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types
2.6查看iommu分组

可使用该脚本查看

#!/bin/bash
shopt -s nullglob
for g in $(find /sys/kernel/iommu_groups/* -maxdepth 0 -type d | sort -V); do
    echo "IOMMU Group ${g##*/}:"
    for d in $g/devices/*; do
        echo -e "\t$(lspci -nns ${d##*/})"
    done;
done;

参考文献

是一名喜欢每天折腾的咸鱼!
也是一名半退役的算竞摸鱼选手,参与过icpc,天梯赛,蓝桥等比赛.
---------------------------------------------------
百度 飞桨领航团-团长
Datawhale -鲸英助教团成员
上海人工智能实验室 书生·浦语实战营- 助教
---------------------------------------------------
认证类:
华为 Harmony OS应用开发者高级认证,
NISP 一级认证,
H3C NE-RS网络工程师认证
---------------------------------------------------
荣获奖项荣誉:
第十八届“挑战杯”全国大学生课外学术科技作品竞赛 “揭榜挂帅”专项赛-全国特等奖、
“美亚杯”第八届中国电子取证大赛 三等奖、
“蓝桥杯”国优、
中国高校计算机大赛-团体程序天梯赛 省高校一等奖、
“蓝桥杯”省一等奖、
H3C新华三杯 省三等奖、
中国移动“梧桐杯”大数据创新大赛 省三等奖、
百度 飞桨领航团 金牌团长
最后更新于 2024-01-24