什么是 RAID(独立磁盘冗余阵列)?

2025年03月17日 | 阅读 9 分钟

RAID 或独立磁盘冗余阵列是一种数据存储虚拟化技术,它将多个物理磁盘驱动器组件组合成一个或多个逻辑单元,以实现数据冗余、性能改进或两者兼而有之。

它是一种将相同数据存储在多个硬盘或固态硬盘上不同位置的方式,以在驱动器故障时保护数据。RAID 系统由两个或更多并行工作的驱动器组成。这些可以是硬盘,但现在有使用 SSD 技术(固态硬盘)的趋势。

RAID 将几个独立且相对较小的磁盘组合成一个大型存储单元。阵列中包含的磁盘称为阵列成员。磁盘可以以不同的方式组合成阵列,这些方式称为 RAID 级别。每个 RAID 级别都有其自身的特性:

  • 容错能力是抵御一个或多个磁盘故障的能力。
  • 性能显示整个阵列的读写速度与单个磁盘相比的变化。
  • 阵列容量由写入阵列的用户数据量决定。阵列容量取决于 RAID 级别,并不总是与 RAID 成员磁盘大小的总和匹配。要计算特定 RAID 类型和一组成员磁盘的容量,可以使用免费的在线 RAID 计算器。

RAID 系统可以使用多种接口,包括 SATA、SCSI、IDEFC(光纤通道)。有些系统内部使用 SATA 磁盘,但主机系统使用 FireWire 或 SCSI 接口。

有时存储系统中的磁盘被定义为 JBOD,代表“Just a Bunch of Disks”(一堆磁盘)。这意味着这些磁盘不使用特定的 RAID 级别,而是作为独立磁盘运行。这通常用于包含交换文件或假脱机数据的驱动器。

RAID 的工作原理

RAID 通过将数据放置在多个磁盘上并允许输入/输出操作以平衡的方式重叠来工作,从而提高性能。由于各种磁盘增加了平均故障间隔时间 (MTBF),冗余存储数据也增加了容错能力。

RAID 阵列在操作系统中显示为单个逻辑驱动器。RAID 采用磁盘镜像或磁盘条带化技术。

  • 磁盘镜像将相同数据复制到多个驱动器上。
  • 磁盘条带化分区有助于将数据分散到多个磁盘驱动器上。每个驱动器的存储空间被划分为从 512 字节到几兆字节的单元。所有磁盘的条带交错并按顺序寻址。
  • 磁盘镜像和磁盘条带化也可以在 RAID 阵列中组合使用。

在存储大量记录的单用户系统中,条带通常设置得很小(512 字节),以便单个记录跨越所有磁盘,并且可以通过同时读取所有磁盘来快速访问。

在多用户系统中,为了获得更好的性能,需要足够宽的条带以容纳典型或最大大小的记录,从而实现跨驱动器的重叠磁盘 I/O。

RAID 级别

许多不同的数据分发方式已标准化为各种 RAID 级别。每个 RAID 级别都在数据保护、系统性能和存储空间之间进行权衡。级别数量分为三类:标准、嵌套和非标准 RAID 级别。

标准 RAID 级别

以下是最流行和标准的 RAID 级别。

1. RAID 0(条带化磁盘)

RAID 0 将任意数量的磁盘合并到一个大卷中。由于您同时从多个磁盘进行读写,因此它会提高速度。但如果任何一个磁盘发生故障,所有磁盘上的所有数据都将丢失。单个文件可以利用阵列中所有驱动器的速度和容量。然而,RAID 0 的缺点是它不是冗余的。任何单个磁盘的丢失都将导致完全数据丢失。这种 RAID 类型比单个磁盘的可靠性低得多。

What is RAID

在服务器环境中很少有需要使用 RAID 0 的情况。您可以将其用于缓存或其他对速度至关重要且对可靠性或数据丢失完全不重要的目的。

2. RAID 1(镜像磁盘)

它将数据在阵列中的两个磁盘之间复制,提供完全冗余。两个磁盘同时且始终存储完全相同的数据。只要一个磁盘幸存,数据就不会丢失。阵列的总容量等于阵列中最小磁盘的容量。在任何给定时刻,阵列中两个磁盘的内容都是相同的。

RAID 1 能够进行更复杂的配置。RAID 1 的主要目的是为了冗余。如果您完全丢失了一个驱动器,您仍然可以依靠另一个驱动器保持运行。

What is RAID

如果任何一个驱动器发生故障,您可以更换损坏的驱动器,几乎没有停机时间。RAID 1 还提供了增加读取性能的额外好处,因为数据可以从阵列中的任何驱动器读取。缺点是您将有稍高的写入延迟。由于数据需要写入阵列中的两个驱动器,因此您将只有单个驱动器的可用容量,同时需要两个驱动器。

3. RAID 5(带单个奇偶校验的条带化磁盘)

RAID 5 至少需要使用三个驱动器。它将这些磁盘组合起来以保护数据免受任何一个磁盘丢失的影响;阵列的存储容量会减少一个磁盘。它将数据条带化到多个驱动器以提高性能。但是,它还通过在磁盘之间分配奇偶校验信息来增加冗余方面。

What is RAID

4. RAID 6(带双奇偶校验的条带化磁盘)

RAID 6 类似于 RAID 5,但奇偶校验数据写入两个驱动器。使用额外的奇偶校验使阵列即使在两个磁盘同时发生故障时也能继续运行。然而,这种额外的保护是有代价的。RAID 6 的写入性能低于 RAID 5。

What is RAID

两个驱动器同时损坏的可能性很小。然而,如果 RAID 5 系统中的一个驱动器发生故障并被新驱动器替换,则重建交换的驱动器需要大量时间。如果在此期间另一个驱动器发生故障,您仍然会丢失所有数据。使用 RAID 6,RAID 阵列甚至可以在第二次故障中幸存下来。

嵌套 RAID 级别

有些 RAID 级别被称为嵌套 RAID,因为它们基于 RAID 级别的组合,例如:

1. RAID 10 (1+0)

此级别将 RAID 1 和 RAID 0 组合在一个系统中,提供比 RAID 1 更高的性能,但成本也更高。

这是一种嵌套或混合 RAID 配置。它通过将所有数据镜像到辅助驱动器来提供安全性,同时使用跨每组驱动器的条带化来加快数据传输。

What is RAID

2. RAID 01 (0+1)

RAID 0+1 类似于 RAID 1+0,只是数据组织方法略有不同。RAID 0+1 不是创建镜像然后对镜像进行条带化,而是创建条带集,然后镜像条带集。

3. RAID 03 (0+3,也称为 RAID 53 或 RAID 5+3)

此级别使用类似于 RAID 0 的条带化,用于 RAID 3 的虚拟磁盘块。这提供比 RAID 3 更高的性能,但成本也更高。

4. RAID 50 (5+0)

此配置将 RAID 5 的分布式奇偶校验与 RAID 0 的条带化相结合,以在不降低数据保护的情况下提高 RAID 5 的性能。

非标准 RAID 级别

非标准 RAID 级别与标准 RAID 级别不同,它们通常由公司或组织开发,主要用于专有用途,例如:

1. RAID 7

一种基于 RAID 3 和 RAID 4 的非标准 RAID 级别,增加了缓存。它包括一个实时嵌入式操作系统作为控制器,通过高速总线进行缓存,以及其他独立计算机特性。

2. 自适应 RAID

此级别使 RAID 控制器能够决定如何将奇偶校验存储在磁盘上。它将根据哪种 RAID 集类型在写入磁盘的数据类型中表现更好来选择 RAID 3 或 RAID 5。

3. Linux MD RAID 10

Linux 内核提供此级别。它支持创建嵌套和非标准 RAID 阵列。Linux 软件 RAID 还支持标准 RAID 0、RAID 1、RAID 4、RAID 5 和 RAID 6 配置。

RAID 的实现

数据在多个驱动器上的分发可以通过计算机硬件或软件来管理。

1. 基于硬件

基于硬件的 RAID 需要服务器中安装专用控制器。硬件 RAID 控制器可以在操作系统启动前通过卡 BIOS 或 Option ROM 进行配置。操作系统启动后,可以从每个控制器制造商处获取专有的配置实用程序。

硬件 RAID 是使用单独的硬件创建的。有两种选择:

  • 一个廉价的RAID 芯片,可能内置于主板中。
  • 更昂贵的选项是复杂的独立 RAID 控制器。这些控制器可以配备自己的 CPU、电池备份的缓存内存,并且通常支持热插拔。

基于硬件的 RAID 卡管理所有 RAID 阵列,为系统提供逻辑磁盘,而系统本身没有开销。此外,硬件 RAID 可以同时向系统提供许多不同类型的 RAID 配置。这包括为启动和应用程序驱动器提供 RAID 1 阵列,以及为大型存储阵列提供 RAID-5 阵列。

其他一些操作系统已实现了自己的通用框架,用于与任何 RAID 控制器接口,并提供用于监控 RAID 卷状态的工具。硬件 RAID 比软件 RAID 具有一些优势,例如:

  • 它不使用主机的 CPU。
  • 它允许用户创建启动分区。
  • 它更好地处理错误,因为它直接与设备通信。
  • 它支持热插拔。

2. 软件 RAID

软件 RAID 是 Steadfast 所有专用服务器中的一个包含选项。这意味着软件 RAID 1 没有成本,如果您在系统上使用本地存储,强烈建议使用。强烈建议 RAID 阵列中的驱动器类型和大小相同。软件 RAID 是最便宜的 RAID 解决方案之一

基于软件的 RAID 将控制系统的一些计算能力来管理 RAID 配置。如果您希望最大限度地提高系统性能,例如使用 RAID 5 或 6 配置,最好在使用标准 HDD 时使用基于硬件的 RAID 卡。

许多现代操作系统都提供软件 RAID 实现。软件 RAID 可以实现为:

  • 一个抽象多个设备的层,从而提供一个单一的虚拟机。
  • 一个位于任何文件系统之上并为用户数据提供奇偶校验保护的层。

如果启动驱动器发生故障,系统必须足够复杂,才能从剩余的驱动器启动。

软件 RAID 在启动系统方面存在某些限制。只有 RAID 1 可以包含启动分区,而软件 RAID 5 和 RAID 0 无法启动系统。

在大多数情况下,软件 RAID 不实现热插拔,因此不能用于需要持续可用性的地方。

RAID 的优点

RAID 的优点包括:

  • 由于使用大量低价磁盘,成本效益得到提高。
  • 使用多个硬盘使 RAID 能够提高单个硬盘的性能。
  • 根据配置,计算机速度和崩溃后的可靠性得到提高。
  • RAID 5 增加了可用性和弹性。通过镜像,RAID 阵列可以有两个包含相同数据的驱动器。这确保了如果一个驱动器发生故障,另一个驱动器将继续工作。

RAID 的缺点

RAID 具有以下缺点:

  • 嵌套 RAID 级别比传统 RAID 级别实施成本更高,因为它们需要更多磁盘。
  • 对于嵌套 RAID,存储设备的每千兆字节成本更高,因为许多驱动器用于冗余。
  • 当一个驱动器发生故障时,阵列中另一个驱动器也很快发生故障的可能性会增加,这很可能导致数据丢失。这是因为 RAID 阵列中的所有驱动器都是同时安装的。因此,所有驱动器都承受相同程度的磨损。
  • 某些 RAID 级别,例如 RAID 1 和 5,只能承受单个驱动器故障。
  • RAID 阵列处于脆弱状态,直到替换故障驱动器并用数据填充新磁盘。
  • 当实施 RAID 时,重建故障驱动器需要更长时间,因为驱动器的容量更大。

然而,嵌套 RAID 级别通过提供更高程度的冗余来解决这些问题,从而显著降低因同时磁盘故障而导致阵列级别故障的可能性。


下一个主题血型