云计算技术的发展,带给教育、医疗、政府、企业办公等领域的影响与变革正在不断加速。云桌面是云计算的典型应用,在日常办公上,它完全可以代替普通PC电脑,并具有很多独特的优势。
云桌面技术随着虚拟化技术的发展而不断成熟。当前CPU、内存、存储、IO设备的虚拟化技术已经成熟,可以实现多个虚拟机实例共享同一硬件资源。但是,GPU的虚拟化是急需解决的技术难题。GPU在图形图像处理、游戏、视频会议、高性能计算等方面是不可缺少的核心部件,缺了GPU,很多应用都运行不起来。在虚拟化技术中,QEMU(注:一款开源模拟器)对GPU虚拟的支持,很长时间都是纯粹的软件模拟,而没有充分利用硬件GPU的资源,性能大打折扣。
当前主流的GPU厂家如Nvidia、AMD、Intel都发布了自己的GPU虚拟化的技术路线,为硬件GPU虚拟化提供了技术支持,也使得云桌面引入硬件GPU虚拟化成为可能。
当前主流的GPU虚拟化技术
GPU虚拟化技术的发展,经历了从软件共享GPU到GPU透传,再到硬件GPU虚拟化的演进。软件共享GPU能够共享给多个虚机使用,但是存在兼容性与性能的问题;GPU透传性能佳,但是只能虚机独占使用;硬件GPU虚拟化在共享与性能方面做到了两者兼顾。
软件共享GPU
软件共享GPU技术在虚拟机中配备一个特殊的虚拟显卡,该显卡的驱动能够支持特定的标准显卡硬件加速协议(比如DirectX)。虚拟机中运行的操作系统对该虚拟显卡发出硬件加速指令后,Hypervisor将该指令进行转化并运行于物理GPU上。硬件加速协议返回的数据同样由Hypervisor进行转化并传输给虚拟机中运行的虚拟显卡。该技术的出现使得虚拟机能够利用上物理GPU的硬件加速能力,并能够支持传统虚拟显卡无法运行的3D软件。软件共享GPU技术的核心缺陷在于需要对硬件加速协议在虚拟机和物理GPU之间进行转化。这种转化造成了协议兼容性和性能两方面的问题。
GPU透传
GPU透传技术是一种让虚拟机直接访问非虚拟化的普通物理GPU的技术。该技术将物理GPU设备1:1地映射到虚拟机中,给虚拟机呈现一个在功能和性能上都和物理GPU一致的设备。由于对物理GPU无虚拟化功能的要求,普通显卡也能应用。但是该技术要求每个虚拟机都配备一个物理GPU,对于服务器的硬件支持有较高要求。
硬件GPU虚拟化
Nvidia、AMD、Intel都推出了基于硬件实现的GPU虚拟化技术的产品。这种技术使用特殊的GPU芯片并配合Hypervisor让虚拟机能够直接使用GPU的硬件加速功能。与软件共享GPU技术相比,该技术不需要对硬件加速协议进行转换,虚拟机直接与虚拟GPU通信,因此其协议兼容性和性能都有大幅度的提高。
● Nvidia:Nvidia推出的基于Tesla架构的M60显卡,最多可以虚拟化出32个vGPU,支持32个用户同时使用。M60显卡可以虚拟出不同规格的vGPU,满足不同场景、不同负载的需求,这是比较突出的特色功能。值得一提的是,Nvidia M60显卡除了硬件购买成本,每年还需要收取一定的授权费用。
● AMD:AMD在硬件GPU虚拟化上推出的产品是Firepro S7150/S7150X2。AMD S7150X2最大可以虚拟32个MxGPU,能够允许32个虚拟桌面同时使用显卡。AMD的GPU虚拟化解决方案完全基于业界标准的SR-IOV(单根输入输出虚拟化)标准,提供一致的、可预测的性能。SR-IOV标准允许一个GPU给多个虚拟机共享使用,每个用户均可获得相同的GPU访问权,而没有一个用户会占据整个GPU而影响其他用户的系统响应。
● Intel:Intel在某些CPU型号中提供了集成显卡的虚拟化,如E3-1585v5 CPU,它集成了Intel Iris Pro Graphices P580显卡,可以实现最大7个虚拟GPU,分配给7个桌面使用。它的技术方案是GVT-g,针对KVM虚拟化叫做KVMGT,它实质上是针对显卡的分时复用,单个虚机的负载会影响其他虚机的使用。
云桌面GPU应用场景分析
云桌面用户对GPU的需求,可以根据其使用目的分类为轻度使用者、中度使用者、重度使用者(见图1)。
● 轻度使用者:此类用户一般使用云桌面来办公,使用办公软件如Office Word、Excel就可以完成任务,或者是在网上处理工作业务流程,能够访问网页就可以满足其需求。针对这种使用场景,不需要配置硬件GPU,软件模拟GPU就可以满足需求。
● 中度使用者:此类用户除了办公应用之外,有额外的图像处理需求,如玩游戏、看视频、简单的图形设计软件如AutoCAD、3DMax。这类用户有一定的GPU需求,但性能要求不高,提供硬件GPU加速就可以满足其需求。对这类使用场景,软件模拟GPU效果不好,需要采用硬件GPU虚拟化的方案。
● 重度使用者:此类用户一般是专业设计人员,如媒体行业的非线性编辑人员,或者某种专业设计软件的深度使用人员,如CATIA。这种使用场景,对GPU性能的要求非常高,一般配置专业级的图形显卡适配他们的工作需求。针对这种场景,共享式的硬件GPU虚拟化方式可能在性能上不能满足其需求,而采用GPU透传方式,将专业显卡透传给虚机独占使用,可以最大限度的发挥显卡的性能,这种方式适合他们的需求。
中兴通讯云桌面GPU技术方案
中兴通讯作为云桌面行业领先者,是国内为数不多坚持自主研发云桌面系统的厂家,目前可提供基于GPU显卡透传及显卡虚拟化等技术的全套GPU虚拟化方案。
● GPU透传桌面。在基于KVM的虚拟化技术上,研发PCI Passthrough技术,将其集成到桌面产品方案中,从而实现硬件GPU的透传;针对远程桌面协议进行优化,适配硬件GPU透传后的图形质量的提升,提供图像质量更好、运行更流畅的桌面体验;配合使用GPU服务器,能提供多块GPU显卡,提升单主机GPU供应能力,提升性价比;开发了动态显卡调度技术,显卡能在多台虚机之间调度使用,提升资源利用效率。
● 硬件GPU虚拟化桌面。基于KVM的虚拟化技术,集成SR-IOV及PCI Passthrough技术,实现对GPU显卡虚拟化的支持。
GPU虚拟化技术在不断完善与发展,将其集成到云桌面,完善了云桌面的功能,拓展了云桌面的应用范围。有了GPU虚拟化技术,云桌面革命将辐射到各行各业。