各种 RAID 详解 - 知乎
各种 RAID 详解

各种 RAID 详解

温馨提示一下,因为文字的讲解,特别是这种概念性的知识点,没有实际的操作,很难理解,所以我专门为本文录制了视频讲解,喜欢看视频讲解的请直接移步文末视频链接。即使你喜欢看文字版本的,我也强烈推荐你看完文字版本以后再看看视频讲解,因为这都是理论知识点的实操,用到才能记忆深刻,这是我学习知识的态度。

1. 概述

今天和大家一起学习一下各种 RAID,作为后来者,学习先辈们积累下来的知识并把它发扬光大,是我辈一直需要努力实践的。我的分享完全是本着学习的态度,总结自己学到的知识写的,难免有疏漏错误和不足点,欢迎各位同仁指正批评。下面我们正式开始。

  • RAID 是什么?
    • RAID 是英文 Redundant Array of Independent Disk 的首字母缩写,中文意思是:独立磁盘冗余阵列。通俗的讲就是把多块硬盘组成一个独立的磁盘阵列进行管理。
    • RAID 白皮书上的解释:RAID(独立冗余磁盘阵列)是一项能提升外部存储解决方案性能的简单技术。它能让您根据自己的需要选择最佳的设备使
      用方式。简单地说,RAID 技术可以将一个硬盘上的任务分散或复制到多个(少则两个)磁盘上,借此来提高性能或建立数
      据冗余以防驱动器发生故障。您可以通过设定设备的 RAID 模式来决定设备以何种方式处理数据。


  • 使用 RAID 的好处是什么呢?
    • 对于普通用户而言,使用 RAID 技术管理硬盘其实是没有多大必要,但是对于企业用户,尤其是要使用高可用、稳定等解决方案保证硬盘数据稳定、安全、可靠时,RAID 就显得尤为重要。因为 RAID 技术可以为硬盘提供安全性和稳定性的保障,保证硬盘数据容错性或者读写性能的提升等。


  • RAID 的实现方式分类
    • RAID 可以按照硬盘数量和组织方式不同分为不同类型的 RAID 实现。
      • 常见的有: RAID 0、RAID 1、RAID 5、RAID 6、RAID 01、RAID 10。
      • 不常见的有:RAID 2、RAID 3、RAID 4、RAID 7、RAID 50、RAID 53。

2. 各种 RAID 详解

  • 下面我们一次介绍不同实现方式下的 RAID,一起探索一下各种 RAID 的优点和缺点,在什么场景下使用何种 RAID。正式开始之前要先穿插介绍一下 RAID 实现中有时需要使用到 Spare(备用硬盘),Spare 是在 RAID 实现中需要额外添加的硬盘,当组成 RAID 的硬盘都正常工作的时候,Spare 硬盘是处于空闲状态的,只有当组成 RAID 的硬盘中有损坏的时候,Spare 硬盘才会自动替换损坏的硬盘位置,加入到 RAID 阵列中。
  • 另外还需要了解一些 RAID 术语:
    • 条带化:指将数据分到多个驱动器上。条带 RAID 阵列通常用于将最大的容量合并到单个卷中。
    • 镜像:指将数据复制到多个磁盘上。镜像 RAID 阵列通常能在阵列中有磁盘(至少一个)发生故障时确保数据不丢失,具体取决于阵列的 RAID 级别。
    • 容错:指可让 RAID 阵列在磁盘发生故障时继续工作(即用户仍然可以使用阵列中存储的数据)。


2.1. RAID 0

  • 原理:将数据条带化,最少需要两块硬盘(每块硬盘的容量一样,实际生产环境中建议使用同品牌同型号同批次同容量的硬盘组成 RAID 0),即将所有组成 RAID 0 的硬盘的可用容量组合在一起,形成计算机上的一个逻辑卷。通俗的讲就是至少使用两块硬盘来存储数据,但是我要存储的数据不是全部存在某一块硬盘上,而是把我要存储的数据分成均等的多部分,然后平均分散存储在组成 RAID 0 的磁盘阵列上。

下图是用四块硬盘组成 RAID 0 的示意图,其中每块硬盘都被分成 ABCD 四个条带,然后我要存数据就先存把数据均分成四部分,如果 A1 能存下其中一份,那就直接将四部分分别存入 A1-A4,如果存不下就先存满 A1-A4,剩下的按同样的方式存 B1-B4,以此类推。


  • 可用容量:组成 RAID 0 所有硬盘容量的总和
  • 优点:
    • 提高读写速度,对硬盘的总容量没有损失。
    • 处理大文件很快。


  • 缺点:
    • 一旦阵列中某块硬盘损坏了,所有数据将不可恢复。


2.2. RAID 1

  • 原理:镜像存储,RAID 1 至少需要两块硬盘组成,两块硬盘互为备份,存储的内容完全相同。建议硬盘容量大小也要一样,如果不一样,那实际可用容量不超过较小的那块硬盘的容量。

下图是 RAID 1 的示意图,左右两边存储的数据是完全相同的。


  • 可用容量:不超过较小的那边硬盘的容量总和。
  • 优点:
    • 读取性能翻倍。
    • 提供数据冗余,如果其中一块数据丢失,可以通过另一块还原。


  • 缺点:
    • 磁盘的利用率低,成本高。


2.3. RAID 2(已淘汰)

  • 原理:RAID 2 本质上是 RAID 0,只是加入了汉明码来做数据的纠错。以此来优化 RAID 0。
    • 汉明码:(Hamming Code)是广泛用于内存和磁盘纠错的编码。汉明码不仅可以用来检测转移数据时发生的错误,还可以用来修正错误。(要注意的是,汉明码只能发现和修正一位错误,对于两位或者两位以上的错误无法正确和发现)


  • 优点:
    • 加入了数据纠错机制


  • 缺点:
    • 成本增高,需要额外的盘做汉明码纠错


  • RAID 2 的应用场景不多,目前已经被淘汰,所以没有必要研究它。就不画图演示了。

2.4. RAID 3

  • 原理:RAID 3 使用字节级别的条带化技术,并采用专用的奇偶校验磁盘。RAID 3 阵列能在一个磁盘出现故障的情况下确保数据不丢失。如果一个物理磁盘出现故障,该磁盘上的数据可以重建到更换磁盘上。如果数据尚未重建到更换驱动器上,而此时又有一个磁盘出现故障,那么阵列中的所有数据都将丢失。本质上和 RAID 0 相同,与 RAID 2 相似,作为 RAID 0 的优化版本。

下图是 RAID 3 的实现架构图,图中 Disk 4 就是那块专用的奇偶校验磁盘。


  • 优点:
    • 加入了数据纠错机制。


  • 缺点:
    • 做奇偶校验会消耗系统性能,容易导致系统出现性能瓶颈。


  • 变种(RAID 3 + Spare)


这种变种在主磁盘遇到故障的时候不需要立即处理,Spare 磁盘会无缝顶替上去。

2.5. RAID 4

  • 原理:和 RAID 3 一样,唯一的区别是在数据分割上 RAID 3 对数据的访问是按位进行的,RAID 4 是以数据块为单位。
    这里就不画图介绍了,图和 RAID 3 一样,这种 RAID 在生产环境中几乎不用。

2.6. RAID 5

  • 原理:RAID 5 综合了 RAID 0 的条带化技术以及阵列数据冗余技术(阵列最少包括三个磁盘)。RAID 3 和 RAID 5 之间的区别在于,RAID 3 配置提供的性能更高,但总容量略低。数据会在所有磁盘之间分条,并且每个数据块的奇偶校验块 (P) 写入到同一条带上。如果一个物理磁盘出现故障,该磁盘上的数据可以重建到更换磁盘上。单个磁盘出现故障时,数据不会丢失,但如果数据尚未重建到更换驱动器上,而此时又有一个磁盘出现故障,那么阵列中的所有数据都将丢失。

下图是实现的架构图,其中能够看到,Ap-Dp 奇偶校验是放到和数据同一条带上的。


  • 优点:
    • 读写性能高。
    • 有校验机制。
    • 空间利用率高。


  • 缺点:
    • 组成 RAID 5 的磁盘越多,安全性能越差,容易丢失数据。连续两块硬盘损坏,数据就找不回来了。


  • 变种(RAID 5 + Spare)


这种变种通过加入空闲的 Spare 盘,在系统将数据重建至备用驱动器时用户仍可以继续访问数据。它能提供良好的数据安全,但磁盘空间由于热备用磁盘的存在(在其他磁盘出现故障之后才使用)而受到限制。磁盘故障不需要立即处理,因为系统会使用热备用磁盘对自己进行重建,但故障磁盘还是应尽快更换。

2.7. RAID 6

  • 原理:与 RAID 5 相比,RAID 6 增加了第二个独立的奇偶校验信息块,双重奇偶校验,在 RAID 6 中,数据会在所有磁盘(最少四个)间进行分条,并且每个数据块的两个奇偶校验块(如下图中的 p 和 q)写入到同一条带上。如果一个物理磁盘出现故障,该磁盘上的数据可以重建到更换磁盘上。这种 RAID 模式最多允许两个磁盘出故障而不丢失数据,而且它能更快地重建故障磁盘上的数据。


  • 优点:
    • 读取性能好。
    • 有奇偶校验机制。


  • 缺点:
    • 成本高,写入性能差。


2.8. RAID 7

  • RAID 7 并非公开的 RAID 标准,而是 Storage Compute rCorporation 公司的专利硬体产品名称。我们今天不研究它。
    贴一张官方的架构图,感兴趣的可以自行查找资料学习。


2.9. RAID 01

  • 原理:RAID 0 + RAID 1,两边都是条带化的 RAID 0 存储数据,然后互为备份,组成镜像存储 RAID 1。
    下图是 RAID 01 的架构图,在 RAID 01 阵列中,最多允许两个磁盘出现故障而不会丢失数据,但故障磁盘必须属于同一 RAID 0 队列。在图中,也就是当磁盘 1 和磁盘 2 出现故障时,数据会保存到磁盘 3 和磁盘 4。


  • 优点:
    • 有数据备份,出现单点故障时可以恢复数据。


  • 缺点:
    • 成本高。


2.10. RAID 10

  • 原理:RAID 1 + RAID 0,它合并了其他级别(尤其是 RAID 1 和 RAID 0)特点的另一种 RAID 级别。这是一种“镜像集条带”,意思是数据在两个镜像阵列间分条。“条带化”在阵列之间发生,而“镜像”是在相同的阵列中出现,两种技术的组合加快了重建的速度。RAID 10 阵列包含的磁盘数应为四的倍数。
    下图是 RAID 10 的架构图,在 RAID 10 阵列中,每个镜像对中,可以有一个磁盘出现故障而不丢失数据。不过,故障磁盘所在阵列的工作磁盘会成为整个阵列中的弱点。如果镜像对中的另一个磁盘也发生故障,则会丢失整个阵列。


3. 总结

说了这么多 RAID 的实现方式,可能大家也和我一样,回想一下,好像又忘记了,不过没关系,我已经帮大家整理了这篇笔记,忘记的时候打开看看,或者要用的时候打开看看就行了。下面是我使用 VMware workstation 安装 Ubuntu 操作系统时使用 RAID 管理磁盘的实操记录,感兴趣的朋友可以看看,如果有错误的地方欢迎留言指正,谢谢!

本文完~

编辑于 2020-06-28 20:43