淺談RAID寫懲罰(Write Penalty)與IOPS計算

介紹

通常在討論不同RAID保護類型的性能的時候,結論都會是RAID-1提供比較好的讀寫性能,RAID-5讀性能不錯,但是寫入性能就不如RAID-1,RAID-6保護級別更高,但寫性能相對更加差,RAID10是提供最好的性能和數據保護,不過成本最高等等。其實決定這些性能考慮的因素很簡單,它就是RAID Write Penalty(寫懲罰)。本文從原理上解釋了不同RAID保護級別的寫懲罰,以及通過寫懲罰計算可用IOPS的方法。

更多信息

RAID-5 Write Penalty的例子:

存儲方案規劃的過程中,最基本的考慮因素有兩個,性能和容量。性能上的計算看可以分爲IOPS和帶寬需求。計算IOPS,拋開存儲陣列的緩存和前端口不談。計算後端物理磁盤的IOPS不能簡單的把物理磁盤的最大IOPS相加而獲得。原因是,對於不同的RAID級別,爲了保證當有物理磁盤損壞的情況下可以恢復數據,數據寫入的過程中都需要有一些特別的計算。比如對於RAID-5,條帶上的任意磁盤上的數據改變,都會重新計算校驗位。如下圖所示,一個7+1的RAID-5的條帶中,七個磁盤存儲數據,最後一個磁盤存儲校驗位。

11

對於一個數據的寫入,我們假設在第五個磁盤上寫入的數據爲1111,如下圖所示。那麼整個RAID-5需要完成寫入的過程分爲以下幾步:

2

  1. 讀取原數據0110,然後與新的數據1111做XOR操作: 0110 XOR 1111 = 1001
  2. 讀取原有的校驗位0010
  3. 用第一步算出的數值與原校驗位再做一次XOR操作: 0010 XOR 1001 = 1011
  4. 然後將1111新數據寫入到數據磁盤,將第三步計算出來的新的校驗位寫入校驗盤。

 

由上述幾個步驟可見,對於任何一次寫入,在存儲端,需要分別進行兩次讀+兩次寫,所以說RAID-5的Write Penalty的值是4。

不同RAID級別的Write Penalty:

下表列出了各種RAID級別的Write Penalty值:

 

RAID

Write Penalty

0

1

1

2

5

4

6

6

10

2

 

RAID-0:直接的條帶,數據每次寫入對應物理磁盤上的一次寫入

RAID-1和10:RAID-1 和RAID-10的寫懲罰很簡單理解,因爲數據的鏡像存在的,所以一次寫入會有兩次。

RAID-5:RAID-5由於要計算校驗位的機制存在,需要讀數據、讀校驗位、寫數據、寫校驗位四個步驟,所以RAID-5的寫懲罰值是4。

RAID-6:RAID-6由於有兩個校驗位的存在,與RAID-5相比,需要讀取兩次校驗位和寫入兩次校驗位,所以RAID-6的寫懲罰值是6。

 

 

計算IOPS:

 

根據上文的描述,在實際存儲方案設計的過程中,計算實際可用IOPS的過程中必須納入RAID的寫懲罰計算。計算的公式如下:

 

物理磁盤總的IOPS = 物理磁盤的IOPS × 磁盤數目

 

可用的IOPS = (物理磁盤總的IOPS × 寫百分比 ÷ RAID寫懲罰) + (物理磁盤總的IOPS × 讀百分比)

 

假設組成RAID-5的物理磁盤總共可以提供500 IOPS,使用該存儲的應用程序讀寫比例是50%/50%,那麼對於前端主機而言,實際可用的IOPS是:

 

(500 ×50% ÷ 4)+ ( 500 * 50%) = 312.5 IOPS

 

具體不同應用程序的讀寫比例,可以參考:關於不同應用程序存儲IO類型的描述

文章 來自:https://community.emc.com/docs/DOC-26624

發佈了29 篇原創文章 · 獲贊 12 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章