前面已經討論了校驗,它提供了一種存放于R A I D子系統中數據冗余的手段。現在,將在分塊數據的背景下,詳細討論校驗是如何實現的。
使用XOR函數建立校驗數據
校 驗數據是另外一種冗余數據,它是在計算校驗值時,由R A I D子系統產生的。正如前面所說的那樣,異或(X O R)函數在逐位基礎上對實際數據進行操作,建立校驗數據。在并行訪問R A I D和獨立訪問R A I D上,建立校驗數據的方法是不同的。在介紹如何使用X O R函數建立校驗數據,以及在磁盤失敗時恢復數據后,我們將研究這兩種R A I D之間的差別。
1. 校驗的計算
R A I D校驗數據的計算使用布爾X O R函數,X O R函數邏輯相當簡單:除了真+真導致一個假的結果以外,它的行為就像一個O R函數。
X O R函數事實上可用于更多的位組合,它既與位是否成對地組合及是否成對操作無關,也與每個附加位的X O R對象是否是過去的X O R操作結果無關,好像它是在X O R“鏈”中一樣。事實上,它也與位的操作順序無關。
按照標準的二進制習慣,“0”位表示假值,“1”位表示真值。對于R A I D,寫入陣列的數據位將與其他分區上的相應位進行X O R操作,計算出校驗位,并寫入校驗分區的位置。
可以利用X O R函數對任何4列中的4位進行操作,得到另一列中的值。例如,假如將X O R應用于第2列到第5列,那么,結果將與已經存在的第一列值相同。這說明了當一個磁盤失敗時,X O R函數的恢復能力,假如一個磁盤失敗,陣列分區中的數據將不可訪問,利用陣列中其他分區的相應位,運行X O R操作即可恢復原數據值。
2. XOR的逆操作是X O R
X O R函 數如此有用的原因之一是X O R函數的逆操作是其本身。換而言之,當使用X O R計算校驗值時,也可以再使用X O R進行逆運算。X O R函數的這個性質不太直觀,因為通常的數學函數擁有自己的反函數,如加法的反函數是減法、乘法的反函數分別是除法。以下是X O R函數的操作和逆操作的例子:
0 XOR 0 = 0 ; 其逆操作是:0 XOR 0 = 0 0 XOR 1 = 1 ;其逆操作是:1 XOR 1 = 0 1 XOR 0 = 1 ;其逆操作是:1 XOR 0 = 1 1 XOR 1 = 0 ;其逆操作是:0 XOR 1 = 1 上述的操作是X O R函數的完整的組合矩陣,對于磁盤陣列,組合的數量將增加,但每一個
計算值都可以從上述的矩陣推出。以下幾節的陣列操作將參考這里的X O R函數。
三星硬盤數據恢復,三星硬盤的固件損壞是比較好修復的,大家也都知道大部分三星盤固件一...
雖然 微軟 已經親盡全力推廣同時具有移動互聯網和傳統PC特性的Windows 8系統,但似乎...
本文的重點是RAID陣列的在線容量擴展功能是否類 似于在線I/O容量擴展,因為隨著每個驅動...
大數據時代的到來,云計算的應用,政府、軍隊、企業的數據量越來越大,服務器的銷量也是...
當今市場上的存儲卡種類繁多,經常會遇到自己的多種設備互不兼容的情況。這時候,各種規...
三分技術,七分數據,得數據者得天下,這是描述大數據重要性時最常用的一句話。 大數據...
近日,IBM在上海向廣大中國客戶展示了當今最佳的企業級大數據和分析基礎架構平臺IBM Pow...