欢迎光临散文网 会员登陆 & 注册

基于PVE8.0的SR-IOV配置

2023-08-22 10:39 作者:青云敛  | 我要投稿

此文可以作为11代至13代英特尔CPU在PVE8.0中开启SR-IOV的参考

硬件情况

主板&CPU:尔英12700H ITX

(如果想买尔英主板,ITX比ATX更好,BIOS更简单)

什么是SR-IOV?这里引用Oracle的说明

SR-IOV 技术是一种基于硬件的虚拟化解决方案,可提高性能和可伸缩性。SR-IOV 标准允许在虚拟机之间高效共享 PCIe(Peripheral Component Interconnect Express,快速外设组件互连)设备,并且它是在硬件中实现的,可以获得能够与本机性能媲美的 I/O 性能。SR-IOV 规范定义了新的标准,根据该标准,创建的新设备可允许将虚拟机直接连接到 I/O 设备。

简单来说,允许将一个PCIe设备虚拟化成多个设备,且每个虚拟化出来的设备都可以获得与物理设备相近的性能

如果显卡开启SR-IOV就可以给多台虚拟机同时配上显卡

网卡之类的设备也支持SR-IOV,但是不如显卡这么有用(毕竟虚拟化出来的网卡性能也没差多少,还不需要自己安装驱动)

前置条件

以下设置基于尔英12700H主板

1.BIOS中开启VMX(VT-X)

Advanced --- CPU Configuration --- Intel (VMX) Virtualization Technology

2.开启VT-D(位于显卡设置中)

Advanced --- Graphics Configuration  --- VT-d

3.开启4G以上MMIO分配

Advanced --- Graphics Configuration --- Above 4GB MMIO BIOS assignment

4.关闭UEFI的安全启动

其他诸如CPU超频,XMP之类请自行设定

安装PVE过程中无需其他操作,请按各类教程自行安装


插播一条,UEFI编辑可以用这个GitHub库,网页上即可查看,搜索,修改BIOS的配置

GitHub库 https://github.com/BoringBoredom/UEFI-Editor

在线编辑器 https://boringboredom.github.io/UEFI-Editor

尔英12代ITX主板BIOS需要的东西我已全部打包,其他BIOS可以按照教程操作

下载连接 https://xingnian.lanzoum.com/icMO615vlcmd

修改BIOS有风险!请小心操作,只看看还是没有问题的


PVE安装后可选内容

修改软件源为国内源

8.0的PVE对应的Debian版本为Debian 12 Bookworm

可以直接搜索Debian 12替换国内源

这是我的/etc/apt/sources.list文件参考,其他的源基本用不到

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free

# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free

# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free

# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free

deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free

# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free

deb https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian/pve bookworm pve-no-subscription

最后一个源在安装驱动时会用到,不然会无法搜索到pve头文件


开始配置直通SR-IOV

1.修改GRUB

修改/etc/default/grub文件的GRUB_CMDLINE_LINUX_DEFAULT项,自行选择文本编辑工具

quiet intel_iommu=on iommu=pt i915.enable_guc=3 i915.max_vfs=7

添加以下内容,完成图如下

2.安装驱动

参照https://github.com/strongtz/i915-sriov-dkms

安装headers,用于安装驱动

apt update && apt install pve-headers-$(uname -r)

安装驱动编译需要软件包

apt install build-* dkms

克隆GitHub库

git clone https://github.com/strongtz/i915-sriov-dkms

替换字符串

sed -i 's/@_PKGBASE@/i915-sriov-dkms/;s/@PKGVER@/6.1/' i915-sriov-dkms/dkms.conf

移动到指定位置

mv i915-sriov-dkms /usr/src/i915-sriov-dkms-6.1

编译并安装驱动

dkms install --force -m i915-sriov-dkms  -v 6.1

检查一下驱动安装情况

dkms status

正常情况下应该只有一行

i915-sriov-dkms/6.1, 6.2.16-3-pve, x86_64: installed

如果有多行or有报错请移除错误的驱动(如果没改命令应该不会变)

dkms remove i915-sriov-dkms/6.1

一次移除不干净就用移除全部驱动(驱动名字自己改)

dkms remove i915-sriov-dkms/6.1 --all


3.更新 GRUB 与 initrramfs

update-grub && update-initramfs -u


4.安装sysfsutils(这一步只有宿主机需要执行!!!)

apt install sysfsutils

查找iGPU所在总线

lspci | grep VGA

我的GPU在00:02(我已经完成了驱动的安装,还没安装的只会显示出一个,而且不会有.1.2.3这些)

把这行命令中的00:02替换成自己的

echo "devices/pci0000:00/0000:00:02.0/sriov_numvfs = 7" > /etc/sysfs.conf


5.确认驱动情况

重启系统 后再次运行

lspci | grep VGA

如果已经出现了我上面的截图说明已经配置成功

之后可以在虚拟机的硬件页面中添加 Raw Device

注意,不要直通.0设备,即0000:00:02.0设备,不要勾选全部功能


虚拟机安装驱动

Windows虚拟机是比较简单的

创建虚拟机,系统机型选Q35,启动选UEFI

进入系统后搞定远程桌面之类的远程控制软件,最好先测试连接成功后再进行下一步

添加SR-IOV设备,重启系统

勾选主GPU,PCIe

主GPU会屏蔽VGA(不屏蔽也用不了),PCIe只支持Q35机型(好像是只支持UEFI)

开启后远程连接,去英特尔管网下载最新的显卡驱动

驱动安装完成后进行一次重启,这时PVE管理页面的控制台应该无效了

直接使用远程桌面连接上系统,使用其他远程控制软件也可,但是可能会有分辨率的问题(600*480警告!)

可以使用虚拟显示器解决

打开任务管理器,理论上应该出现了你的显卡

可以打开一个视频,看看显卡是否正常工作

Linux虚拟机要稍微麻烦一点

我为了方便用的是Ubuntu23.04 内核版本6.2.0-27-generic

GitHub上说Debian系统会缺少一些必须的模块,建议自己去看

内核版本在6.1-6.3都可以用这个操作,可以选择自己升级内核,也可以去找支持其他内核版本的驱动

创建虚拟机,机型还是Q35,启动也是UEFI

务必关闭PVE提供的UEFI的安全启动!

然后操作与宿主机安装SR-IOV相似

修改GRUB这一步,改成这样

GRUB_CMDLINE_LINUX_DEFAULT="quiet i915.enable_guc=3"

跳过安装sysfsutils这一步

也就是说需要执行1235步

正常情况下应该可以显示如下内容

安装并运行vainfo[可选]

如果你的显卡驱动已经正常工作,那么应该会显示相似的内容,具体因解码能力而定

如果报错请重新检查驱动安装情况,驱动安装/重装后必须更新 GRUB 与 initrramfs

apt install vainfo && vainfo


基于PVE8.0的SR-IOV配置的评论 (共 条)

分享到微博请遵守国家法律