Hoy me he encontrado con un caso bastante concreto en Proxmox con alta disponibilidad (HA).
proxmox no such logical volume
Un error curioso y que si no te das cuenta te puede pasar.
Os cuento, Tras apagar uno de los nodos, uno de los contenedores gestionados por HA no migró correctamente y quedó en un estado inconsistente: el archivo de configuración (.conf
) se movió a otro nodo, pero el disco no.
Esto generó errores al intentar arrancarlo y también impedía revertir la situación de forma normal. Comparto el análisis y la solución real aplicada, por si os ocurre algo similar.
Tras simular la caída de un nodo, uno de mis contenedores LXC con ID 119
fue migrado por el servicio de HA al nodo proxmox3
, pero este tenía el disco en local-lvm
(es decir, un almacenamiento no compartido).
El error era este:
TASK ERROR: no such logical volume pve/vm-119-disk-0
Y en los logs de migración de HA me contaba lo siguiente:
starting migration of CT 119 to node 'proxmox2' found local volume 'local-lvm:vm-119-disk-0' ERROR: storage migration for 'local-lvm:vm-119-disk-0' to storage 'local-lvm' failed - no such logical volume pve/vm-119-disk-0 ERROR: found stale volume copy 'local-lvm:vm-119-disk-0' on node 'proxmox2' migration aborted
Como se ve, el agente HA detectó el disco como local, intentó moverlo (lo cual no es posible si no hay almacenamiento compartido) y falló. Pero además dejaba el archivo de configuración del contenedor en otro nodo distinto al que contenía el disco real, rompiendo totalmente la coherencia.
Básicamente que has hecho cenutrio…
¿Por qué aparece el error “no such logical volume” en Proxmox HA?
El disco vm-119-disk-0
seguía existiendo en el nodo original (proxmox4
), verificado con:
lvs | grep vm-119-disk-0
Pero el archivo 119.conf
con la configuración del contenedor estaba en el nodo proxmox3
:
cat /etc/pve/nodes/proxmox3/lxc/119.conf
Intentar iniciar el contenedor fallaba, porque buscaba el disco en proxmox3
que ya no lo tenía.
Y como el contenedor había sido eliminado de HA desde la GUI, ya no se podía gestionar directamente por ha-manager
.
No había huevos a arrancarlo ni a volver loa su nodo anterior
Como lo solucionamos
La más rápida y efectiva fue simplemente mover el archivo de configuración al nodo donde estaba el disco:
mv /etc/pve/nodes/proxmox3/lxc/119.conf /etc/pve/nodes/proxmox4/lxc/
Después de eso, arranqué el contenedor desde proxmox4
sin problemas:
pct start 119
Y volvió a estar operativo inmediatamente.
Conclusiones finales
Si trabajas con HA en Proxmox y usas almacenamiento local-lvm, debes tener claro que Proxmox HA no puede mover los discos entre nodos automáticamente. Si no usas almacenamiento compartido (como NFS o Ceph), estas situaciones pueden pasar fácilmente tras una caída de nodo o reinicio inesperado.
Recomendaciones:
Si usas HA, considera almacenamiento compartido siempre que sea posible. No seas un cenutrio como yo.
Si estás en local-lvm, los recursos críticos no deberían estar en HA salvo con réplicas gestionadas.
Cuando veas errores como no such logical volume
, revisa bien dónde está el disco y dónde está el .conf
.
Todo esto tiene un porque, mi red en casa es a 1 Gbs y haría cuello de botella en algunos aplicaciones que uso, por eso aprovecho el almacenamiento local, por otro lado, tener varios mini pcs con un espacio en disco tan desaprovechado pues la verdad que me daba rabia dejarlo sin utilizar.
Comandos útiles
Ver discos locales en un nodo:
lvs | grep vm-119
Ver configuración del contenedor:
cat /etc/pve/nodes/<nodo>/lxc/119.conf
Mover el .conf
manualmente:
/etc/pve/nodes/<nodo_origen>/lxc/119.conf /etc/pve/nodes/<nodo_destino>/lxc/
Puedes ver otro error relacionado con contenedores LXC en este post sobre backups fallidos
Si necesitas mas información: Documentación oficial de HA en Proxmox
Espero que os sirva