對(duì)于一個(gè)數(shù)據(jù)的寫入,我們假設(shè)在第五個(gè)磁盤上寫入的數(shù)據(jù)為1111,如下圖所示。那么整個(gè)RAID-5需要完成寫入的過程分為以下幾步:
1.讀取原數(shù)據(jù)0110,然后與新的數(shù)據(jù)1111做XOR操作: 0110 XOR 1111 = 1001
2.讀取原有的校驗(yàn)位0010
3.用第一步算出的數(shù)值與原校驗(yàn)位再做一次XOR操作: 0010 XOR 1001 = 1011
4.然后將1111新數(shù)據(jù)寫入到數(shù)據(jù)磁盤,將第三步計(jì)算出來的新的校驗(yàn)位寫入校驗(yàn)盤。
由上述幾個(gè)步驟可見,對(duì)于任何一次寫入,在存儲(chǔ)端,需要分別進(jìn)行兩次讀+兩次寫,所以說RAID-5的Write Penalty的值是4。
不同RAID級(jí)別的Write Penalty:
下表列出了各種RAID級(jí)別的Write Penalty值:
RAID-0:直接的條帶,數(shù)據(jù)每次寫入對(duì)應(yīng)物理磁盤上的一次寫入
RAID-1和10:RAID-1 和RAID-10的寫懲罰很簡單理解,因?yàn)閿?shù)據(jù)的鏡像存在的,所以一次寫入會(huì)有兩次。
RAID-5:RAID-5由于要計(jì)算校驗(yàn)位的機(jī)制存在,需要讀數(shù)據(jù)、讀校驗(yàn)位、寫數(shù)據(jù)、寫校驗(yàn)位四個(gè)步驟,所以RAID-5的寫懲罰值是4。
RAID-6:RAID-6由于有兩個(gè)校驗(yàn)位的存在,與RAID-5相比,需要讀取兩次校驗(yàn)位和寫入兩次校驗(yàn)位,所以RAID-6的寫懲罰值是6。
計(jì)算IOPS:
根據(jù)上文的描述,在實(shí)際存儲(chǔ)方案設(shè)計(jì)的過程中,計(jì)算實(shí)際可用IOPS的過程中必須納入RAID的寫懲罰計(jì)算。計(jì)算的公式如下:
物理磁盤總的IOPS = 物理磁盤的IOPS × 磁盤數(shù)目
可用的IOPS = (物理磁盤總的IOPS × 寫百分比 ÷ RAID寫懲罰) + (物理磁盤總的IOPS × 讀百分比)
假設(shè)組成RAID-5的物理磁盤總共可以提供500 IOPS,使用該存儲(chǔ)的應(yīng)用程序讀寫比例是50%/50%,那么對(duì)于前端主機(jī)而言,實(shí)際可用的IOPS是:
(500 ×50% ÷ 4)+ ( 500 * 50%) = 312.5 IOPS
本文作者為EMC中文技術(shù)社區(qū)(https://community.emc.com/go/chinese)技術(shù)版主。