独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),也有教材上写的是廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),根据资料显示,Independent这一称谓目前已经完全替代了Inexpensive。不过都不影响我们管它叫RAID就好了。

发展至今,RAID阵列的层级类型非常丰富,不过它们的目的都只有一个:尽可能权衡性能、安全和成本。由此,没有哪种RAID是最好的,只有最适合自己的应用场景的。此外,RAID技术还简化了多块磁盘的管理,开发和管理人员无需关注到具体磁盘,只用关注文件存储即可。

本文将根据我的应用经验和LACIE RAID技术白皮书上的标准分类介绍以下RAID类型:RAID 0、1、10、3、5、6.

**注意:**在实际组建环境中可能会出现与书面标准有出入的情况,可能与阵列卡、磁盘厂商、阵列软件等的实现方式不同有关。

下表是各级RAID的对比表格,详情参阅:中国存储网 (chinastor.com)

RAID级别及工作原理

RAID 0

严格意义上讲RAID 0 不是一种“RAID”,因为它并没有实现冗余。RAID 0只是将数据进行条带化处理后分别放入多块磁盘中,这样的存储方式使得RAID 0 可以并行地读写数据,所以RAID 0 的性能是极强的。

  • 特性:条带化
  • 磁盘需求:最少两块
  • 容量计算:n块磁盘的总和
  • 损失一盘后,损失数据的概率:损失一盘就寄了
  • 优点:文件读写性能极高、没有容量损失
  • 缺点:非常不可靠,一旦某一块磁盘损坏,将损失所有数据

两块磁盘组成的RAID 0阵列存储ABCD四份数据

简单来说,RAID 0就是直接将数据拆成多份分别存储在多个磁盘中。

RAID 1

相比起RAID 0,RAID 1就是极端的可靠。RAID 1将数据条带化后复制一份存储到另一个磁盘中,即镜像存储,另一块数据还有完整的数据镜像。

  • 特性:镜像

  • 磁盘需求:2的倍数

  • 容量计算:n*磁盘容量/2

  • 损失一盘后,损失数据的概率:1

  • 优点:非常可靠

  • 缺点:读写效率低、磁盘空间利用率低

两块磁盘组成的RAID 1阵列存储ABCD四份数据

组合RAID 1和RAID 0

RAID 10 或RAID 01又可以写作RAID 1+0或RAID 0+1,它们叫作组合RAID,组合RAID有很多种形式,不过RAID 1和RAID 0的组合较为常用,也是说明组合RAID非常好的案例。组合RAID的出现便是为了解决RAID 1和RAID 0较为极端地镜像或条带化存储的问题。

RAID 10和RAID 01的区别便是先镜像还是先拆分。

RAID 10

这是一种“镜像集条带”,意思是数据在两个镜像阵列间分条。磁盘阵列先按照RAID 1的方式被分为镜像的两两一组,在写入时则按照RAID 0的方式将数据条带化同时写入两组磁盘中。

四块磁盘组成的RAID 10阵列存储数据

  • 特性:镜像后条带化
  • 磁盘需求:4的倍数
  • 容量计算:n*磁盘容量/2
  • 损失一盘后,损失数据的概率:1/3
  • 优点:依靠RAID 0的形式提供了较好的读写速度
  • 缺点:仍然造成了可用容量损失一半

RAID 01

由条带集的镜像组成,读写性能和RAID 10一致。我们假设阵列中Disk 1挂掉后,这时我们已经损失了Disk1和2组成的条带全部数据,Disk 2和3任意挂一个就会损失全盘数据,因此安全性低于RAID 10.

四块磁盘组成的RAID 01阵列存储数据

  • 特性:条带化后镜像
  • 磁盘需求:4的倍数
  • 容量计算:n*磁盘容量/2
  • 损失一盘后,损失数据的概率:2/3
  • 优点:依靠RAID 0的形式提供了较好的读写速度
  • 缺点:仍然造成了可用容量损失一半

RAID 3

RAID 3 使用字节级别的条带化技术,并采用专用的奇偶校验磁盘。RAID 3 在要读取连续的长文件(如视频文件)的环境中可提供良好的数据安全性。但是由于专用奇偶校验磁盘会影响随机读取性能,所以对密集使用不连续文件的用户来说,RAID 3 并非理想之选。

四块磁盘组成的RAID 3阵列存储数据

  • 特性:奇偶校验以实现数据纠错
  • 磁盘需求:至少两块
  • 容量计算:(n-1)*磁盘容量
  • 损失一盘后,该盘数据可重建到另一磁盘上,若未及时重建时再挂一块将丢失全部数据
  • 优点:数据损失后可恢复
  • 缺点:计算校验影响文件读取性能

RAID 3 + Spare

RAID 3+Spare模式下,阵列中会有一个磁盘保持空置状态。如果阵列中有驱动器发生故障,故障磁盘中的数据就会自动重建到空磁盘(或称为“备用”磁盘)上。

四块磁盘组成的RAID 3+spare阵列存储数据

  • 特性:在RAID 3 的基础上将一块磁盘用作备用盘
  • 磁盘需求:至少三块
  • 容量计算: (n-2)*磁盘容量
  • 损失一盘后,该盘数据将被重建至Spare磁盘上
  • 优点:数据损失后可自动恢复
  • 缺点:计算校验影响文件读取性能

RAID 5

RAID 5 综合了 RAID 0 的条带化技术以及阵列数据冗余技术。RAID 5没有像RAID 3那样使用专用的奇偶校验磁盘,数据会在所有磁盘之间分条,并且每个数据块的奇偶校验块 (P) 写入到同一条带上。因此,RAID 5提供了较为均衡的安全策略和空间利用率。RAID 5比较适合用于归档以及要求持续访问数据和追求性能的场景。

四块磁盘组成的RAID 5阵列存储数据

  • 特性:将校验码放入存储磁盘中,以减小专用校验盘带来的空间消耗
  • 磁盘需求:至少三块
  • 容量计算:(n-1)*磁盘容量
  • 损失一盘后,该盘数据可重建到另一磁盘上,若未及时重建时再挂一块将丢失全部数据
  • 优点:提供了比RAID 3略高的容量
  • 缺点:性能比RAID 3 差些

RAID 5 + Spare

在RAID 5的基础上将一块磁盘用作备用磁盘,使得系统可以在发生故障后立刻在备用磁盘上重建数据。

四块磁盘组成的RAID 5+spare阵列存储数据

  • 特性:在RAID 5 的基础上将一块磁盘用作备用盘
  • 磁盘需求:至少四块
  • 容量计算: (n-2)*磁盘容量
  • 损失一盘后,该盘数据将被重建至Spare磁盘上
  • 优点:数据损失后可自动恢复
  • 缺点:计算校验影响文件读取性能

RAID 6

在RAID 6中,每个数据块都会有两个奇偶校验块,在这种情况下允许挂掉两块磁盘而不损失数据。并且由于两个校验码的存在,RAID 6可以更快地完成数据重建。

五块磁盘组成的RAID 6阵列存储数据

  • 特性:两个奇偶校验块
  • 磁盘需求:至少四块
  • 容量计算:(n-2)*磁盘容量
  • 损失一盘后,还能再挂一个,若未及时重建时再挂一块将丢失全部数据
  • 优点:可靠性强
  • 缺点:由奇偶校验带来的性能损失

参考阅读