我已经使用 mdadm 成功配置了一个 raid 1 阵列。两个驱动器都有一个 raid 分区和一个安装了 GRUB 的 uefi 分区。
当我执行“cat /proc/mdstat”时,我有一个带有 2x UU 的工作数组。
但是,当我执行以下操作时,我的数组消失了:
结果 = 数组消失了:
md0 : active raid1 sdb2[1]
3905908736 blocks super 1.2 [2/1] [_U]
bitmap: 11/30 pages [44KB], 65536KB chunk
我做了两次,我厌倦了这种行为。此时我必须重新创建数组并重新添加 sda。但是重建阵列需要很长时间,因为它是 4TB 驱动器。
Maby 我应该提到的重要一点是只有一个驱动器在降级模式下正确启动 (sda)。另一个 (sdb) 在紧急模式下启动。但我想出了如何解决这个问题。问题出在 /etc/fstab 文件中。
UUID=64C3-7807 /boot/efi vfat umask=0077 0 1
它指向 sda 的 UUID。更改fstab文件中的UUID时,我可以正常启动sdb。也许我可以将两个驱动器都放在 fstab 中?
那么这里发生了什么?或者有没有办法快速重新添加sda?
- 断开sda的sata和电源线
- 使用 sdb 启动降级,关闭
- 然后再次连接sda,断开sdb
- 启动降级与 sda,关闭
执行此操作时,两个驱动器将有所不同。这将由元数据中的不同时间戳标记。这是有意的和预期的行为。您不再有一致的阵列,因此一个驱动器将被标记为故障。
Linux 无法知道哪个驱动器是正确的,因此您必须手动将驱动器添加到阵列。可能是一个驱动器实际上发生了故障,但您设法从它启动,因为错误远离系统文件使用的区域。它可能有最新的签名,但有错误。
或者它可能是相反的。这不应该是自动化的 - 这可能会覆盖您想要保留的数据。
我不确定您期望它的行为方式,但这是 RAID 1 阵列在出现不一致时行为的明智方式:手动解决。
由于 md 是一个块层协议,它必须从一个驱动器到另一个驱动器写入所有内容,以保证内容确实相等。如果您想要更高级别(例如文件系统级别)的冗余,您可以查看 btrfs 或 zfs,它们都在这方面具有高级功能。
无论如何,这听起来像是一个xy 问题,所以我有点好奇您为什么甚至希望它起作用 - 因为我不认为 RAID 旨在解决您试图解决的任何问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句