Volver
Funciones de Alta Disponibilidad (HA)
La función de Alta Disponibilidad es una función que “reinicia” automáticamente (llamado failover) una máquina virtual en otro host que funcione normalmente cuando un host físico falla. Por lo tanto, es necesario realizar configuraciones previas dentro del sistema operativo invitado de la máquina virtual para que el sistema pueda restaurarse automáticamente.
¿Cuáles son las condiciones para usar HA?
Para usar HA con la versión HRPC KVM, se deben cumplir las siguientes condiciones:
- Un centro de datos virtual compuesto por tres o más nodos configurados de manera idéntica.
- Debe ser de tipo HCI o de tipo 3-tier, ya que se requiere almacenamiento compartido (Ceph, ESF con ES).
- Debe haber suficiente capacidad de reserva (especialmente memoria) en el equipo. Es importante que al menos la memoria equivalente a un nodo esté libre en total.
*Por ejemplo, en el caso de un centro de datos virtual compuesto por tres nodos, solo se debería usar la memoria de dos nodos en total. - Asegúrate de que se realicen copias de seguridad de las máquinas virtuales.
Recomendamos encarecidamente que firmes un contrato con un servicio como Backup Storage y configures copias de seguridad regulares de tus máquinas virtuales.
¿Cómo habilitar la función HA?
Si deseas habilitar la función HA, primero selecciona el centro de datos en el panel izquierdo, abre HA en el panel central y haz clic en Grupo.
Haz clic en el botón Crear en el panel derecho, crea un ID de grupo HA y marca los hosts relacionados con HA. Al crear máquinas virtuales en hosts relacionados con HA, debes preparar al menos la memoria de reserva equivalente a un host físico. Si participas en HA con un total de cuatro HRPC equipados con 768GB de memoria, las tres máquinas restantes necesitarán 768GB de memoria libre para que los otros dispositivos puedan seguir funcionando incluso si un HRPC experimenta una falla física. Si no marcas el grupo HA, será ignorado como objetivo de HA incluso si está en el mismo centro de datos.
Si un host se elimina deliberadamente del grupo HA y la configuración del grupo HA “restringido” está marcada, las máquinas virtuales que pertenecen a ese grupo HA no podrán iniciarse en el host eliminado.
Si se marca “nofailback”, cuando un nodo físico fallido se reinicia y regresa, las máquinas virtuales no se restaurarán, sino que continuarán ejecutándose en el destino. Si “nofailback” no está marcado, se devolverán al nodo original mediante migración en vivo, lo que permite una gestión estricta de la ubicación de los nodos hosts y las máquinas virtuales. Sin embargo, si el nodo físico se vuelve inestable y se reinicia repetidamente, HA se activará nuevamente y las máquinas virtuales se reiniciarán repetidamente. Por esta razón, recomendamos marcar “nofailback”.
Además, aunque la migración en vivo es una función que rara vez falla, hay una interrupción interna momentánea que puede causar problemas en software en tiempo real.
¿Cómo habilito HA para una máquina virtual?
Proxmox HA no será aplicable a menos que la máquina virtual esté bajo la gestión de HA.
Para colocar una máquina virtual bajo la gestión de HA, selecciona la máquina virtual y elige “Gestionar HA” en el menú desplegable “Más▼” en la parte superior derecha. Selecciona el ID del grupo HA que configuraste anteriormente desde el grupo, establece el estado deseado como “iniciado” y luego haz clic en el botón Agregar.
Esta máquina virtual ahora está bajo el control de HA.
El alcance de la operación de HA varía según el hipervisor. En VMware, cuando HA está habilitado en un centro de datos virtual, afecta a todas las máquinas virtuales en el centro de datos virtual, mientras que en XenOrchestra, solo afecta a las máquinas virtuales en el pool que tienen HA habilitado y configurado como “reiniciar”.
Relación entre el reinicio de mantenimiento de nodos (hosts) en un grupo HA y las máquinas virtuales
Cuando un nodo que forma parte de un grupo HA se reinicia por mantenimiento (no debido a una falla inesperada), el comportamiento de las máquinas virtuales será diferente dependiendo de si están bajo la gestión de HA o no.
Máquinas virtuales bajo gestión de HA | Migración en vivo a otra máquina |
---|---|
Máquinas virtuales no gestionadas por HA | Se apaga automáticamente y permanece apagada tras el reinicio |
columna
Limitaciones de la función HA
Las funciones de HA tienen limitaciones y pueden surgir problemas al usar HA.
- Reinicio inesperado de una máquina virtual
- Corrupción de datos de la máquina virtual
En pocas palabras, HA es la capacidad de iniciar una máquina virtual desde otro nodo cuando un nodo falla, pero esto es desde una perspectiva divina, y la lógica del software real debe implementarse de manera completamente diferente.
Primero, no es posible definir estrictamente qué constituye una “falla” en un nodo específico entre los tres nodos (es decir, nodo A, nodo B y nodo C). HA se logra mediante la coordinación de cada nodo con los demás.
Cuando el nodo A pierde comunicación con el nodo B, no está claro si ha ocurrido una falla en el nodo B o si simplemente se ha perdido la comunicación entre el nodo A y el nodo B. Si el nodo A puede comunicarse con el nodo C desde su perspectiva, es concebible que haya ocurrido una falla en el nodo B.
Sin embargo, si los datos de las máquinas virtuales alojadas en el nodo B se actualizan constantemente en el almacenamiento compartido, el nodo B puede estar completamente aislado.
En el ejemplo anterior, si los nodos A y C están comunicándose, hay una alta probabilidad de que el nodo B haya fallado. Por lo tanto, los nodos A y C intentarán iniciar las máquinas virtuales alojadas en el nodo B por sí mismos.
Sin embargo, el nodo B puede no haber fallado, sino que simplemente estar aislado. Si un nodo determina que está aislado, apagará inmediatamente las máquinas virtuales que aloja en preparación para que los nodos A y C puedan iniciarse, lo que causa el reinicio inesperado mencionado anteriormente.
Entonces, ¿qué pasa si el nodo B no se apaga?
Si la misma máquina virtual se ejecuta en dos lugares, el nodo B y otro nodo, el disco virtual de la máquina virtual se corromperá en un instante, lo que llevará a la destrucción de los datos de la máquina virtual mencionada anteriormente.
Entonces, tu elección es reiniciar o destruir tus datos.
HA necesita coordinarse entre cada nodo para determinar si está caído, ha perdido comunicación o está lento.
Si las dos fallas anteriores son mutuamente excluyentes, lo que deseas evitar es la corrupción de datos, así que apaga inmediatamente.
Esta decisión se toma en intervalos, y Proxmox lo hace cada 2 minutos. Si no hay respuesta durante 2 minutos, se determina que “el host ha fallado”. Por lo tanto, como mínimo, el tiempo de inactividad será de 2 minutos + el tiempo que tarda la máquina virtual en iniciarse (en realidad, llevará más tiempo).
Sin embargo, si la velocidad del nodo se ralentiza, la memoria se intercambia, la recuperación de memoria por el controlador de ballooning causa una ralentización temporal, o la escritura en el almacenamiento se vuelve lenta, los dos minutos pueden pasar rápidamente y el apagado puede no ser posible a tiempo. Dado que lo que debe protegerse son los datos, el sistema utiliza automáticamente un WatchDog Timer o similar, y las nubes privadas se ejecutan en hardware equipado con un dispositivo que puede reiniciar automáticamente el kernel incluso si el kernel del host deja de responder.