|
楼主 |
发表于 2008-7-2 21:05
|
显示全部楼层
一个稍微技术点的讲解
XOR应该是'异或'算法的简写,符号通常用'^':
'异或'就是两个数比较,'真' 异或 '假 结果'真','假' 异或 '真' 结构'真','真' 异或 '真' 为'假' ,'假' 异或 '假' 为假。
在计算机原理实验中,1^0=1,0^1=1,1^1=0,0^0=0,扩展一下:1^1^1=1(分解1^1=0,0^1=1).
假设某RAID-5有3磁盘,A,B,C,如果组件成RAID-5后,数据分布是如下的:
l A盘数据:B+C+校验数据A
l B盘数据:C+A+校验数据B
l C盘数据:A+B+校验数据C
系统写数据会同时写到3块盘是,因此往RAID-5盘组写数据时候,发现所有磁盘的灯都是平均闪亮的.
假设B盘损坏,我们加了一块空的盘到RAID-5组后上来,看看情况:
l A盘数据:B+C+校验数据A
l ‘B’空盘
l C盘数据:A+B+校验数据C
Raid-5系统的异或算法:
B与分别与A,C盘校验数据:
- 校验数据A与C盘A数据校验得到A数据写到B
- 校验数据C与A盘C数据校验得到C数据写到B,
- B数据直接写到B成为校验数据B
这样进行异或校验计算分别取回A,B,C数据,而B数据转为校验数据B,结果与原来一致了.如果坏了2块盘,我们可以看看:
l A盘数据:B+C+校验数据A
l ‘B’空盘
l ‘C’空盘
可以发现, 没有了校验对象,校验数据A都无法写出来了, A数据丢失了.直接影响了完整性.
通过该算法可以发现:
1.RAID 5必须有3块以上磁盘组成;
2.RAID 5中的其中一块磁盘出现硬件故障,不会影响整体数据的完整性,但是注意,一块磁盘故障后,需要马上更换好的磁盘上去,系统会自动同步数据到新的磁盘中.
3.磁盘组总容量是:[(3-1)%3 ] x (最小的磁盘容量x3),如果有n块mGB的磁盘,总容量为: [(n-1)%n ] x (n*mGB),结果发现,磁盘组容量为:(n-1) x mG |
|