2010年8月17日 星期二

資料冗餘

資 料冗餘是指使用部分磁碟空間來存儲使用者資料的備份。

最簡單的冗餘數據形式就是RAID 1的鏡像資料。在鏡像磁碟陣列中,對於寫請求,控制軟體要執行兩次寫盤— 一次寫資料盤,一次寫鏡像盤。而對於讀請求,控制軟體選擇其中一個盤讀取資料。有些軟體為了提高性能,會選擇負載較輕的盤來實現讀訪問。鏡像磁碟陣列的缺 點是:實現成本相對較高。為保存和維護一個磁片的資料量,使用者不得不購買、維護和管理兩塊硬碟。

RAID3、 4、 5使用另一種形式的冗餘數據,稱作校驗資料。校驗RAID並不是完全備份每個資料塊,每個校驗塊是由一組資料塊經過計算得到的。有了校驗塊,任何一個資料塊可由組裡的其它資料塊計算得到。

校 驗資料通常取相應使用者資料進行按位元異或的結果。不論陣列有多少塊盤構成,校驗資料都只佔用一個磁碟空間.因此由許多盤組成的大型校驗RAID,其冗餘 數據所占空間的比例卻很小。例如,由11塊盤組成的校驗RAID,使用者資料佔用10個磁碟空間,校驗的開銷只有10%。既然只用一個校驗盤就可以保護任 意多個使用者資料盤,那麼是不是使用越多的資料盤,就能達到越高的磁碟空間利用率呢?實際上並不是這麼簡單。

大型校驗RAID的缺點:
同 位只能在一個盤發生故障時恢復資料。當RAID裡同時有兩塊盤發生故障時,就會丟失資料。陣列使用的盤數越多,兩塊盤同時失效的概率就越大,從而導致整個 陣列的崩潰。這時,丟失的不僅是失效盤上的資料,所有盤上的資料都變得無法訪問。因此陣列規模越大,失效盤帶來的損失也越大。

大 型校驗RAID寫性能較差。當應用程式要對一個資料塊進行寫操作時,要先讀該塊的資料,與校驗塊進行計算,其結果再與要寫入的資料做異或計算,最後寫入新 資料和新校驗。在這段時間裡,控制軟體需要保持一些永久性的log標誌,以防更新操作中的系統故障。可見寫資料操作有延遲,而且陣列越大,寫延遲越大。

當 有故障發生時,要更換損壞的磁片,而且新的磁片上的內容必須與其它盤同步,以保證所有校驗資料與使用者資料的一致性。這種同步需要讀所有盤上的資料或校驗 資訊,通過計算得到替換盤的內容。可見陣列裡的磁片個數越多,同步的時間開銷也越大。而恢復資料的時間越長,陣列發生第二次故障的危險性越大。事實表 明,RAID系統使用四至六塊磁片比較合適。

沒有留言:

張貼留言