當前位置:
首頁 > 科技 > 再談Raid 5和Raid 6的寫性能差異

再談Raid 5和Raid 6的寫性能差異

這次給大家介紹下RAID 5和RAID 6做後端在寫性能上的差異以及原因。這裡暫不考慮上層緩存以及跨array創建LUN帶來的性能提升,只考慮array本身的性能差異。

隨機短步寫

對於寫入量小於條帶數據塊的寫操作,之前已經講過,對於RAID 5而言,短步寫會從data盤上讀取要改寫的數據,從parity盤上讀取P校驗,然後把新數據寫入data盤,計算新的P校驗值並寫入P校驗盤,總共是2次讀+2次寫操作。

再談Raid 5和Raid 6的寫性能差異

對於RAID 6,則需要讀取要改寫的數據,從P盤讀取P校驗,從Q盤讀取Q校驗,把新數據寫入data盤,計算新的P和Q校驗,再分別寫入P盤和Q盤,所以總共是3次讀+3次寫。

也就是說,假設所有寫入的塊大小都是Z, 單個磁碟所能處理Z大小的數據塊的最大IOPS是定值X,組成RAID的磁碟個數都是Y,那麼對應的RAID 5可以處理的最大IOPS是X*Y/4,而RAID 6可以處理的是X*Y/6,對應的數據傳輸率就是Z*X*Y/4和Z*X*Y/6。也就是說,由於多了個Q校驗的讀寫,RAID 6在隨機短步寫性能上和RAID5比會有33%的差距。所以除了增大成員磁碟個數Y外,並沒有很好的方法來改進RAID 6的性能,而一味的增大Y又會帶來其他問題在此不再詳述。

連續整條帶寫

RAID 5整條帶寫的過程是,計算出P校驗,把數據和P校驗一起寫入到所有的RAID成員磁碟里。

RAID 6整條帶寫的過程是,計算出P和Q校驗,把數據和P和Q校驗一起寫入到所有的RAID成員磁碟里。

我們依然假設2種RAID都用相同的磁碟個數Y,RAID 5的條帶數據塊大小是a,RAID 6的條帶數據塊是b。那麼由於有P校驗的存在,RAID 5的條帶大小就是a*(Y-1),RAID 6有P和Q兩個校驗,條帶大小就是b*(Y-2)。

不管是RAID 5還是RAID 6,寫完整的一個條帶,都需要把所有成員磁碟寫一次,也就是說需要的磁碟IO數都是Y。如果條帶數據塊a和b比較小的話,對於現在的大容量機械硬碟來說,尋道時間遠大於小塊數據的傳輸時間,所以我們可以假設磁碟處理a和b大小的數據塊的最大IOPS都是x。那麼RAID 5做連續整條帶寫的數據傳輸率就是a*(Y-1)*x,RAID 6則是b*(Y-2)*x。由此可見,當RAID 6和RAID 5的條帶數據塊大小一致時候(a=b),如果都是8個磁碟組成的RAID,RAID 5和RAID 6的傳輸率對比就是7:6,這是RAID 6多出一個Q校驗的代價。同時從上面的公式可以看到,增大RAID 6的條帶數據塊大小b可以在一定範圍內提高RAID 6的性能。當然b是不能無限制增大的,當條帶數據塊大到一定程度的時候,尋道時間不再遠小於數據塊的傳輸時間,也就是說對於RAID 5和RAID 6的磁碟處理a和b大小的數據塊的最大IOPS將不再相等,上面的公式也就不適用了。所以對於連續整條帶寫,選擇一個合適的條帶數據塊大小對於性能很重要。

綜上,RAID 6相對於RAID 5,有天然的寫性能上的不足,但是數據安全始終是第一位的,隨著磁碟容量越來越大,RAID重建(rebuilding)時間也越來越長,RAID 5重建時候用戶數據暴露在無保護的時間窗口也越來越大,採用RAID 6可以更好的保護用戶數據,這點性能上的付出是值得的,而且通過上層的緩存和跨越更多個rank來建LUN可以一定程度上彌補性能差距。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 中國存儲 的精彩文章:

你所不知道的RAID陣列組成方式
Crossbar:ReRAM技術有望顛覆目前的存儲模式,破解人工智慧時代的大數據處理困境

TAG:中國存儲 |