VMware GPU虚拟化技术详解:Soft 3D、vSGA和vDGA

最近,图形处理器(GPU)硬件技术的快速发展使得人们对于图形密集型程序虚拟化产生了更大的兴趣。现在,使用soft 3D、vSGA和vDGA技术,Horizon View可以通过多种方式来实现VMware GPU虚拟化。

  因为VMware产品被广泛使用,所以许多使用虚拟桌面基础设施(VDI)的企业都可以利用Horizon View中的GPU虚拟化功能来提高图形密集型应用的性能表现。但是不同的VMware GPU虚拟化方式——Soft 3D、虚拟共享图形加速器(vSGA)和虚拟专用图形加速器(vDGA)——其工作原理不尽相同,适用的情况也有所不同。

  Soft 3D

  Soft 3D允许VMware ESXi主机中的虚拟机(VM)使用软件模拟来GPU——并不需要物理显卡。这并不能提供很高的处理性能,但是可以为那些只需要一般3D图形处理能力的应用提供一个免费的替代方案。通过VMware Tools将显卡驱动安装到Windows桌面上。在使用Soft 3D的情况下,虚拟桌面依旧可以通过vMotion技术迁移到其他主机服务器上。但是需要记住显卡驱动对DirectX 9.0c 和OpenGL 2.1标准只提供有限的兼容性。

  vSGA

  对于使用轻量级2D和3D应用程序的员工,vSGA允许ESXi使用安装在服务器上的物理GPU。它可以将GPU划分为多个不同的虚拟适配器,为每台虚拟机分配最高512MB的图像内存。因为vSGA使用和Soft 3D同样的显示驱动程序,所以可以很容易地实现从软件加速到硬件加速的转换。比如,如果服务器GPU内存已经耗尽,其他虚拟机将会自动选择使用Soft 3D,以避免出现故障。

  Horizon View 5.2和更高的版本支持VMware vSGA。为了启用vSGA,需要在虚拟桌面的ESXi hypervisor上安装显卡驱动。之后,从Nvidia网站下载针对GPU的vSphere安装包。(AMD也为运行在ESXi 5.5服务器上的FirePro系列GPU提供了一些驱动。)在启用vSGA时,需要特别注意桌面虚拟机的硬件版本。一些之前的硬件版本可能只支持最大128MB虚拟内存。

  在ESXi上安装GPU驱动之后,可以通过选择以下方式来决定虚拟机如何使用GPU:

  自动:这种方式在资源可用性和是否使用硬件GPU帮助应用程序交付方面提供了一定的智能化。如果GPU过于繁忙,这种方式就在后台自动选择Soft 3D。虽然在vSGA和Soft 3D间切换会需要一定性能开销,但是使用这种设定,就不需要管理员进行手动切换了。

  硬件:使用这种设定意味着强制虚拟机使用物理GPU。虚拟机在没有GPU的服务器上将不能启动或者进行迁移。如果使用这种方式,需要确保拥有足够的GPU资源;否则,如果GPU被全部占用,你将面临着出现故障的风险。

  软件:这种设定强制虚拟机使用软件模拟GPU,这可能会起到很大帮助,因为其可以防止桌面虚拟机使用硬件GPU,保证你可以将虚拟机迁移到一台没有安装GPU的服务器上。

  禁用:使用这种方式,将不支持所有的3D图形、硬件或者软件方式。你可以使用这种方式来确保如果特定的虚拟机只需要基本的显示功能,将不会增加服务器的图形处理负载。

  vSGA的主要优势在于增加支持的用户数量。它可以分割GPU,直到耗尽所有虚拟内存。访问GPU硬件的特性使得其可以获得比单独3D显卡模拟器更好的性能表现。

  vDGA

  对于那些需要其图形密集型应用可以拥有像在单独工作站上的性能表现的用户,可以使用vDGA。它允许ESXi直接访问GPU,并且虚拟桌面会话可以直接使用GPU。但是不同于vSGA,vDGA并不共享GPU。GPU的处理能力将只能用于一台虚拟桌面。

  在你安装了物理GPU之后,ESXi服务器就可以识别它。不同于vSGA,你并不需要在服务器上加载针对不同供应商的驱动。在桌面虚拟机中,GPU被加入到虚拟机的可用硬件资源中。本地显卡驱动安装在虚拟机中。因为桌面虚拟机使用最新的显卡驱动,所以可以支持更多的DirectX 和OpenGL标准。

  vDGA在Horizon View 5.3开始被支持,但是其并不支持vMotion,因为虚拟机被绑定在分配的服务器GPU硬件上。它还限制了服务器安装的单独的GPU的数量——最多8个。vDGA的优势在于性能表现,因为其使用专用GPU,并且拥有支持更高DirectX和OpenGL标准的驱动。

  vSGA和vDGA都运行在vSphere ESXi的hypervisor层。因为Citrix XenDesktop不依赖于任何hypervisor,所以即便XenDesktop虚拟机运行在ESXi hypervisor中,其依旧可以使用vSGA和vDGA特性。