背景
不管在哪个时代,存储始终会存在三个瓶颈:容量、读写速度以及可靠性,raid的出现也是为了解决这三个问题点。虽然在互联网时代,想靠raid就解决大数据存储的问题基本不可能,但是其始终是作为一项比较基础的架构服务着计算机。
raid经过很长时间的发展,其演变了很多中结构出来,当前存在的有raid0,raid1,raid1+0,raid3,raid4,raid5,raid6,该顺序即为发展顺序,每个级别都有它的特点和适用场景。总的来说,它的迭代并不是为了完全替代,而是从硬件和软件的角度,结合使用情况去优化设计,但过往的设计依旧有效,依旧有存在的价值,只要场景符合。
raid的演进
raid0
采用条带化的方式将数据块切成N份(N为磁盘数),然后并发写入磁盘,没有数据备份机制。具体如下图:
磁盘要求
>=1
优点
- 写入快
- 磁盘使用率高
缺点
- 没有恢复机制,容错性差
- 数据丢失风险会随着磁盘的增多而变大
raid1
将每个数据块都同时写入两个盘,即多冗余一份数据。
磁盘要求
>=2
优点
- 有1:1的备份数据,容错性高
缺点
- 磁盘利用率低,50%的利用率
- 写入性能较慢
raid1+0
属于raid1和raid0的结合体,将盘块两两为一组构成raid1阵列,再将做个raid1阵列组成raid0阵列。写入时采用条带化的方式将数据块划分成N/2组写入,内部会执行双写,即完整冗余一份。
磁盘要求
>=4
优点
- 写入性能较快
- 有1:1的备份数据,容错性高
缺点
- 磁盘利用率低,50%的利用率
raid3
采用条带化的方式将数据块按照分成N-1份,并将校验和数据单独写入到第N个盘,如下图,假设disk3损坏,则可以通过disk1 ⊕ disk2 ⊕ disk4恢复数据。
磁盘要求
>=3
优点
- 写入性能较快,磁盘利用率较高
- 差错校验数据单独存储,可用于故障恢复
缺点
- 差错校验数据都集中在一个盘,每次数据更改都会引发这个盘的写入,导致该盘损坏的可能性加大
- 在坏了两个盘的情况下依旧会导致数据丢失
- 校验数据集中于一个盘,导致后期扩展比较难
raid4
与raid3基本一样,只不过raid4是按照数据块去维护数据而不是采用条带化的方式按字节去进行处理。
raid5
raid3的优化版本,写入时会将校验和数据分散去存储,不采用单独一个校验盘进行存储,该方式目前采用的较多,如下图:
磁盘要求
>=3
优点
- 写入性能较快,磁盘利用率较高
- 差错校验数据单独存储,可用于故障恢复
- 弥补了raid3校验盘写入压力大的问题,使所有磁盘负载都能够较为均衡
raid6
与raid5类似,不过采用的是双校验,具体如下图:
磁盘要求
>=4
优点
- 安全性较高
缺点
- 写入性能差,磁盘利用率较低
- 搭建成本高