尝试组装在另一台机器上创建的 RAID 阵列时,驱动器报告失败

尝试组装在另一台机器上创建的 RAID 阵列时,驱动器报告失败

我正在编写一个脚本来自动化创建 RAID 阵列的过程,目前正在尝试弄清楚如何让多台机器识别该阵列,以便在收集后可以传输数据。

最终目标是在 RAID 5 阵列中使用一组 5 个 SATA 驱动器,但我目前正在使用 3 个 USB 驱动器进行概念验证。我认为在尝试在另一台机器上组装 RAID 阵列之前,在原始机器上停止 RAID 阵列时我遗漏了一些东西。我将阵列的条目从原始机器/etc/fstab复制/etc/mdadm.conf到另一台机器(我不确定这是否有必要......我假设没有这个也可以做到,只需要一个更长的--assemble命令)。我不得不更改/dev位置,因为/dev/md0第二个系统上已经存在,但除此之外没有做任何其他更改。但是,在第二台机器上组装它时,3 个驱动器中只有两个报告为活动,第三个驱动器被忽略,因为它报告其中一个其他驱动器出现故障。使用时--examine,阵列状态信息如下:

/dev/sdd - Array State: AA.
/dev/sde - Array State: AA.
/dev/sdf - Array State: ..A

驱动/dev/sdf器是被忽略的驱动器。因此看起来前两个驱动器报告sdf丢失,但sdf认为其他两个驱动器丢失。

要在第一个系统上停止阵列,我只需卸载 RAID 位置,然后--failed 和--removed 驱动器并--stopped RAID。我是不是忘了做其他事情?还是这种混乱是由我手动复制 RAID 配置信息造成的?还是其他原因?

答案1

不要让--fail驱动器出故障,也不要让--remove它们出故障。通常,您手动将驱动器从阵列中移除的唯一情况是驱动器实际上已损坏,或者您需要回收驱动器用于其他用途。

您应该能够按照您的程序进行操作,但要跳过故障和移除驱动器。

当您将一个驱动器从阵列中取出时,其他阵列成员会说“该驱动器不再是该阵列的一部分”。您无法组装它。组装阵列后,您必须重新添加它。这就是为什么您会在两个驱动器上看到“AA。”的原因。看起来元数据也被刷新到了您失败的驱动器中,因为它认为它也不在阵列中。当您尝试将--fail第二个驱动器取出时,它会创建一个无法运行的阵列,因此它不会写出元数据。

因此,您应该在第一个系统上:

  1. 卸载您在第一台机器上的阵列上创建的文件系统。
  2. mdadm --stop第一台机器上的阵列。
  3. 因为它们是 USB 驱动器,所以您应该使用eject它们。

然后将它们移至第二台机器并执行mdadm --assemble /dev/mdX /dev/sdX /dev/sdY /dev/sdZ

相关内容