Raid磁盘冗余阵列

Raid磁盘冗余阵列
Photo by benjamin lehman / Unsplash

On this page

RAID,全称为Redundant Arrays of Independent Drives,即磁盘冗余阵列,是由多块独立磁盘(多为硬盘)组合的一个超大容量磁盘组。根据不同的RAID级别,可以实现不同的功能。

Raid级别

Raid 0

将两个或两个以上相同型号、容量的硬盘组合,磁盘阵列的总容量便是多个硬盘的总和。

Raid 0特点

  • 至少需要两块磁盘
  • 数据条带化分布到磁盘,高读写性能,100%存储空间利用率
  • 数据没有冗余策略,一块磁盘故障,数据将无法恢复
  • 适合对数据安全性需求不高的应用场景

条带化技术

条带化技术就是一种自动的将 I/O 的负载均衡到多个物理磁盘上的技术,磁盘条带化是指利用条带化技术就是将一块连续的数据分成很多小部分并把它们分别存储到不同磁盘上去。

RAID 0 级别下,数据以此写入到两块磁盘之中,理想状态下,读写性能会翻倍,性能大于单个硬盘。但是raid 0 任意一块硬盘故障都会导致整个系统数据被破坏,数据分别写入两个硬盘设备,没有数据备份的功能。

Raid 1

由于raid 0的特性,数据依次写入到各个物理硬盘中,数据是分开放的,因此损坏任意一个硬盘,都会对完整的数据破坏,对于企业数据来说,肯定是不允许。

Raid 1技术,也是将两块以上硬盘绑定,但是数据写入时,同时写入两块硬盘,因此即使有硬盘故障,也有数据备份。

Raid 1特点

  • 至少需要2块磁盘
  • 数据镜像备份写到磁盘上(工作盘和镜像盘),可靠性高,磁盘利用率为50%
  • 读性能可以,但写性能不佳,写入数据要同步,因此速度较慢。
  • 数据安全性高,因为存在数据备份,且两块硬盘同时损坏的概率很低。适用于对数据安全性较高的场景,如邮件、交易系统。

Raid 3

Raid 3的方式是将数据向Raid 0一样依序写入多块磁盘,再额外使用一个磁盘写入奇偶校验码,这样一旦有某一块磁盘损坏,就可以利用这个存放校验码的磁盘去恢复数据。

Raid 3最大缺点是由于任何数据的写入都会更新校验码磁盘,因此作为备份的磁盘反倒是最容易损坏的。

Raid 3很少使用,更多的是使用与他机制相似的Raid 5。

Raid 5

RAID5模式中,不再需要用单独的磁盘写校验码了。它把校验码信息分布到各个磁盘上。例如,总共有N块磁盘,那么会将要写入的数据分成N份,并发的写入到N块磁盘中,同时还将数据的校验码信息也写入到这N块磁盘中(数据与对应的校验码信息必须得分开存储在不同的磁盘上)。一旦某一块磁盘损坏了,就可以用剩下的数据和对应的奇偶校验码信息去恢复损坏的数据。

raid5-1.gif

Raid 5特点

  • 至少需要3块磁盘
  • 数据条带化存储在磁盘,读写性能好,磁盘利用率为(n-1)/n
  • 一块磁盘故障,可根据其他数据块和对应的校验数据重构损坏数据
    • 校验算法是计算机二进制的的异或运算
    • 只能允许坏掉一块盘。
  • 综合性能最佳的数据保护解决方案
  • 兼顾了存储性能、数据安全和存储成本等各方面因素
  • 适用于大部分的应用场景

    raid5-2.gif

Raid 6

比起raid5提供的数据校验,又多了一层校验,双层校验。

RAID6除了每块磁盘上都有同级数据XOR校验区以外,还有针对每个数据块的XOR校验区,这样的话,相当于每个数据块有两个校验保护措施,因此数据的冗余性更高了。

raid6.png

Raid 6特点

  • 至少需要4块磁盘
  • 数据条带化存储在磁盘,读取性能好,容错能力强
  • 写性能较差
  • 采用双重校验方式保证数据的安全性
  • 如果2块磁盘同时故障,可以通过两个校验数据来重建两个磁盘的数据
  • 成本要比其他等级高,并且更复杂

Raid 10

Raid 10是Raid 1 和 Raid 0的组合。

Raid 10兼备了Raid 1和RAID0的有优点。首先基于Raid 1模式将磁盘分为2份,当要写入数据的时候,将所有的数据在两份磁盘上同时写入,相当于写了双份数据,起到了数据保障的作用。且在每一份磁盘上又会基于Raid 0技术将数据分为N份并发的读写,这样也保障了数据的效率。

Raid 10特点

  • 至少需要4块磁盘
  • 两块硬盘为一组先做Raid 1,再将做好raid1的两组做Raid 0
  • 兼顾数据的冗余(Raid 1镜像)和读写性能(Raid 0数据条带化)
  • 磁盘利用率为50%,成本较高
  • 只要坏的不是同一个组中,所有的硬盘,就算坏掉一半硬盘都不会丢数据

总结

类型 读性能 写性能 可靠性 磁盘利用率 成本
Raid 0 100%
Raid 1 一般 50% 偏高
Raid 5 接近Raid0 较高(多了层校验) RAID0<RAID5<RAID1 (n-1)/n RAID0<RAID5<RAID1
Raid 6 接近Raid0 一般(多了双层校验) RAID6>RAID5 RAID6<RAID5 RAID6>RAID5
Raid 10 50% 最高