什么才是档案存储的经济现实?

许多人都认为档案管理应该非常便宜。毕竟,你对性能没什么要求,所以成本应该不会很高。

但是,这些人却忽略了档案存储几个影响方案成本的重要方面。

在任何存储金字塔的图解里,档案管理都处于金字塔的底层位置。档案存储对容积要求极大和但对性能需求极少。它就是你存放数据的地方,而且你可能还需要时不时对其进行访问。

档案存储在概念上很简单,但是细节操作却很麻烦。

档案基本要素

当你在思考档案存储的方案时,就需要提出几个基本问题,如:

我想要什么样的性能(把数据推入档案,从档案中调出数据)?

需要存入多少数据?

我对此档案存储的依赖性要多强(或说我可以承受多大的风险)?换言之,数据有多重要?

这些问题的答案可以为你的档案存储方案指明道路。但是很多人没有想明白这些问题的答案会在经济方面对档案存储产生什么影响。

例如,如果我需要一个在数据丢失方面风险极低的方案,需要花多少钱?如果我可以承受更多的数据丢失风险,那么可以减少多少钱?数据复示性能对成本影响有多大?如果我对数据的需求不是特别着急,那么降低性能需求后是否可以减少成本?

这些都是我们在设计档案存储方案时要考虑的事情。希望了解自己所做的决定会产生什么后果,这是人之常情。但是人们真地了解所做决定的经济现实吗?

一分钱一分货

我妻子带着我看了一个名叫“Love It or List It”的电视节目。参与节目录制的家庭要重新布置目前的家,同时要寻找可能的新家。在节目最后,他们要决定–留在原来的家,重新布置或者卖掉原来的家再买个新房子。

令我觉得有趣的是,在整个过程中,所有参与家庭要列出一张家庭优选项目。例如,如果他们是搬离这个原址,是否能够买到一个更大的房子?或者,如果他们放弃打掉厨房承重墙的愚蠢想法,那么可否在愿望清单里添上其他什么东西?

这些参与节目的人都是被迫思考优先项目的问题。所以他们才会以理智的方式进行取舍。他们的决定取决于实际的经济情况。其中一些人确实认为自己可以完成愿望清单所有项目的购置。

后来,我似乎遇到了这样的情况–人们想要异常廉价的档案存储,廉价到有些荒谬。但同时,他们不愿意接受廉价方案背后,数据风险会丢失的事实。他们坚持认为数据中心里可以使用廉价档案存储,而且不会有什么数据丢失的风险。

许多人自以为档案存储就是廉价的,易于创建的。而且数据会一直保存在那里,不会发生变化。他们忘记了档案存储也是一分钱一分货的道理。

通常情况下,如果你想要更多数据以及更快的数据调用能力,同时数据丢失的风险还要最低,那么你就得付出同样的成本。

经济现实

为了解释清楚需要取舍的要素,让我们先看看各种存储方案以及它们的失误频率。

最常见的风险是硬错误率,是指某个部分无法读取之前已被读取的比特量。这种硬错误率因存储方案的不同而不同。

Henry Newman写了一篇很好的文章,其中的一个表格就列出各种存储媒介的硬错误率,以及这种错误率对PB级别的数据意味着什么。也就是说,在出现读取错误之前,可从存储媒介中读取多少数据。Henry的第一个表格如下表所示:

 

可以用一种替代方式来考虑这一数据,即思考如果以全速读取数据,需要多少时间遇到不可读区域。

Henry的第二个表格展示的内容是:当你使用一个或一个以上的设备,而且以最快速度读取数据时,需要多久的时间就会遇到一个读取错误。表二显示了他统计的数据,而且他还为250台设备和300台设备的计算结果增加了两列。

 

这两个表格显示出当你使用SATA或SAS磁盘时,你远东不可读区域的最大容积值约为1PB,最小容积值约为110TB。即便有了这个统计数据,你遇到硬错误的时候仍然很难进行估算,因为硬错误对配置的依赖性非常大。

遇到一个硬错误通常意味着RAID控制器认为驱动坏了,需要重建。为了访问你想读取的数据,你需要等待重建才能实现。重建所需的时间可能非常长,而且依然取决于配置。

在此期间,需要读取所有其他的驱动,这样就会增加遇到另一个硬错误的可能性,还可能会丢掉RAID群组。结果便是,你需要对档案数据做多个备份。

Henry在其文中指出副本的数量是一个开放性的问题。但是,最少也得准备两个到三个副本。“最少”二字意味着在存储硬件中你需要准备两到三倍于这个档案容积的空间。如果你的档案占了1PB,那你就要准备2-3PB的存储空间。

便宜的档案存储是怎样的呢?能实现0.25$/GB的档案存储吗?

答案是档案的存储价格可以接近这个价格,但是同时存在风险。要想显著减少风险,你需要两到三个副本。0.25$/GB的档案存储成本会突然上升到0.50$/GB或0.75$/GB。这些还只是硬件成本。

你需要某类文件系统来保存这些数据。就低端配置而言,你只需创建两到三个不一样的使用免费文件系统的存储池。然后,你可以把档案数据放到一个副本上,并使用rsync确保数据被复制到另一个存储池。

如果你遇到一个硬读取错误该怎么办呢?这会触发RAID重建。你可以使用其他副本保存这些数据,但是这需要提前编程。而且你还要确保余下的副本是正确的。换言之,你要自己完成所有的编程和维护工作。而且这些工作全都是免费的,是吗?

如果是其他角度的话,还有文件系统,许多文件系统是专属的或者有商业支持,所以可为你处理这方面的事项。在这些文件系统中,数据被复制,用来确保存储池中分布了两到三个副本。出现硬读取错误事件时,文件系统可以读取数据的其他副本,同时重建后台。后台重建完成后,它就会对发到其他副本的数据进行核查。不过,系统仍旧要读取数据,所以我们再次增加了出现硬读取错误的几率。

后台会因此增加大量工作。所以你得弄个这样的文件系统来减轻负载。

结语

档案存储不是你所以为的那么简单。你要问问自己进行档案存储的目的是什么,需要存储的数据量是多少。最重要的是,你需要知道档案数据的重要性。这几个问题的答案对档案的经济现实有极大影响。

你不能在机械旋转磁盘上进行大体积的档案存储,而且还只准备一个副本,且希望数据不会丢失。表一中的硬错误率已经对这一点表明清楚。

如果你不在乎会遇到有些数据无法读取的情况,那么你可以购买硬盘做一个数据备份,或许可以达到廉价的效果。

但是,如果你的数据很重要,而且你又担心出现无法恢复的读取操作,那你就需要一个以上的副本。这也意味着你需要的硬件比你原以为的要多。例如,如果你想要一个1PB的档案,你就需要2PB,3PB或更多空间。如果1PB的存储硬件需要0.25$/GB,那么存储三个数据副本所需的成本是0.75$/GB。

硬读取错误率的影响以及所需的数据副本数量是很多人都不想面对的的经济现实。人们的期望是:档案数据所需性能低,所以成本也低。但事实上,如果你想在机械旋转磁盘上存储大型档案数据,而且还要及时读取这些数据,且要减少数据丢失的风险,那么你就需要多个数据副本。这样所需的成本就会超出你的预期–但是这就是档案存储的现实。