/dev/mdのエイリアスを維持しながら、/dev/md126の名前を/dev/md0に変更できますか?

/dev/mdのエイリアスを維持しながら、/dev/md126の名前を/dev/md0に変更できますか?

これは私の/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を維持し、md127とmd126の代わりにmd0とmd1を使用してください。

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.confmdadmメタデータを使用する必要があります。

デフォルトでは、ホスト名と番号(スーパーマイナー)の両方がメタデータに保存されます。だからそこからあなたのお気に入りのMD番号を設定することができます。

番号を手動で1回組み合わせることで変更できます(例: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だけで十分です。メタデータ=名前=などのコンテンツを追加する場合は、値がまだ一致していることを確認する必要があります。それ以外の場合、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..)

関連情報