Información sobre la reparación de máquinas virtuales para la alta disponibilidad


En este documento se describe cómo un grupo de instancias gestionado (MIG) proporciona alta disponibilidad a tu aplicación reparando las VMs que han fallado o no están en buen estado del grupo.

Un MIG mantiene tu aplicación activa y disponible manteniendo de forma proactiva el número de VMs activas del grupo. Si una VM del grupo deja de funcionar, el MIG la repara recreándola de las siguientes formas para que vuelva a estar disponible:

  • Reparar automáticamente una VM que ha fallado: si una VM falla o se elimina por una acción que no ha iniciado el MIG, este la reparará automáticamente. En este documento, consulta Reparar automáticamente una máquina virtual que ha fallado.
  • Reparar una VM en función de una comprobación de estado de la aplicación: una forma opcional de mejorar aún más la alta disponibilidad reparando las VMs incorrectas. Si configuras una comprobación del estado basada en aplicaciones y tu aplicación no supera la comprobación, el MIG marcará esa VM como no operativa y la reparará. La reparación de una VM basada en una comprobación de estado de la aplicación también se denomina reparación automática. En este documento, consulta Reparar una VM en función de una comprobación del estado de la aplicación.

Reparar automáticamente una máquina virtual que ha fallado

Si una VM de un MIG falla, el MIG la repara automáticamente recreándola. Una máquina virtual puede fallar por los siguientes motivos:

Si el MIG detiene una VM de forma intencionada (por ejemplo, cuando un escalador automático elimina una VM), el MIG no la reparará.

Reparar una VM en función de una comprobación de estado de la aplicación

Además de reparar automáticamente las VMs que han fallado, puede que quieras reparar una VM si la aplicación que se ejecuta en ella se bloquea, falla o se queda sin memoria. Para asegurarte de que la aplicación responde según lo esperado, puedes configurar una comprobación de estado basada en aplicaciones.

Una comprobación de estado basada en aplicaciones verifica periódicamente que tu aplicación en cada VM de un MIG responde según lo esperado. Si la aplicación de una máquina virtual no responde, el MIG marca esa máquina virtual como en mal estado. A continuación, el MIG repara la máquina virtual que no está en buen estado. La reparación de una VM basada en una comprobación de estado de la aplicación se denomina reparación automática.

Para asegurarse de que el MIG siga ejecutando un subconjunto de sus VMs, el grupo nunca corrige automáticamente todas sus VMs simultáneamente. Esto resulta útil si, por ejemplo, una comprobación del estado incorrecta activa reparaciones innecesarias, una regla de cortafuegos mal configurada impide que una comprobación del estado sondee la VM o hay problemas de conectividad de red o de infraestructura que identifican erróneamente una VM en buen estado como una VM en mal estado. Sin embargo, si un MIG zonal solo tiene una VM o un MIG regional solo tiene una VM por zona, el MIG reparará automáticamente estas VMs cuando dejen de estar en buen estado.

Política de reparación automática

Cada MIG tiene una política de reparación automática en la que puedes configurar una comprobación de estado y también establecer un retraso inicial. El retraso inicial es el tiempo que tarda una nueva máquina virtual en inicializarse y ejecutar su secuencia de comandos de inicio. El temporizador de retardo inicial se inicia cuando el MIG cambia el campo currentAction de la VM a VERIFYING. Durante el periodo de retardo inicial de una VM, el MIG ignora las comprobaciones del estado fallidas porque la VM puede estar en el proceso de inicio. De esta forma, se evita que el MIG vuelva a crear una VM prematuramente. Si la comprobación del estado recibe una respuesta correcta durante el retraso inicial, significa que el proceso de inicio se ha completado y que la VM está lista.

Para obtener más información sobre cómo configurar una política de recuperación automática, consulta Configurar una comprobación del estado de la aplicación y la recuperación automática.

Monitorizar los cambios de estado de las aplicaciones

Si has configurado una comprobación de estado basada en aplicaciones en tu MIG, puedes comprobar el estado de cada VM del MIG. Para obtener más información, consulta Comprobar si las VMs están en buen estado.

También puedes monitorizar los cambios en el estado de salud de una VM. Para obtener más información, consulta Monitorizar los cambios de estado.

Precios

Cuando configuras una comprobación del estado basada en aplicaciones, Compute Engine escribe de forma predeterminada una entrada de registro cada vez que cambia el estado de una instancia gestionada. Cloud Logging ofrece una asignación gratuita al mes. Después de eso, el precio de Logging se calcula en función del volumen de datos. Para evitar costes, puedes inhabilitar los registros de cambios de estado de salud.

Comportamiento durante una reparación

En las siguientes secciones se explica el comportamiento durante las reparaciones automáticas y las reparaciones basadas en la comprobación del estado de la aplicación.

Novedades sobre la reparación

De forma predeterminada, durante una reparación, un MIG vuelve a crear una VM usando la plantilla de instancia original que se usó para crear la VM. Por ejemplo, si se ha creado una VM con instance-template-a y, a continuación, actualizas el MIG para que use instance-template-b en el modo OPPORTUNISTIC, el MIG seguirá usando instance-template-a para recrear la VM.

Si quieres que tu MIG use la plantilla de instancia y las configuraciones por instancia más recientes durante la reparación de las VMs, puedes configurar el grupo para que aplique las actualizaciones de configuración durante las reparaciones.

Gestión de discos

Durante una reparación, al recrear una máquina virtual a partir de su plantilla, el MIG gestiona los diferentes tipos de discos de forma distinta. Algunas configuraciones de disco pueden provocar que se produzca un error en la reparación al intentar recrear una VM.

Tipo de disco autodelete Comportamiento durante una reparación
Nuevo disco persistente true El disco se vuelve a crear según lo especificado en la plantilla de la instancia. Los datos que se hayan escrito en ese disco se perderán cuando se vuelvan a crear el disco y su VM.
Nuevo disco persistente false El disco se conserva y se vuelve a adjuntar cuando el MIG vuelve a crear la VM.
Disco persistente existente true Se elimina el disco antiguo. La operación de recreación de la VM falla porque Compute Engine no puede volver a adjuntar un disco eliminado a la VM. Sin embargo, en el caso de los discos de lectura y escritura, un MIG solo puede tener una VM, ya que un único disco persistente no se puede conectar a varias VMs en el modo de lectura y escritura.
Disco persistente existente false El disco antiguo se vuelve a adjuntar tal como se especifica en la plantilla de la instancia. Los datos del disco se conservan. Sin embargo, en el caso de los discos de lectura y escritura, un MIG solo puede tener una VM, ya que un único disco persistente no se puede conectar a varias VMs en el modo de lectura y escritura.
Nueva SSD local N/A El disco se vuelve a crear según lo especificado en la plantilla de la instancia. Los datos de un SSD local se pierden cuando se vuelve a crear o se elimina una VM.

La MIG no vuelve a asociar los discos que no se especifican en la plantilla de instancia o en las configuraciones por instancia, como los discos que hayas asociado a una VM manualmente después de crearla.

Para conservar los datos importantes que se hayan escrito en el disco, toma precauciones como las siguientes:

Si tus VMs tienen ajustes importantes que quieres conservar, Google también te recomienda que uses una imagen personalizada en tu plantilla de instancia. Una imagen personalizada contiene los ajustes personalizados que necesites. Cuando especificas una imagen personalizada en tu plantilla de instancia, el MIG vuelve a crear las VMs con la imagen personalizada que contiene los ajustes personalizados que necesitas.

Desactivar las reparaciones

Puedes desactivar las reparaciones que realiza automáticamente un MIG. Si desactivas las reparaciones en un MIG, se desactivarán las reparaciones de las VMs con errores y las reparaciones basadas en una comprobación del estado de la aplicación. También puedes desactivar por separado las reparaciones basadas en una comprobación del estado de la aplicación.

Te recomendamos que desactives las reparaciones en un MIG en los siguientes casos:

  • Para investigar o depurar una máquina virtual que ha fallado sin que se interrumpa la reparación automática.
  • Para reparar las VMs manualmente o implementar tu propia lógica de reparación.
  • Para evitar que se vuelvan a crear las VMs mientras se está ejecutando un trabajo por lotes.
  • Para observar los estados de salud de las aplicaciones sin reparar una VM en mal estado.
  • Para ajustar la configuración de las comprobaciones del estado sin activar reparaciones por error.

Si desactivas las reparaciones, el MIG no hará nada si una VM del grupo falla o deja de estar en buen estado. Las VMs con errores y en mal estado siguen estando en el grupo y el número objetivo de VMs en ejecución en el MIG (targetSize) sigue siendo el mismo. Sin embargo, si has definido un límite de tiempo para las VMs, cuando las VMs con errores y en mal estado alcancen ese límite, el MIG eliminará automáticamente esas VMs y el targetSize disminuirá.

Si el tipo de actualización del MIG es proactive y hay disponible una nueva plantilla de instancia, el MIG actualiza las VMs con errores y en mal estado recreándolas con la nueva plantilla. Si no quieres actualizar las VMs con errores y en mal estado, debes definir el tipo de actualización como opportunistic.

Si has configurado una comprobación de estado basada en aplicaciones, desactivar las reparaciones no afectará al funcionamiento de la comprobación de estado. La comprobación del estado sigue analizando la aplicación y proporcionando los estados de salud de la VM. De esta forma, puedes monitorizar los estados de salud de las aplicaciones y, al mismo tiempo, evitar que el MIG repare las VMs que no estén en buen estado.

Si el MIG forma parte de un servicio de backend de un balanceador de carga y desactivas las reparaciones en el MIG, las VMs que hayan fallado y no estén en buen estado no responderán a la comprobación de estado del balanceador de carga. Si aumenta el número de VMs con errores o en mal estado en el MIG, el balanceador de carga podría reducir el tráfico a ese MIG o cambiar a otro backend, si está configurado. Cuando las VMs que han fallado vuelvan a estar disponibles, el balanceador de carga reanudará el tráfico al MIG.

Para obtener más información, consulta Desactivar las reparaciones en un MIG.

Siguientes pasos