我在 KVM(虚拟机管理器 1.3.2)中有 Ubuntu 16.04 主机和 3 个 Ubuntu 17.10 来宾。
我通过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/vdg
( Couldn't open /dev/vdg for write - not zeroing
) 和/dev/md124
( Unrecognised md component device - /dev/md124
)。
它失败了,因为以下命令:
将
device
参数作为磁盘,而不是数组。因此,例如,这是有效的并且适用于
sda
驱动器:或者
取决于您如何设置 RAID。
像往常一样,不要忘记更新您的
initramfs
: