RAID 6和RAID 5一樣,都是在1980年代開發。使用硬體控制器構建而成的RAID 6陣列在冗餘與速度之間提供了良好的平衡。RAID 6陣列至少需要四顆硬碟來提供更高的讀取速度,並對寫入性能帶來最小影響。RAID 6可容許兩顆硬碟故障。
RAID 6陣列需要將兩顆硬碟的數據專門用於奇偶校驗。這代表比起相同大小的RAID 10,RAID 6陣列的實施成本依然比較低,因為只有兩顆硬碟的空間分配給奇偶校驗。而比起RAID 1,RAID 6還具有更大的靈活性與更大的硬碟分區空間。
在上面的例子,我們有一個在Dell PowerEdge伺服器中可能會看到由五顆硬碟配製而成的RAID 6陣列。在第四顆硬碟的第一個條帶中找到的第一個奇偶校驗塊(Parity1),是從其他名為數據1(硬碟1)、數據2(硬碟2)和數據3(硬碟3)取得的XOR數據。
在第五顆硬碟的第一個條帶中找到的第二個奇偶校驗塊(Parity2),是來自數據1、數據2、數據3的數據組合,並且取決於廠商或控制器,也可包含第一個奇偶校驗塊。這些奇偶校驗塊使用不同的硬碟組合橫跨所有數據條帶重複進行計算。
在下面的例子我們看見第二顆硬碟故障了。
在失去一顆硬碟之後,陣列會進入降級模式。在降級模式中,RAID控制器會根據需要將數據條帶與奇偶校驗結合,以向操作系統提供良好的數據。在我們的例子裡,控制器會在第一個條帶中結合數據1、數據3和奇偶校驗1來替換數據2遺失的數據。在第二個條帶中,數據4、數據6和奇偶校驗1被用來替換數據5。在第三和第四條帶中,因為所有數據硬碟依然存在,因此不需要奇偶校驗。
因為每個條帶中都有兩個奇偶校驗塊,RAID 6允許兩顆硬碟同時故障。在下面的例子,我們看見硬碟2和硬碟4都故障了。
在失去兩顆硬碟之後,控制器會使用數據條帶結合奇偶校驗1和奇偶校驗2來重建遺失的數據。在我們的例子中,控制器在第一個條帶中會結合數據1、數據3和奇偶校驗2來替換數據2遺失的數據。在第二個條帶中,數據4、數據6和奇偶校驗1被用來替換數據5。在第三個條帶中,數據7、數據9和奇偶校驗2被用來替換數據8。
如果系統有可供使用的熱備用,控制器將在發生故障時,自動開始將故障硬碟中遺失的數據重建到熱備用。
上面的例子顯示第二顆硬碟故障。系統使用熱備用重建第二顆硬碟所有遺失的數據到熱備用硬碟上。現在可以將第二顆硬碟從系統中移除,並換上新的硬碟,無論是當做新的熱備用、或是成為新的第二顆硬碟,都可以在上面重建數據。
為什麼要使用熱備用硬碟?當硬碟故障時,時間對於重建數據至關重要。運行降級模式會給剩餘的硬碟帶來額外的壓力,如果不快速修正可能會導致更多的故障。來自相近製造供應商的硬碟可能會有類似的缺陷,因此其他硬碟可能很快也會故障。擁有一顆或多顆熱備用硬碟能夠縮短復原的時間。
數據遺失的原因有很多種,而每種原因的復原工作都不一樣。下面是幾個例子。
與Raid 5一樣,如果有一顆硬碟在陣列中故障,可以使用奇偶校驗來重建遺失的數據。在這種情況下,Ontrack通常能夠恢復100%的數據。收到無法運作的陣列之後,陣列中所有硬碟將會在無塵室中製成鏡像檔案(如果可以也會包含故障的硬碟)。然後使用這些鏡像檔案重組虛擬陣列。當RAID組成之後,掃描檔案系統或磁碟分區尋找損毀的數據,進行虛擬修復後再取出數據。通常不需要故障的硬碟,因為可以從奇偶校驗重建任何遺失的數據條帶。
不像RAID 5只能允許一顆硬碟故障才能維持運作,RAID 6的設計允許兩顆硬碟故障而不會對數據造成任何影響。從多個故障硬碟中恢復的過程類似於單個硬碟故障。收到無法運作的硬碟之後,所有硬碟會在無塵室中製成镜像,包含故障的硬碟。如果硬碟上面的數據是最新的,則可能不需要故障的硬碟來完全恢復陣列。接下來會使用這些镜像來重組虛擬陣列。
在上面的例子裡,第一個條帶裡的數據1、數據3和奇偶校驗2被拿來重建數據2。第二個條帶裡的數據2、數據4、奇偶校驗1和數據6被拿來重建數據5。第三個條帶裡的數據7、奇偶校驗2和數據9被拿來重建數據8。
虛擬重組RAID陣列後,將掃描檔案系統或硬碟分區以查找損壞。除了檔案系統損壞之外,工程師還會尋找不一致或過時的數據。當硬碟故障和其中一個硬碟降級之間存在時間間隔時,就會發生這種情況。數據恢復工程師需要具備識別此類損壞的經驗,以便他們可以虛擬修復磁碟分區,並提取良好的檔案數據。
即便有兩顆以上的硬碟故障,依然有可能從RAID 6陣列中獲得完全恢復。
在上面的例子,我們有一個RAID 6陣列,全部五個硬碟都有部分區域損壞。如果每個條帶的損壞區塊不超過兩個,則有機會重建遺失的數據。Ontrack會盡可能對每一顆硬碟製成镜像。
接下來會使用這些镜像重組虛擬陣列。在上面的例子裡,第一個條帶裡的數據1、數據3和奇偶校驗2被用來重建數據2。第二個條帶不需要奇偶校驗,因為數據4、數據5和數據6都完好無損。第三個條帶的數據7、奇偶校驗2和數據8則被用來重建數據9。
重組RAID虛擬陣列之後,掃描檔案系統或硬碟分區尋找損毀的檔案。可恢復的數據會從重組虛擬陣列中被提取到新的媒體裡再次使用。