本文章所有PowerShell指令均在管理员下执行
参考资料
英伟达vGPU显卡帮助文档
GRID vGPU User Guide :(英文网页/英文PDF /中文网页[可能打不开])
参考资料-文章(感谢这个大佬): https://www.licc.tech/article?id=35
第一步:查看你的设备是否支持
1.1 硬件和系统需求
系统要求: Windows Server 2016 最新的系统是否支持未知
宿主机主板支持 SR-IOV 和 ACS 这些功能
关于硬件可以通过这个页面(Github)的脚本来检测
1.2 如何使用硬件检测的脚本?
下载这个脚本到任意位置,
如果PowerSheel控制台提示禁止使用脚本,可以使用下列指令更改权限
Set-ExecutionPolicy Unrestricted
再运行这个下载下来的脚本即可
按照说明可以判断你的硬件是否可以使用
第二步:创建虚拟机
(建议新建一台来进行实验,也可以用现成的)
2.1 打开新建虚拟机 虚拟机名字为 TEST
2.2.1内存设置
可以不使用动态内存, 如果说使用动态内存那么需要满足启动的RAM和最小的RAM相同 。
2.2.2 自动停止操作内容更改
将“自动停止操作”里面的操作从保存虚拟机状态改为强行关闭虚拟机
2.2.3 检查点类型设置
将检查点类型改为生产检查点,并取消勾选如果......
第三步:从宿主机“下线”设备
3.1 获取设备的位置路径
在设备管理器找到PCIE设备,这里是显卡GTX 750 Ti,并复制其属性中的详细信息中的位置路径的这一项。
即获得的路径是
PCIROOT(0)#PCI(0300)#PCI(0000)
3.2 禁用设备
右键显卡即可禁用设备
3.2 使用Powershell控制台将设备下线
格式规范
Dismount-VMHostAssignableDevice -LocationPath "设备路径" -force
我这里填写:
Dismount-VMHostAssignableDevice -LocationPath "PCIROOT(0)#PCI(0300)#PCI(0000)" -force
3.2.1下线后的结果
这个设备将不会在设备管理器中的“按类型列出设备”中找到
但是可以在“列出资源”中看到
第四步:将显卡连接到对应的虚拟机上
4.1 将设备连接至虚拟机
命令格式
Add-VMAssignableDevice -LocationPath "设备路径" -VMName 虚拟机名称
我这里输入
Add-VMAssignableDevice -LocationPath "PCIROOT(0)#PCI(0300)#PCI(0000)" -VMNameTEST
如果一直到这个位置都是正常的 一般情况下是成功了的
4.2检查是否成功绑定上虚拟机
Get-VMAssignableDevice -VMName TEST
大功告成
这个是否通常情况下只要硬件没有问题,就可以体验直通过后的显卡了,具体的优化措施与细节可以去看参考内容中的参考资料-文章。
无法使用 想要还原?
如果你进行到这一步,发现系统不支持而且不能正常使用
可以将设备与对应虚拟机解除绑定并重新上线设备:
5.1获取设备名称
命令格式
Get-VMAssignableDevice -VMName 虚拟机名称
我这里要输入
Get-VMAssignableDevice -VMName TEST
获取虚拟机中设备的位置路径,
这里的位置路径和前面的位置路径是一样的
即获得的位置路径是
"PCIROOT(0)#PCI(0300)#PCI(0000)"
5.2 解除与虚拟机的绑定
命令格式
Remove-VMAssignableDevice –LocationPath "位置路径" -VMName 虚拟机名称
我这里要输入的
Remove-VMAssignableDevice –LocationPath "PCIROOT(0)#PCI(0300)#PCI(0000)" -VMName TEST
TIP:从这里复制代码到PowerShell可能会使-LocationPath
前面的一个小斜杠“-”消失,暂时不清楚是什么BUG,大家请注意。
5.3 重新上线设备并启用设备
命令格式
Mount-VMHostAssignableDevice –LocationPath "位置路径"
我这里要输入的
Mount-VMHostAssignableDevice –LocationPath "PCIROOT(0)#PCI(0300)#PCI(0000)"
重新上线设备成功
这个时候再启用设备即可,和刚刚的禁用设备步骤一样。