可以在SSD上建传统RAID吗?

原创内容,转载请注明:  [http://www.ssdfans.com]  谢谢!

 

用事实告诉你:在SSD上建RAID不是件那么容易的事情。

 

想要和作者吴忠杰还有全世界的大牛讨论SSD及存储相关技术?加nanoarch为微信好友,拉你进ssdfans微信群。

 
 

当被问及SSD上能否建传统RAID这个问题的时候,大家的第一反应应该是可以建,但是需要Trim命令的支持。在网上也可以看到很多人拿SSD来建RAID,但基本上都会配置成RAID0或者RAID1。很少有人会去建RAID5,这是为什么呢?

答案很简单,在SSD基础上如果配置类似于RAID5这样的Parity-RAID,那么SSD的整体性能不能很好的发挥出来,更为重要的是Parity-RAID会影响SSD的寿命。一句话,Traditional RAID kills SSD。所以,传统RAID不能直接配置到SSD上,不仅仅是因为Trim命令的支持问题。

在分析传统RAIDSSD上的问题之前,首先看一下RAID能够给SSD整体带来什么价值?Tom’s HardwareSSD的基础上配置了一个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的方式,还可以提升数据的可靠性。

在很多应用中,需要很强的IO吞吐量、IOPS、数据可靠性以及大容量,那么此时就需要RAID来支持了。但是,前面提到传统Parity-RAIDSSD介质上不能很好的工作,只能加速SSD的磨损。传统RAID主要存在的问题如下:

1、RAIDpartial-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不是件那么容易的事情。 

不想错过吴忠杰的后续精彩文章?长按或扫描下面二维码关注ssdfans就可以了!

 


 

公司招聘:
Memblaze
华东区高薪招聘
,销售经理,FAE  上海/杭州
联想SSD专家招聘FWQANAND特性工程师,北京/武汉

上海飞斯招聘: 存储开发工程师RAIDUSBSATAAHCINVMEFTL、文件系统的开发及调试

深圳大普微电子招聘SSD芯片设计,固件开发,机器学习相关人才!

ssdfans帮你内推

ssdfans帮你赚推荐费

 
 

经吴忠杰授权,转载自
http://alanwu.blog.51cto.com/3652632/1430288

分类目录 SSD, 技术文章.
扫一扫二维码或者微信搜索公众号ssdfans关注(添加朋友->点最下面的公众号->搜索ssdfans),可以经常看到SSD技术和产业的文章(SSD Fans只推送干货)。
ssdfans微信群介绍
技术讨论群 覆盖2000多位中国和世界华人圈SSD以及存储技术精英
固件、软件、测试群 固件、软件和测试技术讨论
异构计算群 讨论人工智能和GPU、FPGA、CPU异构计算
ASIC-FPGA群 芯片和FPGA硬件技术讨论群
闪存器件群 NAND、3D XPoint等固态存储介质技术讨论
企业级 企业级SSD、企业级存储
销售群 全国SSD供应商都在这里,砍砍价,会比某东便宜20%
工作求职群 存储行业换工作,发招聘,要关注各大公司招聘信息,赶快来
高管群 各大SSD相关存储公司高管和创始人、投资人

想加入这些群,请微信扫描下面二维码,或搜索nanoarchplus,加阿呆为微信好友,介绍你的昵称-单位-职务,注明群名,拉你进群。SSD业界需要什么帮助,也可以找阿呆聊。