6.3. 물리 볼륨 메타데이터 복구
물리 볼륨의 볼륨 그룹 메타데이터 영역을 실수로 덮어쓰거나 삭제한 경우 메타데이터 영역이 잘못되었거나 시스템이 특정 UUID가 있는 물리 볼륨을 찾을 수 없음을 나타내는 오류 메시지가 표시됩니다. 물리적 볼륨에 메타데이터가 손실된 메타데이터와 동일한 UUID를 지정하여 물리 볼륨에서 데이터를 복구할 수 있습니다.
주의
작동 중인 LVM 논리 볼륨을 사용하여 이 절차를 시도해서는 안 됩니다. 잘못된 UUID를 지정하면 데이터가 손실됩니다.
다음 예제에서는 메타데이터 영역이 누락되거나 손상되었는지 여부를 확인할 수 있는 출력 종류를 보여줍니다.
# lvs -a -o +devices
Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
Couldn't find all physical volumes for volume group VG.
Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
Couldn't find all physical volumes for volume group VG.
...
/etc/lvm/archive
디렉토리를 확인하여 덮어쓰는 물리 볼륨의 UUID를 찾을 수 있습니다. 해당 볼륨 그룹에 대해 마지막으로 알려진 유효한 아카이브 LVM 메타데이터는 VolumeGroupName_xxxx.vg
파일을 찾습니다.
또는 볼륨을 비활성화하고
부분
(-P
) 인수를 설정하면 손상된 물리적 볼륨의 UUID를 찾을 수 있습니다.
# vgchange -an --partial
Partial mode. Incomplete volume groups will be activated read-only.
Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
...
pvcreate 명령의
--uuid
및 --restorefile
인수를 사용하여 물리 볼륨을 복원합니다. 다음 예제에서는 위에 표시된 UUID인 FmGRh3-zhok-iVI8-7qTD-S5BI-NYM5Sk
를 사용하여 /dev/sdh1
장치를 물리 볼륨으로 레이블을 지정합니다. 이 명령은 볼륨 그룹의 최신 아카이브 메타데이터 메타데이터인 VG_00050.vg
에 포함된 메타데이터 정보를 사용하여 물리 볼륨 레이블을 복원합니다. restorefile
인수는 pvcreate 명령에 볼륨 그룹의 이전 물리 볼륨과 호환되는 새 물리 볼륨을 사용하도록 하여 이전 물리 볼륨에 포함된 데이터를 배치하지 않도록 합니다(예: 원래 pvcreate 명령이 메타데이터 배치를 제어하는 명령줄 인수를 사용하거나 다른 기본값을 사용하여 물리적 볼륨이 원래 생성된 경우). pvcreate 명령은 LVM 메타데이터 영역만 덮어쓰고 기존 데이터 영역에는 영향을 미치지 않습니다.
# pvcreate --uuid "FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk" --restorefile /etc/lvm/archive/VG_00050.vg /dev/sdh1
Physical volume "/dev/sdh1" successfully created
그런 다음 Cryostat cfgrestore 명령을 사용하여 볼륨 그룹의 메타데이터를 복원할 수 있습니다.
# vgcfgrestore VG
Restored volume group VG
이제 논리 볼륨을 표시할 수 있습니다.
# lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices
stripe VG -wi--- 300.00G /dev/sdh1 (0),/dev/sda1(0)
stripe VG -wi--- 300.00G /dev/sdh1 (34728),/dev/sdb1(0)
다음 명령은 볼륨을 활성화하고 활성 볼륨을 표시합니다.
#lvchange -ay /dev/VG/stripe
#lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices stripe VG -wi-a- 300.00G /dev/sdh1 (0),/dev/sda1(0) stripe VG -wi-a- 300.00G /dev/sdh1 (34728),/dev/sdb1(0)
디스크상의 LVM 메타데이터가 가능한 한 많은 공간을 차지하면 이 명령은 물리 볼륨을 복구할 수 있습니다. 메타데이터 영역을 과장한 경우 볼륨의 데이터가 영향을 받을 수 있습니다. fsck 명령을 사용하여 해당 데이터를 복구할 수 있습니다.