鴻萌課堂:磁盤(pán)陣列 RAID 知識(shí)系列(三)
具有奇偶校驗(yàn)功能的 RAID
RAID 5 利用條帶化和奇偶校驗(yàn)技術(shù)的結(jié)合。在 RAID 5 中,數(shù)據(jù)流被分割成一定大小的塊(塊大?。?,然后依次寫(xiě)入成員盤(pán)。在每一行中,有一個(gè)磁盤(pán)被指定存儲(chǔ)一定的校驗(yàn)和,即所謂的奇偶校驗(yàn)函數(shù),它是根據(jù)行中其他成員磁盤(pán)的數(shù)據(jù)計(jì)算出來(lái)的。當(dāng)單塊磁盤(pán)發(fā)生故障時(shí),可以利用奇偶校驗(yàn)計(jì)算出缺失的數(shù)據(jù)。通過(guò)這樣的方式提供了容錯(cuò)功能。
RAID 5至少需要三塊磁盤(pán)。理論上,磁盤(pán)的最大數(shù)量不受限制,但在實(shí)際操作中,需要考慮到硬件RAID情況下控制器的容量。陣列的容量為(N-1)乘以N塊磁盤(pán)組成的陣列中最小的成員磁盤(pán)的大小。
這樣,在RAID 5中,一個(gè)磁盤(pán)的容量被用來(lái)存儲(chǔ)奇偶函數(shù)數(shù)據(jù),以提供容錯(cuò)能力。
RAID 5 布局
根據(jù)奇偶校驗(yàn)塊的位置和數(shù)據(jù)塊的寫(xiě)入順序,RAID 5有四種不同的類(lèi)型(注意,在下面的圖中,每行的第一個(gè)塊是紅色的)。
左右數(shù)組由奇偶?jí)K如何分布到成員磁盤(pán)上決定。同步性和異步性定義了數(shù)據(jù)塊的順序。
對(duì)于RAID 5的數(shù)據(jù)恢復(fù),除了考慮塊的大小,起始偏移量和成員盤(pán)的順序外,所有這些參數(shù)都應(yīng)該被分析到。
在 RAID 5 陣列中,寫(xiě)入大小小于數(shù)據(jù)塊大小的數(shù)據(jù),需要進(jìn)行以下操作:
讀取舊的數(shù)據(jù)塊
讀取舊的奇偶校驗(yàn)塊
將舊數(shù)據(jù)塊中的數(shù)據(jù)與新到的數(shù)據(jù)塊進(jìn)行比較。每改變一個(gè)位,改變奇偶校驗(yàn)中相應(yīng)的位。
寫(xiě)入新的數(shù)據(jù)塊。
寫(xiě)入新的奇偶校驗(yàn)塊。
可以看出,奇偶校驗(yàn)更新會(huì)降低系統(tǒng)的寫(xiě)入性能。
對(duì)于等于或大于由N個(gè)數(shù)據(jù)塊組成的行的大小的寫(xiě)入,由于不需要讀取舊的數(shù)據(jù)塊并查找變化,所以寫(xiě)入速度會(huì)更快一些。
RAID 6
RAID 6 同時(shí)使用條帶和奇偶校驗(yàn)技術(shù),但與 RAID 5 不同的是,它使用兩個(gè)獨(dú)立的奇偶校驗(yàn)函數(shù),然后寫(xiě)入兩個(gè)成員盤(pán)。通常情況下,其中一個(gè)奇偶校驗(yàn)函數(shù)與 RAID 5 中的函數(shù)相同(XOR函數(shù)),而第二個(gè)函數(shù)則更為復(fù)雜。奇偶校驗(yàn)數(shù)據(jù)有助于在兩個(gè)成員盤(pán)同時(shí)失效時(shí)恢復(fù)數(shù)據(jù)。
創(chuàng)建 RAID 6 至少需要4塊磁盤(pán)。陣列的容量是N塊磁盤(pán)組成的陣列中最小的成員磁盤(pán)大小的(N-2)倍。
讀取速度比單塊磁盤(pán)的情況下快(N-2)倍--行中的兩塊磁盤(pán)持有奇偶校驗(yàn),讀取時(shí)無(wú)用。這樣的讀取速度值與RAID 5>中大致相同。
在 RAID 6 中,寫(xiě)入速度并沒(méi)有提高,因?yàn)槊看螌?xiě)入都需要重新計(jì)算和更新兩個(gè)不同的奇偶校驗(yàn)塊。RAID 6 是相當(dāng)昂貴的存儲(chǔ)選項(xiàng)。然而,當(dāng)它需要一個(gè)大的和可靠的存儲(chǔ)空間時(shí),那么 RAID 6 是最好的選擇之一,因?yàn)樗梢栽趦蓧K磁盤(pán)發(fā)生故障時(shí)保護(hù)數(shù)據(jù)。這可能發(fā)生在以下情況:
陣列正在重建(所謂的重建時(shí)間)。
由于操作者的錯(cuò)誤而導(dǎo)致錯(cuò)誤的磁盤(pán)被熱插拔。
數(shù)據(jù)恢復(fù)方面的思考
當(dāng)RAID 5中缺少一個(gè)硬盤(pán)時(shí),會(huì)有一定的速度損失,因?yàn)槿鄙俚挠脖P(pán)上存儲(chǔ)的數(shù)據(jù)必須重新計(jì)算。然而,重新計(jì)算的速度仍然比讀取一個(gè)物理?yè)p壞的硬盤(pán)要快得多。因此,您應(yīng)該避免使用已知物理?yè)p壞(多個(gè)壞扇區(qū)或類(lèi)似問(wèn)題)的硬盤(pán)進(jìn)行恢復(fù)。
雖然 RAID 6 可以由控制器用N-2塊硬盤(pán)重建,但我們分析RAID 6陣列時(shí)最好還是需要N-1塊硬盤(pán)來(lái)分析恢復(fù)RAID6。
帶延遲奇偶校驗(yàn)的RAID 5恢復(fù)
一些控制器(如HP SmartArray)使用非標(biāo)準(zhǔn)的條帶方案,稱(chēng)為延遲奇偶校驗(yàn)(DP)。
實(shí)際上,使用了兩個(gè)不同的塊大小,一個(gè)用于奇偶校驗(yàn),另一個(gè)用于數(shù)據(jù)。奇偶校驗(yàn)塊大小是數(shù)據(jù)塊大小的整數(shù)倍。因此,在RAID配置中出現(xiàn)了兩個(gè)額外的參數(shù)--延遲和first delay。延遲參數(shù)表示多重性,即一個(gè)奇偶校驗(yàn)塊中適合多少數(shù)據(jù)塊;first delay表示第一個(gè)奇偶校驗(yàn)塊中包含多少數(shù)據(jù)塊??赡艿难舆t值有1、2、4、8、16、32,第一個(gè)延遲可以從1到延遲值。
延遲奇偶校驗(yàn)的RAID的更多細(xì)節(jié)
延遲奇偶校驗(yàn)的RAID恢復(fù)比上面簡(jiǎn)單的模型稍微復(fù)雜一些。完整的模型包括起始偏移量,起始偏移量小于一個(gè)數(shù)據(jù)塊。因此,除了磁盤(pán)順序,還有7個(gè)數(shù)組參數(shù):
開(kāi)始偏移量。
數(shù)據(jù)塊大小(對(duì)應(yīng)于沒(méi)有延遲的RAID中典型的塊大小)。
延遲(一個(gè)延遲奇偶校驗(yàn)塊中的數(shù)據(jù)塊數(shù))。
Firstdelay(第一個(gè)延遲奇偶校驗(yàn)塊中的數(shù)據(jù)塊數(shù))。
在第一個(gè)塊中的奇偶校驗(yàn)位置。
旋轉(zhuǎn),它決定了奇偶校驗(yàn)塊在數(shù)組中的位置變化。
數(shù)據(jù)放置的類(lèi)型(同步或異步)。
請(qǐng)注意,偏移量和奇偶校驗(yàn)塊開(kāi)始的磁盤(pán)已經(jīng)改變。偏移量從2變?yōu)?,第一個(gè)奇偶校驗(yàn)塊的磁盤(pán)變成了磁盤(pán)1而不是磁盤(pán)2。如果無(wú)法指定第一個(gè)奇偶校驗(yàn)的磁盤(pán),則偏移量增加,以便切斷奇偶校驗(yàn)的第一整圈。在這個(gè)例子中,應(yīng)該使用的偏移量是13。理論上講,這樣的轉(zhuǎn)換會(huì)導(dǎo)致一些用戶(hù)數(shù)據(jù),本來(lái)在第一行的數(shù)據(jù),不能被工具讀取(由于負(fù)地址)。在這個(gè)例子中,灰色標(biāo)記的數(shù)據(jù)塊,從0到5,都會(huì)丟失。如果無(wú)法設(shè)置奇偶校驗(yàn)開(kāi)始的磁盤(pán),我們將不得不使用偏移量為13.在這種情況下,從1到21(含21)的數(shù)據(jù)塊將丟失。
在實(shí)踐中,控制器元數(shù)據(jù)而不是用戶(hù)數(shù)據(jù)經(jīng)常被放置在這些塊中,因此所有的用戶(hù)數(shù)據(jù)仍然可以訪問(wèn)。
RAID 6 恢復(fù)和 RAID 6 參數(shù)
RAID 6布局利用兩種不同的奇偶校驗(yàn)功能,這有助于RAID 6陣列在雙磁盤(pán)故障下生存。盡管RAID6被認(rèn)為比RAID5更可靠,但控制器故障的概率是一樣的。因此,如果您的RAID6出現(xiàn)故障,這很可能是由于控制器故障造成的。為了從控制器故障中恢復(fù)RAID6,您需要知道或恢復(fù)以下參數(shù):
成員盤(pán)的數(shù)量
磁盤(pán)順序以及哪個(gè)磁盤(pán)是陣列中的第一個(gè)磁盤(pán)。
塊大小。
成員盤(pán)的起始偏移量。
每個(gè)奇偶函數(shù)的位置。
奇偶函數(shù)的旋轉(zhuǎn)。
用于計(jì)算第二個(gè)奇偶校驗(yàn)函數(shù)的算法。
奇偶校驗(yàn)函數(shù)的模式。
我們只有知道這些參數(shù)才能成功重建RAID6。
RAID 6 的復(fù)雜性
RAID 6比RAID 5復(fù)雜得多。
第一個(gè)奇偶校驗(yàn)函數(shù)(XOR,圖中表示為P)自然來(lái)自RAID5。然而,第二個(gè)奇偶校驗(yàn)函數(shù)(Q)沒(méi)有被廣泛接受的標(biāo)準(zhǔn)。通常情況下,使用Reed-Solomon碼或其一些變體。 Reed-Solomon碼取決于輸入的順序。這又產(chǎn)生了四種變化:從左到右或從右到左,以及如果P或Q先計(jì)算。有幾種布局的變化,可容納兩個(gè)奇偶函數(shù)。