PVE8.3.1开启核显虚拟化SR-IOV
本来想集成到前面的文章,但是被网上一些文章误导从而浪费了3H之后决定还是单开一篇专门说说PVE8.3.1开启核显虚拟化的过程。所以建议大家还是参考更有价值的唯一的官方指南 https://github.com/strongtz/i915-sriov-dkms
交代一下背景:
SR-IOV 是一种硬件虚拟化技术,简单来说,能将物理 PCIe 设备虚拟成多个虚拟设备,在网卡上被广泛使用。Intel Core CPU 在 11 代后支持了该技术用于 GPU 虚拟化,替换了过去的 GVT-g
发文日期2025年2月14日,以下所有操作均基于当前日期并有效执行!
PVE内核版本:6.8.12-4-pve
建议操作前更新一次源
apt update -y
安装必要的软件包
apt install build-* dkms git sysfsutils -y
安装所需版本的内核和头文件
apt install proxmox-headers-$(uname -r) proxmox-kernel-$(uname -r)
以下建议在home目录执行,所以现切换到home目录
cd ~
拉取最新i915-sriov-dkms
git clone https://github.com/strongtz/i915-sriov-dkms.git
进入i915-sriov-dkms目录
cd ~/i915-sriov-dkms
将当前目录中的内核模块添加到DKMS
dkms add .
添加完成后可以在/usr/src/目录看到已经添加进来的内核模块i915-XXXX
编译并安装该模块
dkms install i915-sriov-dkms/2025.02.03
执行以下命令,确认显卡ID是不是00:02.0
lspci | grep VGA
确认后,调整内核命令行
nano /etc/default/grub
把GRUB_CMDLINE_LINUX_DEFAULT 的参数值改成 intel_iommu=on i915.enable_guc=3 i915.max_vfs=7 module_blacklist=xe
这里要注意,如果要虚拟成7个核显,则i915.max_vfs=7;如果要虚拟成3个核显,则i915.max_vfs=3
更新grub和initramfs
update-grub
update-initramfs -u
建议再补充执行一次
pve-efiboot-tool refresh
启用VFs
echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7" > /etc/sysfs.conf #注意,这里的sriov_numvfs = X"必须与上一步的i915.max_vfs=X 数值相同
如果你的显卡ID不是00:02.0,则也需要做相应的调整
重启PVE后执行
lspci | grep VGA
你就可以看到虚拟化的核显已经出现
最后,你就能通过VFs到LXCs或VMs。但是,切勿将00.02.0那个物理GPU / PF传递给VM,这会使所有其他VF崩溃。
参考链接:
https://xxxuuu.me/post/pve8-intel-sr-iov/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)