Facebook是如何存储每天20亿张照片的——Cold Storage系统揭秘

标签: facebook 照片 cold | 发表时间:2015-05-13 02:35 | 作者:
出处:http://www.iteye.com
Facebook的庞大帝国需要存储的数据时刻都在不断爆炸。比方说,现在它每天要分享20亿张照片,而且需求还在不断增加,唯有靠不断建设扩充存储和数据中心才能满足。

此前我们曾多次介绍过Facebook的数据中心(见 Facebook新数据中心揭秘、再探Facebook数据中心),包括俄勒冈的Prineville、北卡罗来纳州的Forest和瑞典的吕勒奥以及爱荷华州的 阿尔图纳拥等不仅如此,Facebook还大量采用自己自家的技术来搭建,并且把这种 经验开放出来跟大家共享。这里面最先进的是最新的阿尔图纳数据中心,它采用了由廉价交换机组成的 网状连接交换架构来提升性能,Facebook称之为下一代的数据中心—Data Center Fabric。

上述解决方案对于提升数据中心的网络性能、降低成本以及提高能效起到了非常关键的作用。但是对于存储需求的不断增加却没有办法,需要Facebook研究其他的应对措施。近日,Facebook 揭秘了自己的cold storage system存储系统是如何解决这个问题的。

顾名思义,cold storage(冷存储)存放的就是不常使用的数据,比如说几年前的历史数据。对于历史数据,传统的解决方案是采用带库、光盘等廉价介质来存储的,但是这种介质的缺点在于存取和访问速度太慢。Google不久前推出的云存储服务 Google Cloud Storage Nearline较好地解决了这个问题。

设计原则

不过Facebook团队决定用全新的角度去审视问题,他们从头开始,以端到端的方式重新设计了软硬件。

1)节能降耗

在这套以存储为核心的Cold Storage System中,存储资源是按需启动的,同时摒弃了冗余发电机或备用电池等以提高能效。由于cold storage采用的是低端商品化硬盘,硬件方面的约束要求进行命令批处理要非常小心,并且需要牺牲时延以换取效能。其对物理盘的存取是以平均故障间隔时间为基础控制硬盘的忙闲度(占空比)的。

2)智能管理

由于前面为了省电降低成本舍弃了备用电,这就要求软件任何时候都能应对哪怕是最小的电力中断,避免出现数据丢失的情况。

此外,数据还要具备持久性并保证完整性。为了保证持久性,系统设计时每一层面都要考虑持久性,消除单点故障,以尽可能少的步骤恢复整个系统,Cold Storage甚至连单独管理元数据的系统都是可有可无。也就是说,数据本身即可自我描述,不需要借助外部就能够辅助进行恢复。这么做的原因在于cold storage是其他系统数据丢失情况下的最后一道防线了。

3)面向未来

考虑到Facebook的数据设计时还需要考虑未来。很多系统在规模扩大或者利用率上升时往往就会性能下降或出问题,所以Facebook的这套系统一开始设计时就得考虑如何避免这一问题。



Facebook在Prineville的Cold Storage设施

基于上述考虑,目前Facebook已经在Prineville及Forest两个中心建设了两套cold storage系统,里面存放着数百PB(100万)的数据。不过如此的高容量其能耗仅为传统存储解决方案的1/4。而且跟一般系统不一样的是,这套系统的性能并不会随着规模扩大而下降,恰恰相反,系统越大性能反而越佳。最后一点值得关注的是,Facebook的这套存储系统采用了十分经济高效的冗余备份方式,可以以低于2的系数实现数据的备份冗余。从以上几点来看,作为一套半在线半离线存储系统,cold storage表现出来十分理想的特性。当然,要想发挥这套系统的效用,还需要Facebook开放计算体系如开放机架、网络、数据中心等其他组成部分的配合,一般人想学并不容易。

Cold Storage System的基础是 Open Vault Storage。这是一套专门针对Open Rack(开放计算的机架标准)打造的简单高效的存储解决方案,它采用了模块化的I/O拓扑,2U机框可容纳30块硬盘(每托盘15块硬盘,横放而不是竖放),几乎可以与任何服务器互操作。Cold Storage就是在这样一套高密度的 JBOD(Just a Bunch Of Disks ,磁盘簇)存储基础上修改而成的。



Cold Storage机架

硬盘按需启动,电耗降到1/4

降低耗电是系统一开始的设计目标之一。据介绍这套系统的耗电极低,降到了传统数据中心的1/6。其手段之一是以空间换降耗。数据中心占地面积非常大,满容的情况下每数据大厅可支撑1000PB的存储容量。随着以后单盘容量的提升,其存储规模还可以进一步扩大。

同时由于cold storage system存放的不是活跃的生产数据,而是历史数据,所以Facebook把冗余电力系统(不间断电源、发电机、备用电池等)也撤销了,从而进一步提升了能效。



架内布置,每2U放30块硬盘,电源插框放中间位置
为了尽可能降低能耗,Cold Storage允许服务器可以不带硬盘启动,然后由软件来控制忙闲度。不过这样就要求对Open Vault存储规范进行修改。其最大的改动是每次只允许每托盘有一块硬盘上电。为了避免软件bug错将所有硬盘上电导致数据中心保险烧坏,Facebook甚至还专门修改了硬盘驱动器的固件。

此外,由于不必每次都要给所有硬盘供电,每个存储节点散热风扇的数量也从6个降到了4个,供电机框数从3个降到了1个,供电单元数从7个降到了5个,Open Rack机架母线数特从3条降到了1条。这样的调优令机架的存储密度大大增加,每机架可容纳2PB的存储容量(4TB硬盘),与传统存储服务器相比,其耗电只有后者的1/4。



2U机箱,5*3块硬盘,绿色的是SAS扩展板

用经济的方式保证数据安全

传统上为了保证数据的安全,一般会采用多副本技术来避免硬件故障,但这么做需要拷贝几份数据,造成了资源的浪费,能不能在存放的数据不多于两份的情况下避免数据丢失呢?

尤其是Cold Storage采用的都是些廉价硬盘,而且又没有备用电池,故障中断等情况都是难免的。

怎么解决呢?Facebook采用了Reed Solomon Coding纠删码技术。纠删码是存储领域常用的数据冗余技术,其基本原理是将原始数据切分为n块,然后根据这几块生成m个校验块。利用算法,从从n个原始数据块和m 个校验块中任取n块就能解码出原始数据,也就是说进行这样的处理后,哪怕有m块数据同时丢失数据仍能恢复。通过将这些数据分到不同的故障域(如硬盘),Cold Storage就可以以较小的成本实现数据的保护。显然,校验块越多,可容忍的数据块出错数也就越多。当然,其代价是额外需要的硬盘也越多。

那多少才合适呢?这需要对硬盘的失败特征进行调查和建模才能确定数据分块数和校验块数。Facebook目前的配置是10:4(每10块硬盘配4块校验盘)。也就是说,用1.4GB的空间实现对1GB数据的备份,这种情况下可忍受4块硬盘同时坏掉。但是这种配比也会随着硬件特性以及对安全性的要求而变化的,因此Facebook开发了数据重新编码服务,这样就可以根据情况变化(存储媒体的可靠性)来重新灵活组织数据。



RS纠删码技术,把1GB数据切分为10块分别放在10块硬盘,另用4块硬盘放校验,可容忍4块硬盘同时坏掉
与以往模式相比,这种备份方式效率显然高得多,而且数据的持久性也大为增长。不过纠删码只能应付数据丢失,但是对于篡改却无能为力。为此,Facebook通过创建、维护及检查校验和来验证数据的完整性。而且这些校验和就挨着数据存放,一旦发现错误就马上从别处复制一份过来。

俗话说大脑越用越灵,不用则衰,存储也是这样。完全闲置或者不动的数据容易损坏,这就是所谓的“位衰减”。为此,Facebook在后台开启了一个“反熵”进程,专门用来定期扫描所有硬盘上的数据,从中检测数据畸变并报告。这个频率是每30天一次全扫描。一旦发现错误,另一个进程就会接管,然后读取足够多的数据去重建丢失的数据,并将其写入到新的硬盘上。由于整个过程将检测、失败分析与重构及保护分离开来,重构的耗时从小时级降到了分钟级。

Facebook还对数据存取进行了彻底改造。由于大多数现代文件系统在设计上的缺陷,这些文件系统基本上无法胜任短时间内进行大量频繁的加载与卸载操作。而且而且由于文件系统处在非常底层的位置,导致错误调试非常困难。Facebook的做法是跳过文件系统,将所有硬盘移植为“裸盘”。这样的好处是可以掌控整个数据流,从而进一步保证数据的持久性。
规模越大性能越好

传统系统往往规模越大性能就开始下降。Facebook希望避免这一点,甚至定下了越大越好的目标。其做法是每次增加容量时软件都要对现有数据进行再平衡—即将原有数据分配到新的硬件上,并释放之前用过的空间。这个过程并非实时进行,十分适合于在用系统的逐步移植,即既不影响系统的使用,又能逐步将数据迁移到新硬件上。如果把Cold Storage看作一块大硬盘的话,你可以把这种再平衡的做法视为智能硬盘整理程序。

未来计划

通过将冷数据(历史数据)与热数据(生产数据)分离、用冷存储系统处理冷数据的做法,Facebook得以实现降低能耗及节省其他资源节省的同时服务好数据请求。不过尽管目前Facebook的两套cold storage系统已经有数百PB的数据,但是这还只是整个数据量的1%,而且Facebook的数据每天还在不断增加。因此,社交巨头还需要继续扩大自己系统的规模,同时还将探索闪存、蓝光盘等各种存储媒介的利用,以及研究跨数据中心分布式存储文件数据的方法以改进持久性。

本文编译自: code.facebook.com

感谢 mengyidan1988 投递这篇资讯

资讯来源: 36氪

已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [facebook 照片 cold] 推荐:

Facebook是如何存储每天20亿张照片的——Cold Storage系统揭秘

- - ITeye资讯频道
Facebook的庞大帝国需要存储的数据时刻都在不断爆炸. 比方说,现在它每天要分享20亿张照片,而且需求还在不断增加,唯有靠不断建设扩充存储和数据中心才能满足. 此前我们曾多次介绍过Facebook的数据中心(见 Facebook新数据中心揭秘、再探Facebook数据中心),包括俄勒冈的Prineville、北卡罗来纳州的Forest和瑞典的吕勒奥以及爱荷华州的 阿尔图纳拥等不仅如此,Facebook还大量采用自己自家的技术来搭建,并且把这种 经验开放出来跟大家共享.

Facebook收购照片分享应用Lightbox

- - Tech2IPO
Facebook收购照片分享公司Lightbox. 北京时间 5月16日消息,Facebook收购Instagram之后,今天又再次收购照片分享应用Lightbox,此外本次收购协议显示,Lightbox团队所有成员未来都将为Facebook工作. Lightbox服务是针对谷歌Android而设计,它是类Instagram的一个照片分享服务,它有各种效果和过滤镜,可以给用户带来各种类型的照片处理效果及图片分享,在Instagram发布Android版之前,有数百万的用户喜欢用Lightbox分享照片.

有谁不爱冰淇淋——Cold Stone Creamery [新加坡]

- lazyzooly - 为食主义
Orchard Central一直给我闹中取静的感觉. 之前写Ootoya和同乐海鲜的时候都提到过,作为乌节路上的一座购物商城,它真的比其它的安静很多. 不过4个月不见,突然发现现在的它,也不是那么世外桃源了哦. 特别是走进一楼的这家Cold Stone,大红色的墙,劲爆的音乐,喧哗的人群,浓郁的香味,也许这才是乌节路上的冰淇淋店应该有的气氛.

Facebook 与微软新合作:PhotoDNA 技术识别色情照片

- loverty - LiveSino - LiveSide 中文版
纽约时报报导称,微软与 Facebook 周四宣布了一项新的合作. 社交巨头 Facebook 将利用微软研究院的 PhotoDNA 技术来识别在线照片中的儿童色情照片,即便是修改或裁剪过的. 去年,微软已经在其 Windows Live SkyDrive、Hotmail、Bing 等服务中测试了 PhotoDNA 技术.

如何把 Facebook 里的照片搬到 Picasa Web Albums 里

- 饭团 - 谷奥——探寻谷歌的奥秘
也许你有不少照片以前存储在Facebook里,如果现在想改玩Google+的话最好把他们都搬到Picasa Web Albums里(没准马上就改叫Google Photos了),那么你可以使用今天刚刚上线的网络应用Move2Picasa.com. 登陆并连接你的Facebook帐号,之后你Facebook里的所有照片就会自动迁移到Picasa Web Albums里了,不过只是照片,不包含照片的介绍文字和评论.

搬家二部曲:從Facebook搬照片到Google+

- Kelvin - TechOrange
從 Facebook 搬好聯絡人了以後,Google+ 帳號的照片下還是空空如也,有種空虛的感覺嗎. 有了 picknzip.com 就不再寂寞囉. 只要點下連結,確認授權 Facebook 帳號,就可以迅速搬 Facebook 上的所有照片到 Google+ 啦. 粉絲專頁或社團照片(如果你是管理者).

把 Facebook 照片搬到 Google+ 的快速秘技

- Rei - T客邦
把臉書朋友搬到 Google+ 之後,接下來就是搬照片了. 「Pick&Zip」網站提供了非常簡易的方法,讓你把臉書裡的照片打包下載,上傳到 Google+ 裡面. 除了自己的照片,連朋友的照片也能抓(小編還想不出來抓別人的照片要做啥. ),即使你還不是 Google+ 的用戶,用來備份照片也是很實用的.

Facebook照片洩行蹤,黑手黨老大被逮

- 跨栏高手 - 數位時代 Beta3.0 | Topics & Links
逃亡十年的義大利黑手黨老大Salvatore D'Avino被警方逮捕,原因竟是他的女友在Facebook放上的照片透漏行蹤. 警方根據Facebook照片鎖定西班牙某城鎮,再加上女友即將臨盆的資訊,讓警方更加確定黑手黨老大會在此處陪伴女友生產,最後成功逮捕了這位頭號通緝犯. (黑手黨老大的懷孕女友,在西班牙馬貝拉鎮知名的義大利餐廳前留影,照片放上Facebook導致黑道男友被捕).

每天平均有2.5亿张照片上传至Facebook

- - nPhoto新摄影在线杂志
facebook当然不是最好的照片的分享网站,但却无疑是最大的. 他们在今天提交给美国证券交易委员会(sec)的ipo文件中就说明了这一点. 引用sec的文件:“在截止到2011年12月31日的过去三个月中,每天平均有超过2.5亿张照片上传至facebook. ”这意味着每个月facebook上会新增75亿张照片,每小时1040万张,每分钟约17.4万张,每秒钟约3000张.

今日头条: Facebook iPhone版照片共享App更多细节曝光

- PH囧ENIX - Tech2IPO
两天前,笔者曾向大家爆料Facebook即将发布iPhone版照片共享App. , 当时笔者也觉得那篇文章还不够给力,因为仅仅凭借一张图片的确没有什么说服力. 所以,写那篇爆料之时,笔者向大家承诺,一旦有任何最新消息,一定及时和大家分享. 现在是北京时间6月17日凌晨1点05分,终于笔者盼来了大家期待的更多细节.