/dev/md127 拒绝停止。没有打开的文件

/dev/md127 拒绝停止。没有打开的文件

所以我试图在我的 Ubuntu 12.10 机器上停止 /dev/md127 。它被设置为 RAID1,但我试图将所有内容(好吧,重命名)移动到 md0。我读到重命名是不可能的,所以我尝试删除驱动器并将它们放入一个新的数组中作为 md0。我已经能够使用 --fail 和 --remove 删除一个驱动器 (sdb),但 sdc 没有响应,md127 也不会响应 --stop --force。

我运行了 fusionr 和 lsof,但都没有使用 md127 显示任何内容。我在 md127 之上运行 LVM,但我已经卸载了 LV,并且完成了“{lv,vg}change -an vg_Name”。

我不知道下一步该尝试什么。对于那些想知道我为什么要重命名/移动的人来说,我对此类事情有点强迫症。

如果相关,这里是我使用过的确切命令,尽管已多次尝试停止/失败/删除命令:

mdadm --stop --force /dev/md127 # this failed with the error message "mdadm: Cannot get exclusive access to /dev/md127:Perhaps a running process, mounted filesystem or active volume group?"
fuser /dev/md127 # no output
lsof /dev/md127 # no output
mdadm --fail /dev/md127 /dev/sdb # succeeded
mdadm --remove /dev/md127 /dev/sdb # succeeded
mdadm --fail /dev/md127 /dev/sdc # this failed - "device or resource busy"
mdadm --remove /dev/md127 /dev/sdc # this failed - "device or resource busy"
lvchange -an vg_Name
vgchange -an vg_Name

答案1

如果您在 mdadm 之上使用 LVM,有时 LVM 在停用卷组时不会删除设备映射器设备。您可以手动删除它。

  1. 确保 的输出中没有任何内容sudo vgdisplay
  2. 在看/dev/mapper/。除了该文件之外control,还应该有一个以您的卷组命名的设备映射器设备,例如VolGroupArray-name.
  3. 运行sudo dmsetup remove VolGroupArray-name(替换VolGroupArray-name为设备映射器设备的名称)。
  4. 您现在应该能够运行sudo mdadm --stop /dev/md0(或者无论设备的名称mdadm是什么)。

答案2

如果您想要做的只是更改设备编号,请使用以下命令将数组与我们选择的设备编号添加到您的配置文件中:

    echo "ARRAY /dev/md0 level=raid1 num-devices=2 UUID=$(blkid -s UUID -o value /dev/md127) devices=/dev/sdb,/dev/sdc" >> /etc/mdadm.conf

将 raid 放入 /etc/mdadm.conf 后,只需重新启动,raid 就会使用您指定的设备号自动重新组装。这样做的另一个好处是确保您的 raid 在每次启动时都使用相同的设备名称构建。

答案3

您能粘贴以下命令的输出吗?

mdadm -D /dev/md127

mdadm -E /dev/sdc

cat /proc/mdstat

请注意,可以“重命名”突袭。在这种情况下重命名取决于您的团队正在使用的超级块版本。

要重命名超级块 0.90 raid,您应该使用以下命令: mdadm -A /dev/md0 -U super-minor -u <uuid of the array>

要重命名超级块 1.X raid,您应该使用以下命令: mdadm -A /dev/md0 -U name -N <new name> -u <uuid of the array>

由于我不明白,您能解释一下为什么要重命名它吗?节点名称 md127 由 initramfs 脚本组装,因为这些脚本从 md127 开始。据我所知,您可以更改首选次要编号,但无论次要编号如何,initramfs 脚本都会从组装节点 127 开始。

答案4

我认为上面提到了这一点,但以防万一:如果您定义了一个活动的 lvm 逻辑卷,该逻辑卷使用您尝试删除的 mdX,则 mdadm 将拒绝这样做,直到您删除使用该驱动器的逻辑卷,或者至少从lvm中释放md驱动器。一旦删除逻辑卷,mdadm 将很乐意停止 raid。

相关内容