VDI越来越热络,部署也越来越广泛,但有一个问题一直困扰着虚拟桌面:虚拟显卡的处理能力

这个困扰导致VDI曾经很长一段时间只能适用于一般的办公解决方案部署,符合不了对于高清/图形密集应用的VDI需求,因此虚拟化厂商一直都在努力想要解决这个问题,时至今日,在硬件厂商的配合下,曙光渐露。。。


VMware 虚拟显卡的发展历程:


1. 初代3D虚拟显卡: Software 3D

VDI部署在高性能较高的x86服务器之上,但无论性能多高,这些服务器默认都只带一块性能极其普通的、显存只有8MB or 16MB的板载显卡,靠这种显卡来负担起普通图形密集应用的需求,别说大量的虚拟桌面,连一个虚拟桌面都不可能。即使如此,VMware还是带来了Software 3D。

在当时硬件资源支持不上的情况下,想出办法通过软件来解决,Software 3D的基本原理就是将虚拟机对显卡的3D图形处理需求交由CPU来运算处理,即使3D处理能力仍然很低,但走出了从无到有的第一步。

Software 3D可以支持较低的DirectX和OpenGL的处理需求,例如1080P高清播放/Aero UI效果等。


显卡虚拟化 炼丹 显卡虚拟现实_ui


显卡虚拟化 炼丹 显卡虚拟现实_显卡虚拟化 炼丹_02



2. 进阶3D虚拟显卡:vSGA (Virtual Shared Graphics Acceleration)

vSGA 可以通过安装在每台ESXi主机上的专业物理GPU来为虚拟桌面提供硬件加速3D图形的能力。

vSGA是View 5.2开始引入的技术,提供了较高性能的图形处理能力,由于与Software 3D同样使用VMware SVGA 3D驱动,得以保持最大限度的兼容性和可迁移性,vSGA支持DirectX v9和OpenGL 2.1的应用需求,开始能够承担一些轻量级的3D和CAD工作负载。

vSGA对于需要比普通显卡需求更高一级的VDI用户是一个很好的解决方案。


显卡虚拟化 炼丹 显卡虚拟现实_运维_03

显卡虚拟化 炼丹 显卡虚拟现实_python_04


显卡虚拟化 炼丹 显卡虚拟现实_显卡虚拟化 炼丹_05


vSGA支持的物理GPU有:

AMD

FirePro S7000 /S9000/S10000

FirePro v7800P/V9800P

NVIDIA

Nvidia GRID K1

NvidiaGRID K2

Nvidia Quadro 4000

Nvidia Quadro 5000

Nvidia Quadro 6000

Nvidia Tesla M2070Q


3. 情义难两全的vDGA (Virtual Direct Graphics Acceleration)

vDGA就将vSphere中的硬件直通(Direct Pass Through)技术引入到VDI桌面中,由View 5.3开始正式提供支持。

vDGA通过为每个虚拟桌面配备一个专用的专业物理GPU,向VDI用户提供了真正的高端工作站级3D图形处理性能。

但vDGA的优缺点也非常明显,优点:实现真正的高端图形工作站级的虚拟桌面 。 缺点:由于vDGA需要将虚拟桌面与专用物理GPU进行1比1配比,因此成本较高昂,受物理限制能够实现此类虚拟桌面的数量非常有限,而且由于使用了DirectPath I / O分配绑定,因此vDGA虚拟桌面不能支持 vMotion、DRS和 HA等虚拟化特性。


显卡虚拟化 炼丹 显卡虚拟现实_显卡虚拟化 炼丹_06

vDGA支持的物理GPU有:

AMD

FirePro S7000 /S9000/S10000

FirePro v7800P/V9800P

NVIDIA

Nvidia GRID K1

Nvidia GRID K2

Nvidia Quadro K2000

Nvidia Quadro K4000

Nvidia Quadro K5000

Nvidia Quadro K6000

Nvidia Quadro 1000M

Nvidia Quadro 2000

Nvidia Quadro 3000M

Nvidia Quadro 4000

Nvidia Quadro 5000

Nvidia Quadro 6000

Nvidia Tesla M2070Q



三种虚拟显卡技术的对比与总结:


显卡虚拟化 炼丹 显卡虚拟现实_ui_07



Software  3D rendering

vSGA

vDGA

使用情况

一般任务工作者

知识工作者/高级用户

图型工作站用户

实现模式

软件共享

硬件共享

专用硬件

特定硬件

不需要

需要

需要

桌面密度

非常高



DirectX

有限支持

支持 (9 only)

支持 (9, 10, 11)

OpenGL

有限支持

支持( (2.1 only)

支持 (2.1, 3.x, 4.1x)

CUDA

不支持

不支持

支持

Video encode

不支持

不支持

支持

Driver

VMware  SVGA 3D graphics driver

VMware  SVGA 3D graphics driver

Specific  Nvidia client driver

vMotion

支持

支持

不支持

HA

支持

支持

不支持

DRS

支持

支持

不支持

Linked clones

支持

支持

不支持



那目前到底有没有一种能兼顾vSGA和vDGA两者优势的虚拟显卡技术呢?

答案是:已经存在,它就是 NVIDIA GRID VIRTUAL GPU (vGPU)  NVIDIA网格虚拟GPU技术

NVIDIA GRID vGPU是业界最先进的虚拟GPU硬件加速技术,可以在不影响高端图形体验的情况下,在多个虚拟桌面之间真正地实现共享GPU硬件加速。


显卡虚拟化 炼丹 显卡虚拟现实_显卡虚拟化 炼丹_08


显卡虚拟化 炼丹 显卡虚拟现实_3D_09


使用NVIDIA GRID vGPU技术,每个物理GPU可以向多达8个用户配置GPU共享。

Nvidia GRID K1 GPU加速卡集成了4个物理GPU,因此一张K1卡最多可以为32个虚拟桌面提供GPU硬件加速。

Nvidia GRID K2 GPU加速卡集成了2个物理GPU,因此一张K2卡最多可以为16个虚拟桌面提供GPU硬件加速。


可惜的是目前只有Citirx的XenServer / Xendesktop / Xenapp能够支持NVIDIA GRID vGPU技术,

而VMware据闻要等到2014年底才提供能够支持NVIDIA GRID vGPU的技术预览版本,等到2015年上半年才能提供正式支持的版本,目前看来VMware在这方面大大落后于主要竞争对手啊,希望正式支持版本发布的时候能为大家带来惊喜吧。


最后,附上一张VDI厂商的虚拟显卡实现情况表给大家参考,从表中可以看出目前citrix在虚拟显卡技术方面确实走在了领先的位置:

显卡虚拟化 炼丹 显卡虚拟现实_运维_10




https://blog.51cto.com/housefull/1394360