本文摘于《数据重现--文件系统原理精解与数据恢复最佳实践》转载请注明出处
RAID5是目前应用最为广泛的阵列类型,它的原理就是在同一个条带内用一个数据块大小的空间存放同条带内其他数据块相互异或计算的结果,也就是奇偶校验位P。假设RAID由n块磁盘组成,使P=D0 XOR D1 XOR D2...XOR Dn-2。当其中一块磁盘驱动器失效时,可以由剩下的n-1块磁盘中的数据及校验重新计算出失效磁盘上的数据内容,从而保证了在一块磁盘驱动器失效情况下的数据安全性。
以四块磁盘组成的RAID5为例,由于RAID的成员盘为4块,所以每个条带内有三个数据块和一个校验块。以0号条带为例,数据块为D0、D1和D2,校验块为P0,则:
P0 = D0 XOR D1 XOR D2
如果0号磁盘失效,也就是D0丢失,则通过D1、D2、P0三者之间进行异或就可以将它重新计算出来,即:
D0 = D1 XOR D2 XOR P0
同样,D1或D2丢失时也可以使用校验数据和其余的数据计算得到。这就是RAID5允许一块磁盘失效而不会影响数据安全性的原理所在。
在RAID5中,因校验块的循环方向、数据块的排列方式不同而存在几种不同的阵列布局。下面将向大家介绍RAID5的校验循环方向和数据的同步异步。
1. 左循环和右循环
所谓“循环方向”,是指
RAID
中的校验块的走向,一种是左循环,一种是右循环。
u
左循环
以四块磁盘组成的
RAID5
为例,左循环即阵列的条带
0
的校验块位于阵列最后一个磁盘(即
3
号盘)的
0
号块,条带
1
的校验块位于倒数第二个磁盘(即
2
号盘)的
1
号块,条带
2
的校验块位于第三块磁盘(即
1
号盘)的
2
号块,条带
3
的校验块位于磁盘
0
的
3
号块,这时即完成一个整循环,再回至
3
号盘的的
4
号块
…
,类似由右向左旋转而下(如表
8.5
所示),因此称为左循环,也称为左旋转,有的软件中可能会称为“
backward
”。
表8.5 左循环
|
磁盘
0
|
磁盘
1
|
磁盘
2
|
磁盘
3
|
条带
0
|
|
|
|
0P
|
条带
1
|
|
|
P1
|
|
条带
2
|
|
P2
|
|
|
条带
3
|
P3
|
|
|
|
条带
4
|
|
|
|
P4
|
条带
5
|
|
|
P5
|
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
u
右循环
仍以四块磁盘组成的
RAID5
为例。通常情况下,右循环即条带
0
的校验块位于
0
号盘,条带
1
的校验块位于
1
号盘,条带
2
的校验块位于
2
号盘,条带
3
的校验块位于
3
号盘,这时完成一个整循环,下一个校验又回至
0
号盘
…
,类似于由左向右旋转而下(如表
8.6
所示),因此称为右循环,也称为右旋转,有的软件中可能称为“
forward
”。
表
8.6
右循环
|
磁盘
0
|
磁盘
1
|
磁盘
2
|
磁盘
3
|
条带
0
|
P0
|
|
|
|
条带
1
|
|
P1
|
|
|
条带
2
|
|
|
P2
|
|
条带
3
|
|
|
|
P3
|
条带
4
|
P4
|
|
|
|
条带
5
|
|
P5
|
|
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
提示:还有一种情况,即阵列的第一个校验块并不是位于
0
号盘,而是位于其他的磁盘上(如表
8.7
所示)。当然,这种情况并不多见。而且除了第一个校验块起始位置不同外,其他方面并没有任何特异之处。所以在此我们只讨论常规情况,对于这种特殊情况,读者可以自行研究。
表
8.7
非常规循环方式
|
磁盘
0
|
磁盘
1
|
磁盘
2
|
磁盘
3
|
条带
0
|
|
|
|
P0
|
条带
1
|
P1
|
|
|
|
条带
2
|
|
P2
|
|
|
条带
3
|
|
|
P3
|
|
条带
4
|
|
|
|
P4
|
条带
5
|
P5
|
|
|
|
条带
6
|
|
P6
|
|
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
.
|
本文转自老骥伏枥51CTO博客,原文链接: http://blog.51cto.com/sjhfml/132501
,如需转载请自行联系原作者