PVE开启显卡虚拟化intel GVT-g

终于搞到了一台实验机子。本次实验环境为:

PVE: 6.2
CPU: g5400
主板: 铭瑄h110

注意,intel gvt-g技术,只支持5代以上桌面CPU或者4代以上服务器CPU

第一步:开启主板的虚拟化,这个自行在主板中开启。

第二步:开启PVE的直通功能

开启iommu和GVT-g支持

#开启iommu和gvt内核 
#编辑grub
vi /etc/default/grub
在里面找到:GRUB_CMDLINE_LINUX_DEFAULT="quiet"
然后修改为:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on i915.enable_gvt=1"

#update grub
update-grub

加载直通内核模块

echo vfio >> /etc/modules
echo vfio_iommu_type1 >> /etc/modules
echo vfio_pci >> /etc/modules
echo vfio_virqfd >> /etc/modules
echo kvmgt >> /etc/modules

屏蔽驱动

echo "blacklist radeon" >> /etc/modprobe.d/blacklist.conf 
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf 
echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf 
echo "blacklist nvidiafb" >> /etc/modprobe.d/blacklist.conf 
echo "blacklist amdgpu" >> /etc/modprobe.d/blacklist.conf 
echo "blacklist snd_hda_intel" >> /etc/modprobe.d/blacklist.conf 
echo "blacklist snd_hda_codec_hdmi" >> /etc/modprobe.d/blacklist.conf 
echo "blacklist i915" >> /etc/modprobe.d/blacklist.conf 

将显卡加入直通

通过lspci 命令查看核显序号,一般是00:02.0 。这里以00:02.0 为例

#查看直通设备
root@pve2:~# lspci -n -s 00:02.0
00:02.0 0380: 8086:3e90
#将8086:3e90 这个设备加入直通组
echo "options vfio-pci ids=8086:3e90" > /etc/modprobe.d/vfio.conf

第三步:重启主机

第四步:验证是否开启GVT

ls /sys/bus/pci/devices/0000:00:02.0/mdev_supported_types/  #自觉将00:02换成自己的。
#出现下面4个选项或者类似的即成功。
i915-GVTg_V5_1	i915-GVTg_V5_2	i915-GVTg_V5_4	i915-GVTg_V5_8

第五步:创建虚拟机

新建OVMF EFI虚拟机,把cpu类型设置成HOST。将主板设置成q35。安装好系统,开启远程桌面。关机,将虚拟机显卡设置成无。添加PCIE设备。

如上图所示,注意,看后面的显存。勾选高级里的ROM-BAR和pcie。主GPU不勾选。

开机之后,远程连接上去,安装好驱动即可。在远程桌面设置里,开启remotefx。(开启remotefx教程)。就可以看到显卡正在使用了。注意在连接的时候,一定要把体验设置成LAN

总结

开启简单,但是性能稍微有些弱了一点,GVT-G技术, 并不像s7150/nvidia k1那样,将显卡独立成几个模块,反而是共享显卡的性能。

我开了2个虚拟机,其中一个进行3D测试的时候,另外一台显卡占用竟然满载。

这确实是一个不好的地方,

Author: 佛西

2 thoughts on “PVE开启显卡虚拟化intel GVT-g

  1. 目前我独显单独直通给某个虚拟机,我还可以把核显做成虚拟化给其他虚拟机公用吗?可以的话需要如何操作?谢谢

    1. 您好,可以的。独显和核显没有冲突的。您可以像直通独显一样,直通核显,然后接显示器。如果是使用上面讲的GVT-g,那么您的核显是不能现实画面的,必须使用rdp或者xendesktop这种连上虚拟机才行。

Leave a Reply

Your email address will not be published.