PVE 8 开启SR-IOV

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

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

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

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

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

前置条件

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

Advanced — CPU Configuration — Intel (VMX) Virtualization Technology

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

Advanced — Graphics Configuration — VT-d

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

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

  1. 已经配置软件源

开始配置直通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

查看是否出现多个设备

注意,不要直通.0设备,即0000:00:02.0设备,不要勾选全部功能,配置参考如下

评论

:D 一言句子获取中...

加载中,最新评论有1分钟缓存...