Netapp的Raid DP 以及 Raid6详细原理,谢谢,要做方案!

来源:百度知道 编辑:UC知道 时间:2024/05/22 05:04:22
谢谢!

XOR运算是数理逻辑的基本运算之一,在课本上的符号是一个圆圈里面一个加号。实在懒得用插入符号功能,大家就凑合着看吧。
两个数字之间的XOR运算定义是:
1 XOR 1 = 0
1 XOR 0 = 1
0 XOR 1 = 1
0 XOR 0 = 0
(忽然想起试行新车牌的时候,有些深圳人用三位二进制数标记性别。010是男的,101是女的。Sorry,扯远了。)
多个数字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。
[img]http://www.cublog.cn/u/23218/upfile/060830164935.jpg[/img]
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算法的介绍。

二、RAID6和Reed-Solomon编码

本来想写成“李德-所罗门编码”,但那样就不方便大家一