阿凡达》的幕后英雄:存储集群NAS
随着《阿凡达》的全球热映,为影片制作数字特效的新西兰公司Weta Digital也越来越受到关注。据该公司介绍,影片中的细节动画所需要的马力远远超过一个集群NAS系统自身能够提供的马力。
为了支持该项目,其中包括3D角色脸部动画的新突破,Weta Digital建立的存储系统结合了BlueArc的Titan 集群NAS阵列以及NetApp的FlexCache。随着特效变得越来越先进,对容量和性能的要求开始超过Weta Digital之前支持过的最大系统,例如2005年的《金刚》。“《金刚》使用了100 TB的存储,”Weta Digital首席技术官Paul Ryan说,“而《阿凡达》,(我们的服务器群)就有100 TB的RAM。”
为了支持数字特效的渲染过程,Weta Digital有一个服务器群,被称为“渲染墙”,包含35,000个CPU内核。 在渲染过程中,同一图像的多个层次和局部画面合并形成一帧完整的电影画面。“这给存储造成了一些有趣的问题,”瑞恩说, “也就是说,我们会碰到这种情况,‘渲染墙’中有一万个过程同时试图访问同一文件或文件组,从而导致了我们存储中的热点。”
大文件的服务者:Titan
为了缓解这一问题,该公司首先引进了三个四节点的配置,是BlueArc的Titan 3200集群NAS系统,每个系统拥有200TB容量,来支持《阿凡达》。BlueArc系统的市场定位是为数量大的大文件提供服务,而像Weta digital这样的媒体和娱乐公司通常使用大文件。一个配置完全的3200集群可以容纳高达4PB的容量;BlueArc声称,3200可以支持高达20万IOPS或高达20 Gbps的吞吐量。Ryan介绍,Weta Digital曾经使用过一个Titan 3200群集。
但仍存在另一个问题。 “我们有一个纹理数据,是一个相当小的数据集, 总共在1TB到5TB,但几乎每一个在‘渲染墙’的过程都想访问该纹理数据。”Ryan说。由于这种数据访问模式,“我们发现,无论我们分配多大的带宽给纹理数据,渲染墙都将消耗所有的带宽。”
“热”数据的复制者:FlexCache
Ryan说:“我们和NetApp合作已久。”估计Weta Digital使用NetApp 文件服务器至少有十年之久,公司已经有将近600TB的NetApp存储用来服务用户文件共享。 约九个月前,Weta Digital 引进了一个新的双节点高可用性集群,是NetApp的高端FAS6080集群系统,以及也是配置成双节点高可用性的集群:八台NetApp的FlexCache设备。
NetApp的FlexCache旨在支持类似Weta Digital 渲染墙这样的应用。它通过使用本地缓存卷自动复制“热”数据,从而适应不断变化的使用模式。
虽然NetApp和BlueArc的系统不相互“交谈”,但Weta Digital找到了一种方法,让它们有效地共存。 NetApp的集群负责提供数据给渲染墙,而BlueArc的系统负责存储渲染系统产生的电影画面。 “我们知道BlueArc的产品不错,我们也知道它们速度快,而且绝对符合我们的期望值。”瑞恩说, “但是,在过去的一年中令我们眼前一亮的新事物是FlexCache。”
Ryan说,自动性能管理是FlexCache的一大亮点。 “我们以前用过普通文件服务器来服务纹理文件,但是这需要我们手动对复制进行管理。我们不得不在许多不同的文件服务器上都保留这些纹理文件的副本。”他说。
虽然目前的设置运作良好,“我们一直在寻找更加细化的工具来查找存储热点以及哪些用户试图访问,”Ryan说,“增加BlueArc的功能可以延迟问题的出现,FlexCache则提供更多的带宽。不过,当热点出现时,如何对热点进行分析,仍然存在一定的难度。”