- Los archivos de configuración están en:
cd /etc/pve/ha/
- Todas las configuraciones son compartidas con todos los nodos
- Para ver el archivo de configuración de los recursos
nano /etc/pve/ha/resources.cfg
- Valores
- group: grupo de alta disponibilidad
- max_relocate: NÚMERO ENTERO máximo que veces que se intentará ubicar un servicio si falla al iniciar
- max_restart: NÚMERO ENTERO máximo de veces que se intentará resetear un servicio si falla al iniciar
- state:
- started: CRM tratará de arrancar el servicio
- stopped: CRM trata de mantener el servicio en stop
- disabled: CRM establece el servicio detenido, y no trata de ubicar el servicio en otro nodo
- ignored: el recursos se elimina del status manager por lo que CRM y LRM no tocan el recurso más
- El archivo de los grupos está en:
nano /etc/pve/ha/groups.cfg
- valores
- nodes: nodos miembros del grupo, se le puede dar prioridad a cada nodo y los servicios se migran al de mayor prioridad.
- nofailback (default=0): El CRM intenta ejecutar servicios en el nodo con la prioridad más alta. Si viene un nodo con mayor prioridad En línea, el CRM migra el servicio a ese nodo. Habilitar nofailback previene ese comportamiento. Cuando un nodo PVE vuelve a la vida, las máquinas virtuales que antes estaban corriendo en este nodo no volverá de nuevo
- restricted (default =0): Los servicios solo se ubicaran en los nodos que pertenecen al grupo
- Se pueden crear grupos de un nodo para controlar mejor a donde se migra
ha-manager groupadd prefer_node1 --nodes node1
- Ejemplo: si deseamos que los servicios corran en el nodo1 de ser posible, pero si nodo1 no esta disponible los servicios se distribuyan en los nodo 2 y 3 y si no en el nodo4
ha-manager groupadd mygroup1 -nodes "node1:2,node2:1,node3:1,node4"
Cómo funciona
Proxmox utiliza dos demonios para que la alta disponibilidad funcione
pve-ha-lrm:
- Local Resource Manager (LRM) , que controla los servicios que están corriendo en la máquina local
- El archivo de estado está en nano /etc/pve/nodes/poseidon/lrm_status
- Para ver el log:
journalctl -u pve-ha-lrm
- pve-ha-crm: Cluster Resource Manager (CRM), que toma las decisiones del todo el cluster, se encarga de enviar comandos a LRM, procesa los resultados y mueve recursos si algo falla
Estado del servicio
- Para consultarlos:
ha-manager status
- stopped: el servicio está detenido (confirmado por LRM). Si LRM detecta que un servicio en «stopped» todavía está corriendo lo detiene
- request_stop: El servicio debe ser detenido. El CRM espera la confirmación del LRM.
- stopping: El servicio debe ser detenido. CRM espera la confirmación de LRM
- started: El servicio está corriendo.
- fence: ??
- freeze: se usa este estado cuando se está reiniciando el nodo o el LRM
- ignored: hace que se ignore la configuración de HA temporalmente
- migrate: cuando se está migrando en vivo el servicio a otro nodo
- error: El servicio está deshabilitado por errores en LRM
- queued: El servicio se acaba de agregar, y el CRM no lo ha visto hasta ahora.
- disabled: El servicio está detenido
Comandos
- Para saber la configuración
ha-manager config
- Para saber el estado
ha-manager status
- Remover un recurso de HA
ha-manager remove vm:100
- Migrar a otro nodo
ha-manager migrate vm:100 node2
- La migración si está encendida la máquina puede durar un tiempo, por lo que es mejor a veces apagar la máquina y luego migrar para esto:
ha-manager relocate vm:100 node2