PVE7教程【篇一】硬件虚拟化 显卡直通与GVT-g
前言:PVE的教程网上有很多,站内也有很多大佬的文章。对于小白来说,命令行敲错、复制错了,一出现error就不知道该怎么办了,我以前是再找一篇,从头再来一遍。本系列将从原理方面尽量详细的说一下各个安装的细节,避免出错。
我的硬件设备:
主板:华擎z390 极限玩家4
cpu:i5-9600k
内存:阿斯加特T2 16G✖2
SSD:英睿达镁光MX500 1T
机箱:安钛克P101S
散热:安耐美 晶凌240水冷
环境:Proxmox VE 7.2-4,内核5.15.35-3
行吧,咱们就开始操练起来吧。
一、显卡直通和中介设备原理介绍
显卡直通很好理解,即是显卡直接直通给虚拟机,包括PVE和其他虚拟机都不能用。适合打算将显卡直通给一个虚拟机外联显示器的情况,或者主机有多个显卡分别直通给不同设备的情况。这里需要说下,直通也需要IOMMU拆分,不然整个PCIe全都给了某个虚拟机,后果不限于PVE失联,M.2固态找不到了,硬盘也找不到了等等。。。
中介设备【 Mediated Devices 】:vGPU, GVT-g。Intel核显的技术叫GVT-g, NVIDIA技术叫vGPU。这个是很多小伙伴的刚需,想把核显分享给黑群晖或者docker里面的emby、jellyfin做硬解,win10或者别的虚拟机也想要个核显,反正都得有。这种情况就用到intel的GVT-g,效果如下:
二、修改引导加载程序内核命令行配置文件GRUB
命令:nano /etc/default/grub
【第一步】添加命令
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
修改为:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_gvt=1"
光标放在quiet的后面空一格,然后复制黏贴。
修改完成后按Ctrl+x,问你是否需要保存?-->输入Y,问你是否写入文件-->按回车。
弄错了没关系,问你是否需要保存?-->输入N,就返回了。
原理说明(按需要添加命令):
1、官方文档:IOMMU (I/O Memory Management Unit)中断重新映射。如果不中断重新映射,将无法使用 PCI 直通。设备分配将失败,并显示“无法分配设备”[设备名称]“:不允许操作”或“找不到中断重新映射硬件,将设备传递到非特权域不安全”错误。【 'Failed to assign device "[device name]": Operation not permitted' or 'Interrupt Remapping hardware not found, passing devices to unprivileged domains is insecure.' error.】
所有使用英特尔处理器和芯片组的系统,如果支持英特尔虚拟化技术定向 I/O (VT-d),但不支持中断重新映射,将看到此类错误。较新的处理器和芯片组(AMD 和英特尔)提供中断重新映射支持;
2、PCIe直通需要主要主要开启虚拟化, Intel叫VT-d,AMD的叫AMD-V(i) ,都需要再主板BIOS里面开启;
3、Intel添加的为intel_iommu=on,AMD添加的为amd_iommu=on;
4、 iommu=pt,官方文档说明:这仅在必要时才启用 IOMMU 转换,适配器不需要使用 DMA 转换到内存,因此可以提高虚拟机管理程序 PCIe 设备(未传递到 VM)的性能。意思就是开了能提高虚拟机调取PCIe的性能,那就开吧。
5、i915.enable_gvt=1,官方文档说明:Intel的 GVT-g 驱动程序集成在内核中,启用时加载模块。意思就是,想开启GVT-g的就添加这条,显卡直通的就不要添加了。
【第二步】保存更改并更新 grub
update-grub
TIPS:
GVT-g可支持数量和最多分辨率:
i915-GVTg_V5_1 # Video memory: <512MB, 2048MB>, resolution: up to 1920x1200
可用数量
i915-GVTg_V5_2 # Video memory: <256MB, 1024MB>, resolution: up to 1920x1200
可用数量
i915-GVTg_V5_4 # Video memory: <128MB, 512MB>, resolution: up to 1920x1200
可用数量2
i915-GVTg_V5_8 # Video memory: <64MB, 384MB>, resolution: up to 1024x768
可用数量1
所以想要核显分享给多个虚拟机用的,需要在bios里面设置内存分给核显显存的大小。
二、修改内核模块
命令:nano /etc/modules
【第一步】添加内核模块
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
kvmgt
原理说明:
1、PCIe直通启用vfio vfio_iommu_type1 vfio_pci vfio_virqfd
2、vGPU和GVT-g需再添加kvmgt
【第二步】更改任何与模块相关的内容后,您需要刷新 initramfs
update-initramfs -u -k all
同时完成后,应重启以下。可用shell里面reboot,或者web界面重启。
总共也就四步而已,非常简单。
三、效果检测
1、命令:dmesg | grep -e DMAR -e IOMMU -e AMD-Vi
2、命令:find /sys/kernel/iommu_groups/ -type l
3、命令:lspci
注:lspci 显示所有PCIe设备的信息,比如第二个VGA就是Intel的核显,0000:00:02.0就是设备ID,下一个命令就是参看此设备支持的类型。
4、命令:ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types
标题二里最后的TIPS里面,i915-GVTg_V5_4,i915-GVTg_V5_8。
最简单的还是直接建一个虚拟机,完成后不要启动,再【硬件】-->【添加】-->【PCI设备】就能看到了。
四、问题与总结
pve按照完成后,可先检测一下硬件设备和系统是否支持。要确定您的系统是否支持中断重新映射,请执行以下操作:
dmesg | grep 'remapping'
如支持应显示:
· "AMD-Vi: Interrupt remapping enabled"
· "DMAR-IR: Enabled IRQ remapping in x2apic mode"('x2apic' can be different on old CPUs, but should still work)
下面重点来了,不支持咋办?
如不显示,则硬件设备不支持,可以使用以下命令允许不安全的中断:
echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf
意思就是通过命令行或者软支持(我的理解)。
然后再命令行更新 grub,刷新 initramfs。
update-grub
update-initramfs -u -k all
要是再不行,只能再网上搜搜有没有案例了。
最后的最后:
1、给软路由的小伙伴,这样设置下来,你的多网口网卡可以支持分别分给ikuai、openwrt、routeros等等软路由了。
2、如果你的网卡支持SR-IOV的话,你会发现也变成中介模式了一个网口也能支持给多个设备了。
无图.jpg
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
BulexJust
校验提示文案
值友2939873782
校验提示文案
夏已V微V凉
校验提示文案
一抹苦笑
校验提示文案
值友1590940412
校验提示文案
镇静
校验提示文案
跑跑蔡大夫
校验提示文案
德才兼备噗哈哈
如果能调用核显,还需要做直通吗?
校验提示文案
值友8194945536
校验提示文案
值友3008898037
校验提示文案
子疯
校验提示文案
一个金币的故事
校验提示文案
值友2927298534
校验提示文案
值友2927298534
校验提示文案
跑跑蔡大夫
校验提示文案
值友1318759736
校验提示文案
Shaco_Halazi
校验提示文案
值友5264694195
校验提示文案
侒迪
校验提示文案
老实的毛师傅
校验提示文案
值友7500111136
校验提示文案
值友7500111136
校验提示文案
J-Key
校验提示文案
山月不知心底事
校验提示文案
mrzhou
校验提示文案
mrzhou
校验提示文案
矛盾96
我的只有128M,对这个专用内存有点疑惑,因为我分配的i915-GVTg_V5_1,觉得应该是512M以上。加上远程桌面并不是很流畅。怀疑哪配置出了问题。
校验提示文案
wclnm
校验提示文案
山遥路远
校验提示文案
菊部小雨
想问一下中介模式ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types命令的时候出现的虚拟显卡个数怎么是由什么决定的?BIOS分配的显存大小吗?
校验提示文案
值友5235427379
校验提示文案
xwtdiweixin
校验提示文案
Gaara
校验提示文案
Vocalist
校验提示文案
值友6814536744
校验提示文案
老实的毛师傅
校验提示文案
老实的毛师傅
校验提示文案
侒迪
校验提示文案
值友5264694195
校验提示文案
Shaco_Halazi
校验提示文案