是否可以将 /dev/md126 重命名为 /dev/md0 并同时保留 /dev/md 上的别名?

是否可以将 /dev/md126 重命名为 /dev/md0 并同时保留 /dev/md 上的别名?

这是我的/etc/mdadm/mdadm.conf

ARRAY /dev/md/root   metadata=1.2 name=root   UUID=331728d9:c4d12r4f:f589d3ze:01ab3c17
ARRAY /dev/md/backup metadata=1.2 name=backup UUID=429845f1:d5e24f5g:8135dgte:120ff5c0

发现报告这种情况:

find /dev/md -ls
     1656      0 drwxr-xr-x   2 root     root           80 nov  8 05:30 /dev/md
     1784      0 lrwxrwxrwx   1 root     root            8 nov  8 05:30 /dev/md/ibmlinux:backup -> ../md127
     1657      0 lrwxrwxrwx   1 root     root            8 nov  8 05:30 /dev/md/ibmlinux:root -> ../md126

正如你所看到的,我们有 md126 和 md127,是否可以强制它命名 md0 和 md1?我尝试在 mdadm.conf 中创建重复的数组,但不起作用。系统是Debian SID。

我想要这样的结果:保留 /dev/md/name 并使用 md0 和 md1 而不是 md127 和 md126

find /dev/md -ls
     1656      0 drwxr-xr-x   2 root     root           80 nov  8 05:30 /dev/md
     1784      0 lrwxrwxrwx   1 root     root            8 nov  8 05:30 /dev/md/ibmlinux:backup -> ../md1
     1657      0 lrwxrwxrwx   1 root     root            8 nov  8 05:30 /dev/md/ibmlinux:root -> ../md0

现在我尝试这个 mdadm.conf

ARRAY /dev/md0 metadata=1.2 name=root   UUID=331728d9:c4d12r4f:f589d3ze:01ab3c17
ARRAY /dev/md1 metadata=1.2 name=backup UUID=429845f1:d5e24f5g:8135dgte:120ff5c0

更新 initramfs 并重新启动后...

find /dev/md -ls
     9250      0 drwxr-xr-x   2 root     root           80 nov  8 05:50 /dev/md
     9299      0 lrwxrwxrwx   1 root     root            8 nov  8 05:50 /dev/md/ibmlinux:root -> ../md126
     9251      0 lrwxrwxrwx   1 root     root            8 nov  8 05:50 /dev/md/ibmlinux:backup -> ../md127

一样。

答案1

无法同时指定别名和编号,mdadm.conf因此您必须依赖 mdadm 元数据。

默认情况下,主机名和编号(超级次要)都存储在元数据中。所以你可以在那里设置你喜欢的 md 号码。

更改数字可以通过手动组装一次来完成,例如更改为42:

# mdadm --stop /dev/md126
# mdadm --assemble /dev/md42 --update=name /dev/sdx3 /dev/sdy3
# mdadm --stop /dev/md42

此更改应反映在元数据中:

# mdadm --examine /dev/sdx3
Name : host:42

在自动组装中,只要主机名也匹配,就应该使用这个数字。

主机名可能是一个问题,因此您可以通过添加HOMEHOST <ignore>到 mdadm.conf 来忽略它。

您还可以使用HOMEHOST <none>,在这种情况下,前面的--assemble --update命令将为您提供Name : 42元数据中不存储任何主机名的信息。

数组规范本身保持不变ARRAY /dev/md/name UUID=...。在这里,仅 UUID 就足够了,如果您添加更多内容,例如metadata= name=,您必须确保这些值仍然匹配,否则整个 ARRAY 行将被忽略。

答案2

找到的解决方案:脏但有效。

在 /etc/initramfs-tools/scripts/init-premount 中创建脚本

vim /etc/initramfs-tools/scripts/init-premount/md

#!/bin/sh

# Stop lvm
lvm vgchange -an vg-backup
lvm vgchange -an vg-ppclinux
sleep 3

# Stop raid
mdadm --stop /dev/md126
mdadm --stop /dev/md127
sleep 3

# Assemble with new names 
mdadm -A /dev/md0 /dev/sda2 /dev/sdb2
mdadm -A /dev/md1 /dev/sdc1 /dev/sdd1
sleep 3

# Create the symlinks
mkdir /dev/md
ln -sv /dev/md1 /dev/md/ibmlinux:backup
ln -sv /dev/md0 /dev/md/ibmlinux:root

# Start lvm
lvm vgchange -ay vg-ppclinux
lvm vgchange -ay vg-backup

更新权限

chmod 755 /etc/initramfs-tools/scripts/init-premount/md

更新 initramfs 和 grub

update-initramfs -cv -k all
update-grub2

并在重新启动后..

find /dev/md -ls
    11344      0 drwxr-xr-x   2 root     root           80 nov  8 06:12 /dev/md
    11345      0 lrwxrwxrwx   1 root     root            8 nov  8 06:12 /dev/md/ibmlinux:root -> /dev/md0
     9440      0 lrwxrwxrwx   1 root     root            8 nov  8 06:12 /dev/md/ibmlinux:backup -> /dev/md1

我只在日志中收到此错误/警告消息

PV /dev/md0 9:0 is duplicate for PVID ........ on 9:126 /dev/md126 failed to create online file

但一切正常(pvs、lvcreate、mdadm..)

相关内容