MySQL Disk--SSD与RAID
SSD与RAID 5
1、在RAID 5这类Parity-RAID上存在partial-stripe写问题,当发生partial-stripe写时,首先需要将条带中没有被更新的数据读取出来,然后与新写入的数据进行合并,在计算校验值,将新更新的数据和校验值一起写入到磁盘,整个Partial-stripe写过程即“读--修改--写", Partial-strip写会严重影响性能,增加IO延迟。由于SSD采用out-of-place的数据更新方式,频繁地Partial-stripe写会导致SSD写放大系数增大,影响SSD的使用寿命。
2、当RAID5中出现故障盘时,需要对更换的磁盘从头到尾巴做全部数据重构,SSD采用FTL(Flash Translation Layer)进行Page/Block隐射,如果新盘的可用page页耗尽,会触发SSD启用垃圾回收(GC)机制,影响SSD磁盘性能。
3、相同类型的SSD盘的使用寿命基本相同,Parity-RAID将条带中的数据均匀分布到所有磁盘上,使得所有磁盘的IO均等,导致SSD磁盘同时发生故障的概率身高。
由于RAID 5配置会严重SSD磁盘性能和使用寿命,因此不建议基于SSD磁盘配置RAID 5这类Parity-RAID。
SSD 与 RAID 0
使用两块SSD磁盘做RAID0与单块SSD磁盘做对比,结果如下:
1、对于顺序写和顺序读,RAIDO的IOPS性能和IO吞吐能力是单块SSD的两倍。
2、对于随机写和随机读:
A)当队列深度为1时,RAIDO的IOPS性能与单块SSD的IOPS性能基本持平。
B)当队列深度为64时,RAIDO的IOPS性能和IO吞吐能力是单块SSD的两倍。
3、IO延迟问题
A)对于读操作,RAID0的IO延迟略高于单块SSD。
B)对于写操作,RAID0的IO延迟远高于单块SSD。
C)增加磁盘队列深度并不会降低RAID0的IO延迟问题。
参考:
http://blog.51cto.com/alanwu/1430288