写在前面:请先确保你的核显驱动支持开启SR-IOV
确保你的BIOS开启了以下选项:
VT-D VMX
IOMMU
Above 4G
ResizeBAR
自行通过以下命令确认支持情况:
dmesg | grep -i iommu
dmesg | grep DMAR
- 分配1个虚拟vGPU:
echo 1 | sudo tee /sys/bus/pci/devices/0000:00:02.0/sriov_numvfs
- 检查vGPU是否绑定了i915驱动:
lspci -nnk | grep -A3 VGA
- 解除i915驱动的绑定:
echo 0000:00:02.1 > /sys/bus/pci/devices/0000:00:02.1/driver/unbind
- 将vGPU绑定为vfio状态:
echo 8086 4690 > /sys/bus/pci/drivers/vfio-pci/new_id
- 验证是否成功:
lspci -nnk | grep -A3 VGA
- 创建一个igpu.xml文件内容如下,用于稍后将vGPU动态挂载到virsh虚拟机中:
<hostdev mode='subsystem' type='pci' managed='yes'>
<driver name='vfio' />
<source>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x1'/>
</source>
</hostdev>
- 群晖VMM虚拟机运行后,执行:
virsh list
命令列出虚拟机
8. 将vGPU动态挂载到vmm虚拟机中:virsh attach-device 0c893160-b124-4ac1-8c53-e17d2ffc039c /volume4/docker/igpu.xml
可能遇到的问题:
vGPU分配到win10虚拟机后,设备管理器中显示感叹号。 解决方法:虚拟机win10里点重启
推荐的方法:
将virsh attach-device 0c893160-b124-4ac1-8c53-e17d2ffc039c /volume4/docker/igpu.xml这条命令在群晖控制面板中创建一个计划任务(勾选root执行)
然后分别打开VMM窗口和计划任务窗口
右击你刚才创建的计划任务,点运行,会有一个确认运行窗口,先不要点确认,然后VMM窗口中开机虚拟机,
等VMM窗口中虚拟机的状态从【正在准备】变为【运行中】马上点击计划任务窗口的确认执行,不出意外,虚拟win10开机后核显就不会有感叹号了。
废话篇:
你的黑群晖重启后,需要重新执行以上命令分配vGPU
你的虚拟win10(11)关机再开也需要重新virsh attach-device动态挂载vGPU
以上命令中的各种设备ID,UHD770可以照抄,其他核显 比如UHD730 750需要根据自己的设备ID做修改
本文可以转载,需注明出处
最后辟谣以下大伙以前的刻板印象,觉得群晖VMM虚拟机性能就是不行
以下是鲁大师跑分,足以打脸了
以下为真机跑分,可以看到cpu仅仅少了5.8w分 cpu损耗只有约11%
而核显则是做到了差不多550ti的性能
不过我们在虚拟机里并不太需要核显的3D性能,而是需要它的视频编解码能力,可以在虚拟机里使用剪映进行视频处理,比如给视频美颜,导出速度比纯cpu计算要快很多