Facebook的开放计算存储计划

当你使用Facebook上传图片或发站内信时,你可知这些数据都被存储到哪里?Facebook的存储架构非常庞大,但还没有大到让人无法了解的程度。

Facebook是开放计算计划(Open Compute Project)的领导者,2011年4月,Facebook就做过这方面的努力。借助开放计算,Facebook打算开放数据中心资源的设计规范。最初的时候只涉及到与服务器相关的规范,现在已经扩展到整个存储设备了。而在存储方面,则是开放存储室计划(Open Vault)起效果的地方。

Facebook的系统工程组领导者Amir Michael告诉我们,Open Vault是现在除了开放计算以外最有趣的计划。他说:“Open Vault是存储平台上的Open Compute。”

Open Vault基于JBOD(完全磁盘束)的概念。JBOD被应用于Facebook的开放计算服务器平台界面上。

Michael 还表示:“这是第一次在开放计算和最初基于的SAS协议之后出现开源存储类型的技术。”

SAS(串行连接SCSI)在最近几年变得越来越流行,硬件供应商都倾向于使用它来加速存储的性能。

根据Michael的说法,Open Vault用非常密集的方式把磁盘连接到一起,今天大部分存储硬件是正面柜位,要占用服务器机架正面的大量空间。这就限制了可以部署在机架中的存储磁盘的数量。Open Vault则提供了另外的一种方式。

Michael说:“我们从前面把磁盘放到服务器里面,这样我们就可以增加磁盘的密度了。”

通过这种方式,Facebook可以在每个计算节点上部署更多的存储设备。借助Open Vault,Facebook 能够一次部署15块磁盘。这还可以扩展到50块或更多。磁盘可以是传统的机械硬盘或者固态硬盘。

空气流

在服务器中部署大量的磁盘带来了不小的挑战。比如如何降低磁盘温度?如此多的磁盘紧挨着放到一起,运行时的温度可不低。

Facebook采用的方法是建立合适的空气流模型来冷却服务器存储设备。Michael表示:“Facebook建立了一个实验室,花费了大量的时间去寻找服务器的热力学性质。”

另外Facebook的软件和硬件都能实现一定程度的冷却。在硬件方面,考虑的是空气流管理,如何利用导风管使空气流过系统和磁盘。在软件方面,考虑的是创造算法,以一个更节能的方式控制风扇。

Michael说:“有一些方法只是为了保证更多的空气流过设备从而降低温度。我们用科学的方法来计算,确保流入空气量恰到好处,如果流动的空气太多,那会浪费资源。”