Cómo reducir/recuperar el espacio libre del disco de una máquina virtual en Proxmox VE (PVE)

Es posible reclamar los espacios libres del disco que no son utilizados por la máquina virtual. ¿Cómo hacer que la máquina virtual/sistema operativo huésped lo reconozca?

La solución

  • Iniciar sesión en Proxmox VE
  • Identificar la máquina virtual cuyo disco tiene el espacio no utilizado que se quiere recuperar
  • Hacer clic en Hardware
  • Hacer doble clic en el disco duro virtual de donde queremos recuperar el espacio no utilizado
  • Cerciorarnos que la opción “Descartar” está marcada

Iniciar la VM

Una vez que la VM haya arrancado completamente

Para Linux/Debian/Ubuntu/Kali Linux/CentOS/RHEL/Fedora etc. utilizamos el siguiente comando para recuperar el espacio de disco no utilizado desde la terminal

# sudo fstrim -av

En el hipervisor, detenemos la máquina virtual

# qm stop 112

Identificamos la ruta del disco virtual

# lvdisplay
--- Logical volume ---
LV Path /dev/vmdata/vm-112-disk-0
LV Name vm-112-disk-0
VG Name vmdata
LV UUID tDWyes-aZjo-coN8-foYF-SWa5-uYa2-pdySHN
LV Write Access read/write
LV Creation host, time dell1, 2021-09-30 18:28:15 -0300
LV Status available
# open 1
LV Size 1 TB
Current LE 6144
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:12

Primero hay que redimensionar el sistema de archivos para luego poder disminuir el tamaño del volúmen lógico. De hacerlo a la inversa, el sistema no podría acceder al sistema de archivos más allá del nuevo tamaño del volúmen lógico.

Redimensionamos el sistema de archivos

# resize2fs /dev/vmdata/vm-112-disk-0 31G

Reducción del volúmen lógico

Para reducir el tamaño de un volúmen lógico, hay pasos importantes que deben ser ejecutados en orden o el procedimiento fallará y potencialmente causará daños al sistema de archivos:

Forzamos una verificación del sistema de archivos.

# fsck -f /dev/vmdata/vm-112-disk-0

Reducimos el volumen lógico

# lvreduce -L 32G /dev/vmdata/vm-112-disk-0

Montamos para verificar

# mount /dev/vmdata/vm-112-disk-0 /mnt/aver/
# df -h
/dev/vmdata/vm-112-disk-0 4.8G 1,6G 32G 5% /mnt/aver/

Editamos de manera acorde el tamaño definido en el archivo de configuración de la máquina virtual.

# nano /etc/pve/qemu-server/112.conf

en la linea

scsi0: Storage:vm-112-disk-0,size=1T

Guardamos los cambios y cerramos el archivo

Por último, volvemos a iniciar la máquina virtual

# qm start 112