首先要讲采用RAID的目的是什么?简单讲就是需要需要大容量存储空间、数据可靠性强和强大的I/O吞吐能力。RAID中有三个关键技术:镜像(Mirroring)、数据条带(Data Stripping)和数据校验(Data Parity)。
那么固态硬盘是不适合呢?要看以下几个问题。
1、当建立一个RAID系统后,数据将分片保存在RAID系统中不同的硬盘上,多个数据分片共同组成一个完整数据。当固态硬盘要做数据条带时候,必须先把数据写入到已经擦出的物理页面上,但该页原始数据也在,过一段时间固态硬盘主控会通过垃圾回收机制来回收这些失效页。
这样我们可以理解为“读-修改-写”过程,这个过程频繁操作会影响固态硬盘写放大系数(WA),最终会影响固态硬盘寿命。
2、做磁盘镜像的时候,会并发对一个或多个副本来读写数据,当镜像中某一块盘出现故障,RAID卡会从空闲Spare盘进行数据重构。如果是固态硬盘,势必要会全部读写一遍,导致固态主控启动垃圾回收机制,使得性能固态硬盘明显下降。
3、数据校验是通过校验算法对冗余数据进行校验,确保数据可靠安全存储在RAID系统中,这个过程需要从多处读取数据并计算对比。这个过程与第一个问题类似。同时固态硬盘TBW一样,也意味着硬盘寿命中同时坏的可能性非常高,如果发生这样的故障,会影响整个RAID系统的健壮性。
综上所述,固态硬盘与机械硬盘底层技术不同,使得传统RAID卡与固态硬盘配合有很大问题,会影响固态硬盘使用寿命,提高运维成本,因此不建议采用固态硬盘做RAID。