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的使用率也掉下来了,使用体验流畅多了。
今天的教程就到这了,感谢开发者的持续努力,如果有能力的话,还请支持下正版,拜拜~~
Crucis
校验提示文案
值友3005505238
校验提示文案
NICHX
校验提示文案
需要多长的昵称呢
校验提示文案
查-无此人
校验提示文案
值友1674491490
校验提示文案
chxmgood
校验提示文案
值友5523399418
校验提示文案
值友9092102777
校验提示文案
还得取个名字
校验提示文案
xmskf
校验提示文案
joker95275
校验提示文案
偏北就是我
校验提示文案
兰瑟儿
校验提示文案
嘉然辣辣米
校验提示文案
值友6951739088
校验提示文案
BiN12Ni
校验提示文案
FH113
因为我的系统好奇怪,只要删除相关命令,docker就无法启动序列。
校验提示文案
CentWind
我有48G内存,我是不是可以直接给划个16G,这样性能会好一些?
另外还有个想问的,unraid的docker我仍然使用核显直通,性能是不是和以前基本一样?
校验提示文案
FH113
校验提示文案
Frankios
GVT-g is currently only supported on:
Client platforms: 5th, 6th, 7th, 8th, 9th and 10th Generation Intel® Core Processor Graphics
校验提示文案
矛盾96
我的只有128M,对这个专用内存有点疑惑,因为我分配的i915-GVTg_V5_1,觉得应该是512M以上。加上远程桌面并不是很流畅。怀疑哪配置出了问题.....
校验提示文案
悬崖2011
校验提示文案
值友8135483195
校验提示文案
祥子1986
校验提示文案
Pedro_Pascal
校验提示文案
衷端
校验提示文案
临江听雨
校验提示文案
大叔爱电脑
校验提示文案
spoorer
校验提示文案
[已注销]
校验提示文案
ycrobin
校验提示文案
绿鲤鱼于驴
校验提示文案
值友7941327595
校验提示文案
值友9899644404
校验提示文案
拾贰_SHiER
校验提示文案
二十九画生
校验提示文案
madisonjiang
校验提示文案
值友1972708800
校验提示文案
Grays
校验提示文案