浅谈Facebook图片存储系统HayStack概要

张友东 发表于:11年05月16日 00:42 [转载] IT168

  • 分享:
[导读]HayStack是Fackbook用于存储照片的系统,其存储照片的数量在千亿数量级

HayStack是Fackbook用于存储照片的系统,其存储照片的数量在千亿数量级,本文简要分析HayStack的设计与实现原理。

图片存储的几个关键点:

1. Metadata信息存储。由于图片数量巨大,单机存放不了所有的Metadata信息,假设每个图片文件的Metadata占用100字节,260 billion图片Metadata占用的空间为260G * 100 = 26000GB。

2. 减少图片读取的IO次数。在普通的Linux文件系统中,读取一个文件包括三次磁盘IO:读取目录元数据到内存,把文件的inode节点装载到内存,最后读取实际的文件内容。由于文件数太多,无法将所有目录及文件的inode信息缓存到内存,因此磁盘IO次数很难达到每个图片读取只需要一次磁盘IO的理想状态。

3. 图片缓存。图片写入以后就不再修改,因此,需要对图片进行缓存并且将缓存放到离用户最近的位置,一般会使用CDN技术。

HayStack的主要目标:

1. High throughput and low latency(高吞吐量、低延时):简化元数据结构与存储模式,直接存储文件在物理卷上的位置,减小lookup时间。

2. Fault-tolerant(容错性):在不同的机器上维护多个副本

3. Cost-effective(高效):提高存储空间利用率、提高请求处理效率。

4. Simple(简单):易于实现和维护,部署周期短。

HayStack的总体架构:

Haystack的写请求(图片上传)处理流程为:Web Server首先请求Haystack Directory获取图片的id和可写的逻辑卷轴,接着将数据写入对应的每一个物理卷轴(备份数一般为3)。

Haystack图片读取请求大致流程为:用户访问一个页面时,Web Server请求Haystack Directory构造一个URL:http:// / / / ,后续根据各个部分的信息依次访问CDN,Cache和后端的Haystack Store存储节点。Haystack Directory构造URL时可以省略部分从而使得用户直接请求Haystack Cache而不必经过CDN。Haystack cache收到的请求包含两个部分:用户Browser的请求及CDN的请求,Haystack cache只缓存用户Browser发送的请求且要求请求的Haystack Store存储节点是可写的。一般来说,Haystack Store的存储节点写一段时间以后达到容量上限变为只读,因此,可写节点的图片为最近增加的图片,是热点数据。

Haystack 删除操作比较简单,只是在 Haystack 存储的指针上设置一个已删除标志,已经删除的指针和索引的空间并不回收。可通过定期的对物理卷进行合并,以回收已删除的空间。

[责任编辑:朱宇]
相信无人不知惠普存储融合之道,作为辐射企业级、消费电子、软件等从基础架构到终端的厂商,惠普融合之道确实搭建了一个非常利于其存储发展的大舞台。为此,在丰富惠普存储王国的过程中,3PAR的进入,不仅带给惠普存储新的力量,同时也带来了新的趋势,完善了惠普在中高端存储领域的阵营,不过,从HP搭台3PAR唱戏到HP和3PAR同台共舞,惠普一直坚持融合存储之道,将瞬捷战略也结合了起来。由此,我们便看到了HP 3PAR给存储业带来的新的惊喜,从而形成了MSA、Lefthand、EVA、XP、3PAR惠普的五虎上将。
官方微信
weixin
精彩专题更多
华为OceanStor V3系列存储系统是面向企业级应用的新一代统一存储产品。在功能、性能、效率、可靠性和易用性上都达到业界领先水平,很好的满足了大型数据库OLTP/OLAP、文件共享、云计算等各种应用下的数据存储需求。
12月15日,中国闪存联盟成立,同时IBM Flash System卓越中心正式启动
DOIT、DOSTOR、易会移动客户端播报中国存储峰会盛况。
 

公司简介 | 媒体优势 | 广告服务 | 客户寄语 | DOIT历程 | 诚聘英才 | 联系我们 | 会员注册 | 订阅中心

Copyright © 2013 DOIT Media, All rights Reserved.