社交网站如何“冷”处理海量图片

软件先锋 2015-07-30 16:31网络整理点击: 标签:

目前互联网上最火的应用应该算是社交网站了,随着用户数的激增,一些顶级的社交网站每天要分享近20亿张照片,而且需求还在不断增加。那么这些社交网站是怎么实现这种海量照片的存储和分享的?其幕后功臣之一就是Cold Storage系统。

知识扫盲——认识Cold Storage

Cold Storage直译过来就是“冷存储”,意思就是存储历史数据的存储系统。大家知道每天都有数以千万计的用户在社交网站上发布自己的社交日记,很多日记都包含图片。因为社交信息的传播具有及时性的特点,常常发布几天后图片就基本没什么人访问。因此社交网站历史图片数量非产多,为了保存这些历史图片,他们通过购买数量庞大的低端商品化硬盘来保存这些图片,数量之大,可以存放数百PB的数据(图1)。

201512jsjd1

图1 Prineville的Cold Storage设施

小知识:什么是PB?

PB是企业存储单位,根据换算,1PB=1024TB=1048576GB。以现在主流2TB硬盘为例,1PB大约是500块2TB硬盘的存储容量。Facebook每个数据中心都有数百PB容量,即使以100套计算,每个数据中心就有50000块2TB硬盘,因此其存储的数据是非常惊人的。

不只是简单的存储——Cold Storage工作原理解密

如上所述,社交网站每天都要保存海量的图片,但是Cold Storage并非只是简单保存这些数据。因为每天有很多用户在分享其中的图片,这样网站不仅要保证历史图片显示,而且要方便用户从服务器数据库中的引用。这样Cold Storage系统就要和开放机架、网络、数据中心等其他组成部分配合,同时还要保证数据的安全。Cold Storage主要是通过下面的技术手段实现的。

1、Open Vault Storage解决方案

Open Vault Storage是一套专门针对Open Rack(开放计算的机架标准)打造的简单高效的存储解决方案。它采用了模块化的I/O拓扑,每个2U机框可容纳30块硬盘,这样就可以在尽可能少的空间里摆放最多的硬盘,达到最高的存储/空间比。Open Vault Storage另一个重要特性就是交互性强,它几乎可以与任何服务器实现交互操作。这样Facebook服务器系统就能够实现和Cold Storage的数据交换(类似本地硬盘连接到Windows系统中),方便用户在网站上可以任意实现图片的下载、引用和分享(图2)。

201512jsjd2

图2 基于Open Vault Storage解决方案的Cold Storage机架

2、数据安全保护神——Reed Solomon Coding纠删码技术

对于每个企业来说,保障数据安全始终是重中之重的事情。特别是对于大型的网站企业,由于它们的数据量极其庞大,因此Cold Storage除了解决简单存储功能外还要保证数据安全。目前Cold Storage系统使用的是“Reed Solomon Coding纠删码技术”。

这种技术使用的是存储领域常用的数据冗余技术,它的原理是将一份原始数据分成n块,然后根据这些分好的数据块再生成m个校验块。这样当原始数据发生损坏的时候,我们利用特定的算法,从n个原始数据块和m个校验块中任取x块组合就能解码出原始数据(图3)。

201512jsjd3(请美编重新填字)

图3 数据冗余技术图解

通过冗余技术,Cold Storage可图3 数据冗余技术图解的成本实现数据的存储和冗余保护。从技术角度讲,校验块越多,安全性保障就越高,但同时需要存储校验块的容量开销就越大,从而提高存储成本。为了实现最佳的平衡,一些大型的社交网站目前的配置是10:4(即每10块硬盘配4块校验盘)。这样只要使用1.4GB存储空间就可以保障1GB数据的安全(图4)。

201512jsjd4(请美编重新填字)

图4 把1GB数据切分为10块分别放在10块硬盘,另用4块硬盘放校验

3、规模越大性能越好

社交网站上保存的数据非常多,而且每天24小时都要面对数以千万计的用户的访问。对于常规的系统规模变大后性能就会降低,但是Cold Storage系统却可以实现规模越大性能越好。因为这个系统在每次增加容量时软件都要对现有数据进行再平衡,即将原有数据分配到新的硬件上,并释放之前用过的空间。这样增加容量后对系统的性能就不会有影响,同时借助网站强大的服务器硬件和云计算、并行计算能力,Cold Storage可以实现规模越大性能越好,随时随刻都能够给用户良好的交互体验。

写在最后

现在社交网站已经成为很多人发表自己言论和获取他人实时信息的主要工具,而图片则在社交信息中占据重要的位置。显然Cold Storage技术的出现,一方面极大方便用户在社交网站发布和分享彼此的信息,由于Cold Storage可以保存很多的历史数据,即使你试图要查找自己或者某个明星几年前的发布的图片也变得轻而易举,极大方便用户使用并增加用户对其的粘性。另一方面通过将冷数据(历史数据)与热数据(生产数据)分离,用冷存储系统处理冷数据的做法,社交网站可以更好地服务好用户的数据请求,能够为用户提供更良好的交互体验,让用户通过网站能够和世界各地网友有更好的沟通和交流。