En corto
| |
--force quita el snapshot del archivo de configuración aunque el snapshot del disco ya no exista o falle al borrarse. En contenedores es lo mismo con pct unlock y pct delsnapshot 102 <nombre> --force.
El error
| |
Y si miras el intento anterior en el log de tareas, el fallo de fondo suele ser que el storage ya no tiene ese snapshot:
| |
Por qué pasa
Borrar un snapshot son dos pasos: primero se destruyen los snapshots de cada disco en el storage (zfs destroy, lvremove, rbd snap rm, snapshot interno del qcow2) y después se quita la sección [nombre] de /etc/pve/qemu-server/102.conf. Mientras tanto Proxmox escribe lock: snapshot-delete en ese archivo.
Si el primer paso falla, el lock se queda y cada reintento muere en el mismo punto. Causas típicas:
- Alguien borró el snapshot en el storage por fuera (
zfs destroy, una política de replicación o de limpieza). - La tarea se interrumpió (reinicio del nodo, storage que se cayó a mitad).
- El disco se movió a otro storage y el snapshot se quedó en el anterior.
Procedimiento
Confirma que no hay una tarea viva para esa VM: en la GUI, Tasks del nodo, la tarea de borrado tiene que estar terminada o fallida. Un
qm unlockcon la tarea corriendo puede corromper el snapshot.Quita el lock y fuerza el borrado:
1 2 3qm unlock 102 qm listsnapshot 102 qm delsnapshot 102 initial_snapshot --forceComprueba el config: sin
lock:y sin la sección del snapshot.1grep -nE '^(lock:|\[|parent:)' /etc/pve/qemu-server/102.confLimpia lo que haya quedado en el storage (espacio que no se libera solo):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15# ZFS zfs list -t snapshot -r rpool/data | grep vm-102 zfs destroy rpool/data/vm-102-disk-0@initial_snapshot # LVM-thin lvs | grep snap_vm-102 lvremove pve/snap_vm-102-disk-0_initial_snapshot # Ceph RBD rbd snap ls cephpool/vm-102-disk-0 rbd snap rm cephpool/vm-102-disk-0@initial_snapshot # qcow2 en directorio o NFS (VM apagada) qemu-img snapshot -l /var/lib/vz/images/102/vm-102-disk-0.qcow2 qemu-img snapshot -d initial_snapshot /var/lib/vz/images/102/vm-102-disk-0.qcow2Si el snapshot incluía la RAM, además existe un volumen
vm-102-state-initial_snapshoten el mismo storage;--forceintenta borrarlo, y si no pudo, quítalo a mano.
Plan B: editar el .conf
Si ni con --force sale, el propio staff de Proxmox indica que se puede editar el archivo a mano. En /etc/pve/qemu-server/102.conf:
- Borra la línea
lock: snapshot-delete. - Borra la sección completa del snapshot: desde
[initial_snapshot]hasta la siguiente cabecera[...]o el final del archivo. - Si otra sección (la actual o un snapshot hijo) tiene
parent: initial_snapshot, quita esa línea o apúntala al abuelo si había cadena.
Guarda y qm config 102 tiene que responder sin quejarse. Después, la limpieza del storage del paso 4.
Otros locks
qm unlock sirve para cualquier lock que quedó colgado; la regla es la misma: primero confirma que la tarea que lo puso está muerta.
lock: | Lo puso | Antes de desbloquear |
|---|---|---|
backup | vzdump | ps aux | grep vzdump; un backup lento a NFS parece colgado y no lo está |
snapshot | creación de snapshot | La tarea en Tasks debe estar terminada |
snapshot-delete | borrado de snapshot | Este post |
clone, migrate, rollback | la operación correspondiente | Revisa que no siga corriendo en el nodo destino |
Trampas
qmes por nodo. En un clúster, ejecuta todo en el nodo donde vive la VM; el.confes compartido, pero la limpieza de ZFS/LVM es local.- Un
holdde ZFS impide elzfs destroyy dispara justo este escenario; revisa conzfs holdsantes de culpar a Proxmox. Detalle en proteger un snapshot con hold. - El espacio no vuelve solo.
--forcelimpia el config, no el storage; el paso 4 no es opcional si te importa el espacio.