如何擦除 md raid 元?

如何擦除 md raid 元?

我在 KVM(虚拟机管理器 1.3.2)中拥有 Ubuntu 16.04 主机和 3 个 Ubuntu 17.10 来宾。

我将几个块设备从 2 个来宾导出到另一个来宾(我们称之为前端)通过targetcliutil 创建的 iSCSI 门户。导入它们后,我大量使用multipath来查找相同的“物理”磁盘并md创建 RAID 10(例如,mdadm --create --quiet --metadata=1.2 /dev/md1 --level=1 --raid-devices=2 /dev/dm-10 /dev/dm-1)。然后我需要清除这些信息。

问题来了:它不擦拭。我执行通常的步骤(例如,清洁md1):

1)mdadm -S /dev/md1

2)mdadm --zero-superblock /dev/md1

3)mdadm --zero-superblock /dev/mapper/md1

一切看起来都很好,直到我删除导入的磁盘并在一段时间后重新导入它们:它们随机地出现在 RAID 中。有时RAID组名称与最初创建的名称相差甚远(例如md126和md127,而我只创建了md1,md2,...md12)。这些僵尸 RAID 可以用 掩埋mdadm -S,但下次导入块设备时它们会再次出现。

为什么--zero-superblock无法完成其工作?

UPD:正如 @roaima 提到的,命令 2 和 3 等确实返回错误:

Couldn't open /dev/md1 for write - not zeroing

Couldn't open /dev/mapper for write - not zeroing

Couldn't open /dev/mapper/ for write - not zeroing

这与没有这样的设备的答案几乎相同 - 任何垃圾作为参数都会返回相同的错误。

UPD2:我使用了# cat /proc/mdstat,它告诉我更多关于突袭的信息:

md124 : 无效 vdg[0](S)
      5238784块超级1.2

md127 : 无效 vdb[1](S)
      5238784块超级1.2

但是,我仍然无法擦拭/dev/vdgCouldn't open /dev/vdg for write - not zeroing)和/dev/md124Unrecognised md component device - /dev/md124)。

答案1

它失败了,因为以下命令:

mdadm --zero-superblock device

device参数视为磁盘,而不是阵列。

因此,例如,这是有效的并且适用于sda驱动器:

mdadm --zero-superblock /dev/sda

或者

mdadm --zero-superblock /dev/sda1

取决于您如何设置 RAID。

像往常一样,不要忘记更新您的initramfs

update-initramfs -u

相关内容