磁盤陣列技術(shù)原理學習
硬盤鏡像(RAID 1)
硬盤鏡像(RAID 1)是容錯磁盤陣列技術(shù)最傳統(tǒng)的一種形式,在工業(yè)界中相對地最被了解,它最重要的優(yōu)點是百分之百的數(shù)據(jù)冗余。RAID 0通過簡單地將一個盤上的所有數(shù)據(jù)拷貝到第二個盤上(或等價的存儲設(shè)備上)來實現(xiàn)數(shù)據(jù)冗余,這種方法雖然簡單且實現(xiàn)起來相對較容易,但它的缺點是要比單個無冗余硬盤貴一倍,因為必須購買另一個硬盤用作第一個硬盤的鏡像。
硬盤鏡像最簡單的形式,是通過把二個硬盤連結(jié)在一個控制器上來實現(xiàn)的。圖4說明了硬盤鏡像。數(shù)據(jù)寫在某一硬盤上時,它同時被寫在相應(yīng)的鏡像盤上。當一個盤驅(qū)動器發(fā)生故障,計算器系統(tǒng)仍能正常工作,因為它可以在剩下的那塊好盤上操作數(shù)據(jù)。
因為二個盤互為鏡像,哪個盤出故障都無關(guān)緊要,二是盤在任何時間都包含相同的數(shù)據(jù),任何一個都可以當作工作盤。在硬盤鏡像這個簡單的RAID方式中,仍能采用一些優(yōu)化速度的方法,例如平衡讀請求負荷。當多個用戶同時請求得到數(shù)據(jù)時,可以將讀數(shù)據(jù)的請示分散到二個硬盤中去,使讀負荷平均地分布在二個硬盤上。這種方法可觀地提高了讀數(shù)據(jù)的性能,因為二個硬盤在同一時刻讀取不同的數(shù)據(jù)片。但是硬盤鏡像不能改善寫數(shù)據(jù)的性能。被“鏡像”的硬盤也可被鏡像到其它存儲設(shè)備上,例如可擦寫光盤驅(qū)動器,雖然以光盤作鏡像盤沒有用硬盤的速度快,但這種方法比沒有使用鏡像盤畢竟減少了丟失數(shù)據(jù)的危險性。
總之,鏡像系統(tǒng)容錯性能非常好,并可以提高讀數(shù)據(jù)的速度;它的缺點是需要雙份硬盤,因此價格較高。
硬盤分段和數(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ù)冗余的方法來提供高容錯性能??梢赃x擇一神奇偶碼模式來實現(xiàn)上述方法,可以外加一個專作奇偶校驗用的硬盤(如在RAID 3中),或者可把奇偶校驗數(shù)據(jù)分散分布在磁盤陣列的全部硬盤中。分布式奇偶校驗數(shù)據(jù)(RAID 5)的例子示于圖5中。
不管用何種級別的RAID,磁盤陣列總是用異或(XOR)操作來產(chǎn)生奇偶數(shù)據(jù),當子系統(tǒng)中有一個硬盤發(fā)生故障時,也是用異或操作重建數(shù)據(jù)。下列簡單分析了XOR是怎樣工作的。
硬盤 A B C 奇偶盤 (A, B, C 異或的結(jié)果)
數(shù)據(jù) 1 0 1 0
首先記住在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):
硬盤 A B C D E F 奇偶位
數(shù)據(jù) 0 0 0 1 0 1 0
如果丟失B盤數(shù)據(jù),我們可以XOR A, C, D, E, F和奇偶位來得到失去的B盤數(shù)據(jù)0。而XOR A, B, C, D, E, F和奇偶位可恢復D盤的數(shù)據(jù)1。
采用專用的奇偶校驗盤(如上所述,即RAID 3),當同時產(chǎn)生多個寫操作時,每次操作都要對奇偶盤進行寫入。這將產(chǎn)生I/O瓶頸效應(yīng)。
RAID 5把奇偶位信息分散分布在硬盤子系統(tǒng)的所有硬盤上(而不是使用專用的校驗盤0,這就改善了上述RAID 3中的奇偶盤瓶頸效應(yīng)。圖5說明了RAID 5的一種配置,圖中奇偶信息散布在子系統(tǒng)的每個硬盤上。利用每個硬盤的一部分來組成校驗盤,寫入硬盤的奇偶位信息將較均勻地分布在所有硬盤上。所以某個用戶可能把它的一個數(shù)據(jù)段寫在硬盤A,而將奇偶信息寫在硬盤B,第二個用戶可能把數(shù)據(jù)寫在硬盤C,而奇偶信息寫在硬盤D。從這里也可看出RAID 5的性能會得到提高。
這種方法將提高硬盤子系統(tǒng)的事務(wù)處理速度。所謂事務(wù)處理,是指處理從許多不同用戶來的多個硬盤I/O操作,由于可能同時有很多用戶與硬盤打交道,迅速向硬盤寫入數(shù)據(jù),有時幾乎是同時進行的,這種情況下,用分布式奇偶盤的方式比起用專用奇偶盤,瓶頸效應(yīng)發(fā)生的可能性要小。
對硬盤操作來說,RAID 5的寫性能比不上直接硬盤分段(指沒有校驗信息的RAID 0)。因為產(chǎn)生或存儲奇偶碼需要一些額外操作。例如,在修改一個硬盤上的數(shù)據(jù)時,其它盤上對應(yīng)段的數(shù)據(jù)(即使是無關(guān)的數(shù)據(jù))也要讀入主機,以便產(chǎn)生必要的奇偶信息。奇偶段產(chǎn)生后(這要花一些時間),我們要將更新的數(shù)據(jù)段和奇偶段寫入硬盤,這通常稱為讀-修改-寫策略。因此,雖然RAID 5比RAID 0優(yōu)越,但就寫性能來說,RAID 5不如RAID 0。
鏡像技術(shù)(RAID 1)和數(shù)據(jù)奇偶位分段(RAID 5)用于上述的硬盤子系統(tǒng)中時,都產(chǎn)生冗余信息。但在RAID 1中,所有數(shù)據(jù)都被復制到第二個相同的硬盤上。在RAID 5,數(shù)據(jù)的XOR碼而不是數(shù)據(jù)本身被復制,因此可以用數(shù)據(jù)的非常緊湊的表現(xiàn)方式,來恢復由于某一硬盤故障而丟失的數(shù)據(jù)。
采用RAID 5時,對于5個硬盤的數(shù)組,有大約20%的硬盤空間用于存放奇偶碼,而十個硬盤的數(shù)組只有約10%的空間存放奇偶碼。在可用空間總的格式化空間的意義上來說,硬盤系統(tǒng)中的硬盤越多該系統(tǒng)就越省錢。
總之,RAID 5把硬盤分段和奇偶冗余技術(shù)的優(yōu)點結(jié)合在一起,這樣的硬盤子系統(tǒng)特別適合于事務(wù)處理環(huán)境,例如民航售票處,汽車出租站,銷售系統(tǒng)的終端,等等。在某些場合,可優(yōu)先考慮RAID 1(在那些寫數(shù)據(jù)比讀數(shù)據(jù)更頻繁的情況)。但許多情況,RAID 5提供了將高性能,低價格和數(shù)據(jù)安全性綜合在一起的解決辦法。
RAID Level 10
評論