HyperV虚拟机使用物理机显卡直通共享-说明 |
接上文: 以前RemoteFx vGPU还是挺方便用的,直接通过GUI界面操作也很简单容易上手,但现在微软已抛弃RemoteFx,改用DDA。 早期DDA只有独占模式,后期DDA才有了共享模式,我上篇文章采用的就是DDA共享模式。也就是说物理机上一块显卡,可以带动N个虚拟机一起共享使用,提高资源利用率。 使用DDA也需要一定条件的: 1,物理机需要支持SR-IOV/IOMMU(主板BIOS有相关设置) 2,显卡驱动需要支持WDDM2.4以上版本“基于IOMMU的GPU隔离(可以通过dxdiag查看驱动支持的WDDM版本) 3,物理机需要高版本的Hyper-V,也就是系统版本要高一些。 4,虚拟机和宿主机的系统版本需要一致,同时必须从宿主机提取显卡驱动程序到虚拟机。如果宿主机升级了驱动程序,那么虚拟机必须也跟着升级。 5,涉及到显存分配操作,所以虚拟机的检查点,自动停止,保存状态这些都不可用。 6,由于虚拟机操作显卡,所以系统的存在着不稳定的可能性,或者是因为驱动BUG等原因,造成系统整体稳定性下降的情况。经过实测,虚拟机死机并不会对宿主机造成影响。 7,可以使用 命令来查看宿主机显卡的参数,根据查询到的信息再去修改分配给虚拟机的参数 Get-VMHostPartitionableGpu 比如查询到的参数是 PartitionCount : 32
TotalVRAM : 1000000000
AvailableVRAM : 1000000000
MinPartitionVRAM : 0
MaxPartitionVRAM : 1000000000
OptimalPartitionVRAM : 1000000000
TotalEncode : 18446744073709551615
AvailableEncode : 18446744073709551615
MinPartitionEncode : 0
MaxPartitionEncode : 18446744073709551615
OptimalPartitionEncode : 18446744073709551615
TotalDecode : 1000000000
AvailableDecode : 1000000000
MinPartitionDecode : 0
MaxPartitionDecode : 1000000000
OptimalPartitionDecode : 1000000000
TotalCompute : 1000000000
AvailableCompute : 1000000000
MinPartitionCompute : 0
MaxPartitionCompute : 1000000000
OptimalPartitionCompute : 1000000000 那么可以按照这个参数分配给虚拟机 比如 : 下面这行命令,虚拟机的名字是"3DDisplay" Set-VMGpuPartitionAdapter -VMName 3DDisplay
-MinPartitionVRAM 0 -MaxPartitionVRAM 1000000000 -OptimalPartitionVRAM 1000000000
-MinPartitionEncode 0 -MaxPartitionEncode 18446744073709551615 -OptimalPartitionEncode 18446744073709551615
-MinPartitionDecode 0 -MaxPartitionDecode 1000000000 -OptimalPartitionDecode 1000000000
-MinPartitionCompute 0 -MaxPartitionCompute 1000000000 -OptimalPartitionCompute 1000000000 |