加州大学计算机教授解读纠删码:定义及常见类型

日期: 2014-11-02 作者:Carol Sliwa翻译:Chris Zhou 来源:TechTarget中国 英文

企业IT部门对最常见的纠删码类型——RAID5和RAID6很熟悉,但不一定很了解其它类型的纠删码,那些可以在大于两个硬盘、存储节点或跨地域间损坏时还能保证数据不丢失的纠删码。

在这次的采访中,加州大学的计算机科学教授Ethan Miller讲述了纠删码的工作原理、纠删码的类型,以及在什么样的应用和什么样的负载状况下使用哪种类型的纠删码是最合适的,他还讲解了支持纠删码的产品间的不同。此外,他还分享了他对未来纠删码的前景展望。

Miller教授对纠删码以及在存储系统中如何应用纠删码做了研究。除了在大学中的工作,Miller在企业级固态存储阵列提供商Pure Storage公司中从事兼职工作。纠删码并不是他在这家公司的主要工作,并且Pure Storage公司现有的产品中没有除了RAID5 和RAID6以外的纠删码。

你能给纠删码一个好的定义吗?

Ethan Miller:纠删码是在丢失部分数据的情况下根据剩余数据将丢失的数据重建的一组算法。举个例子,如果我想保护六份数据,我会使用一种纠删码算法来产生两份额外的数据,这样总共就会有八份数据。这八份数据中的任意六份数据都能恢复另外两份数据。

纠删码的要点是你可以选择对数据做任意数量的分片。我知道一些纠删码可以将数据至多分成200片或者奇数片,你也可以选择校验数据的数量。比如可以是10份原始数据加上8份校验数据,一共18分数据。其中只要有任意10份数据是完整的就可以恢复全部数据。

所有IT部门都使用RAID5和RAID6,这也是最常用的纠删码类型。大部分的IT部门不考虑使用能够保护多于两份数据丢失的纠删码类型,至少现在是这样。不做考虑的原因是在同一个RAID组中两个成员同时发生故障的几率相对较小。但如果你的IT环境很大,数据量有1PB甚至更多,那么你可能需要考虑使用在两个成员都发生故障时依然能够保护数据的纠删码。

有其它类型的纠删码吗?

Miller:是的,人们需要了解两种基本的纠删码类型。一种叫做Reed-Solomon纠删码,如果你有12份数据单元和4份纠删码单元,这总共的16个数据单元可足够用于恢复数据。如果任意12份数据是完好的,也就是说无论哪4份数据出现故障,你都可以恢复数据。

第二种类型的纠删码在目前会更加普遍一些。同样的,假设你有12份数据单元和4份纠删码单元,你可以在4份单元中的大部分单元都出现故障时恢复数据。这会稍微一些风险,但同时你也能因此得到回报。回报就是你可能只需要从三份、四份、五份、六份单元中恢复数据,而不需要通过12份单元来恢复。这样在恢复数据的过程中,读操作大量减小了。这种纠删码的风险是如果固定的四份数据单元出现故障,数据将无法恢复。

如果你在决定使用哪种纠删码,你需要确定你的数据的重要性,如果它们很重要,你可以使用类似Reed-Solomon的纠删码。如果你对性能更加关注,可能那种使用4份纠删码单元的纠删码会更加吸引你,而且由于4份数据同时发生故障而导致数据丢失的可能性也比较小。了解不同类型纠删码的特性是很重要的,这可以使你能够根据你的应用系统来决定使用哪种纠删码。

哪种应用、负载以及数据类型适合使用纠删码?

Miller:有一种类型的数据非常适合使用纠删码,这种数据就是归档数据。因为归档数据需要保存相当长的一段时间,一份、两份或多份数据出现问题的可能性会急剧上升。

归档数据的另一个特性是写入操作很少,这使得纠删码可以很轻易的恢复数据。一旦你写入一次数据,你可能会在很久以后才会读取,甚至永远不会再读取。纠删码的大部分额外开销是在写入的时候产生的(写惩罚),而在读取的时候只有少量开销。事实上,只有在发生故障的时候才会有额外的读取开销。如果没有故障发生,纠删码对读取操作通常不会有任何影响。

从应用的角度来看,对于读写都很繁忙的应用,使用纠删码并不是一个很好的选择。但对于只有大量读取的应用,纠删码可以提供强大的可靠性,并且在恢复数据的时候只产生很小的额外开销,因为纠删码的额外开销主要来自写操作。

如何评判不同产品的纠删码?

Miller:我认为评判纠删码的第一条标准是性能。换句话说,当你部署了一种纠删码后,写入速度会有多快?进行数据恢复时的读取速度有多快?

另一个标准是纠删码如何将数据单元分割?可以是整盘的分割,可以是卷级的分割,也可以是部分盘或部分卷的分割,总之会有各种方式将数据单元进行分割。分割时还会遇到的一个问题是纠删码单元的数量有多少?有10个数据单元和5个纠删码单元组成的纠删码系统,也有12个数据单元和4个纠删码单元组成的纠删码系统。但大部分纠删码产品都能配置数据单元和纠删码单元的个数。

还有一个需要考虑的点是某些纠删码类型会带来一些问题,尽管并非一定会有问题。大部分产品都是用Reed-Solomon纠删码,所有的Reed-Solomon纠删码的工作机制基本是相同的。但有些类型的纠删码为了使数据恢复更加快速,采用了不同的工作机制。使用这种类型纠删码的厂商宣称它能从4块硬盘中的部分硬盘(并非所有硬盘)中恢复99.9%的数据丢失故障,但正如之前的描述,这种让数据恢复更加快速的工作机制会增加一定的风险。所以在你做出选择之前需要了解它们的工作机制。

还有些需要考虑的小细节,比如不同的厂商部署纠删码的方式或许会有些不同。所以在部署之前你需要了解每个厂商的纠删码是如何工作的,它们能在什么样的场景恢复数据故障。

你认为纠删码会在未来掀起一波浪潮吗?

Miller:我认为在某些领域,纠删码会在未来掀起一波浪潮。特别是在存储归档领域,在我看来纠删码是必备的,因为你会把数据保存10年甚至20年,你会经历各种故障并将它们恢复。此外在数据归档中,你会经常读取数据,就像我们之前提到的,只有写归档数据才会有额外的性能开销。所以纠删码在未来一定会在数据归档领域成为潮流,这毫无疑问。

此外,我认为未来纠删码是否会成为潮流取决于设备容量大小和读写速率的相对速度提升差异。当存储容量的增速大于读写速率的增速时,纠删码的作用就更能够体现。这就是为什么我们从90年代中期(那时我是加州大学伯克利分校的RAID小组的一员)的RAID5走到了今天的RAID6。看看过去,当时你读一整块硬盘的时间只需要几分钟时间,而今天你可能要花上大半天。如果用最快的速度在连续一周的时间进行读取操作,你可能需要更好的纠删码,因为在一周的时间你可能会遭遇两到三次的故障,这样你需要花费额外的资源去重建数据,你也希望这些故障能够被解决。所以我认为由于我们的存储设备容量在不断变大,但读写速率并无法按照相应的比例来提升,我们对纠删码的需求就会变得越来越多。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

Carol Sliwa
Carol Sliwa

资深编辑、作者

相关推荐

  • 2016全球数据保护指数:中国有20%的企业居于领先

    2016年3月份,EMC委托Vanson Bourne公司对企业数据备份现状进行了一项题为“EMC 2016全球数据保护指数”的独立调查。从结果来看,全球有11%的企业作为领导者和采用者居于指数领先水平,而值得注意的是,中国处于该水平的企业达到20%。

  • Fujitsu基于Ceph推出Eternus CD10000

    Fujitsu最新推出基于Ceph的Eternus CD10000,该产品加入了优化的纠删码、容量侧重和性能侧重的存储节点、内部备份以及为灾备设计的分离式集群等特色。

  • 归档介质如何选?

    当前有很多归档介质是可用的,包括磁盘和云,但是他们的可用性和存储密度水平是多变的。

  • 除了成本 你还要关注的数据湖架构隐忧

    尽管IT部门往往更关心数据湖存储系统的成本,但数据持久性和安全也是不容忽视的重点。