看看Facebook 如何管理150亿张照片

  Facebook 的照片分享很受欢迎,迄今,Facebook 用户已经上传了150亿张照片,加上缩略图,总容量超过1.5PB,而每周新增的照片为2亿2000万张,约25TB,高峰期,Facebook 每秒处理55万张照片,这些数字让如何管理这些数据成为一个巨大的挑战。本文由 Facebook 工程师撰写,讲述了他们是如何管理这些照片的。

  旧的 NFS 照片架构

  老的照片系统架构分以下几个层:

  上传层接收用户上传的照片并保存在 NFS 存储层。

  照片服务层接收 HTTP 请求并从 NFS 存储层输出照片。

  NFS存储层建立在商业存储系统之上。

  因为每张照片都以文件形式单独存储,这样庞大的照片量导致非常庞大的元数据规模,超过了 NFS 存储层的缓存上限,导致每次招聘请求会上传都包含多次I/O操作。庞大的元数据成为整个照片架构的瓶颈。这就是为什么 Facebook 主要依赖 CDN 的原因。为了解决这些问题,他们做了两项优化:

  Cachr: 一个缓存服务器,缓存 Facebook 的小尺寸用户资料照片。

  NFS文件句柄缓存:部署在照片输出层,以降低 NFS 存储层的元数据开销。

  新的 Haystack 照片架构

  新的照片架构将输出层和存储层合并为一个物理层,建立在一个基于 HTTP 的照片服务器上,照片存储在一个叫做 haystack 的对象库,以消除照片读取操作中不必要的元数据开销。新架构中,I/O 操作只针对真正的照片数据(而不是文件系统元数据)。haystack 可以细分为以下几个功能层:

  HTTP 服务器

  照片存储

  Haystack 对象存储

  文件系统

  存储空间

  存储

  Haystack 部署在商业存储刀片服务器上,典型配置为一个2U的服务器,包含:

  两个4核CPU

  16GB – 32GB 内存

  硬件 RAID,含256-512M NVRAM 高速缓存

  超过12个1TB SATA 硬盘

  每个刀片服务器提供大约10TB的存储能力,使用了硬件 RAID-6, RAID 6在保持低成本的基础上实现了很好的性能和冗余。不佳的写性能可以通过高速缓存解决,硬盘缓存被禁用以防止断电损失。

  文件系统

  Haystack 对象库是建立在10TB容量的单一文件系统之上。文件系统中的每个文件都在一张区块表中对应具体的物理位置,目前使用的文件系统为 XFS。

  Haystack 对象库

  Haystack 是一个简单的日志结构,存储着其内部数据对象的指针。一个 Haystack 包括两个文件,包括指针和索引文件:

  

  Haystack 对象存储结构

  

  指针和索引文件结构

  

  

  Haystack 写操作

  Haystack 写操作同步将指针追加到 haystack 存储文件,当指针积累到一定程度,就会生成索引写到索引文件。为了降低硬件故障带来的损失,索引文件还会定期写道存储空间中。

  Haystack 读操作

  传到 haystack 读操作的参数包括指针的偏移量,key,代用Key,Cookie 以及数据尺寸。Haystack 于是根据数据尺寸从文件中读取整个指针。

  Haystack 删除操作

  删除比较简单,只是在 Haystack 存储的指针上设置一个已删除标志。已经删除的指针和索引的空间并不回收。

  照片存储服务器

  照片存储服务器负责接受 HTTP 请求,并转换成相应的 Haystack 操作。为了降低I/O操作,该服务器维护着全部 Haystack 中文件索引的缓存。服务器启动时,系统就会将这些索引读到缓存中。由于每个节点都有数百万张照片,必须保证索引的容量不会超过服务器的物理内存。

  对于用户上传的图片,系统分配一个64位的独立ID,照片接着被缩放成4种不同尺寸,每种尺寸的图拥有相同的随机 Cookie 和 ID,图片尺寸描述(大,中,小,缩略图)被存在代用key 中。接着上传服务器通知照片存储服务器将这些资料联通图片存储到 haystack 中。

  每张图片的索引缓存包含以下数据

  

  Haystack 使用 Google 的开源 sparse hash data 结构以保证内存中的索引缓存尽可能小。

  照片存储的写/修改操作

  写操作将照片数据写到 Haystack 存储并更新内存中的索引。如果索引中已经包含相同的 Key,说明是修改操作。

  照片存储的读操作

  传递到 Haystack 的参数包括 Haystack ID,照片的 Key, 尺寸以及 Cookie,服务器从缓存中查找并到 Haystack 中读取真正的数据。

  照片存储的删除操作

  通知 Haystack 执行删除操作之后,内存中的索引缓存会被更新,将便宜量设置为0,表示照片已被删除。

  重新捆扎

  重新捆扎会复制并建立新的 Haystack,期间,略过那些已经删除的照片的数据,并重新建立内存中的索引缓存。

  HTTP 服务器

  Http 框架使用的是简单的 evhttp 服务器。使用多线程,每个线程都可以单独处理一个 HTTP 请求。

  结束语

  Haystack 是一个基于 HTTP 的对象存储,包含指向实体数据的指针,该架构消除了文件系统元数据的开销,并实现将全部索引直接存储到缓存,以最小的 I/O 操作实现对照片的存储和读取。

  本文国际来源:http://www.facebook.com/FacebookEngineering#/note.php?note_id=76191543919&ref=mf

  中文翻译来源:COMSHARP CMS 官方网站

时间: 2024-10-26 05:55:26

看看Facebook 如何管理150亿张照片的相关文章

Facebook如何让200亿张照片悄悄搬家

Instagram 有 2 亿用户,上面保留有用户分享的 200 亿张照片.从 2010 年到今年春之前,这些照片一直存放在 Amazon 的 EC2(弹性计算云)上,但现在这些照片已经被Instagram的一只小型团队搬到了收购了他们的 Facebook 的数据中心上,但 2 亿用户对此却毫不知情,仿佛什么事情都没发生过一样.他们是怎么做到的呢? Facebook 是在以 10 亿美元收购 Instagram 1 年后的 2013 年 4 月作出迁移决定的.整个迁移过程用时大约 1 年.尽管迁

Tumblr:150亿月浏览量背后的架构挑战

Tumblr:150亿月浏览量背后的架构挑战 2013/04/08 · IT技术, 开发 · 9.9K 阅读 · HBase, Tumblr, 架构 英文原文:High Scalability,编译:CSDN 导读:和许多新兴的网站一样,著名的轻博客服务Tumblr在急速发展中面临了系统架构的瓶颈.每天5亿次浏览量,峰值每秒4万次请求,每天3TB新的数据存储,超过1000台服务器,这样的情况下如何保证老系统平稳运行,平稳过渡到新的系统,Tumblr正面临巨大的挑战.近日,HighScalabil

每天150亿起攻击 这是一个恐怖的企业安全故事!

本文讲的是 每天150亿起攻击 这是一个恐怖的企业安全故事!,信息安全问题,是牌匾上凌厉的"生人勿近",一旦遭遇,企业就只能自求多福?! 现实世界中,企业面临的安全威胁种类繁多,但真正的危险,是企业以为自己本身足够安全,殊不知威胁早已渗入内部,伺机而动. 全球最大的婚外恋网站Ashely Madison被黑,多国政客及许多世界顶级公司的高管也名列其中,随后他们相继离职,虽是一时的心猿意马,但信息安全问题使他们身败名裂. 美国零售商巨头Target 2013年才刚在九月拿到PCI-DSS

看年营收150亿元的迈克菲如何做云安全?

芯片巨头英特尔于2011年以77亿美元的价格收购了安全厂商迈克菲,后者在2014年成为英特尔的一个部门Intel Security,并于本周正式宣布,完成出让51%的股份,再次独立运营.据英特尔的年度财报,2016年安全业务收入达到22亿美元,以目前的汇率换算成人民币, 超过150亿元,堪称世界上最大的网络安全厂商之一. 看年营收150亿元的迈克菲如何做云安全?-E安全 以杀毒业务起家的迈克菲,目前业务已经拓展到包括端点安全.数据安全.安全运营和数据中心与云安全的四大类业务线,其中数据中心与云安

每天150亿起攻击 这是一个恐怖的企业安全故事!

信息安全问题,是牌匾上凌厉的"生人勿近",一旦遭遇,企业就只能自求多福?! 现实世界中,企业面临的安全威胁种类繁多,但真正的危险,是企业以为自己本身足够安全,殊不知威胁早已渗入内部,伺机而动. 全球最大的婚外恋网站Ashely Madison被黑,多国政客及许多世界顶级公司的高管也名列其中,随后他们相继离职,虽是一时的心猿意马,但信息安全问题使他们身败名裂. 美国零售商巨头Target 2013年才刚在九月拿到PCI-DSS合规认证,但在11月就被攻击,并在两个月内约有1.1亿用户数据

中移动将给铁通150亿资金加强宽带战略

150亿投资.两大宽带品牌,铁通终于走出重组之后长达两年的"迷茫期",成为中移动全业务战略中的重要一环.近日,中移动副总裁赵吉斌在视察厦门铁通时透露了一个宏伟蓝图:2011年中移动将给铁通150亿建设资金,用于宽带建设,并建议发展两个宽带品牌,一个是高端的集团用户,可以采用光纤接入,提供高质量服务:一个是低端的集团用户,主要是家庭用户."宽带提供者"将成为铁通新的坐标. 150亿猛药 自电信重组以来,虽然中移动对铁通的整合目标就明确为"在全业务环境下确立共

中钢集团加速上市步伐拟先A后H模式融资150亿

"长江"办是中国中钢集团公司(简称"中钢集团",英文简称Sinosteel)内部最近最忙碌的部门,而"长江"项目也在中钢高层的谈话中不断出现. "'长江'是我们对中钢集团A股上市计划的代号."知情人士称:"从目前的情况看,这个项目将在今年10月左右完成." 期望登陆国内A股,是中钢集团在两年多前就已经开始筹划的大事.收购的资本支出在前,待建的百亿项目在后,中钢集团已经加速在A股上市的步伐. 代号"

报告称网购陷阱一年卷走150亿元

本周金山网络发布的<2010年中国网络购物安全报告>显示,今年已有超过1亿用户曾遭遇过钓鱼网站和木马攻击,直接经济损失突破150亿元. 钓鱼诈骗增多 金山网络统计数据显示,今年前10个月,平均每天新增网络购物钓鱼网站1500个.其中最典型的仍然是低价诱惑:网络黑客们以"惊爆价"."超值"吸引网民.此外电话诈骗和网络诈骗的捆绑也成为新型诈骗手段,尤其是机票预订. "钓鱼欺诈的方式与传统的病毒产业链相比,整个钓鱼欺诈过程,一个人即可完成,钓鱼者可以

腾讯旗下易迅架构调整 全年销售目标150亿

中介交易 SEO诊断 淘宝客 云主机 技术大厅 新浪科技讯 3月4日下午消息,腾讯旗下电商平台易迅CEO卜广齐今日发出内部邮件,宣布即将对易迅组织架构进行调整,新成立电商经营本部.物流本部.企业发展本部和新区管理委员会.卜广齐透露,今年的销售目标为150亿-200亿. 卜广齐在邮件中表示,从去年开始"行业竞争已经进入最后决赛阶段,2-3年内行业格局将基本成型,易迅将迎来最后一波发展机遇,同时也将面对更大挑战".在这样的背景下,易迅管理层在讨论和酝酿后,决定进行组织架构调整. 调整方案为