这是我的/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..)