PVE7教程【篇一】硬件虚拟化 显卡直通与GVT

您所在的位置:网站首页 kali禁用显卡 PVE7教程【篇一】硬件虚拟化 显卡直通与GVT

PVE7教程【篇一】硬件虚拟化 显卡直通与GVT

2023-08-27 14:03| 来源: 网络整理| 查看: 265

PVE7教程【篇一】硬件虚拟化 显卡直通与GVT-g 2022-05-29 18:36:27 57点赞 399收藏 55评论

前言:PVE的教程网上有很多,站内也有很多大佬的文章。对于小白来说,命令行敲错、复制错了,一出现error就不知道该怎么办了,我以前是再找一篇,从头再来一遍PVE7教程【篇一】硬件虚拟化 显卡直通与GVT-g。本系列将从原理方面尽量详细的说一下各个安装的细节,避免出错。

我的硬件设备:

主板:华擎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,效果如下:

PVE7教程【篇一】硬件虚拟化 显卡直通与GVT-g

二、修改引导加载程序内核命令行配置文件GRUB

命令:nano /etc/default/grub

PVE7教程【篇一】硬件虚拟化 显卡直通与GVT-g

【第一步】添加命令

GRUB_CMDLINE_LINUX_DEFAULT="quiet"

修改为:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt i915.enable_gvt=1"

光标放在quiet的后面空一格,然后复制黏贴。

修改完成后按Ctrl+x,问你是否需要保存?-->输入Y,问你是否写入文件-->按回车。

弄错了没关系,问你是否需要保存?-->输入N,就返回了。

PVE7教程【篇一】硬件虚拟化 显卡直通与GVT-g

原理说明(按需要添加命令):

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: , resolution: up to 1920x1200可用数量i915-GVTg_V5_2 # Video memory: , resolution: up to 1920x1200可用数量i915-GVTg_V5_4 # Video memory: , resolution: up to 1920x1200 可用数量2i915-GVTg_V5_8 # Video memory: , resolution: up to 1024x768 可用数量1

所以想要核显分享给多个虚拟机用的,需要在bios里面设置内存分给核显显存的大小。

二、修改内核模块

命令:nano /etc/modules

【第一步】添加内核模块

vfiovfio_iommu_type1vfio_pcivfio_virqfdkvmgt

PVE7教程【篇一】硬件虚拟化 显卡直通与GVT-g

原理说明:

1、PCIe直通启用vfio vfio_iommu_type1 vfio_pci vfio_virqfd2、vGPU和GVT-g需再添加kvmgt

【第二步】更改任何与模块相关的内容后,您需要刷新 initramfs

update-initramfs -u -k all

同时完成后,应重启以下。可用shell里面reboot,或者web界面重启。

总共也就四步而已,非常简单。

三、效果检测

1、命令:dmesg | grep -e DMAR -e IOMMU -e AMD-Vi

PVE7教程【篇一】硬件虚拟化 显卡直通与GVT-g

2、命令:find /sys/kernel/iommu_groups/ -type l

PVE7教程【篇一】硬件虚拟化 显卡直通与GVT-g

3、命令:lspci

PVE7教程【篇一】硬件虚拟化 显卡直通与GVT-g

注:lspci 显示所有PCIe设备的信息,比如第二个VGA就是Intel的核显,0000:00:02.0就是设备ID,下一个命令就是参看此设备支持的类型。

4、命令:ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types

PVE7教程【篇一】硬件虚拟化 显卡直通与GVT-g

标题二里最后的TIPS里面,i915-GVTg_V5_4,i915-GVTg_V5_8。

最简单的还是直接建一个虚拟机,完成后不要启动,再【硬件】-->【添加】-->【PCI设备】就能看到了。

PVE7教程【篇一】硬件虚拟化 显卡直通与GVT-g

四、问题与总结

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等等软路由了。

PVE7教程【篇一】硬件虚拟化 显卡直通与GVT-g

2、如果你的网卡支持SR-IOV的话,你会发现也变成中介模式了一个网口也能支持给多个设备了。

无图.jpg

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3