歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 可以在SSD上組建傳統RAID嗎?

可以在SSD上組建傳統RAID嗎?

日期:2017/2/28 14:30:30   编辑:Linux教程

當被問及“在SSD上能否建傳統RAID”這個問題的時候,大家的第一反應應該是“可以建,但是需要Trim命令的支持”。在網上也可以看到很多人拿SSD來建RAID,但基本上都會配置成RAID0或者RAID1。很少有人會去建RAID5,這是為什麼呢?

答案很簡單,在SSD基礎上如果配置類似於RAID5這樣的Parity-RAID,那麼SSD的整體性能不能很好的發揮出來,更為重要的是Parity-RAID會影響SSD的壽命。一句話,Traditional RAID kills SSD。所以,傳統RAID不能直接配置到SSD上,不僅僅是因為Trim命令的支持問題。

在分析傳統RAID在SSD上的問題之前,首先看一下RAID能夠給SSD整體帶來什麼價值?Tom’s Hardware在SSD的基礎上配置了一個RAID0,並且對比了RAID0和單塊SSD的性能。從下圖可以看出,當兩塊SSD被配置成RAID0之後,無論是順序讀或者寫,性能基本上可以做到翻倍。所以,配置成RAID0之後,可以提升系統的整體吞吐量。RAID0模式下的順序讀寫性能對比如下所示:

第二個比較關心的是隨機讀寫能力。SSD的一大優勢在於隨機讀寫能力強,具有很高的IOPS,因此當配置成RAID之後,是否可以將IOPS的能力翻倍呢?答案是不一定的,當隊列深度很小的時候,RAID0模式下的隨機讀寫能力和單盤的性能沒有差距。當隊列深度為1時,RAID0模式下的隨機讀寫性能對比如下:

只有當隊列深度達到一定程度之後,RAID0的隨機讀寫能力才能有所提升。當queue_depth達到64時,隨機讀寫性能如下所示,基本上可以達到單盤性能的兩倍:

第三個比較關心的問題是延遲。在數據庫等應用中,特別在意IO延遲指標。組建RAID之後是否能夠降低延遲指標呢?從原理上來講,RAID只能延長IO延遲,並不能降低IO延遲。Tom’s Hardware的測試結果如下所示:

從上圖可以看出,引入RAID0之後,延遲時間增加了。所以,總體來講,RAID可以提升系統的整體吞吐量;在Queue Depth很大的情況下,提升系統的隨機IO能力;對延遲沒有改善,只能增加延遲;如果配置成Parity-RAID的方式,還可以提升數據的可靠性。

Debian軟RAID安裝筆記 - 使用mdadm安裝RAID1 http://www.linuxidc.com/Linux/2013-06/86487.htm

常用RAID技術介紹以及示例演示(多圖) http://www.linuxidc.com/Linux/2013-03/81481.htm

Linux實現最常用的磁盤陣列-- RAID5 http://www.linuxidc.com/Linux/2013-01/77880.htm

RAID0+1和RAID5的性能測試結果 http://www.linuxidc.com/Linux/2012-07/65567.htm

在很多應用中,需要很強的IO吞吐量、IOPS、數據可靠性以及大容量,那麼此時就需要RAID來支持了。但是,前面提到傳統Parity-RAID在SSD介質上不能很好的工作,只能加速SSD的磨損。傳統RAID主要存在的問題如下:

1、RAID的partial-stripe寫問題。在RAID5之類的Parity-RAID中,一旦發生Partial-stripe寫,那麼首先需要將條帶中沒有被更新的數據讀出來,然後和新寫入的數據進行合並,最後計算校驗值,將新更新的數據和校驗值一同寫入磁盤。整個Partial-stripe寫的過程就是一次“讀-修改-寫”。從性能的角度來看,partial-stripe寫過程嚴重影響了性能,增加了IO延遲。更為重要的是partial-stripe寫會頻繁的更新parity��據。由於SSD采用的是out-of-place的數據更新方式,所以這種頻繁parity數據更新會導致SSD寫放大系數增大,影響SSD的使用壽命。

2、數據重構問題。傳統RAID的數據重構是針對盤的。也就是說當RAID中一塊盤出現故障時,RAID會將該盤從RAID組中剔除,並且找一個空閒Spare盤進行數據重構。盤級數據重構會從頭至尾對SSD進行數據重構,即Spare SSD會被從頭至尾寫一遍。在SSD中采用FTL進行page/block映射,如果SSD中的所有page頁都被耗盡,那麼SSD會被迫啟動Garbage Collection,使得SSD性能達到最差。

3、數據同步問題。該問題和數據重構問題類似。

4、SSD盤同時發生故障問題。Parity-RAID將條帶中的數據均勻分布到所有磁盤上,使得所有磁盤上的IO均等。對於SSD盤而言,其壽命基本是相同的。因此,在RAID這種使用模式下,SSD在短時間內同時發生故障的概率是很高的。

SSD盤和磁盤相比,底層技術是完全不同的。傳統RAID不能很好的配合SSD盤,使得整體性能和SSD使用壽命都會受到嚴重影響。因此,在SSD上建RAID不是件那麼容易的事情。

Copyright © Linux教程網 All Rights Reserved