如何使用“Mdadm”工具在 Linux 中管理软件 RAID - 第 9 部分
无论您以前使用 RAID 阵列的经验如何,也无论您是否遵循了本 RAID 系列中的所有教程,一旦您熟悉了 mdadm --manage,在 Linux 中管理软件 RAID 就不再是一项非常复杂的任务。代码>命令。
在本教程中,我们将回顾该工具提供的功能,以便您在需要时可以方便地使用它。
RAID测试场景
与本系列的最后一篇文章一样,为简单起见,我们将使用由两个 8 GB 磁盘 (/dev/sdb) 组成的 RAID 1(镜像)阵列和/dev/sdc)和初始备用设备(/dev/sdd)来说明,但此处列出的命令和概念适用于其他类型的设置也是如此。也就是说,请随意将此页面添加到浏览器的书签中,然后让我们开始吧。
了解 mdadm 选项和用法
幸运的是,mdadm 提供了一个内置 --help
标志,为每个主要选项提供解释和文档。
因此,让我们开始输入:
mdadm --manage --help
查看 mdadm --manage 允许我们执行哪些任务以及如何执行:
正如我们在上图中看到的,管理 RAID 阵列需要同时执行以下任务:
- (重新)将设备添加到阵列中。
- 将设备标记为有故障。
- 从阵列中删除故障设备。
- 用备用设备更换有故障的设备。
- 启动一个部分构建的数组。
- 停止一个数组。
- 将数组标记为 ro(只读)或 rw(读写)。
使用 mdadm 工具管理 RAID 设备
请注意,如果省略 --manage
选项,mdadm 无论如何都会采用管理模式。牢记这一事实,以避免日后遇到麻烦。
上图中突出显示的文本显示了管理 RAID 的基本语法:
mdadm --manage RAID options devices
让我们用几个例子来说明。
示例1:添加设备到RAID阵列
在更换有故障的设备时,或者当您有一个备件希望在出现故障时可以随时使用时,您通常会添加一台新设备:
mdadm --manage /dev/md0 --add /dev/sdd1
示例 2:将 RAID 设备标记为故障并将其从阵列中删除
这是从逻辑上从阵列中删除设备,然后以物理方式将其从机器中拉出之前的强制性步骤 - 按此顺序(如果您错过了其中一个步骤,您最终可能会对设备造成实际损坏):
mdadm --manage /dev/md0 --fail /dev/sdb1
请注意上一示例中添加的备用设备如何用于自动替换故障磁盘。不仅如此,raid 数据的恢复和重建也立即开始:
一旦设备被手动指示为故障,就可以将其安全地从阵列中删除:
mdadm --manage /dev/md0 --remove /dev/sdb1
示例 3:重新添加先前已删除的阵列中的设备
到目前为止,我们已经有一个工作的 RAID 1 阵列,它由 2 个活动设备组成:/dev/sdc1 和 /dev/sdd1。如果我们现在尝试将 /dev/sdb1 重新添加到 /dev/md0:
mdadm --manage /dev/md0 --re-add /dev/sdb1
我们会遇到一个错误:
mdadm: --re-add for /dev/sdb1 to /dev/md0 is not possible
因为阵列已经由最大可能数量的驱动器组成。因此,我们有 2 个选择:a) 添加 /dev/sdb1 作为备用,如示例 #1 所示,或者 b) 从阵列中删除 /dev/sdd1 并然后重新添加/dev/sdb1。
我们选择选项b),并首先停止阵列以便稍后重新组装:
mdadm --stop /dev/md0
mdadm --assemble /dev/md0 /dev/sdb1 /dev/sdc1
如果上述命令未成功将 /dev/sdb1 添加回阵列,请使用示例 #1 中的命令来执行此操作。
尽管 mdadm 最初会将新添加的设备检测为备用设备,但它会开始重建数据,完成后,它应该会识别该设备是 RAID 的活动部分:
示例 4:将 Raid 设备替换为特定磁盘
将阵列中的磁盘更换为备用磁盘非常简单:
mdadm --manage /dev/md0 --replace /dev/sdb1 --with /dev/sdd1
这会导致 --with
开关后面的设备被添加到 RAID,而通过 --replace
指示的磁盘被标记为有故障:
示例 5:将 Raid 数组标记为 ro 或 rw
创建阵列后,您必须在其之上创建一个文件系统并将其安装到目录中才能使用它。当时您可能不知道的是,您可以将 RAID 标记为 ro,从而只允许对其执行读取操作,或 rw,以便写入也到设备。
要将设备标记为ro,需要先卸载它:
umount /mnt/raid1
mdadm --manage /dev/md0 --readonly
mount /mnt/raid1
touch /mnt/raid1/test1
要将阵列配置为允许写入操作,请使用 --readwrite
选项。请注意,在设置 rw 标志之前,您需要卸载设备并停止它:
umount /mnt/raid1
mdadm --manage /dev/md0 --stop
mdadm --assemble /dev/md0 /dev/sdc1 /dev/sdd1
mdadm --manage /dev/md0 --readwrite
touch /mnt/raid1/test2
概括
在本系列中,我们解释了如何设置企业环境中使用的各种软件 RAID 阵列。如果您阅读了这些文章以及这些文章中提供的示例,您就可以充分利用 Linux 中软件 RAID 的强大功能。
如果您有任何疑问或建议,请随时使用下面的表格与我们联系。