作者Willywangkaa (威利旺卡)
看板Grad-ProbAsk
标题Re: [理工] 计组 张凡(下)P.220 RAID
时间Thu Nov 8 13:35:37 2018
※ 引述《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://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1541655340.A.FD2.html
1F:推 skyHuan: 好猛还有笔记 11/08 13:55
2F:→ skyHuan: 但这篇怎麽隔了10个月XD 11/08 13:55
3F:推 TEPLUN: 这题我去问过张凡他说这题算法是错的 11/08 14:53