이것은 내 /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.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만으로도 충분합니다. 메타데이터= 이름=과 같은 콘텐츠를 더 추가하는 경우 값이 여전히 일치하는지 확인해야 합니다. 그렇지 않으면 전체 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..)