杭州西湖晚会:raid 5 算法研究 - 存储设备 - LoveUnix 最强AIX小机论坛,UNIX,...

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 06:43:10

raid 5 算法研究

RAID -5 算法详解
过年了,业务相对较少,整天在办公室没什么事,突然就想起了raid 5,便有研究的冲动,以下是我对raid 5的理解

首先我们知道,硬盘物理上都是以01来存放数据,它并不认识什么AIXoracle之类的,在raid 5的世界里,只有01

现假设有四块硬盘做raid-5,其中,硬盘一、二、三是专门存放数据的,硬盘四是存放校验码。如下:
raid 5 是以条带化来存放数据的。如,有一个数据包是110(下面的条带一),它将会分布在各个硬盘上。)
硬盘
条带一
条带二
条带三
条带四
条带五
条带六
条带七
条带八

硬盘一
1
1
0
0
0
1
1
0

硬盘二
1
0
1
1
0
0
1
0

硬盘三
0
1
0
1
1
0
1
0

结果(硬盘四)
0
0
1
0
1
1 1
0


当有一个数据包110要存放到raid 5里时,控制器便会算出校验码(也就是硬盘四的结果)。
硬盘四算出的方法是:
硬盘四=硬盘一 XOR 硬盘二 XOR 硬盘三
硬盘四= 1 XOR 1 XOR 0 =0
因此,控制器先将110存放到前面硬盘一、二、三里,然后,再把算出的结果存放到硬盘四里。
XOR算法(异或算法)说明:
1 XOR 10
1 XOR 01
数的运算结果与数的运算次序无关。如1 XOR 0 = 0 XOR 1

如上所示,现假设硬盘一失效,现在要算出条带一上硬盘一的数据,如下:
公式:硬盘一 硬盘二 XOR硬盘三 XOR硬盘四
代入数字:硬盘一 1 XOR 0 XOR 0 1
因此,可用此方法算出硬盘一上的数据。

当更换了硬盘一时,控制器将根据这个算法,利用其它的硬盘,算出硬盘一的数据,进行数据恢复。

以此类推,可以保证,任何一个硬盘损坏了,都可以通过这样的算法,算出其上面的数据。

所以raid 5最少要三块盘,最少两个硬盘进行异或运算,一个硬盘存放运算结果,可用空间为N-1个硬盘空间(N为硬盘总数)。

以上只是为了方便说明,真正的raid 5是不会专门用一个硬盘来放校验结果数据的。而是几个硬盘轮流来充当校验结果的角色。


呵呵,希望大家多加指正和补充。