/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에서 중복 배열을 생성해 보았지만 작동하지 않습니다. 시스템은 데비안 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 ​​번호를 설정할 수 있습니다.

번호를 수동으로 한 번 조합하면 변경할 수 있습니다(예: 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..)

관련 정보