2024年4月12日发(作者:)

RAID6原理

既然是讲原理,那些“为什么需要RAID6”、“RAID6的优势”等内容就都省去了。

直接进入枯燥无趣的理论。

一、RAID5和XOR运算

为了照顾初学者,还是先把相关基本概念介绍一下,老手可以跳过这部分直接看下面。

(别低头!是看本帖下面,想些什么呐~)

XOR运算是数理逻辑的基本运算之一,在课本上的符号是一个圆圈里面一个加号。实

在懒得用插入符号功能,大家就凑合着看吧。

两个数字之间的XOR运算定义是:

1 XOR 1 = 0

1 XOR 0 = 1

0 XOR 1 = 1

0 XOR 0 = 0

(忽然想起试行新车牌的时候,有些深圳人用三位二进制数标记性别。010是男的,

101是女的。Sorry,扯远了。)

- 1 -

多个数字XOR的时候,有两个特点:

A)结果与运算顺序无关。也就是 (a XOR b) XOR c = a XOR (b XOR c)。

B)各个参与运算的数字与结果循环对称。如果 a XOR b XOR c = d,那么a = b XOR

c XOR d;b = a XOR c XOR d;c = a XOR b XOR d。

磁盘阵列中的RAID5之所以能够容错,就是利用了XOR运算的这些特点。上面例子

中的a、b、c、d就可以看作是四颗磁盘上的数据,其中三个是应用数据,剩下一个是校

验。碰到故障的时候,甭管哪个找不到了,都可以用剩下的三个数字XOR一下算出来。

在实际应用中,阵列控制器一般要先把磁盘分成很多条带(英文叫Stripe,注意不是

Stripper),然后再对每组条带做XOR。

见下面第一个图。

P1 = 数据a XOR 数据b XOR 数据c

P2 = 数据d XOR 数据e XOR 数据f

P3 = 数据g XOR 数据h XOR 数据i

P4 = 数据j XOR 数据k XOR 数据l

扫盲部分就讲这么多,再不懂就google吧,满山遍野都是RAID5算法的介绍。

- 2 -