raid5的寫(xiě)懲罰

RAID 寫(xiě)懲罰(Write Penalty)

raid的寫(xiě)懲罰是指在寫(xiě)入數(shù)據(jù)時(shí),由于RAID的奇偶校驗(yàn)機(jī)制,需要進(jìn)行額外的讀寫(xiě)操作。
RAID 5使用的是分布式奇偶校驗(yàn),數(shù)據(jù)和校驗(yàn)塊分布在所有的硬盤(pán)上,當(dāng)寫(xiě)入數(shù)據(jù)到RAID 5 磁盤(pán)陣列時(shí),數(shù)據(jù)塊與原來(lái)的數(shù)據(jù)不同,那么整個(gè)條帶的數(shù)據(jù)以及對(duì)應(yīng)的奇偶校驗(yàn)塊都需要更新。

具體的RAID5 的寫(xiě)懲罰過(guò)程如下:

  1. 寫(xiě)入數(shù)據(jù)前,先讀取原數(shù)據(jù),然后與新數(shù)據(jù)進(jìn)行XOR操作得到新的校驗(yàn)數(shù)據(jù)。
  2. 讀取原有的校驗(yàn)塊信息。
  3. 用新校驗(yàn)數(shù)據(jù)與原校驗(yàn)數(shù)據(jù)進(jìn)行XOR操作得到新的校驗(yàn)數(shù)據(jù)。
  4. 將新數(shù)據(jù)寫(xiě)入到磁盤(pán),將新的校驗(yàn)數(shù)據(jù)寫(xiě)入到檢驗(yàn)磁盤(pán)。

由于這個(gè)機(jī)制,每次寫(xiě)入操作實(shí)際上需要兩次讀操作和兩次寫(xiě)操作,因此RAID 5的寫(xiě)懲罰是4。
不考慮緩存和其他優(yōu)化,RAID 5陣列的寫(xiě)入性能理論上只有單個(gè)硬盤(pán)寫(xiě)入性能的1/4。

不同的RAID級(jí)別的寫(xiě)懲罰(Write Penalty):

RAID Write Penalty
0 1
1 2
4 4
5 4
6 6
10 2

RAID 0 時(shí),是把所有盤(pán)作為一塊兒盤(pán)來(lái)使用,每次寫(xiě)入時(shí)不考慮緩存的影響,對(duì)應(yīng)物理磁盤(pán)的寫(xiě)入也只會(huì)有一次。
RAID 1和10 時(shí)因?yàn)閿?shù)據(jù)的鏡像存在的,每次都是雙寫(xiě),故是2。
RAID 5和4時(shí) 由于要計(jì)算校驗(yàn)位的機(jī)制存在,需要讀數(shù)據(jù)、讀校驗(yàn)位、寫(xiě)數(shù)據(jù)、寫(xiě)校驗(yàn)位四個(gè)步驟,所以寫(xiě)懲罰值是4。
RAID 6時(shí),需要寫(xiě)兩個(gè)校驗(yàn)數(shù)據(jù),與RAID 5相比,多了一組校驗(yàn)數(shù)據(jù)的讀寫(xiě),所以RAID 6的寫(xiě)懲罰值是6

計(jì)算IOPS

  IOPS  (Input/Output Operations Per Second ) 是衡量磁盤(pán)的讀寫(xiě)能力的主要指標(biāo)之一;單位時(shí)間內(nèi)系統(tǒng)能處理的I/O請(qǐng)求數(shù)量;磁盤(pán)的IOPS 就是在一秒內(nèi),磁盤(pán)進(jìn)行多少次I/O讀寫(xiě)操作。

單塊磁盤(pán)IOPS計(jì)算

傳統(tǒng)的磁盤(pán)是機(jī)械裝置,一個(gè)完整的IO操作會(huì)分為尋址,旋轉(zhuǎn)等待,數(shù)據(jù)傳輸三步;

  • 尋址即磁盤(pán)的驅(qū)動(dòng)臂帶讀寫(xiě)磁頭移動(dòng)到要操作數(shù)據(jù)塊所在磁道正上方的耗時(shí),一般在3-15ms,一般都在10ms左右;
  • 旋轉(zhuǎn)等待,即在找到對(duì)應(yīng)磁道后磁頭要等待盤(pán)片旋轉(zhuǎn)到初始數(shù)據(jù)所在扇區(qū)的正上方的過(guò)程的耗時(shí),這個(gè)過(guò)程稱為旋轉(zhuǎn)延遲,這個(gè)一般取決于磁盤(pán)的轉(zhuǎn)速,即我們常說(shuō)的7200轉(zhuǎn),15000轉(zhuǎn)等。
  • 數(shù)據(jù)傳輸,即磁頭不斷讀寫(xiě)數(shù)據(jù)塊,知道完成本次IO所需操作的全部數(shù)據(jù)的耗時(shí),這個(gè)時(shí)間去取決于數(shù)據(jù)傳輸速率,目前SATAII 可達(dá)到300MB/s的傳輸速率,這個(gè)傳輸時(shí)間通常遠(yuǎn)小于以上兩部分的耗時(shí),一般忽略不計(jì)。
    一塊磁盤(pán)的IOPS理論值計(jì)算公式:
    IOPS = 1000 MS/(尋址耗時(shí) + 旋轉(zhuǎn)延遲耗時(shí)) ,不同轉(zhuǎn)速的理論最大值:
    IOPS = 1000 / (3 + 60000/7200/2) = 140
    IOPS = 1000 / (3 + 60000/10000/2) = 167
    IOPS = 1000 / (3 + 60000/15000/2) = 200

raid組磁盤(pán)IOPS計(jì)算

在實(shí)際存儲(chǔ)方案設(shè)計(jì)的過(guò)程中,計(jì)算實(shí)際可用IOPS的過(guò)程中必須納入RAID的寫(xiě)懲罰計(jì)算。
計(jì)算公式如下:

物理磁盤(pán)總的IOPS = 物理磁盤(pán)的IOPS × 磁盤(pán)數(shù)目

可用的IOPS = (物理磁盤(pán)總的IOPS * 寫(xiě)百分比 ÷ RAID 寫(xiě)懲罰) + (物理磁盤(pán)總的IOPS × 讀百分比)
8盤(pán)位7200轉(zhuǎn)的raid5的讀寫(xiě)比為4:1的理論最大值:
理論的IOPS = (140 * 7 * 80% ÷ 4) + (140 * 7 * 20%)= 392

參考文章:
https://www.dostor.com/article/2013-08-26/349588.shtml
https://www.cnblogs.com/morgan363/p/12192159.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容