看板 Grad-ProbAsk 關於我們 聯絡資訊
※ 引述《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
skyHuan: 好猛還有筆記 11/08 13:55
skyHuan: 但這篇怎麼隔了10個月XD 11/08 13:55
TEPLUN: 這題我去問過張凡他說這題算法是錯的 11/08 14:53