基于IBRIX分布式存储进行动画电影渲染

2021-04-26 08:51窦熙洋
现代电影技术 2021年4期
关键词:网关分布式架构

窦熙洋

(中影动画产业有限公司,北京 101400)

1 引言

现如今动画电影需要大量渲染时间,一般会有上百台甚至上千台主机同时进行渲染。首先会产生大量渲染数据,对存储空间有一定的要求,其次就是上百上千台主机会同时访问存储,会给存储服务器带来很大的数据压力。现在市面上存储架构具有代表性的有SAN 架构存储、NAS架构存储、DAS架构存储,存储服务器读取数据的模式大有不同,可分为分布式和集中式两种。为满足动画渲染的存储,中影动画产业有限公司 (以下简称 “中影动画”)选择了IBRIX 分布式文件系统。

本文主要阐述了动画制作渲染平台如何选择存储,动画渲染对数据处理的需求,以及动画制作数据的特殊性,如何通过改变存储结构来解决动画制作和动画渲染的实际问题。

2 存储架构定义

现在市面上存储架构具有代表性的有SAN 架构存储、NAS架构存储和DAS架构存储。

2.1 DAS 架构存储 (Direct-Attached Storage,直连存储)

DAS架构存储是直接连接主机的存储。通过存储控制器直连服务器,服务器经识别scsi设备,对大量的scsi设备进行逻辑卷编辑格式化,最终实现数据存储以及文件共享。

优势:结构简单,所需要的硬件设备较少,易于部署,适用于单台设备存储数据;缺点:多台设备互联读写文件效率底,多个DAS架构存储互联文件分散无法统一管理,只能通过windows DFS共享进行数据管理,整合共享层级。

2.2 SAN 架构存储 (StorageAreaNetwork,存储域网络)

SAN 架构存储是通过光纤线实现网络连接的存储设备。存储控制器通过光纤线缆连接到光纤交换机,实现各个主机与存储控制器互联,通过安装特定的文件系统实现网络存储共享。

优势:单台客户端读写速度快,通过对SAN交换机、存储控制器的优化,可以提供多链路同时并行读写操作,常见的SAN 文件系统有StorNext文件系统,该套文件系统很好地将多个逻辑卷整合到一起实现条带化读写,由专门的元数据管理服务器负责检索文件,配合存储控制器的缓存机制,可以实现快速读写数据的要求,一般符合后期非线编辑,提供高IOPS吞吐量;缺点:多台设备读取数据速度不稳定,由于数据被条带化,会使得磁盘利用率分配上受终端的访问量影响。最大的问题是文件系统读写都需要访问元数据服务器进行文件检索,数据请求少的情况下还可以满足,一旦访问的数据请求数量过多,会出现服务器无法处理读写请求导致元数据服务器死机,客户端会出现卡顿无法访问数据的情况。对于200或300个用户级别的客户端请求无法满足。

2.3 NAS 存储 (网络存储Network-Attached Storage)

NAS存储是通过以太网共享的网络存储架构,利用nfs、samba、cifs提供网络共享服务,通过IP地址、网络名称、dns解析的方式进行数据访问,是当下使用最为广泛的互联网存储架构,通过NAS衍生了多种分布式文件系统,例如:软件定义存储Ceph、glusterFS、IBRIX 以及硬件NAS存储NETAPP、日立、EMC (Islong)、NEC等。

优势:NAS的分布式文件系统具有高负载扩展灵活的特性,可以横向扩展NAS 网关,纵向扩展磁盘控制器,适合大规模数据请求;缺点:主要体现在集中式NAS,会出现元数据服务器死机以及数据读写速度拥塞等问题。

3 动画制作与动画渲染数据的特殊性

动画制作过程属于线性流程,数据包括:前期设计、模型建模、模型绑定、动画表演、动画特效、动画灯光、动画渲染和动画合成。整个文件类型复杂,数据大小不一,会产生大量的小文件。

(1)前期设计需要绘制大量的矢量图、照片、扫描文件,涉及人物角色、场景以及背景等。

(2)模型建模首先产生基本工程文件,每个模型又是由多个资产拼装而成,模型文件尽可能输出的小一些,主要是为了后端环节可以顺畅的打开,甚至有的模型创建好几套,为了配合项目制作,分为大、中、小三个标准进行制作,一般产生的文件有缓存文件、工程文件和图片,会产生大批量的小文件。

(3)动画制作环节类似于视频制作会产生大量的流媒体文件(简称拍屏文件),主要是提供导演审看,根据动画环节细分,从最初的预览片,到动画表演最终镜头,产生的大量流媒体文件,都要在线审看播放,对存储会产生很大的压力。

(4)动画特效环节由于需要对布料、毛发、水、烟、火、粒子进行运算,会产生大量的小文件也就是缓存文件,小文件一般来说是要求存储IOPS性能的,大量的小文件读取会导致元数据服务器死机,导致数据访问失败。

图1 中影动画各环节产生数据类型图

(5)动画渲染的过程,是将存储中若干个工程文件拼装到一起,进行浮点运算输出到一张图片上的过程,也是在整个动画制作中最为耗资源的一个环节。渲染数据还会细分,需要分层进行渲染,渲染产生的数要占全片1/3以上,文件大小普遍在8~11MB,大量的小文件会产生大量的元数据,接下来会有成百台渲染服务器同时读取这些文件,也就是同时要对元数据进行检索请求,一般集中式共享存储都很难满足大批量的元数据请求,会一下把存储控制器缓存用尽。一旦存储控制器缓存用尽,存储性能就会下降,导致元数据服务器死机。

(6)动画合成产生的数据主要是流媒体、序列帧等。该环节是将分层渲染的序列帧合成到一起,该操作类似于后期剪辑非线编辑的操作,占用存储资源大,会导致存储带宽拥塞。各环节文件类型及文件大小信息见图1。

4 中影动画IBRIX分布式存储架构

图2 中影动画IBRIX 存储架构拓补图

中影动画IBRIX 分布式存储架构是由12 台存储网关组成,12台网关通过光交换机与SAN 存储相连接,每台网关服务器都可以访问到SAN 存储的所有逻辑卷,实现12台存储网关分布式进行数据共享。每两台网关服务器通过HA 设置进行热备,通过网关服务器ILO 模块进行事件触发,图2是中影动画IBRIX 存储架构拓补图。

4.1 中影动画日常访问IBRIX存储的过程

中影动画制作人员是通过域名解析的方式,访问这12台存储网关的。例如在文件夹地址栏里键入“cfa.anime.com”地址,会随机访问12台网关中的其中一台,进行数据读写操作。根据中影动画制作项目的要求,需要在同一个名字空间里建立工程目录,我们会将所有的存储容量分配到名字空间为IBRIX01的文件系统,12台存储网关里面会各自挂载名字为IBRIX01 的目录,再各自将目录进行SAMBA、nfs共享,在DNS服务里面我们会将12台网关服务器地址都对应一个域名,以轮巡访问机制进行负载。在中影动画流程管理软件里面会对存储地址进行定义,通过生产管理软件在项目开始的时候会在IBRIX01 共享目录下面建立项目工程文件,文件夹的层级是由生产管理软件定义的,所有制作人员操作都需要登录中影动画生产管理系统,打开所需软件进行制作,数据的访问读取写入都是按照生产管理系统指定的目录结构进行操作的,所有制作文件的路径都是绝对路径,包含嵌套文件路径也为绝对路径,最终渲染通过生产管理系统将文件提交到渲染农场进行数据分析,提交任务进行渲染,最终渲染文件会按照指定的目录存放。可以说所有参与制作人员的设备,渲染服务器都在对存储进行读写操作,根据各环节产生的数据类型以及大小都不同整个项目产生上千万的文件数量,一般性能的存储是无法满足的,这时IBRIX 分布存储就体现它的优势了。

4.2 中影动画IBRIX 分布式存储的读取数据模式

IBRIX分布存储由两部分组成,管理机和网关服务器组成一个分布式集群。

通信分为三块:对外网络提供samba nfs 共享服务;内部通信网络提供内部元数据交换;SAN 存储网络向所有网关服务器开放,所有网关服务器读到存储逻辑单元都要保持一致。

IBRIX 管理机会将存储上的逻辑单元LUN 进行扫描,将扫描的LUN 标记为sagment均匀分配给12个网关服务器进行管理,将所有分配的sagment建立路由表,标记网关服务器与segment的对应关系,分发给12台网关服务器,最终形成整体的文件系统进行格式化,主要目的是实现元数据负载。IBRIX 文件读写有一个机制,写数据会直接写到本地管理的segment,是不可以跨网关进行写操作的,读数据是可以跨网关直接通过SAN 读取数据的,这样有利于负载高并发请求。IBRIX 读写数据模式,也有它的弊端,就是严格要求segment数据存储均匀,保证每个segment剩余空间接近,这样才能很好的负载,一旦数据segment存储空间不均衡会造成单台网关服务器并发处理能力下降,出现短时间死锁,IBRIX 内部有个命令是可以解决的,定期自动均衡数据处理,原理就是互相拷贝最终达到所有segment数据空间接近一致。

图3 IBRIX 数据读取过程图

图4 IBRIX 数据写入过程图

从图3我们可以看出数据读取的时候会先分析数据属于哪个segment,该segment 归哪个网关server监管,如果属于本地segment就进行直接读取,如果不属于本地segment会根据segment路由表找到对应的监管网关服务器请求元数据,通过内部通信得到元数据,透过SAN交换机读取存储数据。

从图4可以看出写入操作相对简单,写入请求的网关服务器只写自己监管的segment,一般网关服务器都会监管10~20个segment,会从中选择剩余空间较大的segment存储数据,以保证数据均匀存储。

5 基于IBRIX 分布式存储进行动画电影渲染项目案例

中影动画自2009 年选用IBRIX 分布式存储,至今已承接了多种电影项目,包括动画电影 《疯狂斗牛场》《直立象传说》《最可爱的人》,这三部电影所产生的数据分别为160TB 、100TB、70TB。

图5 中影动画IBRIX 存储管理界面

通过图5 可以看到这套存储可以写入770,244,608个文件,我们已经存储了24,527,493个文件,还剩下745,717,115 个文件可以写入。而这只是《最可爱的人》项目的数据而已。

6 结语

根据中影动画多年使用IBRIX 分布存储系统进行动画项目制作及动画渲染经验,对于这么多的非结构化数据的管理,能保证从2009年至今所有项目都可顺利完成,相比现在主流的对象分布式存储,以及虚拟化软件定义存储,我认为结合IBRIX 在分布式存储的优缺点,合理避免缺陷,运用好它的优势,该套存储是比较适合动画渲染以及动画制作的,可满足小文件非结构数据高并发数据管理。❖

猜你喜欢
网关分布式架构
智能燃气表物联网运行体系网关技术研究
基于FPGA的工业TSN融合网关设计
基于ARM架构的工业物联网网关研究与实现
基于云控平台雾计算架构的网联汽车路径控制
居民分布式储能系统对电网削峰填谷效果分析
基于Paxos的分布式一致性算法的实现与优化
VIE:从何而来,去向何方
企业架构的最佳实践
三层架构在企业信息化中的应用
基于ENC28J60的嵌入式以太网/CAN网关设计