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

lovestanford發表於2015-09-18

from http://blog.sae.sina.com.cn/archives/3801

介紹

通常在討論不同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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21754115/viewspace-1803413/,如需轉載,請註明出處,否則將追究法律責任。

相關文章