最新消息:被垃圾评论逼疯了,设置自动删除带超链接评论,发表评论请勿带链接,交换友链请发送邮件zc#qzkyl.cn(#换@)

PVE虚拟机如何配置PCIE设备直通

VMware/PVE 骑猪看月亮 374浏览 1评论

什么是直通?
在虚拟化环境中,虚拟机的硬件通常是靠软件模拟的,共享宿主机的硬件资源。这样可以把宿主机的硬件资源分配给多个虚拟机使用。但是,由于不是直接将硬件给虚拟机使用,性能上会有所损失,而且还可能享受不到硬件的某些特定功能。直通就是将指定的宿主机硬件直接交给某个虚拟机独占使用,使这个硬件在这个虚拟机中发挥直接的、最大的性能。当配置了直通之后,这个硬件就不能再给其他虚拟机甚至宿主机使用了。

我的直通需求
我的直通需求主要集中在黑群虚拟机上。首先我需要直通网卡,这是我额外添加一个4口2.5g网卡的主要目的。另外还要直通核显,为黑群开启硬件解码,虽然我觉得这个对我来说意义不大,不过我也没啥其他的核显需求了,直通给黑群算了。再就是直通硬盘,这个好办,一条命令的事,我没有选择直通SATA控制器,因为我主机上的硬盘不打算全都给黑群。直通SATA控制器的好处是可以获得最高的读写效率,缺点是该SATA控制器下的硬盘都跟着一起给了这个虚拟机,其他虚拟机和宿主机都没法用了。直通硬盘确实是虚拟机直接读写该硬盘,不过实际上还是映射给虚拟机,虚拟机没法获取到完整的SMART信息,从而无法监控到硬盘的健康度。这点我觉得倒是没啥,可以在PVE里查看硬盘SMART。

PVE配置PCIE设备直通
PVE默认未开启PCIE设备直通。这时如果向一个虚拟机添加PCIE硬件,就会报错。

1、启动内核IOMMU支持 /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on pcie_acs_override=downstream,multifunction iommu=pt video=efifb:off,vesafb:off pci=assign-busses"

简单解释下:
Intel_iommu=on:启用IOMMU功能。AMD CPU要换成amd。
iommu=pt:不是必须的,PT模式只在必要的时候开启设备的IOMMU转换,可以提高未直通设备PCIe的性能,建议添加。这个解释是网上搜到的,我不是很理解。
pcie_acs_override=downstream,multifunction:IOMMU分组。如果没有这一句,我的4口网卡就会被分在同一组,那样的话,几个网口就不能分给不同的虚拟机,分了就只能启动一个。有坛友提到,没有加multifunction也可以实现分组,所以multifunction的作用不甚明了,请知道的大神解释下。
efifb:off:禁用efi启动的显示设备。不直通核显可以不加。
vesafb:off:禁用vesa启动的显示设备。不直通核显可以不加。
保存后命令行运行下面命令更新grub。

update-grub

2、内核加载硬件直通相关模块

/etc/modules
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

3、添加驱动黑名单/etc/modprobe.d/pve-blacklist.conf

blacklist snd_hda_intel
blacklist snd_hda_codec_hdmi
blacklist i915

这些是PVE系统核显相关的驱动,添加到“pve-blacklist.conf”文件后,PVE系统将不加载核显的驱动,重启后PVE主机接显示器键盘鼠标将不再有命令行显示了。
上面几句是intel核显的驱动名称,其他显卡请百度一下,很好找。

4、绑定核显到vfio模块
查看一下自己的核显的供应商和设备ID。命令行运行查看PCIE设备信息命令

lspci -nn

找到核显信息,下面是我的:

00:02.0 VGA compatible controller [0300]:Intel Corporation CometLake-S GT2 [UHD Graphics 630] [8086:3e92]

新建/etc/modprobe.d/vfio.conf

options vfio-pci ids=8086:3e92

不要照抄,记得把ID改成自己的。运行命令更新内核配置信息。

update-initramfs -u -k all

5、重启PVE
检查模块是否正常加载,运行下面命令:

lsmod | grep vfio

应该显示已加载的vfio模块。总的来说,我的直通需求还是比较简单的,所以上面写的步骤并不复杂。我没有用到SR-IOV、GVT-g之类的技术,这些技术可以把一个网卡显卡虚拟成多个子设备透传给虚拟机,大家有兴趣可以尝试下。

发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 前几天买了个J4125,上了ESXI,从ESXI8.0降到了7.0,用几天看,不行就只能6.7了
    老张博客3周前 (03-03)回复