PROXMOX: HA (Alta Disponinilidad)

Esta guía explica cómo configurar la alta disponibilidad en proxmox 5
  • 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