最近,大家都在讨论大数据分析及其带来的商业情报的价值,但是在企业从这些数据中挖掘出有效信息之前,他们必须弄清楚该如何存储这些大数据。管理大数据(PB级或者更大的数据)与管理传统大型数据集完全不同,在线照片分享平台Shutterfly公司就非常清楚这一点。
Shutterfly是一个在线照片分享网站,它允许用户上传无限数量的照片,并以用户上传的分辨率来保存,绝对不会压缩尺寸,这与其他照片分享平台有所不同,同时,Shutterfly也表示从来不会删除一张照片。
“我们的照片存档大约是30PB的数据,”Shutterfly公司高级副总裁兼首席技术官Neil Day表示,“我们的存储池增长的速度比客户增长的速度还快。当我们获得一个客户时,他们做的第一件事就是向我们上传一堆照片,然后他们就会爱上我们的服务,然后他们又会上传另外一堆照片。”
为了对数据规模有个认识,大家可以看看这些信息:1 PB相当于100万TB或者10亿GB,美国宇航局哈勃太空望远镜前20年观测的图像数据大约为45TB的数据,而以128 KB/s记录的1TB压缩音频大约包含1.7万小时的音频。
完全不同的PB级基础设施
“PB级基础设施是完全不同的一回事,”Day表示,“它们很难建立和维护。PB或多PB级基础设施与传统大规模数据集之间的差别简直就像白天和黑夜的差别,就像在笔记本电脑上处理数据和在RAID阵列上处理数据之间的差别。”
当Day在2009年加入Shutterfly时,存储已经成为该公司最大的开支,并且以飞快的速度增长。
“每N个PB的额外存储意味着我们需要另一个存储管理员来支持物理和逻辑基础设施,”Day表示,“面对大规模数据存储,系统会更频繁地出问题,任何管理超大存储的人经常都要处理硬件故障。大家都在试图解决的根本问题是:当你知道存储的一部分将在一段时间内出现问题,你应该如何确保数据可用性,同时确保不会降低性能?”
RAID问题
解决故障的标准答案是复制,通常以RAID阵列的形式。但Day表示,面对庞大规模的数据时,RAID解决问题的同时可能会制造更多问题。在传统RAID数据存储方案中,每个数据的副本都被镜像和存储在阵列的不同磁盘中,以确保完整性和可用性。但这意味着每个被镜像和存储的数据将需要其本身五倍以上的存储空间。随着RAID阵列中使用的磁盘越来越大(从密度和功耗的角度来看,3TB磁盘非常具有吸引力),更换故障驱动器的时间也将变得越来越长。
“实际上,我们使用RAID并不存在任何操作问题,”Day表示,“我们看到的是,随着磁盘变得越来越大,当任何组件发生故障时,我们回到一个完全冗余的系统的时间增加。生成校验是与数据集的大小成正比的。当我们开始使用1TB和2TB的磁盘时,回到完全冗余系统的时间变得很长。可以说,这种趋势并没有朝着正确的方向发展。”
对于Shutterfly而言,可靠性和可用性是非常关键的因素,这也是企业级存储的要求。Day表示,其快速膨胀的存储成本使商品系统变得更具吸引力。当Day及其团队在研究潜在技术解决方案以帮助控制存储成本时,他们对于一项叫做纠删码(erasure code)的技术非常感兴趣。