如何擦除 md raid 元?

iku*_*dyk 2 kvm software-raid ubuntu md

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

我通过util创建的 iSCSI 门户将几个块设备从 2 个来宾导出到另一个来宾(我们称之为前端targetcli。导入它们后,我大量使用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)。

Lin*_*eak 6

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

mdadm --zero-superblock device
Run Code Online (Sandbox Code Playgroud)

device参数作为磁盘,而不是数组。

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

mdadm --zero-superblock /dev/sda
Run Code Online (Sandbox Code Playgroud)

或者

mdadm --zero-superblock /dev/sda1
Run Code Online (Sandbox Code Playgroud)

取决于您如何设置 RAID。

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

update-initramfs -u
Run Code Online (Sandbox Code Playgroud)

  • 不要忘记在将磁盘归零之前先停止阵列。`mdadm --stop /dev/md127` (2认同)