unRAID 11~13 代CPU开启 SR-IOV 实现虚拟机核显直通

UNRAID10个月前更新 549165334
101 0 0

1、背景
Intel 从11代 CPU 开始不再支持 GVT-g,也就是说以前直通核显的方法不再适用于11代开始的 CPU。但 Intel 却没有同步跟进 Linux 下的驱动来让用户去实现核显直通,这个问题被诟病了很久。虽然说在这篇文章之前就已经有高手能够通过一些手段来实现这个目的,但是对于一般的用户而言这种方式门槛很高(包括编译 Linux 内核、安装相关的 Linux 驱动等较为高级的一些操作),并且也不是在 unRAID 上去实现的,所以不论是国内国外的用户都抱怨了很久。但是就在2023年3月20日左右,一位国内的高手 @zhtengw 开发了一款插件来实现了这一目的,本篇文章就教大家如何使用这一插件来完成核显直通。
2、核显虚拟化技术介绍
不同代的 CPU 使用的核显虚拟化技术可能不一样,你可以通过以下链接查看自己的 CPU 使用何种核显虚拟化技术:
https://www.intel.cn/content/www/cn/zh/support/articles/000093216/graphics.html
需要注意的是,如果你用的CPU是11代CPU且代号为 Rocket Lake,且出现在下列列表中,那么此系列的 CPU 不具备 SR-IOV 技术,使用的依然是传统的 GVT-G 虚拟化技术。
不具备 SR-IOV 技术的11代CPU(点击展开)
2.1、什么是 SR-IOV
notion image
在 Intel 的官网介绍中(链接),SR-IOV 技术仅搭载在11代及以上CPU,并且此项技术将取代原先的 GVT-G (英特尔® Graphics Virtualization Technology –g)核显虚拟化技术。
那么什么是 SR-IOV,为什么 Intel 要用这项技术取代原先核显直通的技术?
2.2、SR-IOV 技术说明
SR-IOV 是 Single Root I/O Virtualization 的缩写。SR-IOV 能够让一个 PCIE 设备向操作系统提供多个虚拟设备(也就是将一个 PCIE 物理设备虚拟化成多个设备来使用,就好像分身)。
SR-IOV 实际上是 PCI Express 提供的功能。
在这种方式中以物理方式存在的设备称为 Physical Function (PF),通过 SR-IOV 虚拟添加的设备称为 Virtual Function (VF)。
我们最常在网卡设备上见到此项技术,比如说 Intel 的很多万兆网卡支持 SR-IOV 功能。(点击展开)
2.3、为什么要用 SR-IOV 技术替代 GVT-G
一方面是因为前者的效率和性能更高,并且相比 GVT-G 而言,SR-IOV 是行业通用的标准,Intel 采用此标准可以让各家厂商降低兼容门槛,对大家来说都是一件好事。
3、准备工作:开启主板 BIOS 的 SR-IOV 功能
SR-IOV 功能要正常使用,首先要保证主板的 BIOS 中开启了 SR-IOV 的功能,如下图所示:
💡
不同的主板 BIOS 设置有所不同,即使是同一个主板不同的 BIOS 版本可能也会有区别,所以大家如果找不到关于 SR-IOV 的设置,那么可以去查看自己主板的官网说明或者官方提供的主板使用手册(没有 SR-IOV 的相关设置不代表主板没有这项功能,有!可能主板已经默认开启了,但没有给到用户开启和关闭的选项而已)。
需要说明的是,有些主板需要开启 Re-Size BAR支持 这个功能之后才会显示 SR-IOV 功能开关,比如本例子。
需要说明的是,有些主板需要开启 Re-Size BAR支持 这个功能之后才会显示 SR-IOV 功能开关,比如本例子。
除了 BIOS 中的 SR-IOV 功能,一般来说还需要保证 Intel 的 VT-D、VT-X(HVM、Intel虚拟化技术、Intel Virtualization Technology) 和 IOMMU 功能开启,否则 unRAID 无法正常使用虚拟化技术,具体可参考下图:
notion image
notion image
notion image
4、安装 Intel i915 SR-IOV 和 Intel-GVT-g 插件
这两个插件都安装好之后,请重启 unRAID。
4.1、安装 Intel i915 SR-IOV 插件
💡
根据 Intel i915 SR-IOV 插件作者的说明,插件适用于 6.10.2 ~ 6.11.5 和 6.12.0-rc1, 6.12.0-rc2 版本,其他版本请自行测试。
应用市场搜索 intel i915 sr iov 下载插件:
notion image
如果你无法通过 App 应用商店下载,那么可以通过以下方式手动安装(点击展开)。
插件介绍如下:
Intel Graphics SR-IOV is Intel’s latest virtualization technology for graphics. Single Root I/O Virtualization (SR-IOV) defines a standard method for sharing a physical device function by partitioning the device into multiple virtual functions. Each virtual function is directly assigned to a virtual machine, thereby achieving near-native performance for the virtual machine.
Check the link below to confirm if your integrated graphics support SR-IOV.
此插件的 unRAID 官方支持论坛地址如下:
4.2、安装 Intel-GPU-TOP 插件
notion image
4.3、绑定虚拟核显设备到 VFIO-PCI
重启之后,正常情况下就会在系统设备中看到虚拟化出来的设备,例如:
notion image
此时需要将相应的设备绑定,然后再重启一次 unRAID,例如:
notion image
绑定 VFIO-PCI 的方法:勾选设备前面的方框,然后点击“在引导时对 VFIO 选择了绑定”,最后重启 unRAID 即可。
请注意,不要将核显设备绑定到 VFIO-PCI,比如:
如果你已经绑定了,请取消绑定:取消勾选,然后点击“在引导时对 VFIO 选择了绑定”,最后重启 unRAID 生效
如果你已经绑定了,请取消绑定:取消勾选,然后点击“在引导时对 VFIO 选择了绑定”,最后重启 unRAID 生效
4.4、创建虚拟机并直通虚拟设备
创建虚拟机时在显卡设备中选择虚拟的核显然后启动虚拟机:
notion image
进入虚拟机之后,比如说 Windows 虚拟机,需要在系统中安装好核显驱动(Intel核显驱动下载地址),安装好之后即可正常使用核显:
notion image
5、其他参考资料(持续更新)
这里有另一篇同样关于本主题的恩山教程:
6、常见问题(持续更新)
6.1、能否实现虚拟化GPU的视频输出?
答:不能
notion image
6.2、已经按照流程完整的配置好了,但就是 Windows 虚拟机系统中提示核显驱动43错误。
解决办法:请尝试重新安装核显驱动(Intel核显驱动下载地址),并且安装的时候选择 清洁安装 。
6.3、虚拟机是否支持多个虚拟和弦设备直通?
对于 Linux 虚拟机没有限制,但是如果是 Windows 虚拟机直通多个 VF 设备就会出现43驱动错误。
https://forums.unraid.net/topic/136621-unraid-kernel-with-igpu-sr-iov-support/?do=findComment&comment=1246488
6.4、解决 6.12.4 版本无法使用的问题(2023-09)
由于此插件目前还没有编译 6.12.4 版本的 SR-IOV 驱动,所以如果处在 6.12.4 版本会发现此插件无法正常使用(并且在 APPS 中下载会出现无法下载/安装的情况),解决办法已经有开发者提供了,链接如下:
这里我复述一下解决步骤:
首先你需要使用 6.12.3 版本,并在此版本上安装好插件。
执行以下命令(复制粘贴到 unraid 的命令行窗口执行即可):
mkdir -p /boot/config/plugins/i915-sriov/packages/6.1.49/
sed -i ‘/ modprobe i915 enable_guc=7/ s/.*/ modprobe i915 enable_guc=3 max_vfs=7/’ /boot/config/plugins/i915-sriov.plg
echo “# disable autoload old i915 module on boot
blacklist i915” > /boot/config/modprobe.d/i915-sriov.conf
Bash
下载上面帖子中的 i915-sriov-6.1.49-Unraid.txz 和 i915-sriov-6.1.49-Unraid.txz.md5 文件(如果无法下载,可以到作者的工具库去下载),并将这两个文件移动到 /boot/config/plugins/i915-sriov/packages/6.1.49/ 目录下。
在 unraid 的 WebUI 中升级系统到 6.12.4 :

© 版权声明

相关文章

没有相关内容!

暂无评论

暂无评论...