纠删码:确保RAID失效后的存储耐用性

纠删码是一种前向纠错技术,几十年来一直以多种方式被使用,现在这项技术正逐渐兴起于一种新的高容量存储系统中,用以解决RAID的局限性。

RAID在保护大容量驱动中的数据时有一些后继无力,因为RAID技术是在1GB驱动器出现前发明的。其基本理念是将数据分散在这些小的驱动器上,因此单个硬盘故障不会导致数据丢失。

当今的高密度磁盘驱动器让数据保护变得更加复杂了过去的20年间,驱动器的密度增加了两万多倍。企业级存储系统装有的单个驱动器容量就达2TB或3TB。此外,存储容量成本也很大程度地降低了:一个2TB的SATA驱动成本约为0。

分析:用更大的磁盘改变RAID的施展空间

这些新的高密度驱动的成本/容量使以比过去更具吸引力的价格将大量数据存储到旋转存储介质中提供了可能。那么,将大规模的数据保存到高密度驱动上,比如说P级别甚至更大量的数据会出现什么问题呢?

目前的1TB 和 2TB磁盘驱动器中,RAID很容易导致数据丢失,因为RAID的重建过程很长,需要一天或者更长的时间来完成某些安装启用。.如果任务的优先级较低,保证正常I/O性能时,重建过程甚至会更长。

如果磁盘驱动器密度继续增加,重建时间会长达数周也是不足为奇的。随着驱动器数量在可控范围内不断的增加,根据磁盘驱动标准年故障率不高于3%的行业标准,一些用户将必须不断地进行RAID重建。

在RAID-5上增加第二层保护,也就是现在的RAID-6,这个方法保护数据不受两个同时发生的磁盘驱动故障而不是单个故障的影响。这是为了应对驱动密度增加到几万兆字节出现的技术。

处理大量磁盘驱动器尤其是长时间重建的时候,第二个驱动器故障(RAID-5组中),或第三个驱动器故障(RAID-6组中)出现的可能性会大大增加。此外,重建RAID组的时候,如果系统碰到一个不可恢复的读错误(URE)将导致数据丢失。丢失6个或以上的磁盘驱动器,并且每个上面存有1T容量或更多的数据的话,将对一些企业造成灾难性打击。

纠删码工作原理解析与实现效果

纠删码能站在接受者的角度,将数据变成多个数据包,编入额外的信息,发送给接受者,然后解码并重新组成原始数据。关键是接受者能重组数据,即使是在某些数据包在传送过程中丢失的情况下(也就是说,接受者有原始数据包的子集)。

纠删码是伴随这CD,DVD和蓝光光碟的出现而兴起的一种数据保护方式,这些光碟即使出现了划痕或者光盘表面出现严重损坏,仍然可从中读取数据。应用程序中最常见的纠删码算法就是大家所熟知的里德所罗门码,它是上世纪60年代在麻省理工学院的林肯实验室开发出来的。

纯纠删码算法的使用可以实现RAID-6中双驱动器故障下的数据保护。某些安装程序实现了针对故障的多重数据保护,还有一小部分甚至能够允许用户(或存储管理者)将保护水平细化成具体策略。

比如,管理者可以选择数据可用度是在16个磁盘中出现4次故障的时候仍继续可用呢,还是16张磁盘出现6次故障的时候,或是30张磁盘出现10次故障的时候仍可用。这就解决了传统的RAID不能两个硬盘同时出现故障的关键性问题。

存储数据可用性可通过数据编码和分布来实现。写入的数据(例如文件、视频或图像数据)先分解成一系列的数据块。然后通过适用于这些数据块的纠删码机制进行改造,并生产较大的纠删码验证块。

然后这些纠删码码块分布在存储系统中的各个驱动器上,这样即使一个或多个硬盘发生故障,存储系统也能够重新恢复损坏数据。

更为重要的是,我们不仅需要注意数据的有效性,还要注意底层的存储效率。现在有一些适用于存储系统的纠删码码技术产品,也有一些较新的衍生版,如喷泉码、飓风码或在线纠删码。

每一种在应对多组件故障、不可恢复的读取错误和损坏的数据保护方面都具有独特的优点,大多数软件在系统元件故障时,还提供数据自动修复功能。这些系统还能够提供非常高等级的存储数据可用性,这就意味着其可大大降低每年的数据丢失率。

在目前的云存储环境中有一个共同的数据保护机制,即保持文件的多个副本(注:例如目前流行的“三副本云服务”)。云能够提供高等级的存储可用性,但这也将花费三倍的潜在资源和运营成本(硬盘、电能、散热、占地面积和成本支出)。

如果是300MB,就无需考虑这个问题了。当100PB有效空间需要300PB未使用空间来确保可用性的时候,它可能会变成一个限制因素。投入成本事实上要比RAID-6高(用200%的存储经费做三个备份 VS 用150%的经费使用RAID-6)

有了纠删码技术,就可以实现相对低成本下的高等级存储可用性了。在安装启动模式中,保护数据在16磁盘4次故障的情况下可用需要经费的60%。也就是说,每PB的有效空间需要1.6PB的未使用空间。

和其他方法相比,它可以有效地节省运行成本。使用了纠删码的存储系统因此有机会以更经济的方式将数据存储到高密度磁盘驱动器上,并保证数据的可靠性和持久性 。

Amplidata成立2008年,由当时一个存储领域退休人员组成的团队开始这项技术的研发,后来基于该项技术建立了AmpliStor—— 一个旨在解决散乱数据存储问题的优化目标存储系统。该技术的核心是以最低的成本提供最高的存储可靠性和可读取水平。AmpliStor可以扩展到P字节,和传统方法相比,保护数据所需的存储容量要低50-70%。