存储 频道

RAID6连载(二):RAID6算法解析

    【IT168 专稿】上一节我们讲过了我们通过几种传统磁盘容错方式的比较,讲述了我们为什么需要RAID6,这一节我们将接续上节内容,详细讲述RAID6的数学算法。在本文开始之前需要声明的是:如果您并非对存储技术深感兴趣,或者平时不必要接触和配置RAID6,那么本节您可以直接略过。毕竟除了一些技术爱好者和白皮书狂人以外,不是所有人都能看下去这么枯燥晦涩公式。

    如果你需要实际配置和操作RAID6,或者你希望在听厂商洗脑的时候有一定的辨别能力,那么还请您耐住性子慢慢看下来。本文介绍的这些抽象的数学算法,可以让你更好的理解RAID6技术,尤其到我们连载系列第三节讲述真假RAID6的时候,会帮助你理解得更加直接和深刻。

    先做好接收烦恼的准备吧,下面让我们一起进入疯狂的公式世界。@_@

    首先我们先介绍一些后面必然会涉及到的基础概念,就像如果我们要解释E=MC8就必须先说清楚,什么是E,什么是M,什么是C等等。我们首先介绍XOR校验。

[疯狂公式之一XOR校验]
    XOR算法是RAID运算里最基础的概念,也是RAID5的容错原理,在RAID6里也将频繁涉及到。

    XOR最基本的bit运算法则为:1⊕1 = 0, 0⊕0=0, 1⊕0=1.因此,会衍生出如下的byte运算法则,对于byte数据M来说:M⊕M=0, M⊕0=M。

    如果P为数据块X,Y,Z计算的XOR 值,也就说P = X⊕Y⊕Z时;当X数据块故障时,可以通过P,Y,Z来得到它,也就是X = P⊕Y⊕Z = (X⊕Y⊕Z) ⊕Y⊕Z=X⊕(Y⊕Y) ⊕(Z⊕Z)。

    这就是基于XOR运算的RAID5能够允许一个存储设备故障的根本原因。

0
相关文章