桌面和应用虚拟化

Horizon 7 中的 GPU 方案

很多行业都需要用到 3D 设计,如建筑、汽车、船舶、飞机、动漫设计等,3D 设计需要消耗大量的运算资源,应用 GPU (Graphics Processing Unit) 可以大大加速 3D 渲染的速度,提高 3D 设计的效率。

 

3D 设计选用桌面虚拟化方案除了具有 VDI 的常见好处之外,主要的驱动力来自于 3D 设计中的一些特殊需求:

  • GPU 可以大大提高三维模型的渲染速度,提高工作效率,但是成本比较高,采用 vGPU 方案可以大幅降低成本;
  • 3D 设计的数据文件都很大,在工作站之间传递文件比较费时,完全放在后台服务器上可以提高数据共享的访问效率;
  • 知识产权保护:对设计公司来说,设计图纸就是核心资产,设计模型放在后台了,就可以实现集中管控,最大限度地防止数据窃取。

 

各种 GPU 技术

首先来科普一下桌面虚拟化环境下各种 GPU 技术:

 

1. Software 3D

就是完全用软件来模拟 GPU 的功能,对于 3D 设计软件来说还是可以在虚机中调用 3D 图形驱动程序来实现各种 3D 运算,但这些运算都是由宿主机的 CPU 来完成的,当然速度比 GPU 差远了,而且会占用 CPU 资源。这种方式只是作为一种权宜之计,作为 GPU 资源不够(或根本没有)时的一种补充,但对用户来说好歹可以在虚拟桌面中运行那些 3D 设计软件了。

 

2. vSGA

vSGA (Virtual Shared Graphics Acceleration) 是可以把物理 GPU 分享给多个用户的,每个虚拟桌面中的 SVGA 驱动会通过安装在 ESXi 中的 GPU 驱动程序来调用 GPU 的运算功能,但这种共享通过 Hypervisor 中的驱动程序转了一道手,效率比起下面介绍的 vGPU 要低一些。

3. vDGA

vDGA (Virtual Dedicated Graphics Acceleration) 也称之为直通 (Pass Through) 模式,物理 GPU 被分配给一个特定的虚拟桌面,是供一个用户专用的,特别适用于一些重度使用 GPU 资源的用户,如动漫制作、石油勘探等领域。vDGA 是所有 GPU 模式中性能最高的,当然成本也最贵,因为 GPU 是被一个用户独占使用的。

4. vGPU

vGPU (Virtualized GPU) 技术把一块物理 GPU 虚拟化成几块虚拟的 vGPU,每个虚拟桌面都有一块 vGPU 卡,所有的 3D 图形运算请求都是交给 vGPU 来完成,vGPU 直接跟物理 GPU 通讯完成相关任务,所以这种方式要比上面提到的 vSGA 模式效率高很多。vGPU 跟 vSGA 相比,除了性能更高,也支持更新版本的 DirectX 和 OpenGL;跟 vDGA 相比,vGPU 的均摊使用成本要低很多。

 

Horizon 7 中新增的 GPU 方案

 

Horizon 6 中支持 vDGA 技术的 GPU 方案有 NVIDIA 和 AMD 两家,支持 vGPU 的就只有 NVIDIA 一家了。在此基础上,Horizon 7 中又增加了两种 GPU 方案:Intel vDGA 和 AMD GPU 虚拟化。

 

1. Intel vDGA

Horizon 7 开始支持 Intel CPU 的内置显卡,具体支持 Broadwell 和 Haswell 系列 CPU,利用 vDGA 直通技术来使用服务器 CPU 内置的 GPU 处理器,同时支持虚拟桌面和托管应用两种模式。

 

2. AMD GPU 虚拟化

AMD 采用了 SR-IOV 技术来支持 GPU 的虚拟化。SR-IOV 叫作单根虚拟化(Single Root I/O Virtualization),是 Intel 从硬件上支持虚拟化的技术,Intel 在 CPU 和PCI 总线上提供了三层虚拟化技术:

  • 基于处理器的虚拟化技术VT-x
  • 基于PCI总线实现的IO虚拟化技术VT-d
  • 基于网络的虚拟化技术VT-c

SR-IOV 就是应用 VT-d 来实现硬件虚拟化的一种技术。大家见得比较多的就是各种支持 SR-IOV 的网卡,能把一个网口虚拟化成几个网口,分配给多个虚拟机使用。

这次,AMD 通过 SR-IOV 技术来把 GPU 虚拟化了,并且用到了 AMD 的多用户 GPU (Multiuser GPU) 技术。 AMD 宣布最高可支持15个用户(为什么是15个,而不是16个?),并且支持 OCL 2.0、OpenGL 4.4 和 DirectX 12 这些标准。

 

Horizon 7 的推出,为 3D 设计应用桌面虚拟化提供了更多 GPU 方案选择。