自桌面虚拟化起,对图形处理要求很高的用户一直在与VDI管理员迁移到虚拟桌面的努力做斗争。
Citrix的HDX、微软的RDP以及VMware的PCoIP协议已经提升了CAD、3-D建模、图片以及视频编辑应用的性能,但是在支持如下应用——比如Photoshop或者AutoCAD时,和传统的物理机相比仍旧存在差距。
我们每天都需要访问访问高分辨率的图像,即使是常见的最终用户应用比如Google地图,都有可能使高配置的桌面虚拟主机停止响应。没有GPU,服务器的CPU只能独自忍受图形负载。
通常,为与其他用户的会话共存,IT系统管理员不得不调低应用对资源的需求。降低分辨率、限制色深、降低视频帧率。以上妥协措施使得使用虚拟桌面的用户所获得的体验要低于PC机,这正是IT部门坚持大多数用户使用传统物理工作站的原因所在,因为配置了高性能物理显卡的PC机能够满足对图像渲染要求较高的应用的需求。
XenDesktop以及View对vGPU的支持
幸运的是,显着的技术提升使虚拟桌面能够更好地访问基于服务器的GPU硬件。现在虚拟GPU是有可能的,因此从概念上讲GPU能够像处理器、内存以及网络硬件一样被共享。vGPU能够被切分为更小的单位以更高的效率满足高密度桌面会话的要求。
对某些VDI用户来说,虚拟单元的性能仍旧不够强大。对这些用户来说,GPU可以借助hypervisor建立与虚拟桌面会话的直通模式。直通GPU开销更低因为没有经过虚拟化层。该方法的不足之处在于GPU无法被其他会话共享使用,只有特定的虚拟桌面会话才能使用该GPU。
很多厂商在其桌面虚拟化平台中采用了GPU技术比如Nvidia的对vCPU提供支持,下面简要介绍下相关产品。
Citrix vGPU。Citrix最近发布了XenDesktop 7.1以及XenServer 6.2 SP1,上述产品采用vGPU技术对Nvidia GRID GPU卡提供了内置支持。Cisco、IBM、HP、Nutanix以及其他厂商的某些服务器采用了Nvidia的GRID K1和K2 GPU卡。K1 GPU卡包括了四颗入门级的GPU,CUDA总核心数为768。K2卡包括两颗高端GPU,CUDA核心数为3072。K1卡适用于高密度用户会话场景,K2卡针对数量更少的用户进行了优化但性能级别更高。
XenDesktop虚拟机能够访问多种内存大小的vGPU,分辨率更高而且最多能够增加4个额外的显示。专用的直通GPU支持基于操作系统的服务器以及基于操作系统会话的桌面。一块K1卡能够支持多达32个活动的vGPU或者4个直通GPU。一块K2卡能够支持多达16块活动的vGPU或者两个专用的直通GPU。桌面虚拟机能够加载Nvidia显示驱动并支持DirectX以及OpenGL标准。XenDesktop服务器操作系统桌面,之前称之为XenApp,只支持GPU直通。
VMware vSGA
VMware的Horizon View使用虚拟共享图形加速卡(vSGA)对ESXi服务器上的共享GPU提供支持。与Citrix的vGPU不同,vSGA没有使用厂商内置的驱动,使用的是专用驱动。对于某些没有正式支持该显示驱动的应用比如AutoCAD以及SolidWorks来说可能会存在潜在的问题。除Nvidia GRID模型外VMware vSGA还支持AMD的ATI GPU。
针对高端用户,VMware在配置了GRID卡的服务器上提供了虚拟专用图形加速卡(vDGA)。和XenServer服务器上的Citrix直通GPU类似,vDGA使用的驱动是支持良好的Nvidia驱动。
微软
随着Windows Server 2012以及Windows Server 2012 R2的发布,RemoteFX特性针对运行在Hyper-V之上的虚拟机提供了vGPU共享支持。Hyper-V vGPU服务器需要使用支持SLAT的处理器,与DirecX 11.1兼容的GPU以及与Windows显示驱动模型1.2兼容的驱动。支持的RDS客户端仅限于Windows 7 SP1以及Windows 8企业客户端。远程桌面会话主机并不被vGPU共享所支持。