基于Drqueue搭建跨校园的云渲染实验平台

2013-09-08 09:16林泳琴黄晨晖
实验技术与管理 2013年8期
关键词:动漫集群服务器

林泳琴,黄晨晖

(1.广州大学 网络中心,广东 广州 510006;2.广东女子职业技术学院 网络中心,广东 广州 511450)

1 项目研究背景

近几年,高校数字信息技术的发展浪潮为动漫产业[1-2]及动漫教学和动漫创作进一步发展提供了机遇。3D渲染对计算能力的需求在目前看来还是难以满足的,即使通过大规模集群计算方式还是需要数个月才能完成一部动漫电影的渲染制作。为进一步充分利用高校的闲置资源以缩短渲染所耗时延,我们在文献[3]研究的基础上,进一步扩展渲染平台,基于开源集群渲染(distributed rendering environment,DRE,又叫分布式渲染环境[4])管理软件 Drqueue[5],借助Multi-Cluster概念,实现了渲染资源和渲染应用跨校园的云渲染实验平台,让更多的高校参与并享用云渲染平台,对于那些本身不具备渲染硬件、或距离完成期限近因而需要更多计算资源来完成渲染的创作团队来说,该平台更适合他们。他们除了能在短时间段内使用大数量渲染机器群外,不用考虑渲染硬件的采购、维护以及服务支持等,也不用考虑所使用软件的成本和额外安装开支。此外,该云渲染平台操作简单,通过浏览器即可提交渲染任务和查看渲染进展状况,平台在数据转换与存储等方面也都采用相关的权限控制和加密措施,为用户提供了企业级的渲染平台。

2 开源渲染管理软件Drqueue

Drqueue[6]是一款开放源码分布式渲染程序,提供的服务接口包括了渲染节点任务的分配、监控和管理等。它支持的渲染器包括:3Dlight,3DSMax,After Effects,Aqsis,Blender,BMRT,Cinema 4D,Lightwave,Luxrender,Mantra,Maya,Mental Ray,Nuke,Pixie,Shake,Terragen,Turtle,V-Ray and XSI等;它支持的操作系统平台可以是:Linux,Mac OSX,Irix,FreeBSD,Windows,它还支持混合平台渲染集群的创建,支持使用Python等以提供完整的接口调用。目前在国内外都有一些小的项目在使用Drqueue,比如 Martian Labs,《加勒比海盗》、《驱魔人》等。我们选择它,是因为它是免费开源的,并且内置了Python[7],可以通过Pythone脚本扩展功能,进行二次开发比较方便。

基于Drqueue的单一集群渲染架构见图1,它与文献[8]给出的集群渲染管理软件架构是一致的。其中,Master节点保存着整个渲染集群的任务队列信息和Slave渲染节点信息,它通常维护一个全局性的数据库,记录节点工作状态以及任务与子任务分配、执行状态等信息。Slave节点负责渲染任务的执行,它会维护一个局部数据库以保存本机资源信息以及所分配的子任务队列与状态信息,同时负责调用渲染器(例如Maya,3DMax等)完成渲染。也就是说,一方面,有自己的状态和任务等信息,另一方面同时要定期向Master更新自己的负载或CPU可用资源等信息。当它可用时,它会向Master发送请求以完成与它的配置文件(操作系统、内存、CPU核数、渲染器等)描述一致的、能胜任的渲染任务。Master一旦将任务分配给Slave,Slave会接收所有跟渲染任务相关的信息(包括渲染文件存放地、渲染器类型、起始和结束帧等),当收到这些信息后,Slave会创建一个新的进程来执行此任务。在实现中,任务脚本必须位于共享存储中,这样所有Slave节点都可以以相同的路径来读取到任务脚本。只要渲染任务没完成,Slave节点会不间断地向Master汇报其存在及渲染进展状况;当渲染任务完成,Slave节点中的渲染父进程会收集各子进程的退出状态,并向Master发送所有信息。基于这些信息,任务自动排队,并标记“Finished”或“Error”。当然,这些信息也可以在应用服务器上进行访问。

图1 基于Drqueue单一的集群渲染架构

3 跨校园的云渲染实验平台的搭建

本项目的其中一个研究出发点是,能否实现将高校闲置的资源共享、运用到动漫渲染中,为教学、科研和小型动漫创作提供坚实的后盾。高校的资源是异地分布的,资源的供给与回收也是动态变化的,为此,探索云渲染就不仅仅只是一个集群渲染,既然是在云计算环境下的渲染,那就有可能存在不同的渲染集群参与同一渲染任务,因此本文引入了Multi-Cluster的概念。在云计算领域里,IBN Platform LSF[9]在2010年提出过Multi-Cluster to the Cloud的概念,并通过优秀的集群调度软件 LSF(load share facility)[10]实现了将云供应商创建的新Cluster加入现有云平台以扩展或提供更强的计算功能,它的实现是通过多集群协调模块(multicluster orchestrator),应用相应的调度策略自动向云供应商创建的新集群分发任务,从而合并本地集群与新集群的计算功能。

借助Muti-Cluster的理念,本文将集群渲染扩展到更广泛的云环境中,其结构架构图如图2所示。其中VM为集群里的虚拟机或实体机,是渲染任务完成的主力军,我们上节也称之为Slave节点,VM-M为渲染集群里的Master节点,负责集群里的渲染任务管理,以及集群间的通信和状态上报等。我们在组建Cluster的时候,同一Cluster通常是机器类型一致的或同一操作系统安装有相同的渲染器,这样处置是因为不同Cluster渲染出来的结果有可能存在色差问题;另外,同一Cluster通常位于同一网络,可以快速访问其相应的文件服务器,节点间的通信开销在可控范围内。

扩展后的渲染流程如下:用户向渲染应用服务器提交了渲染请求后,渲染任务将保存到数据库服务器中,并通知用户将渲染源文件及材质文件等上传至文件服务器F中。由于不同Cluster可能是异地分布的,所以文件服务器也是异地分布的,每个Cluster通常能就近高效访问文件服务器。渲染管理服务器收到渲染任务后,从渲染节点集群集中选择合适的集群(可能是多个,如果是多个的话,需要首先进行任务的切分)执行渲染任务,当渲染任务执行完毕后,一方面,将渲染状态反馈回渲染管理服务器,另一方面直接由执行渲染任务的Cluster返回渲染结果至相应的文件服务器,用户通过上网即可查看渲染状态和下载渲染结果。

图2 云渲染平台的结构示图

为了减少网络拓扑对渲染性能的影响,在渲染节点集群调度中,使用了topology-aware[11]的调度策略,实现了渲染资源就近调度及最大调度。例如:如果在学校A里能找到满足要求的渲染资源可调用,则来自学校A局域网里的渲染请求将优先考虑学校A里的渲染集群,这就是就近分配的原则;若来自学校A的渲染请求(要求N核资源执行渲染任务)在学校A部署的集群集里空闲的CPU已不够N核,但在另一学校B部署的集群里却又满足N核的请求,此时,平台优先将任务分配到学校B部署的集群中执行,从而减少因为渲染任务过分划分导致性能的下降,也尽可能地减少了因为集群机型不太一致导致的色差问题,这就是最大分配的考虑。

4 平台的部署、实现及效果

在学校A的局域网内部署了2个渲染集群C1,C2,在学校B的局域网内部署了另外2个渲染集群C3,C4,每个渲染集群里的渲染节点都是学校A和学校B云平台上的虚拟机VM(64bit),分配给VM的CPU核数和内存可以通过云计算管理平台进行重新配置。每个渲染集群都部署有Drqueue作为渲染管理软件,每个渲染节点安装Centos操作系统,实验中渲染器也采用开源的Blender[12](当然,Drqueue也支持其他渲染器,如maya,3Dmax等常用渲染器)。实验渲染案例是25帧的blender动画,分辨率为8000×6000。平台的渲染时间开销及渲染加速比如表1所示。

表1 平台渲染时间对照表

表1结果表明:在普通实验机上(表1中的第一行)执行的渲染任务应用到该平台上,只需求很短的时间,该平台有很好的加速比,能胜任大创作,并在较短时间内完成渲染任务。

5 结束语

开源的Drqueue更有利于我们在实现中进一步改进和做二次开发。本文基于Drqueue实现了渲染资源和渲染应用跨校园的云渲染实验平台,它把高校的云计算资源很好地应用于动漫渲染,为高校的动漫课程及动漫创作提供了坚实的后盾。目前,已整合了2个高校的云资源,平台的可伸缩性让它可以方便地扩展到多个高校,平台的高渲染加速比让它能更好地服务于高校的动漫专业教学与创作。

(References)

[1]冯俏俏,赵明.我国动漫产业发展困境与对策研究[J].编辑之友,2012(5):62-64.

[2]许盛.高校动漫教育存在的问题及改革对策研究[J].教育探索,2012(7):59-60.

[3]廖宏建,杨玉宝,唐连章,等.基于云计算的动漫渲染实验平台研究与实现[J].实验室研究与探索,2012,31(7):68-71.

[4]Madhavan K P C,Arns L L,Bertoline G R.A Distributed Rendering Environment for Teaching Animation and Scientific Visualization[J].Computer Graphics and Applications,2005,25(5):32-38.

[5]Kazoo.DrQueue Commercial Website[EB/OL].[2012-12-11].http://www.drqueue.org/.

[6]黄晨晖,林泳琴.基于云计算的虚拟计算机实验室的研究与实现[J].实验室研究与探索,2010(11):178-181.

[7]Swaroop C H.A byte of python[M/OL].北京:百度文库.[2012-12-10].http://wenku.baidu.com/view/bd97db0a763231126edb115e.html.

[8]罗秋明,孙宏元.集群渲染管理软件的构建技术与框架设计[J].计算机工程,2008,34(11):249-251.

[9]IBM.IBN Platform LSF[EB/OL].[2012-12-11].http://www.ibm.com/us/en/.

[10]邓绽蕾,谈国新.基于LSF的MAYA集群渲染研究及实现[C]//第三届和谐人机环境联合学术会议(HHME2007)论文集,2007.

[11]Gkantsidis C,Goel G,Mihail M,et al.Towards topology aware networks[C]//INFOCOM 2007.26th IEEE International Conference on Computer Communications.IEEE.IEEE,2007:2591-2595.

[12]Blender,Blender.org-Home of the Blender project-Free and Open 3DCreation Software[EB/OL].[2012-12-11].http://www.blender.org/.

猜你喜欢
动漫集群服务器
通信控制服务器(CCS)维护终端的设计与实现
海上小型无人机集群的反制装备需求与应对之策研究
一种无人机集群发射回收装置的控制系统设计
Python与Spark集群在收费数据分析中的应用
中国服务器市场份额出炉
勤快又呆萌的集群机器人
得形忘意的服务器标准
动漫二次元
锋绘动漫
计算机网络安全服务器入侵与防御