En mi host Proxmox 6.4, tenía un grupo LVM Thin de 250 GB de tamaño. Creé una máquina virtual Ubuntu (que también usaba LVM para la partición raíz), pero accidentalmente la suscribí en exceso, por lo que el PV dentro de la máquina virtual se configuró en 500 GB.
Todo funcionó muy bien por un tiempo hasta que superé el límite oculto de 250 GB y la VM falló con un error de E/S y se negó a arrancar. Ahora estoy intentando recuperar el disco. La tabla de particiones del 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
he corrido
$ kpartx -a /dev/vm-disks/vm-101-disk-0
para crear /dev/mapper
entradas para las 3 particiones internas vm-101-disk-0
, y eso funciona. Si corro:
$ 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
Entonces puedo ver ese PV dentro de la tercera partición del disco. Pero, ¿cómo puedo montar esto en algún lugar del host para comenzar a recuperar datos? Obviamente pvscan
desde el sistema host no lo ve ya que está dentro de otro LV. ¿Tengo alguna opción aquí para la recuperación, o el hecho de que la VM pensara que tenía 500 GB cuando en realidad no significaba que lo había dañado sin posibilidad de reparación?
Respuesta1
La máquina virtual acaba de recibir errores de E/S de escritura cuando se agotó el espacio en el grupo reducido. Para una máquina virtual, esto parece como si al disco duro se le negaran inesperadamente todas las escrituras. Entonces, si la VM era hardware básico, la primera acción era encontrar el nuevo disco duro y clonar este defectuoso en él. Una vez reparado el hardware, podrá reparar las estructuras lógicas.
En el caso de las máquinas virtuales, si no tiene ningún hardware roto, puede "reparar" el "disco duro" restaurando el funcionamiento de volumen reducido. Simplemente amplíe la piscina delgada y utilícela lvextend
en la piscina delgada LV para agregar algo de espacio.
Y, cuando haya terminado, inicie la máquina virtual desde algún medio de recuperación (virtual) y realice la recuperación estándar del sistema de archivos. Recuerde, no podría haber mucha dificultad; Los sistemas de archivos modernos generalmente están diseñados para resistir este tipo de fallas.
Supervise el LVM delgado. Si bien el agotamiento del espacio de datos no es un problema tan grande, elmetadatosel agotamiento podría tener un impacto mucho mayor. No permitas que esto suceda.