硬盤分段和數(shù)據(jù)冗余(RAID2~5)
硬盤分段改善了硬盤子系統(tǒng)的性能,因為向硬盤讀寫數(shù)據(jù)的速度與硬盤子系統(tǒng)中硬盤數(shù)目成正比地增加,但它的缺點是硬盤子系統(tǒng)中任一硬盤的故障都會導致整個計算器系統(tǒng)失敗。整個分段的硬盤子系統(tǒng)部能作鏡像,如果已經(jīng)用了4個硬盤進行分段,我們可以再增加4個分段的硬盤作為原來4個硬盤的鏡像。很明顯這是昂貴的(雖然可能比鏡像一個昂貴的大硬盤來得便宜)??梢圆挥苗R像而用其它數(shù)據(jù)冗余的方法來提供高容錯性能。可以選擇一神奇偶碼模式來實現(xiàn)上述方法,可以外加一個專作奇偶校驗用的硬盤(如在RAID3中),或者可把奇偶校驗數(shù)據(jù)分散分布在磁盤陣列的全部硬盤中。不管用何種級別的RAID,磁盤陣列總是用異或(XOR)操作來產(chǎn)生奇偶數(shù)據(jù),當子系統(tǒng)中有一個硬盤發(fā)生故障時,也是用異或操作重建數(shù)據(jù)。下列簡單分析了XOR是怎樣工作的。
硬盤ABC奇偶盤(A,B,C異或的結(jié)果)
數(shù)據(jù)1010
首先記住在XOR操作中,2個數(shù)異或的結(jié)果是真(即“1”)時,這二個數(shù)中有且一個數(shù)為1(另一個為0)。我們假設(shè)A,B,C中B盤故障,此時可將A,C和奇偶數(shù)據(jù)XOR起來,得到B盤失去的數(shù)據(jù)0;同樣如C盤故障,我們可將A,B盤和奇偶盤的數(shù)據(jù)XOR,得到C盤原先的數(shù)據(jù)1。如果推廣到7個盤的硬盤子系統(tǒng):
硬盤ABCDEF奇偶位
數(shù)據(jù)0001010
如果丟失B盤數(shù)據(jù),我們可以XORA,C,D,E,F和奇偶位來得到失去的B盤數(shù)據(jù)0。而XORA,B,C,D,E,F和奇偶位可恢復D盤的數(shù)據(jù)1。采用專用的奇偶校驗盤(如上所述,即RAID3),當同時產(chǎn)生多個寫操作時,每次操作都要對奇偶盤進行寫入。這將產(chǎn)生I/O瓶頸效應(yīng)。RAID5把奇偶位信息分散分布在硬盤子系統(tǒng)的所有硬盤上(而不是使用專用的校驗盤0,這就改善了上述RAID3中的奇偶盤瓶頸效應(yīng)。RAID5的一種配置:奇偶信息散布在子系統(tǒng)的每個硬盤上。利用每個硬盤的一部分來組成校驗盤,寫入硬盤的奇偶位信息將較均勻地分布在所有硬盤上。所以某個用戶可能把它的一個數(shù)據(jù)段寫在硬盤A,而將奇偶信息寫在硬盤B,第二個用戶可能把數(shù)據(jù)寫在硬盤C,而奇偶信息寫在硬盤D。從這里也可看出RAID5的性能會得到提高。這種方法將提高硬盤子系統(tǒng)的事務(wù)處理速度。所謂事務(wù)處理,是指處理從許多不同用戶來的多個硬盤I/O操作,由于可能同時有很多用戶與硬盤打交道,迅速向硬盤寫入數(shù)據(jù),有時幾乎是同時進行的,這種情況下,用分布式奇偶盤的方式比起用專用奇偶盤,瓶頸效應(yīng)發(fā)生的可能性要小。對硬盤操作來說,RAID5的寫性能比不上直接硬盤分段(指沒有校驗信息的RAID0)。因為產(chǎn)生或存儲奇偶碼需要一些額外操作。例如,在修改一個硬盤上的數(shù)據(jù)時,其它盤上對應(yīng)段的數(shù)據(jù)(即使是無關(guān)的數(shù)據(jù))也要讀入主機,以便產(chǎn)生必要的奇偶信息。奇偶段產(chǎn)生后(這要花一些時間),我們要將更新的數(shù)據(jù)段和奇偶段寫入硬盤,這通常稱為讀-修改-寫策略。因此,雖然RAID5比RAID0優(yōu)越,但就寫性能來說,RAID5不如RAID0。鏡像技術(shù)(RAID1)和數(shù)據(jù)奇偶位分段(RAID5)用于上述的硬盤子系統(tǒng)中時,都產(chǎn)生冗余信息。但在RAID1中,所有數(shù)據(jù)都被復制到第二個相同的硬盤上。在RAID5,數(shù)據(jù)的XOR碼而不是數(shù)據(jù)本身被復制,因此可以用數(shù)據(jù)的非常緊湊的表現(xiàn)方式,來恢復由于某一硬盤故障而丟失的數(shù)據(jù)。采用RAID5時,對于5個硬盤的數(shù)組,有大約20%的硬盤空間用于存放奇偶碼,而十個硬盤的數(shù)組只有約10%的空間存放奇偶碼。在可用空間總的格式化空間的意義上來說,硬盤系統(tǒng)中的硬盤越多該系統(tǒng)就越省錢??傊?,RAID5把硬盤分段和奇偶冗余技術(shù)的優(yōu)點結(jié)合在一起,這樣的硬盤子系統(tǒng)特別適合于事務(wù)處理環(huán)境,例如民航售票處,汽車出租站,銷售系統(tǒng)的終端,等等。在某些場合,可優(yōu)先考慮RAID1(在那些寫數(shù)據(jù)比讀數(shù)據(jù)更頻繁的情況)。但許多情況,RAID5提供了將高性能,低價格和數(shù)據(jù)安全性綜合在一起的解決辦法。
硬盤故障恢復
鏡像和RAID提供了從硬盤故障中恢復數(shù)據(jù)的新方法。因為數(shù)據(jù)的所有部分都是有冗余的,數(shù)據(jù)有效性很高(即使在硬盤發(fā)生故障時)。另一重要優(yōu)點是,恢復數(shù)據(jù)的工作不用立即進行,因為系統(tǒng)可以在一個硬盤有故障的情況下正常工作,當然在這種情況下,剩下的系統(tǒng)就不再有容錯性能。要避免丟失數(shù)據(jù)就必須在第二個硬盤故障前恢復數(shù)據(jù)。更換故障硬盤后,要進行數(shù)據(jù)恢復。在鏡像系統(tǒng)中“鏡像”盤上有一個數(shù)據(jù)備份,因此故障硬盤(主硬盤或鏡像硬盤)通過簡單的硬盤到硬盤的拷貝操作就能重建數(shù)據(jù),這個拷貝操作比從磁帶上恢復數(shù)據(jù)要快得多。RAID5硬盤子系統(tǒng)中,故障硬盤通過無故障硬盤上存放的糾錯(奇偶)碼信息來重建數(shù)據(jù)。正常盤上的數(shù)據(jù)(包括奇偶信息部分)被讀出,并計算出故障盤丟失的那些數(shù)據(jù),然后寫入新替換的盤。這個過程比從磁帶上恢復數(shù)據(jù)要快不少。設(shè)計靈活的磁盤陣列可以重新配置,替換盤的地址不一定和故障盤的地址相同。這種靈活性使安裝過程變得更為簡單。備用盤甚至可以在硬盤故障前預先連在系統(tǒng)上。在那種情況下,它就成了隨時可用的備份盤。這種盤通常稱為“熱備份”。
可靠性和可用性
這二個名詞雖然相互關(guān)連,事實上卻代表了硬盤故障的二個不同的方面,可靠性指的是硬盤在給定條件下發(fā)生故障的概率??捎眯灾傅氖怯脖P在某種用途中可能用的時間。利用這二個名詞,我們可以看到磁盤陣列是怎樣把我們的硬盤系統(tǒng)可靠性提高到接近百分之百的程度的。磁盤陣列可以改善硬盤系統(tǒng)的可靠性。因為某一硬盤中的數(shù)據(jù)可以從其它硬盤的數(shù)據(jù)中重新產(chǎn)生出來(例如RAID5),所以很少會有機會使整個硬盤系統(tǒng)失效。硬盤子系統(tǒng)的可靠性因而大大改善了。下表是RAID硬盤子系統(tǒng)與單個硬盤子系統(tǒng)的可靠性比較:
硬盤子系統(tǒng),硬盤數(shù)時間,平均故障時間*,平均丟失數(shù)據(jù)時間
單個硬盤,1,30,000小時,30,0000小時
RAID0(分段),5,30,000小時,6,0000小時
RAID1(鏡像),2,30,000小時,49,9百萬小時
RAID5(分段加奇偶碼),5,30,000小時,46,2百萬小時
硬盤子系統(tǒng)可靠性比較
我們還必須考慮系統(tǒng)的可用性。單一硬盤系統(tǒng)的可用性比沒有數(shù)據(jù)冗余的磁盤陣列要好,而冗余磁盤陣列的可用性比單個硬盤的好得多。這是因為冗余磁盤陣列允許單個硬盤出錯,而繼續(xù)正常工作。此外,一個硬盤故障后的系統(tǒng)恢復時間也大大縮短(與從磁帶恢復數(shù)據(jù)相比)。最后,因為發(fā)生故障時,硬盤上的數(shù)據(jù)是故障當時的數(shù)據(jù),替后的硬盤也將包含故障時的數(shù)據(jù)(舉例說,前天晚上的備份數(shù)據(jù))。要得到完全的容錯性能,計算器硬盤子系統(tǒng)的其它部件也必須有冗余例如提供二個電源,或者配備雙份硬盤控制器。沒有其它部件的冗余,即使有非??煽康挠脖P子系統(tǒng),還是不能完全防止計算機系統(tǒng)的失效。
最佳化的容錯系統(tǒng)
如先前所述,直接分段的子系統(tǒng)(RAID0)可以大大提高讀寫速度(相對單個硬盤),因為數(shù)據(jù)分散在多個硬盤,硬盤操作可以同時進行。把二個直接分段的硬盤子系統(tǒng)組成鏡像,可以有效地構(gòu)成全冗余的快速硬盤子系統(tǒng)。這樣的子系統(tǒng),其硬盤操作甚至比直接分段的硬盤子系統(tǒng)還快,因為該系統(tǒng)能同時執(zhí)行二個讀操作(每個硬盤一個讀操作),而寫操作的速度則與非鏡像直接分段子系統(tǒng)幾乎一樣,因為把數(shù)據(jù)同時寫入二個硬盤只需花費很少的額外開銷。通過我們前面所述的概念,例如雙工:(雙控制器,雙電源等),可以進一步改善有關(guān)冗余方面的問題。雙控制器還使我們得到更高的數(shù)據(jù)傳輸速度,因為控制器成為子系統(tǒng)性能瓶頸的可能性更小了。