昨天和蒲公英有聊到一些些的RAID
講一些些原理吧
大家都知道電腦是二進位的東西
也就是一和零
那所有的資料把它弄到最後就也是只有一和零
假設有一個byte的資料為"01011100"也就是5C
並且有一個byte的資料為"00110000"也就是30
假設我們手上有三顆碟碟
第一個byte(5C)放在A碟
第二個byte(30)放在B碟
我們的目的是在第三顆碟碟放一個byte的值,使得我們這三份資料可以互相救援
舉例來說
就是ABC三顆硬碟
掛了其中A硬碟的時候
我們拿了D硬碟來取代A的位置
接著B和C中的資料可以讓D硬碟裡頭的資料變跟A一樣
再更簡單的來說
D裡的資料會變成A原本存放的5C
====================================
接著先說一下二進位的邏輯運算
它們分別是AND, OR, NOT, XOR
我們定義 1 為真 0 為非
AND的話就是兩個皆成立的時候才會成立
OR的話是只要有一個為真就成立
NOT就是真變為非,非變為真
XOR比較有趣,它是兩個都真或是非的時候為"非"
真值表:
AND OR XOR
0 0 0 0 0
0 1 0 1 1
1 0 0 1 1
1 1 1 1 0
=====================================
回到最原始的問題
我們要在第三顆硬碟C放上什麼值才可以讓我們的資料可以"自動回復"?
我們只需在C放入 5C "XOR" 30 的結果即可
01011100 xor 00110000 = 01101100(6C)
我們稱6C這個值為parity
接下來就是XOR很神奇的地方了
我們可以發現
6C xor 5C = 30
6C xor 30 = 5C
以上的結果可以使用Windows系統內建的小算盤來計算
把小算盤調成工程用再選十六進位的運算即可
我們做了XOR的運算後
目前A放入5C,B放入30,C放入60
一旦A掛掉抽換成D
那麼B和C就可以利用XOR的運算得到5C
再把5C這個值回存到D
就可以達成資料安全的一個目的
其它的可以參考RAID的觀念
上GOOGLE找就一堆了
以上
希望我的講義大家會看的懂
可以拿去虎一些不懂的人喔~ :)
沒有留言:
張貼留言