RAID 全称 Redundant Array of Independent Disks,独立冗余磁盘阵列,将多块独立物理硬盘按不同方式组合形成一个逻辑硬盘,提供比单盘更高的存储性能和数据备份。RAID 是为了减少数据丢失而发明的一种方法。

  • RAID 0,数据平均写入多个磁盘阵列,读写都是并行的,磁盘 IOPS 提高一倍
  • RAID 1,提高数据安全性,一份数据复制到多个磁盘,不能提高 IOPS,但是数据冗余多份
  • RAID 5,数据平均写到总磁盘数减 1 的磁盘中,在一块磁盘上中写入数据的奇偶校验信息,即使一块磁盘发生故障,也可以通过磁盘数据和奇偶校验来恢复数据
  • RAID 0+1,一份数据同时写入多个备份磁盘分组,多个分组内并行读写

RAID 0

至少需要两块物理硬盘,将数据以位或者字节分割,并行地读 / 写到磁盘(英文的术语叫做 stripe),但是没有数据冗余,当其中一块硬盘故障时,所有数据无法恢复。假设有两块物理硬盘前提下,读写速度提高 2 倍,数据安全性降低 2 倍。

RAID 0 不适用于数据安全性高的场合。

RAID 1

RAID 1 至少需要两块物理硬盘实现,通过磁盘数据镜像冗余,在成对的独立磁盘上互为备份,用简单的话讲就是通过冗余一份或多份数据的方式提高数据安全性。原始数据繁忙时,直接从镜像拷贝数据,RAID 1 可以提高读取性能。假设两块物理硬盘前提下,存储空间只能利用 50%,单位成本最高,提供很高的数据安全性和可用性,当其中一块硬盘故障时,可以自动切换到另一块磁盘读写。可以承受单个硬盘故障而不会造成数据丢失。当容错至关重要,而空间和性能不是关键要求时,通常采用 RAID 1。

RAID 1 适用于安全性要求比较高的场合。

RAID 3

至少需要三块物理硬盘,数据条块化分布不同硬盘,使用冗余的单块磁盘存放奇偶校验,当物理盘故障,奇偶盘和数据盘可以重新恢复数据,而如果奇偶盘故障则不影响数据使用。

RAID 3 可对连续数据读写提供很好的性能,但对于随机数据写操作可能成为瓶颈。

RAID 5

至少需要三块物理硬盘,提供热盘实现故障恢复,校验位会分布存放在三块磁盘中;当其中一块故障,则可以恢复数据;如果其中两块损坏,则所有数据都会损坏。

RAID 5 通过奇偶校验位提高了数据安全性,可实现单盘故障后的数据恢复。

RAID 10

RAID10 又被称为 RAID 1+0 或者 RAID 0+1,至少需要四块物理磁盘。RAID 01 则是 1,2 磁盘,3,4 磁盘先组 RAID 0,然后组起的两个 RAID 0 阵列组 RAID 1。 RAID 10 则是先组 RAID 1 然后组 RAID 0。在提供性能的同时提供一定的安全性能。

图文解释

假设要写入的数据是{A1,A2,A3,……,A8},那么:

  • 对于RAID1来说,需要做这样的转换:
                                +--+--+--+--+--+--+--+--+
                            +-->|A1|A2|A3|A4|A5|A6|A7|A8|
+--+--+--+--+--+--+--+--+   |   +--+--+--+--+--+--+--+--+
|A1|A2|A3|A4|A5|A6|A7|A8|-->|             Disk0
+--+--+--+--+--+--+--+--+   |   +--+--+--+--+--+--+--+--+
          RAID 1            +-->|A1|A2|A3|A4|A5|A6|A7|A8|
                                +--+--+--+--+--+--+--+--+
                                          Disk1
  • 对于四盘RAID0来说,需要做这样的转换:
                                +--+--+  
                            +-->|A1|A5| 
                            |   +--+--+
                            |    Disk0
                            |   +--+--+
                            +-->|A2|A6|
+--+--+--+--+--+--+--+--+   |   +--+--+
|A1|A2|A3|A4|A5|A6|A7|A8|-->|    Disk1
+--+--+--+--+--+--+--+--+   |   +--+--+
          RAID 0            +-->|A3|A7|
                            |   +--+--+
                            |    Disk2
                            |   +--+--+
                            +-->|A4|A8|
                                +--+--+
                                 Disk3
  • 对于四盘RAID10来说,需要做这样的转换:
                                +--+--+--+--+
                            +-->|A1|A3|A5|A7|
                            |   +--+--+--+--+
                            |       Disk0
                            |   +--+--+--+--+
                            +-->|A1|A3|A5|A7|
+--+--+--+--+--+--+--+--+   |   +--+--+--+--+
|A1|A2|A3|A4|A5|A6|A7|A8|-->|       Disk1|      
+--+--+--+--+--+--+--+--+   |   +--+--+--+--+
          RAID 10           +-->|A2|A4|A6|A8|
                            |   +--+--+--+--+
                            |       Disk2
                            |   +--+--+--+--+
                            +-->|A2|A4|A6|A8|
                                +--+--+--+--+
                                    Disk3
  • 对于四盘RAID5来说,需要做这样的转换(其中B7、B8、Q3需要先从硬盘读出,P1、P2、P3需要进行计算):
                                +--+--+------+
                            +-->|A1|A4|B7->A7|
                            |   +--+--+------+
                            |       Disk0
                            |   +--+--+------+
                            +-->|A2|A5|Q3->P3|
+--+--+--+--+--+--+--+--+   |   +--+--+------+
|A1|A2|A3|A4|A5|A6|A7|A8|-- |       Disk1(P3=B7 XOR A7 XOR B8 XOR A8 XOR Q3)
+--+--+--+--+--+--+--+--+   |   +--+--+------+
          RAID 5            +-->|A3|P2|B8->A8|
                            |   +--+--+------+
                            |       Disk2(P2=A4 XOR A5 XOR A6)
                            |   +--+--+
                            +-->|P1|A6|
                                +--+--+
                                    Disk3(P1=A1 XOR A2 XOR A3)

这些转换、计算过程,如果由 CPU 执行硬盘控制器的驱动程序代码完成,就是软RAID;如果由RAID卡上的主控芯片完成,就是硬RAID。

总结

RAID 最小磁盘数量 磁盘利用率 优点 缺点 适用场景
RAID 0 2 100% 成本低,提高磁盘读写 无冗余和修复能力,任何磁盘损坏将丢失所有数据 对读写性能要求较高,安全性要求不高的图形工作站
RAID 1 2 50% 或者 min(磁盘 1,磁盘 2) 冗余备份,数据安全性高 成本高,磁盘利用率低 数据随机写入,安全性高的数据库服务器
RAID 3 3 2/3 专用奇偶校验磁盘冗余备份,数据安全性高 成本略高,磁盘利用率低 视频编辑,数据库
RAID 5 3 2/3 分布奇偶校验信息冗余备份,数据安全性高 成本略高,磁盘利用率低 金融,数据库等
RAID10 4 50% 分布奇偶校验信息冗余备份,数据安全性中 成本略高,磁盘利用率低 日常等

最后推荐几个小工具,往往有些时候数据安全性和成本不能同时兼顾,所以当一旦想要使用 RAID,可以先考虑一下自己的需求,然后根据自己需要的容量,以及数据安全性综合考虑。

几个 RAID 容量计算小工具:

reference