Recuperando um PV aninhado

Recuperando um PV aninhado

No meu host Proxmox 6.4, eu tinha um pool LVM Thin com 250 GB. Eu criei uma VM Ubuntu (que também usava LVM para a partição raiz) nela, mas acidentalmente a subscrevi em excesso, então o PV dentro da VM foi definido para 500 GB.

Tudo funcionou bem por um tempo, até que ultrapassei o limite oculto de 250 GB e a VM travou com um erro de E/S e se recusou a inicializar. Então agora estou tentando recuperar o disco. A tabela de partição do disco parece estar intacta:

$ 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

eu corri

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

para criar /dev/mapperentradas para as 3 partições internas vm-101-disk-0, e isso funciona. Se eu correr:

$ 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

Então posso ver aquele PV dentro da terceira partição do disco. Mas como posso montar isso em algum lugar do host para começar a recuperar dados? Obviamente, pvscano sistema host não o vê, pois está dentro de outro LV. Eu tenho alguma opção aqui para recuperação ou o fato de a VM pensar que tinha 500 GB quando na verdade não significava que eu danifiquei isso sem possibilidade de reparo?

Responder1

A VM acabou de receber erros de E/S de gravação quando o espaço no pool fino se esgotou. Para uma VM, isso parece que o disco rígido negou inesperadamente todas as gravações. Portanto, se a VM fosse de hardware simples, a primeira ação seria encontrar o novo disco rígido e clonar o disco rígido nele. Depois que o HW for consertado, você poderá consertar estruturas lógicas.

No caso de máquinas virtuais, você não possui nenhum hardware quebrado, você pode "consertar" o "disco rígido" restaurando a operação do volume fino. Basta ampliar o pool fino, usar lvextendno pool fino LV para adicionar algum espaço.

E, quando terminar, inicialize a VM a partir de alguma mídia de recuperação (virtual) e faça a recuperação padrão do sistema de arquivos. Lembre-se, não poderia haver muita dificuldade; sistemas de arquivos modernos geralmente projetados para suportar esse tipo de falha.


Monitore o LVM fino. Embora o esgotamento do espaço de dados não seja um problema tão grande, ometadadosa exaustão pode ter um impacto muito maior. Não permita que isso aconteça.

informação relacionada