SLE Micro 上的软件 RAID
- 解释
有关软件 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”中所述更改默认 RAID 名称。
按照第 3.3 节 “监控软件 RAID”中所述监控 RAID。
按照第 3.2 节 “在 AArch64 上的 RAID 5 中配置条带大小”中所述配置 AArch64 体系结构上的条带大小。
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 检查处于启用状态。如两次检查间隔的时间不够长,您可能会收到警告。因此,您可以使用 delay
选项设置更大的值来增加时间间隔。
4 法律声明 #
版权所有 © 2006–2024 SUSE LLC 和贡献者。保留所有权利。
根据 GNU 自由文档许可证 (GNU Free Documentation License) 版本 1.2 或(根据您的选择)版本 1.3 中的条款,在此授予您复制、分发和/或修改本文档的权限;本版权声明和许可证附带不可变部分。许可版本 1.2 的副本包含在题为“GNU Free Documentation License”的部分。
有关 SUSE 商标,请参见 https://www.suse.com/company/legal/。所有其他第三方商标分别为相应所有者的财产。商标符号(®、™ 等)代表 SUSE 及其关联公司的商标。星号 (*) 代表第三方商标。
本指南力求涵盖所有细节,但这不能确保本指南准确无误。SUSE LLC 及其关联公司、作者和译者对于可能出现的错误或由此造成的后果皆不承担责任。