天天看點

linux檢視iops是否為raid10,RAID寫懲罰和IOPS的計算

寫懲罰值

例子:

RAID 5

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

linux檢視iops是否為raid10,RAID寫懲罰和IOPS的計算

image.png

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

linux檢視iops是否為raid10,RAID寫懲罰和IOPS的計算

image.png

讀取原資料0110,然後與新的資料1111做XOR操作: 0110 XOR 1111 = 1001

讀取原有的校驗位0010

用第一步算出的數值與原校驗位再做一次XOR操作: 0010 XOR 1001 = 1011

然後将1111新資料寫入到資料磁盤,将第三步計算出來的新的校驗位寫入校驗盤。

由上述幾個步驟可見,對于任何一次寫入,在存儲端,需要分别進行兩次讀+兩次寫,是以說RAID-5的寫城法治的值是4。

不同RAID級别的寫懲罰值

raid 0 =1

raid 1 = 2

raid 5 = 4

raid 6 = 6

raid 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 (Input/Output Per Second)即每秒的輸入輸出量(或讀寫次數),是衡量磁盤性能的主要名額之一。IOPS是指機關時間内系統能處理的I/O請求數量,一般以每秒處理的I/O請求數量為機關,I/O請求通常為讀或寫資料操作請求。

另一個重要名額是資料吞吐量(Throughput),指機關時間内可以成功傳輸的資料數量。對于大量順序讀寫的應用,如VOD(Video On Demand),則更關注吞吐量名額。

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

實體磁盤總的IOPS = 實體磁盤的IOPS × 磁盤數目

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

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

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

尋道時間Tseek是指将讀寫磁頭移動至正确的磁道上所需要的時間。尋道時間越短,I/O操作越快,目前磁盤的平均尋道時間一般在3-15ms。

旋轉延遲Trotation是指盤片旋轉将請求資料所在扇區移至讀寫磁頭下方所需要的時間。旋轉延遲取決于磁盤轉速,通常使用磁盤旋轉一周所需時間的1/2表示。比如,7200 rpm的磁盤平均旋轉延遲大約為60*1000/7200/2 = 4.17ms,而轉速為15000 rpm的磁盤其平均旋轉延遲約為2ms。

是以,理論上可以計算出磁盤的平均最大IOPS,即IOPS = 1000 ms/ (Tseek + Troatation),忽略資料傳輸時間。假設磁盤平均實體尋道時間為3ms, 磁盤轉速為7200,10K,15K rpm,則磁盤IOPS理論最大值分别為,

IOPS = 1000 / (3 + 60000/7200/2) = 140

IOPS = 1000 / (3 + 60000/10000/2) = 167