Recuperación de espacio en disco¶
Administrar el almacenamiento en Proxmox VE puede ser un desafío, especialmente cuando el uso del espacio en disco no coincide con las expectativas. Esta guía proporciona comandos prácticos para analizar el almacenamiento de Proxmox desde la línea de comandos de Linux, identificar el uso del espacio por máquinas virtuales y contenedores, detectar el espacio de almacenamiento no contabilizado y solucionar problemas comunes de almacenamiento para ayudar a optimizar su entorno de Proxmox.
Comprensión de la arquitectura de almacenamiento de Proxmox¶
Proxmox VE utiliza diferentes backends de almacenamiento, cada uno con comandos específicos para el análisis. Los tipos de almacenamiento comunes incluyen directorios locales, LVM-thin, ZFS, Ceph y almacenamiento en red. Estar familiarizado con su configuración de almacenamiento específica es esencial para un análisis preciso.
Antes de sumergirse en los comandos, es importante comprender cómo Proxmox organiza típicamente el almacenamiento. Dependiendo de su versión de Proxmox, el almacenamiento puede estar ubicado en varias ubicaciones clave:
/var/lib/vz/images/ – Contiene imágenes de disco de VM (qcow2, raw), organizadas por ID de VM
/var/lib/lxc/ – Contiene datos de contenedores LXC, organizados por ID de contenedor
/var/lib/vz/template/iso/ – Almacena imágenes ISO
/var/lib/vz/template/cache/ – Almacena plantillas de contenedores
/var/lib/vz/dump/ – Contiene copias de seguridad de VM y contenedores
La configuración de almacenamiento se puede ver utilizando el comando del administrador de almacenamiento de Proxmox:
# pvesm status
Ver la configuración de almacenamiento de Proxmox
pvesm status brinda una descripción general de los grupos de almacenamiento .
# pvesm status
Name Type Status Total Used Available %
Storage lvm active 18750500864 5041553408 13708947456 26.89%
local dir active 57225328 5780740 48505300 10.10%
local-lvm lvmthin active 147275776 3136974 144138801 2.13%
storageprox dir active 55162072064 1063149568 54098381824 1.93%
Este comando muestra todos los grupos de almacenamiento configurados en su entorno Proxmox, mostrando sus tipos, estado, capacidad total, espacio utilizado, espacio disponible y porcentaje de uso. Los porcentajes elevados (superiores al 80 %) deben analizarse.
Verificar el uso general del espacio en disco
df -h muestra el uso del espacio en disco para todos los sistemas de archivos montados en un formato legible por humanos. Un ejemplo de salida podría mostrar:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/pve-root 55G 5.6G 47G 11% /
Los porcentajes de uso altos (superiores al 85%) indican sistemas de archivos que necesitan atención. Para un rendimiento óptimo, la mayoría de los sistemas de archivos deben tener al menos un 10-15% de espacio libre.
Listar todas las máquinas virtuales
qm list lista todas las máquinas virtuales con sus ID, nombres, estado, asignación de memoria y tamaño de disco. Aquí hay un ejemplo de salida:
# qm list
VMID NAME STATUS MEM(MB) BOOTDISK(GB) PID
100 VM1 stopped 2048 32.00 0
101 VM2 running 1024 15.00 1119524
102 VM3 running 8192 150.00 309833
106 VM4 running 2048 32.00 3812960
107 VM5 running 6000 32.00 3839516
108 VM6 running 4000 50.00 1743913
109 VM7 stopped 8192 60.00 0
Esta salida muestra todas las VM con sus tamaños de disco asignados, lo que ayuda a identificar qué VM tienen grandes asignaciones de almacenamiento que podrían ser candidatas para la optimización.
Listar todos los contenedores
pct list todos los contenedores LXC en el sistema. Ejemplo de salida:
# pct list
VMID Status Lock Name
VMID Status Lock Name
106 stopped CT106
170 running CT170
180 running CT180
181 running CT181
182 running CT182
183 running CT183
184 running CT184
Esto muestra los ID de contenedor, el estado y los nombres, lo cual es útil para identificar qué contenedores examinar para el uso del almacenamiento.
Encontrar imágenes de disco de VM grandes
Localizar imágenes de VM por tamaño.
# find /var/lib/vz/images -type f -name "*.qcow2" -o -name "*.raw" | xargs du -h | sort -hr
Este comando encuentra todas las imágenes de disco QCOW2 y RAW en la ubicación de almacenamiento de VM y las ordena por tamaño (la más grande primero). Según la salida anterior, podría encontrar algo como:
62G /var/lib/vz/images/109/vm-109-disk-0.qcow2
Esto indica que VM7 (ID 109) tiene una imagen de disco de 62 GB, que es una porción significativa del almacenamiento.
Verificar el almacenamiento del contenedor LXC
# du -sh /var/lib/lxc/*
Este comando verifica el espacio en disco utilizado por todos los contenedores LXC. La mayoría de las instalaciones de Proxmox almacenan contenedores en el directorio /var/lib/lxc/.
Hallar instantáneas de VM que ocupan mucho espacio
# for VM in $(qm list | tail -n +2 | awk '{print $1}'); do
echo "VM $VM:";
qm listsnapshot $VM 2>/dev/null;
done
Este comando permite encontrar instantáneas que consumen espacio, lista las instantáneas para todas las VM. Un ejemplo de salida para una VM específica podría verse así:
`-> fresh-install 2025-01-23 11:28:52 no-description
`-> LXready 2025-03-28 11:45:52 no-description
`-> current You are here!
Múltiples instantáneas en una cadena pueden consumir un espacio significativo, especialmente para las VM con alta actividad de disco. Las instantáneas deben revisarse regularmente y eliminarse las innecesarias.
Hallar archivos de copias de seguridad grandes
# find /var/lib/vz/dump -type f -name "*.tar" -o -name "*.vma" | xargs du -h | sort -hr
Este comando localiza los archivos de copia de seguridad en la ubicación de copia de seguridad estándar y los ordena por tamaño. Las copias de seguridad pueden consumir un espacio significativo y podrían ser candidatas para la limpieza si son antiguas o ya no son necesarias.
Encontrar archivos ISO grandes
# find /var/lib/vz/template/iso -type f -name "*.iso" | xargs du -h | sort -hr
Este comando lista todas las imágenes ISO ordenadas por tamaño. Las imágenes ISO pueden ser bastante grandes y, a menudo, se olvidan después de la instalación de la VM, ocupando un valioso espacio.
Encontrar plantillas de contenedor no utilizadas
# find /var/lib/vz/template/cache -type f | xargs du -h | sort -hr
Este comando lista las plantillas de contenedor por tamaño. Las plantillas que ya no son necesarias se pueden eliminar para recuperar espacio.
Encontrar «espacio fantasma»
# df -h /
# du -sh --exclude=/proc --exclude=/sys --exclude=/run --exclude=/dev /
Compare estas salidas para identificar discrepancias. Si df muestra significativamente más espacio utilizado de lo que informa du, podría haber archivos que se eliminan pero que aún están abiertos por procesos u otros metadatos del sistema de archivos que consumen espacio.
Encontrar el consumo de espacio oculto
# lsof | grep deleted | grep -E '(vz|lxc)'
Este comando muestra los archivos que se han eliminado pero que aún están abiertos por procesos, lo que puede causar «espacio fantasma» no visible a través de los listados de directorios normales.
Atención
Los diferentes tipos de almacenamiento de Proxmox requieren diferentes enfoques de análisis. Para el almacenamiento basado en directorio, los comandos estándar de Linux como df y du funcionan bien. Para el aprovisionamiento ligero de LVM, necesitará comandos LVM específicos. El almacenamiento ZFS requiere comandos específicos de ZFS, mientras que el almacenamiento Ceph utiliza herramientas Ceph. Siempre identifique su tipo de almacenamiento con pvesm status antes de continuar con el análisis.
Peligro
Siempre cree copias de seguridad. Algunas acciones, como eliminar instantáneas o eliminar imágenes de disco, no se pueden deshacer y pueden provocar la pérdida de datos si se realizan incorrectamente.
Después de analizar el entorno Proxmox con los comandos anteriores, aquí hay métodos efectivos para recuperar espacio que se aplican a la mayoría de las instalaciones de Proxmox:
Eliminar instantáneas de VM que ya no son necesarias
# qm listsnapshot VMID
# qm delsnapshot VMID NOMBREINSTANTANEA
El primer comando lista las instantáneas para una VM específica, y el segundo comando elimina una instantánea con nombre. Las instantáneas pueden consumir un espacio significativo, especialmente para las VM grandes o aquellas con alta actividad de escritura en disco. Múltiples instantáneas en pueden acumular un uso sustancial del disco con el tiempo.
Eliminar imágenes ISO no utilizadas
# find /var/lib/vz/template/iso -type f -name "*.iso" | xargs du -h | sort -hr
# rm /var/lib/vz/template/iso/unused-iso.iso
Primero, liste las ISO por tamaño, luego elimine aquellas que ya no son necesarias. Las imágenes ISO a menudo se olvidan después de la instalación de la VM y pueden consumir gigabytes de espacio. Siempre verifique que una ISO no esté en uso por ninguna VM antes de eliminarla.
Eliminar copias de seguridad que ya no son necesarias
# find /var/lib/vz/dump -type f -mtime +30 | xargs du -h | sort -hr
# rm /var/lib/vz/dump/old-backup.vma
El primer comando encuentra los archivos de copia de seguridad con una antigüedad superior a 30 días y muestra sus tamaños. Las copias de seguridad regulares son esenciales, pero las copias de seguridad antiguas a menudo se pueden eliminar de forma segura de acuerdo con su política de retención. Considere mantener las copias de seguridad mensuales durante períodos más largos mientras elimina las copias de seguridad más frecuentes después de cierto tiempo.
Eliminar plantillas de contenedor que ya no se utilizan
# find /var/lib/vz/template/cache -type f | xargs du -h | sort -hr
# rm /var/lib/vz/template/cache/unused-template.tar.xz
Las plantillas de contenedor se descargan al crear nuevos contenedores, pero rara vez se eliminan posteriormente. Si no planea crear contenedores del mismo tipo nuevamente, estas plantillas se pueden eliminar de forma segura para recuperar espacio.
Recuperar espacio dentro de las imágenes de disco de una VM
# qm stop VMID
# cd /var/lib/vz/images/VMID/
# cp vm-VMID-disk-0.qcow2 vm-VMID-disk-0.qcow2.bak
# qemu-img convert -O qcow2 vm-VMID-disk-0.qcow2 vm-VMID-disk-0-new.qcow2
# mv vm-VMID-disk-0-new.qcow2 vm-VMID-disk-0.qcow2
# qm start VMID
Este procedimiento compacta una imagen qcow2 para recuperar espacio de los archivos eliminados dentro de la VM. Cuando los archivos se eliminan dentro de una VM, la imagen de disco no se reduce automáticamente. Este proceso de conversión reconstruye la imagen, omitiendo los bloques no utilizados. Siempre detenga la VM primero y haga una copia de seguridad antes de intentar esta operación.
Eliminar o rotar archivos de registro grandes
# find /var/log -type f -name "*.log" -o -name "*.gz" | xargs du -h | sort -hr | head -n 20
# journalctl --vacuum-time=30d
El primer comando encuentra archivos de registro grandes, mientras que el segundo limita los registros del journal systemd a los últimos 30 días. Los archivos de registro pueden acumularse con el tiempo y consumir un espacio significativo, especialmente en sistemas ocupados o si la rotación de registros no está configurada correctamente.
Eliminar máquinas virtuales no utilizadas
# qm list
# qm destroy VMID --purge
Primero, liste todas las VM para identificar los candidatos para la eliminación, luego use el comando destroy con la opción purge para eliminar por completo una VM y sus discos asociados. Solo haga esto para las VM que realmente ya no son necesarias.
Optimizar el almacenamiento ZFS
# zpool list
# zfs list
# zpool trim poolname
Si su sistema Proxmox usa almacenamiento ZFS, el comando trim ayuda a recuperar espacio de los archivos eliminados en los SSD. Además, considere ajustar la configuración de compresión o ejecutar una operación de limpieza para verificar la integridad de los datos.
Conclusión¶
Monitorear y administrar el almacenamiento en entornos Proxmox requiere comprender tanto los mecanismos de almacenamiento específicos de Proxmox como los conceptos generales de administración de archivos de Linux. Los comandos de esta guía ayudan a identificar dónde se está utilizando el almacenamiento, detectar anomalías y recuperar espacio para mantener el sistema Proxmox funcionando de manera eficiente.
Las prácticas de mantenimiento regulares deben incluir:
Optimización de la imagen de disco de VM para máquinas virtuales grandes
Gestión y consolidación de instantáneas regulares
Revisión periódica de imágenes ISO y plantillas de contenedor
Implementación de una política de retención de copias de seguridad para administrar automáticamente las copias de seguridad antiguas
Monitoreo del uso real del disco frente al espacio asignado, especialmente con el aprovisionamiento ligero
Al incorporar estos comandos en sus procedimientos de mantenimiento de rutina, mantendrá un uso óptimo del almacenamiento y evitará emergencias de espacio en disco en su entorno Proxmox.
Preguntas frecuentes (FAQ)¶
¿Por qué la interfaz web de Proxmox muestra un uso de disco diferente al de los comandos de la CLI?
La interfaz web de Proxmox puede informar valores diferentes a los comandos de la CLI por varias razones: el aprovisionamiento ligero puede mostrar el espacio asignado en lugar del uso real, la interfaz web puede usar datos en caché que no reflejan los cambios recientes y la interfaz de usuario web puede incluir cálculos de sobrecarga que las herramientas de la CLI no muestran. Para obtener los datos más precisos, confíe en los comandos de la CLI proporcionados en esta guía.
¿Cómo afectan las instantáneas de VM al uso del espacio en disco?
Las instantáneas de VM crean archivos delta que rastrean los cambios desde la imagen base o la instantánea anterior. Si bien parecen pequeños inicialmente, pueden crecer sustancialmente a medida que ocurren más cambios en la VM. Múltiples instantáneas pueden conducir a un uso significativo del espacio, especialmente para las VM con alta actividad de disco.
¿Qué causa el «espacio fantasma» donde el uso del disco no coincide con los archivos visibles?
El espacio fantasma generalmente ocurre cuando: 1) Los archivos se eliminan pero aún están abiertos por procesos en ejecución, 2) Los archivos de diario o registro están usando espacio en los metadatos del sistema de archivos, 3) Los metadatos de instantáneas o LVM están consumiendo espacio, o 4) Corrupción del sistema de archivos. Use el comando lsof | grep deleted para identificar los archivos eliminados abiertos, que son una causa común del espacio fantasma.
¿Cómo puedo reducir el tamaño de las imágenes de disco de VM sin pérdida de datos?
Para reducir las imágenes de disco de VM, primero limpie dentro del sistema operativo invitado eliminando archivos innecesarios, ejecutando utilidades de limpieza de disco y poniendo a cero el espacio libre usando herramientas como zerofree (Linux) o SDelete (Windows). Luego, para las imágenes qcow2, detenga la VM y use qemu-img convert -O qcow2 source.qcow2 optimized.qcow2 para crear una imagen más compacta.
¿Es arriesgado el aprovisionamiento ligero en el almacenamiento basado en LVM para la administración del almacenamiento?
El aprovisionamiento ligero le permite asignar más almacenamiento del que está físicamente disponible, lo que puede ser eficiente pero requiere una supervisión cuidadosa. Un sistema típico podría mostrar el almacenamiento ligero LVM con un bajo porcentaje de uso, mientras que el almacenamiento físico subyacente podría estar casi lleno. Esta discrepancia es común con el aprovisionamiento ligero y muestra por qué es fundamental monitorear el uso real del disco físico (con df -h). Siempre configure alertas para el alto uso del disco físico para evitar condiciones inesperadas de falta de espacio, ya que estas pueden causar fallas en la VM o corrupción de datos.
Con información de LinuxConfig.org