為什麼這篇raid計算鄉民發文收入到精華區:因為在raid計算這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者Willywangkaa (威利旺卡)看板Grad-ProbAsk標題Re: [理工] 計組 張...
※ 引述《q1qip123 (wtlee)》之銘言:
: 想請問
: 1. RAID4是用D0 xor D0" xor P,但是他不也是從RAID3那個公式導出來的,那結果為何不一樣?
: 2.雖然RAID4說在小量存取時,因為他是stripped block而可以平行存取,但不是都要等parity disk?這樣感覺甚至比RAID3還要慢?
: http://i.imgur.com/S2gWOFs.jpg
: -----
: Sent from JPTT on my OPPO R7sf.
問題一:因為 RAID3 是「Bit interleaved」,所以每次將資料存儲至該磁碟陣列時
,需要將每一個 bit 同時存入硬碟中。
Ex:假設我們要修改4bit資料為 0xA 在一個由4+1個硬碟組成的 RAID3
代表第一個 bit "1" 會存入到硬碟一
第二個 bit "0" 會存入到硬碟二
第三個 bit "1" 會存入到硬碟三
第四個 bit "0" 會存入到硬碟四
然後這四個 bit 需要即時計算一個 parity bit 存入到我們的「Parity disk」
而如果今天是用 4+1 個磁碟組成的RAID4,假設一個 Block 為 2 Byte 也就是 16bit,
一樣存入 0xA 的話,因為是「Block interleaved」,而 0xA 才只有 4bit,
所以我們存入的資料還不到一個 Block,也就是說只要修改單獨一個硬碟即可,
也不會影響到其他磁碟上同一個「保護區塊」之 block,所以新 data block 只要與
舊的 parity block 還有舊的 data block,就可以算出新的 parity block
問題二:如果假設讀取不用每次都一併要讀取「Parity block」的前提之下,
RAID4 才有可能可以平行讀取資料,再來,寫入資料時的確講義上也有說必須要等待
「Parity disk」的排隊寫入,所以造成 bottleneck,這才會衍伸出 RAID5 出來,
其作用就是避免對同一個磁碟過多的讀寫,以及避免排隊寫入 parity
而造成的 bottleneck。
最後,我個人覺得 p.220 這題根本完全有問題,如果是按照
張凡老師所計算 parity 之方法計算題目原本的 parity block 的話,
那題目根本就算錯,應為 00FF⊕A387⊕F345⊕FF00 = AF30
(1): FEFE⊕A387⊕F345⊕FF00 = 513C
首先第一題比較奇怪的地方就是他只單獨改變一個磁碟上的資料,通常改變資料應該是
要循序的改變,所以四個硬碟上的資料都應該要改變,而我們先撇除這個問題,有可能
原本題目是要讓我們理解這個地方的差異
(2): p' = p⊕D0'⊕D0 = AF30⊕FEFE⊕00FF = 5131
大致上應該算是這樣解釋你如果還是不懂可以先看看我的筆記
http://goo.gl/7MfRtk,有不會在提問~
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.167.49.58
※ 文章網址: https://www.ptt.cc/bbs/Grad-ProbAsk/M.1541655340.A.FD2.html