- 论坛徽章:
- 0
|
既然是讲原理,那些“为什么需要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,扯远了。)
多个数字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算法的介绍。
[ 本帖最后由 pekics 于 2006-8-25 10:40 编辑 ] |
|