IGPU的显卡虚拟化这次真的来了--基于unraid
追加修改(2021-06-21 10:07:33):
第一次更新:
评论里面说看完不知道能做什么,所以追更一下简单科普下虚拟化吧,玩过虚拟机的应该都知道,通过虚拟化系统,你可以在一台机器上同时跑Windows,Linux,黑苹果,黑群晖等系统;过去我们使用的基本只是CPU处理器虚拟给各个模拟的系统使用,虚拟机上的图形界面用CPU跑出来的显卡效果很差,卡顿严重,所以虚拟的这些系统基本都只能拿来跑不需要图形界面显示的软件;要想达到正常能用的效果,最好能将内置的GPU显卡也进行虚拟化并提供给虚拟机使用,这样做出来的虚拟机才更有使用价值;
那IGPU虚拟化之后能做什么呢?你可以在虚拟的win10上面挂机网游、视频转码、远程到主机上看网页视频的效果也会更流畅;虚拟的黑群晖,可以加速视频转码图片识别;虚拟的黑苹果可以使用更加丰富的特效和流畅的界面;等等等~~~~
背景:
Intel的显卡虽然性能弱,但是对于解码,3d加速、基本的画面显示加速是真的够用,而且关键的是NVIDIA和amd的显卡虚拟化技术一直只能在高端卡上使用,与普通用户基本绝缘;相反Intel的显卡虚拟化技术Intel GVT-G入门门槛较低,而且也确实能带来明显的体验提升。
本次实验环境基于:unraid 6.9.2,低于此版本的请自行升级。
由于国内unraid的活跃度不高,但各种技术玩法基本都能在国外论坛找到答案,也希望感兴趣的有能力的同志能去国外论坛多多搬运,一起进步(白嫖)。因为国外的教程写的很详细,这篇文章其实只是做点翻译、总结实践。
显卡虚拟化之后,最终能得到什么:
1、虚拟机使用显卡不再需要直通IGPU,一个IGPU可以同时服务多个虚拟机使用,转码视频等体验更流畅;
2、不影响宿主机docker的使用,比如宿主机emby的转码配置;
3、理论上,vm虚拟的黑苹果、黑群晖也能同时享受到等同显卡直通的效果;(这个目前没有实践)
缺点:
连接的主板显示接口无法提供虚拟机的显示输出,也就是你链接了一个虚拟的GPU到虚拟机,可以提供显卡加速,远程桌面可以配置使用显卡,但并不能将win10 桌面通过主板的显示接口显示到显示器上面,主板显示接口显示的依然的是unraid的界面;
但即便如此,IGPU的使用也可以更大化的发挥啦~~
正文开始:
准备工作:
1、确保unraid系统版本为6.9.2及以上,低于此版本请先自行升级;
2、确保显卡没有在 VFIO 中配置,即没有直通给任何一个虚拟机使用;有直通过的请先去掉;
3、将显示器连接到主板的显示接口,并在下一步中进入bios中设置IGPU为主显卡,目的是让IGPU能保持在激活状态;(即使配置完成后,最好也将显示器连接在显卡接口处,如果不连接显示器最起码连接一根hdmi线上去)
4、暂停所有虚拟机和docker服务;需要连接的VM虚拟机需要为Q35 类型,尤其注意默认WIN10虚拟机的类型为I440fx,不能使用vGPU(虚拟GPU)
5、如果之前在 /boot/config/go 中手动配置过IGPU的相关命令,比如类似
modprobe i915 && chmod 777 /dev/dri/*
也请删除掉这些命令,新版插件会自动做好相关配置;
下一步:
准备工作完成,重启开机进入bios界面,各主板相关配置可能有细微差别,请仔细找找;
1、Primary Display 设置为 IGPU ,尤其是你有多个显卡的情况下;(教程讲的,应该是为了保持IGPU的激活状态)
2、aperture size 可以调大 (可以简单理解为IGPU分配的显存,越大就可以链接给更多的虚拟机使用,虚拟机也可以使用更高的分辨率)
3、bios保存,重新进入unraid,在app store 中搜索 Intel GVT g 并安装,安装完成后会让你重启;
重启结束,正常的话就配置完成了,我们在setting =》 Intel GVT-G 找到入口
使用方法:
1、我们按照老方法先正常安装虚拟机,在虚拟机类型中设置为Q35(尤其是win要注意,已安装的win10虚拟机最好保留磁盘并删除重建,直接编辑可能会存在问题,当然你也可以试试,如果发生错误再保留磁盘重建)
2、安装完成,关闭虚拟机,在GVT-g 插件中 分配vGPU到虚拟机,不需要编辑虚拟机的配置文件;之后可以重启虚拟机即可识别到显卡啦;
以win10 为例,配置远程桌面开启remotefx,以便能在远程桌面中使用显卡:
1、安装完成,配置好静态IP,并打开远程桌面;
2、在unraid的 GVT-g插件中, 选择一个模式的vgpu 连接到该虚拟机,不同模式支持的分辨率不一样使用的显存也不一样;
3、开启win10虚拟机,远程桌面进入到系统;在设备管理中我们已经可以看到识别到两个显示适配器;
4、安装驱动,正常情况下可以等着win10 自动联网安装,也可以自己到Intel的官网下载对应版本的驱动
5、安装完成后重启Win10 ,即可正常识别到显卡
6、最后一步,因为默认微软的远程桌面,是不使用显卡的,我们还需要手工开启remotefx,才能在远程桌面中使用;WIN+R打开运行,输入 gpedit.msc ,进入组策略配置。
依次进入 计算机配置 ==》管理模板 ==》 Windows组件 ==》远程桌面服务 ==》远程桌面会话主机 ==》远程会话环境
修改相关的配置,如图所示:
刷新组策略: Win + R 打开运行 输入 gpupdate /force ,刷新组策略,断开 远程桌面重新连接,即可使用显卡啦;
在远程桌面上打开一个视频播放,GPU的利用率起来了,视频播放也比之前直接使用远程桌面流畅多了,CPU的使用率也掉下来了,使用体验流畅多了。
今天的教程就到这了,感谢开发者的持续努力,如果有能力的话,还请支持下正版,拜拜~~










校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
因为我的系统好奇怪,只要删除相关命令,docker就无法启动序列。
校验提示文案
我有48G内存,我是不是可以直接给划个16G,这样性能会好一些?
另外还有个想问的,unraid的docker我仍然使用核显直通,性能是不是和以前基本一样?
校验提示文案
校验提示文案
GVT-g is currently only supported on:
Client platforms: 5th, 6th, 7th, 8th, 9th and 10th Generation Intel® Core Processor Graphics
校验提示文案
我的只有128M,对这个专用内存有点疑惑,因为我分配的i915-GVTg_V5_1,觉得应该是512M以上。加上远程桌面并不是很流畅。怀疑哪配置出了问题.....
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案