raid 5 算法研究 - 存儲(chǔ)設(shè)備 - LoveUnix 最強(qiáng)AIX小機(jī)論壇,UNIX,...
raid 5 算法研究
RAID -5 算法詳解 過年了,業(yè)務(wù)相對(duì)較少,整天在辦公室沒什么事,突然就想起了raid 5,便有研究的沖動(dòng),以下是我對(duì)raid 5的理解
首先我們知道,硬盤物理上都是以0和1來存放數(shù)據(jù),它并不認(rèn)識(shí)什么AIX、oracle之類的,在raid 5的世界里,只有0和1。
現(xiàn)假設(shè)有四塊硬盤做raid-5,其中,硬盤一、二、三是專門存放數(shù)據(jù)的,硬盤四是存放校驗(yàn)碼。如下: (raid 5 是以條帶化來存放數(shù)據(jù)的。如,有一個(gè)數(shù)據(jù)包是110(下面的條帶一),它將會(huì)分布在各個(gè)硬盤上。) 硬盤
| 條帶一
| 條帶二
| 條帶三
| 條帶四
| 條帶五
| 條帶六
| 條帶七
| 條帶八
|
| 硬盤一
| 1
| 1
| 0
| 0
| 0
| 1
| 1
| 0
|
| 硬盤二
| 1
| 0
| 1
| 1
| 0
| 0
| 1
| 0
|
| 硬盤三
| 0
| 1
| 0
| 1
| 1
| 0
| 1
| 0
|
| 結(jié)果(硬盤四)
| 0
| 0
| 1
| 0
| 1
| 1 | 1
| 0 |
|
當(dāng)有一個(gè)數(shù)據(jù)包110要存放到raid 5里時(shí),控制器便會(huì)算出校驗(yàn)碼(也就是硬盤四的結(jié)果)。 硬盤四算出的方法是: 硬盤四=硬盤一 XOR 硬盤二 XOR 硬盤三 硬盤四= 1 XOR 1 XOR 0 =0 因此,控制器先將110存放到前面硬盤一、二、三里,然后,再把算出的結(jié)果存放到硬盤四里。 XOR算法(異或算法)說明: 1 XOR 1=0 1 XOR 0=1 數(shù)的運(yùn)算結(jié)果與數(shù)的運(yùn)算次序無關(guān)。如1 XOR 0 = 0 XOR 1
如上所示,現(xiàn)假設(shè)硬盤一失效,現(xiàn)在要算出條帶一上硬盤一的數(shù)據(jù),如下: 公式:硬盤一 = 硬盤二 XOR硬盤三 XOR硬盤四 代入數(shù)字:硬盤一 = 1 XOR 0 XOR 0 = 1 因此,可用此方法算出硬盤一上的數(shù)據(jù)。
當(dāng)更換了硬盤一時(shí),控制器將根據(jù)這個(gè)算法,利用其它的硬盤,算出硬盤一的數(shù)據(jù),進(jìn)行數(shù)據(jù)恢復(fù)。
以此類推,可以保證,任何一個(gè)硬盤損壞了,都可以通過這樣的算法,算出其上面的數(shù)據(jù)。
所以raid 5最少要三塊盤,最少兩個(gè)硬盤進(jìn)行異或運(yùn)算,一個(gè)硬盤存放運(yùn)算結(jié)果,可用空間為N-1個(gè)硬盤空間(N為硬盤總數(shù))。
以上只是為了方便說明,真正的raid 5是不會(huì)專門用一個(gè)硬盤來放校驗(yàn)結(jié)果數(shù)據(jù)的。而是幾個(gè)硬盤輪流來充當(dāng)校驗(yàn)結(jié)果的角色。
呵呵,希望大家多加指正和補(bǔ)充。 |
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。