跳到内容跳到页面导航:上一页 [access key p]/下一页 [access key n]
documentation.suse.com / SLE Micro 上的软件 RAID

SLE Micro 上的软件 RAID

出版日期:2024-12-12
解释

有关软件 RAID 的基本信息。

原因

您需要有关 RAID 级别的信息,或者想要管理或监控 RAID。

工作量

读完本文需要 15 分钟。

目标

能够使用 mdadm 管理软件 RAID。

要求
  • 将构成所需 RAID 的相应数量的磁盘/分区。

1 SLE Micro 上的软件 RAID

RAID(独立磁盘冗余阵列)的用途是将多个硬盘分区合并成一个大的虚拟硬盘,以便优化性能和/或数据安全性。大多数 RAID 控制器使用 SCSI 协议,因为与 IDE 协议相比,它可使用更高效的方式处理更大量的硬盘,并且更适合命令的并行处理。还有一些支持 IDE 或 SATA 硬盘的 RAID 控制器。软件 RAID 具有 RAID 系统的优势,同时没有硬件 RAID 控制器的额外成本。但是这需要一些 CPU 时间以及内存,所以不适用于真正高性能的计算机。

2 RAID 级别

RAID 暗示将多块硬盘合成一个 RAID 系统的多种策略,这些策略的目标、优点及特点各不相同。这些变化形式通常称作 RAID 级别。

RAID 级别可划分为以下几个类别:

标准级别

这些级别及其关联的数据格式由存储网络行业协会 (SNIA) 按照通用 RAID 磁盘驱动器格式 (DDF) 标准予以标准化。标准 RAID 级别包括 RAID 0、RAID 1、RAID 2、RAID 3、RAID 4、RAID 5 和 RAID 6。有关细节,请参见第 2.1 节 “标准 RAID 级别”

嵌套级别

将现有阵列合并成一个新阵列。例如,合并成 RAID 0+1 或 RAID 1+0。

非标准级别

通常,这些级别是专为满足特定需求而设计的专有 RAID 配置,例如 Linux MD RAID 10。

2.1 标准 RAID 级别

最初,RAID 只有五个标准级别,但后来演变出了其他级别,如以下各节所述。

2.1.1 RAID 0

RAID 0 通过将每个文件的块分散到多个磁盘,提高了数据操作的性能。这种数据分布称为条带化。总容量是 RAID 中磁盘容量的总和。RAID 0 的优势是,对任何文件的读写操作的吞吐量都会按照驱动器数量成倍增加,因为读写操作是同时进行的。

RAID 0 的劣势是它不提供任何数据备份,因此,如果一个磁盘出现故障,整个 RAID 就会遭到破坏,因而数据也会丢失。

2.1.2 RAID 1

RAID 1 为您的数据提供足够的安全性,因为数据会 1:1 复制到另一个硬盘。这称为硬盘镜像。此级别不提供条带化,因此不提供更高的读写吞吐量。但是,只要至少一个驱动器正常运行,阵列就能继续正常运行。

RAID 1 至少需要两个设备。

2.1.3 RAID 2

在 RAID 2 中,条带化是在位级别执行的。此 RAID 级别目前未在实践中使用。

2.1.4 RAID 3

在 RAID 3 中,条带化是通过专用奇偶校验驱动器在字节级别执行的。RAID 3 在实践中并不常用。

2.1.5 RAID 4

RAID 4 通过专用奇偶校验驱动器提供块级条带化。如果一块数据磁盘失败,将使用奇偶校验数据创建替换磁盘。不过,这块奇偶校验磁盘可能造成写访问的瓶颈。此级别至少需要三个设备。

RAID 4 在实践中并不常用。

2.1.6 RAID 5

RAID 5 是级别 0 和级别 1 在性能和冗余方面经优化后的折衷方案。硬盘空间等于使用的磁盘数减 1。与 RAID 0 一样,数据(包括奇偶校验数据)分布在多个硬盘上。奇偶校验块是出于安全原因而设计的。这些块通过 XOR 互相链接,并在系统出现故障时,通过启用相应的校验块重构建内容。

对于 RAID 5,在同一时间只能有一个硬盘出现故障。如果一块硬盘出现故障,则必须在情况允许时将其更换,以防止丢失数据。

RAID 5 至少需要三个磁盘。

2.1.7 RAID 6

RAID 6 包含块级条带化和双重分布式奇偶校验。RAID 6 可承受多个并行驱动器故障,从而提供非常高的数据容错性能。即使两个硬盘出现故障,系统仍将继续运行,数据不会丢失。

RAID 6 的性能稍微低一些,但在正常模式和单磁盘故障模式下可以与 RAID 5 媲美。它在双磁盘故障模式下非常慢。RAID 6 配置需要占用相当多的 CPU 时间和内存来满足写入操作的需求。

RAID 6 至少需要四个磁盘。一般情况下,它需要 N+2 个磁盘,其中 N 是存储数据所需的磁盘数,2 是双重奇偶校验所需的磁盘数。

2.2 嵌套 RAID

2.2.1 RAID 0+1

RAID 0+1(也称作 RAID 01)会镜像条带化磁盘,因此可以同时复制和共享数据。最少磁盘数量为四个。

2.2.2 RAID 1+0

RAID 1+0(也称作 RAID 10)是条带化和镜像的组合。数据分布到多个磁盘,其中的每个磁盘镜像到另一个磁盘。

3 管理软件 RAID

设置 RAID 后,可以执行其他管理任务。例如:

3.1 命名软件 RAID

3.1.1 默认名称

软件 RAID 设备默认带有 mdN 模式的名称,其中 N 是数字。例如,可以采用 /dev/md127 形式访问此类设备,并且它们在 /proc/mdstat/proc/partitions 中会列为 md127

3.1.2 提供非默认名称

使用默认名称可能会带来不便,可以通过两种方式解决此问题:

提供指向设备的具名链接

当您使用 YaST 或在命令行上使用 mdadm --create '/dev/md/ NAME' 创建 RAID 设备时,可以选择为 RAID 设备指定一个名称。设备名称仍然是 mdN,但系统会创建链接 /dev/md/NAME

> ls -og /dev/md
total 0
lrwxrwxrwx 1 8 Dec  9 15:11 myRAID -> ../md127

设备在 /proc 下仍列为 md127

提供具名设备

如果指向设备的具名链接不足以满足您的设置要求,请运行以下命令将 CREATE names=yes 一行添加至 /etc/mdadm.conf

> echo "CREATE names=yes" | sudo tee -a  /etc/mdadm.conf

此操作会让系统将 myRAID 之类的名称用做真实的设备名称。不仅可以采用 /dev/myRAID 形式访问设备,而且设备还会在 /proc 下列为 myRAID。请注意,只有在更改配置文件之后,此项才适用于 RAID。已启用的 RAID 将继续使用 mdN 名称,直到这些 RAID 停止并重新组装为止。

警告
警告:不兼容的工具

不是所有工具都可以支持具名 RAID 设备。如果工具认为一个 RAID 设备是命名为 mdN,它将无法识别该设备。

3.2 在 AArch64 上的 RAID 5 中配置条带大小

默认情况下,条带大小设置为 4 kB。如果您需要更改默认条带大小(例如,使该大小与 AArch64 上的典型页面大小 64 kB 相匹配),可以使用 CLI 手动配置条带大小:

> sudo echo 16384  > /sys/block/md1/md/stripe_size

以上命令将条带大小设置为 16 kB。您可以设置其他值(例如 4096 或 8192),但该值必须是 2 的乘方。

3.3 监控软件 RAID

您可以在 monitor 模式下作为守护程序运行 mdadm 来监控软件 RAID。在 monitor 模式下,mdadm 会定期检查阵列中的磁盘故障。如果发生故障,mdadm 会向管理员发送一封电子邮件。要定义检查的时间间隔,请运行以下命令:

mdadm --monitor --mail=root@localhost --delay=1800 /dev/md2

上面的命令会每隔 1800 秒开启一次 /dev/md2 阵列监控。如果发生故障,会向 root@localhost 发送一封电子邮件。

注意
注意:默认会启用 RAID 检查

默认情况下,RAID 检查处于启用状态。如两次检查间隔的时间不够长,您可能会收到警告。因此,您可以使用 delay 选项设置更大的值来增加时间间隔。