Facebook为Open Vault JBOD存储装“智能大脑”

在最近的Open Compute Summit 2013大会上,Open Compute Project开源硬件项目的参与者们展示了一些Open Vault JBOD存储阵列相关的改进。目前,Facebook它最新建成的两座数据中心内已经使用了Open Vault JBOD存储阵列,而且预计会添加到现有的数据中心内。

这款Open Vault阵列代号为“Knox”,是Facebook贡献给Open Compute Project开源硬件设计的。除此之外,Open Vault还被Facebook用作为一种冷存储,保存它近2400亿张的图片。现在,Facebook的图片数量以每天增加3.5亿张,也就是每个月 7PB。

Open Vault是一种JBOD阵列,意味着它只是一堆磁盘,挂载到一台服务器内部的SAS控制器。而在Facebook,它是一种定制的Open Compute V2服务器,采用英特尔定制的“Windmill”双路至强E5服务器节点。

Open Vault阵列有2个1U磁盘抽屉,每个抽屉容纳15个3.5英寸SAS驱动器,2个SAS扩展器板。4个SAS扩展器板连到服务器,让Open Vault中所有30个驱动器看起来像是直接连到服务器的。Open Vault的设计让任何磁盘或者任何一个SAS扩展器都可以更改,而无需让JBOD离线。

虽然Open Vault很不错,但是它缺少一个“智能的大脑”。因此,通过代号为“Knockout”的扩展版Open Vault,ARM服务器芯片初创公司Calxeda和英特尔都在开发各种变体版本,将智能功能和互连特性注入到每个JBOD中,把它变成一个更加智能的存储集群。

Facebook硬件设计和供应链副总裁、同时也是Open Compute项目主席的Frank Frankovsky,展示了可插入Open Vault阵列的两个计算主板,在这个阵列中配置了SAS扩展器并具备一些智能特性。

Frankovsky展示的第一个计算主板,即将投入生产,它是基于ARM的计算附加卡,同时也是基于Calxeda的32位 ECX-1000处理器。

用于Open Vault JBOD的一个Calxeda ARM服务器节点

Calxeda产品营销经理Gina Longoria解释说,这个想法让那些部署Open Vault存储的企业,可以在每个Open Vault抽屉中去运行Lustre或者Gluster集群文件系统代码,也许只使用机架中的一个x86节点去运行一个头节点。

额外的计算能力还可以用于运行其他存储软件,例如Ceph分布式对象存储——它与Open Stack、甚至是Facebook为了克服MySQL关系数据库而创建的Cassandra NoSQL有着密切联系。

究竟什么软件可以运行在一个智能的存储服务器上,这并不是问题的关键。让Open Vault变得既廉价,又拥有一些智能特性,这才是关键。

英特尔也希望参与其中,同时它也是Open Compute Project的成员之一,因此Frankovsky小心翼翼地拿起另一块类似的智能转接卡进行展示。它是基于英特尔未来的“Avoton”Atom S系列处理器,预计将有片上以太网连接特性:

用于Open Vault存储的一个英特尔“Avoton”Atom服务器节点

Calxeda的板子上有一个ECX-1000处理器,带有4个Cortex-A9核心,主频1.4GHz,4GB DDR3主内存,1.33GHz。此外还有2个RJ45端口,支持千兆网速,5个SATA端口增加器,支持一个Open Vault抽屉中的所有驱动器。

这个卡可以用于运行软件RAID,或者运行iSCSI目标软件,映射自机架顶部的x86头节点。你愿意多掏些钱的话,还可以在这个卡上配置SFP+或者QSFP端口。

目前的“Knox”Open Vault和增强了计算能力的“Knockout”

再或者,如果你想要更便宜更好的选择,你可以使用CX4连接器,在ECX-1000芯片上利用片上分布式Layer 2网络也是非常聪明的做法。首先,你可以在Windmill头节点和增强了计算能力的Open Vault JBOD之间放一个24端口的千兆以太网交换机。

这个交换机可以连接JBOD到其他Windmill头节点以获得冗余性,避免机架中发生单点故障。然后你可以在本地ARM节点或者基于Atom的节点上,添加数据压缩、散列、或者其他算法。

不过,通过将ECX-1000服务器节点用于Open Vault JBOD中,你可以做另外一件事:跨机架交叉耦合阵列和他们的计算节点,下面是一个例子:

告诉你如何利用EXC-1000上的互连,去做存储JBOD之间的2D-Torus网络

Knockout服务器板有4个万兆以太网端口和ECX-1000芯片,你可以启用集成的Fleet Services结构,使用顶架交换机去处理从阵列到网络的南北流量,运行应用,使用Fleet Services互连在跨多个机架的东西网络上提供数据复制和其他服务。

所有这一切都发生在Open Vault中,以及存储集群头节点一无所知的情况下。这还意味着,x86节点在内存和CPU方面可能不用那么强大,事实上,据Longoria称,如果你需要的话,甚至可以将一个ARM服务器阵列作为头节点。

当然,这样的话,Calxeda肯定很高兴。