基于虚拟化云计算的3D图形渲染系统架构与性能研究
2019-04-29朴钦浩杨华民陈纯毅
朴钦浩,杨华民,陈纯毅
(长春理工大学计算机科学技术学院,吉林长春 130022)
1 研究的目的及意义
在图形学实验室中经常需要并行渲染多个3D场景,但渲染时工具、语言、操作系统都不尽相同,同时单机的GPU渲染能力、内存读写速度也限制了并行渲染的速度。随着云计算中关键技术虚拟化的发展,如今在实现了CPU、内存、存储资源虚拟化的同时也实现了GPU的虚拟化。在这一背景下,本文通过分析当前GPU虚拟化技术的优劣,找到能满足需求的技术搭建面向3D图形渲染任务的云平台,使用户可以在平台服务器上创建多个虚拟机以完成安全的高效并行的3D图形渲染任务。选择虚拟化的云平台是因为可以通过虚拟化将系统中的各种易构硬件资源转换成为灵活统一的虚拟资源,为渲染作相应支撑,使创建真实感图形模型不需要受本地GPU计算能力、存储空间、散热、电量等问题的限制[1-2]。
2 研究背景及国内外研究现状
云计算作为新型计算模式,其最大特征是资源租用、应用托管、服务外包。在面对指数上涨的海量数据时,传统的计算模式存在计算速度受限于内核性能和个数以及待处理数据量受限于内存和磁盘容量两个问题[3]。对此可以通过共享资源和计算能力来解决在互联网上出现的这两个问题,IT界巨头如谷歌、亚马逊等提出了一种以数据为中心的新的商业计算模式以应对互联网上各种媒体数据的快速增长[4]。它是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需求提供给计算机各种终端和其它设备[5]。用户不再需要了解“云”中基础设施的细节,不需要用户精通云计算的搭建、监控、维护等,减少用户的学习成本。云计算描述了一种基于互联网的新的IT服务增加、使用和交付模式,通过互联网和局域网来提供动态易扩展而且是虚拟化的资源[5]。因此,云计算的这种按需远程提供计算量的技术完全符合了3D图形绘制的要求。
在面向3D图形渲染任务时VMware公司提出了一种新的解决方案VMware vSphere。VMware vSphere将应用程序和操作系统从底层硬件分离出来,其核心组件包括ESXi和vSphere Client两个部分。其中,ESXi是安装和运行在服务器裸机最底层的系统,其特点是在实现虚拟化基础上最大程度降低配置要求和简化部署。vSphere Client是远程连接控制组件,vSphere 6.0版本之后舍弃了传统的Client软件,通过浏览器就可以直接远程访问vSphere Web Client登录ESXi服务器,然后在服务器上进行各种操作,比如创建多个虚拟机,安装不同的操作系统,分配内存、硬盘、CPU、GPU、网络等资源,监控服务器运行情况及管理维护等操作。
3 面向3D图形渲染任务的虚拟化技术
为了更好地渲染3D图形还需要GPU虚拟化技术,通常使用虚拟桌面(VDI)的架构,为了实现GPU的虚拟化应基于Horizon View。而Soft 3D、虚拟专用图形加速器(vDGA)和虚拟共享图形加速器(vSGA)三种虚拟化方式针对不同的渲染情况而使用不同的虚拟化方案,不同的方案虚拟化原理不尽相同且有各自的优缺点[6]。
3.1 Soft 3D
Soft 3D是使用软件模拟GPU的方法,使得ESXi主机中的虚拟机获得处理3D图形的能力,其计算性能并不优秀。但是可以为那些只需要一般3D图形处理能力的应用提供一个免费的替代方案,因此Soft 3D针对的是一般简单性的3D图形渲染任务。其优点是只需要软件模拟就可以实现,对硬件没有要求且可以实现动态均衡,实现计算资源的虚拟化;其缺点是由于显卡驱动问题,其对DirectX和OpenGL支持版本较低且兼容性有限。
3.2 vDGA
vDGA针对的是在进行通用并行计算时需要像在独立物理机工作环境或者通用计算量较大的任务一样。GPU硬件对ESXi和对登录到该虚拟机的用户都是透明的。与vSGA不同的是,vDGA中GPU只能用于一台虚拟机而并不能和其他用户共享,因此又叫做显卡直通。vDGA结构图如图1所示。
图1 vDGA结构图
vDGA的优点在于:由于GPU硬件对ESXi服务器可识别,就不需要在服务器上安装显卡供应商的驱动。在将显卡分配给ESXi上的虚拟机后,在虚拟机上可安装最新的显卡驱动,因此对最新的DirectX和OpenGL完美兼容[7]。而且因其具有独占性,通用计算能力强,适合复杂的3D场景绘制,不与其他用户抢占并行计算资源,稳定性较好。vDGA的缺点在于:由于虚拟机和GPU绑定,将不再具有支持ESXi原本支持的vMotion等功能。
3.3 vSGA
vSGA技术使GPU硬件对ESXi服务器透明,但对于虚拟机上的用户不可见。它可以将GPU划分给多个不同的虚拟机,并为每台虚拟机配置可调节大小的显存。而基于vSGA和Soft 3D显示驱动程序的兼容性,在使用vSGA时若GPU资源已被占用还可以自动调节到Soft 3D,使安全性和GPU使用效率大大提高。vSGA结构图如图2所示。
图2 vSGA结构图
相对于只使用Soft 3D技术,vSGA技术可以完全将GPU物理资源划分给多个不同的虚拟机。相对于vDGA技术,vSGA技术增加了可以使用GPU硬件的用户数量;且由于可以自动转换成Soft 3D模式,vSGA技术可以耗尽整个GPU而不用担心虚拟机故障。但vSGA技术的缺点也很明显,vSGA技术对普通GPU的支持性不佳,目前只支持NVDIA GRID K1/K2等专业虚拟GPU。
4 面向3D图形渲染任务的平台搭建
4.1 平台的逻辑架构设计
图3 平台的六层架构
基于功能模块化设计思想,本平台的功能性架构设计采用了分层的逻辑架构[8](图3)。
最底层物理资源层主要包括GPU设备、存储设备、网络设备、计算服务器等。这一层为整个平台提供了基础的运行环境。
Hypervisor也可称为VMM(virtual machine monitor),即虚拟机监视器,是运行在硬件资源和操作系统之间的软件层,其主要实现了多个操作系统和应用对硬件资源的共享,也是所有虚拟化技术的核心[9],使多个操作系统和用户共用服务器集群。Hypervisor根据设置在创建虚拟机或开机时为被操作的虚拟机分配CPU、内存、网络、磁盘并加载操作系统。
GPU虚拟层使用的是上文提到的Soft 3D、vSGA、vDGA三种面对不同用户需求和GPU资源情况,实现在3D图形渲染过程中GPU的虚拟化方案。
VM(virtual machine)是虚拟机,这一层负责用户在使用平台时的OS功能向下获得GPU虚拟层,Hypervisor层虚拟化分配的资源向上对用户透明,这也是用户能接触到的最底层。
平台管理层包括资源管理、用户管理、任务管理、安全管理四个方面。该层主要用来管理平台包括虚拟机的各种资源,在满足用户需求的同时,资源可以被高效利用,并保障平台的安全性。其中,资源管理就是对平台中资源的管理、分配、使用、监控等。任务管理就是对用户提交的申请进行创建、调度、执行、关闭等运行周期的管理。安全管理是从用户访问审查、用户权限等方面保障平台不受外来攻击,避免用户越权操作[10]。该层面向的是平台管理者,对用户不可见。
最上层用户服务层和一般云平台一样,主要功能是为用户提供服务的接口,提供了管理员和用户的访问入口。该层通过统一的Web Client接口对用户提供标准化、规范化的Web Service服务,以及远程访问虚拟机、打开电源、关机等一系列在虚拟机上的操作。
4.2 平台的物理架构设计
在平台的逻辑架构基础上,本研究设计的物理架构(网络结构拓扑图)如图4所示。前端可以是任意物理机,比如笔记本、台式机等,该架构对硬件配置要求极低,即使进行3D图形渲染任务也不会调用前端本身显卡,对操作系统也没有限定要求。所有前端和后端由交换机根据ARP映射表将数据包转发到指定端口。后端ESXi上部署所有渲染任务需要的硬件及承载服务器上创建的各个虚拟机。
图4 网络结构拓扑图
用户根据局域网IP地址直接访问对应的HOST,管理者可以通过浏览器登录VMware Web Client访问ESXi管理整个平台,包括监控整个服务器的CPU、内存、网络、磁盘的使用情况;创建、删除虚拟机、克隆虚拟机、调节虚拟机分配的资源;管理整个服务器的存储网络情况等,界面如图5所示。
图5 ESXi管理界面
5 实验结果与性能分析
5.1 实验环境
5.1.1 硬件环境
实验中的后端节点是1台配置Inter®CoreTMi5-4460 CPU(3.20 GHz)处理器、8 GB内存和1 TB硬盘、NVIDIA Quadro K220 GPU的服务器;前段节点分别是1台配置Inter®CoreTMi7-4700MQ CPU(2.4 GHz)处理器、8 GB内存和1 TB硬盘、NVIDIA GeForce GT 755M GPU的笔记本;2台配置Inter®CoreTMi5-4460 CPU(3.20 GHz)处理器、8 GB内存和1 TB硬盘、NVIDIA Quadro K600 GPU的计算机;1台配置Inter®CoreTMi5-4460 CPU(3.20 GHz)处理器、8 GB内存和1 TB硬盘、NVIDIA Quadro K2000 GPU的计算机;华为S5700S-28P-LI-AC千兆以太网二层交换机。
5.1.2 软件环境
后端操作系统为WMware ESXi 6.7.0;前端操作系统笔记本为Windows 7;3台式机操作系统为Windows 10;渲染工具:Microsoft Visual Studio 2010上调用OpenGL。
5.2 实验内容
实验运行的是基于G3D绘图引擎的在三维空间加载模型方阵的程序,通过控制模型数量监控渲染的帧率以及进行渲染任务时4台虚拟机和主机的CPU、内存、磁盘的读写等情况。前端为3台台式机和1台笔记本,后端为5个运行ESXi服务器上Windows 10的虚拟机。
为了测试本文搭建的渲染平台,通过控制渲染任务中的片元数量来改变场景的复杂程度。通过调节参数P控制3D场景中模型矩阵数量,渲染结果见图6。测试目的:判断前端是否可以在本文搭建的渲染平台上远程完成3D场景的渲染;获得不同场景在不同虚拟机上渲染时间;监控整个过程中CPU占用率、磁盘读写情况、内存消耗情况,找出该平台中对测试影响最大的服务器资源。
图6 渲染的4个三维场景截图
5.3 实验结果与分析
在4台ESXi服务器的虚拟机上同时渲染相同场景,获得4个不同场景中虚拟机渲染的时间对比,如表1所示。根据4个虚拟机在场景1、场景2、场景3中数据波动幅度不大可以分析出,虽然前端物理机硬件条件不同,但并不影响服务器上的渲染效率。而在场景1、场景2、场景3中随着面片数量的增加,渲染时间成比例增加;但在渲染场景4中,渲染时间的波动比较大且操作有卡顿现象。为探寻产生此现象的原因,需要监控渲染场景4时ESXi服务器和各虚拟机的CPU占用率、磁盘读写情况、内存消耗情况。
表1 不同场景在不同虚拟机上的渲染时间对比
根据图7中CPU监控情况可以分析出,在16∶41开机到16∶50运行的阶段,CPU资源占用率有轻微波动且4个虚拟机差异不大;在16∶50分别开始绘制任务,4个曲线同步上升且CPU总占有率基本达到峰值。分析表1可以得出结论,4个虚拟机在CPU消耗较大的情况下占有率最大值和最小值差距不大,但不同虚拟机CPU的平均占有率不同,这是因为绘制任务是逐次开始的,渲染时间越长的CPU占用率越高,相反渲染场景时间短的CPU平均占有率就会低。
图7 ESXi服务器上CPU占用率
服务器上内存占用情况如图8所示,相对于磁盘读写和CPU占用率,内存占用较为平滑,从开机开始占有率持续升高,主机占有率达到上限。根据选择的时间节点数据可知,各虚拟机占用内存较为均衡且总消耗值达到服务器内存上限,服务器内存利用率达到100%。
图8 ESXi服务器上内存消耗情况
根据图8所示,服务器上4台虚拟机的磁盘读写波动曲线较为同步。4台在服务器上的虚拟机在开机时和运行渲染程序开始时波动较大,特别是在渲染时突然出现波峰并且速率迅速下降的情况,这说明在进行渲染任务时除了一开始读取硬盘中的代码数据以外,接下来的渲染过程中只有很少的硬盘读写操作,结合上文5.3章节中内存消耗情况可以得出,渲染占用内存较多,对内存依赖较大。图7、图8表明CPU及磁盘读写还未耗尽,并没有限制虚拟机的运行和场景的绘制;而由图9可以明显看出,从3D绘制开始内存消耗直接到达峰值,且主机内存已全部消耗。结合绘制时虚拟机出现的操作卡顿现象,可以分析出这种情况产生的原因是:4个虚拟机运行的是完整的操作系统,特别是同时进行渲染时申请内存的操作对服务器内存需求较大。因此,针对图形渲染任务,搭建平台时需要重点考虑内存资源,在成本固定的情况下优先分配给内存资源将有助于提高平台的性能。
图9 ESXi服务器上磁盘读写情况
6 结语
针对3D图形渲染任务,本文使用GPU虚拟化技术基于VMware vSphere搭建了稳定且功能强大的云平台,对Soft 3D、vSGA、vDGA三种GPU虚拟化技术的原理和优缺点进行分析。根据模块化思想设计了6层逻辑结构:硬件资源层、Hypervisor、GPU虚拟层、VM层、平台管理层、用户服务层。在此基础上搭建该平台,实现了管理者对资源、虚拟机、网络和存储的管理、监控功能以及用户远程登录虚拟机、完成并行3D图形渲染任务的功能。在进行不同复杂度场景渲染任务多机测试后,本平台成功地实现了设计目标。分析数据表明,该平台在面对面片数极大的三维场景渲染效率方面有待提高,这是由于本平台搭建硬件及Soft 3D技术的局限。下一步研究可以通过增加ESXi服务器GPU和内存来支持使用vDGA完成高通用计算需求的任务。