您好,我想重建我的 raid 阵列,并且我在 redhat 文档中找到了一页介绍如何执行此操作,但它似乎没有意义。
这是文档的链接我感到困惑的部分是第 5 步:
“要恢复磁盘,请对之前的备用切片执行“软件故障”:mdadm --manage --set-faulty /dev/md0 /dev/sdc3”。系统现在将尝试在更换的磁盘上重建阵列。
这不仅在英语中没有任何意义,而且我不明白 mdadm 如何在我刚刚将其中一个磁盘设置为故障后立即自动重建阵列。这只是文档中的一个错误吗?请帮帮我,我很困惑。在我破坏任何东西之前,有人能告诉我这些说明是否正确吗?谢谢。
答案1
我同意你的观点,该文档至少是错误的。
免责声明:我没有 RHEL 系统。我有丰富的 Debian raid 经验,使用过不同的 Debian 版本,但绝对不会接触 RHEL 系统。请在备用系统 (VM) 上进行测试,然后再在生产机器上进行操作。
接下来会发生以下情况:
从 RAID 阵列中移除磁盘。
mdadm --管理 /dev/md0 -r /dev/sdc3
sdc3 分区将从 md0 阵列中驱逐。
- 从系统中移除磁盘。
整个 sdc 磁盘及其 sdc3 分区将不再存在于系统中,我猜“他们”希望我们暂时简单地“将发生故障的 sdc 磁盘放在桌子上”。
- 使用磁盘管理,更换被移除的磁盘并重新格式化替换的磁盘。
您连接一个新的sdc 磁盘,然后按照故障磁盘重新分区。此时,系统中将再次存在一个“sdc3 分区
将新磁盘添加回 RAID 阵列。
mdadm --manage /dev/md0 -a /dev/sdc3
sdc3 分区将添加到阵列中,并且将立即自动开始重新同步。这只是更换故障磁盘所需的操作。您只需等待重新同步完成,观察 /proc/mdstat,仅此而已。但文档还在继续。
要恢复磁盘,请对先前的备用片执行“软件故障”:
mdadm --manage --set-faulty /dev/md0 /dev/sdc3
这会将 sdc3 分区设置为故障,模拟硬件故障。您将返回到前步骤 1,当您的 sdc3 分区失败时。
系统现在将尝试在更换的磁盘上重建阵列。使用以下命令监视状态:
观察-n 1 猫/proc/mdstat
事实上,没有。系统将等待您的干预,您现在应该再次执行步骤 1-4。但是,此命令是监控重新同步进度的正确命令,更新时间为 1 秒。按 CTRL+C 退出手表过程。
当阵列重建完成后,移除软件故障的磁盘并将其重新添加到阵列中。
mdadm --管理 /dev/md0 -r /dev/sdc3
mdadm --manage /dev/md0 -a /dev/sdc3
实际上,这两个命令将使重建(重新同步)过程启动。它们正是步骤 1 和 4(现在不需要步骤 2 和 3,因为磁盘不是由于实际问题而发生故障,而是由于模拟错误而发生故障)。现在您必须等待重建过程完成,同时监视 /proc/mdstat。
检查阵列。
mdadm --detail /dev/md0
这将为您提供有关 md0 阵列的更多信息,但不会提供有关重新同步过程的更多信息,因为您已经可以从 /proc/mdstat 获得这些信息。完全没有必要。