중첩된 PV 복구

중첩된 PV 복구

내 Proxmox 6.4 호스트에는 250GB 크기의 LVM 씬 풀이 있었습니다. 여기에 Ubuntu VM(루트 파티션에도 LVM을 사용함)을 생성했지만 실수로 초과 구독하여 VM 내부 PV가 500GB로 설정되었습니다.

숨겨진 250GB 제한을 초과하고 I/O 오류로 인해 VM이 충돌하고 부팅을 거부할 때까지 한동안 모든 것이 잘 작동했습니다. 그래서 지금 디스크를 복구하려고 합니다. 디스크의 파티션 테이블은 그대로 나타납니다.

$ fdisk -l /dev/vm-disks/vm-101-disk-0
Disk /dev/vm-disks/vm-101-disk-0: 500 GiB, 536870912000 bytes, 1048576000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 65536 bytes / 65536 bytes
Disklabel type: gpt
Disk identifier: 30874BBC-0B29-4083-B5BF-E973C665D87F

Device                          Start        End    Sectors  Size Type
/dev/vm-disks/vm-101-disk-0p1    2048       4095       2048    1M BIOS boot
/dev/vm-disks/vm-101-disk-0p2    4096    2101247    2097152    1G Linux filesystem
/dev/vm-disks/vm-101-disk-0p3 2101248 1048573951 1046472704  499G Linux filesystem

나는 달렸다

$ kpartx -a /dev/vm-disks/vm-101-disk-0

/dev/mapper내부에 3개의 파티션에 대한 항목을 생성하면 vm-101-disk-0작동합니다. 내가 실행하면 :

$ file -sL /dev/mapper/vm--disks-vm--101--disk--0p3
/dev/mapper/vm--disks-vm--101--disk--0p3: LVM2 PV (Linux Logical Volume Manager), UUID: fdOzWR-sPcy-hyYo-Lj2H-YEnZ-wK3c-J6biES, size: 535794024448

그러면 디스크의 3번째 파티션 안에 PV가 보입니다. 하지만 데이터 복구를 시작하기 위해 호스트 어딘가에 이를 마운트하려면 어떻게 해야 합니까? 분명히 pvscan다른 LV 내부에 있기 때문에 호스트 시스템에서는 이를 볼 수 없습니다. 여기에 복구를 위한 옵션이 있습니까? 아니면 VM이 500GB라고 생각했지만 실제로는 복구할 수 없을 정도로 손상되었다는 의미는 아니었습니까?

답변1

가상 풀의 공간이 모두 소진되면 VM에 쓰기 I/O 오류가 발생했습니다. VM의 경우 하드 디스크가 예기치 않게 모든 쓰기를 거부한 것처럼 보입니다. 따라서 VM이 베어 하드웨어인 경우 첫 번째 조치는 새 하드 디스크를 찾아 이 불량 디스크를 여기에 복제하는 것이었습니다. HW가 수정된 후 논리적 구조를 수정할 수 있습니다.

가상 머신의 경우 손상된 하드웨어가 없으면 씬 볼륨 작업을 복원하여 "하드 디스크"를 "수정"할 수 있습니다. 씬 풀을 확대하고 lvextend씬 풀 LV를 사용하여 공간을 추가하세요.

그리고 완료되면 일부 복구(가상) 미디어에서 VM을 부팅하고 표준 파일 시스템 복구를 수행합니다. 기억하세요. 그다지 어려움은 없을 것입니다. 일반적으로 이러한 종류의 오류를 견딜 수 있도록 설계된 최신 파일 시스템입니다.


씬 LVM을 모니터링합니다. 데이터 공간 고갈은 그렇게 큰 문제는 아니지만,메타데이터피로는 훨씬 더 큰 영향을 미칠 수 있습니다. 이런 일이 발생하도록 허용하지 마십시오.

관련 정보