Migración en vivo

Compute Engine ofrece migración en vivo para mantener las instancias de la máquina virtual en ejecución, incluso cuando se produce un evento del sistema host, como una actualización de software o hardware. Compute Engine realiza migraciones en vivo de las instancias en ejecución a otro host en la misma zona y no requiere que las VM se reinicien. Esto le permite a Google realizar un mantenimiento integral para que la infraestructura esté protegida y sea confiable, sin interrumpir ninguna de las VM.

La migración en vivo mantiene las instancias en ejecución durante los siguientes eventos:

  • Mantenimiento y actualizaciones regulares de la infraestructura
  • Mantenimiento de las redes y la energía de los centros de datos
  • Hardware con fallas, como la memoria, la CPU, las tarjetas de interfaz de red, los discos, la alimentación y demás. Esto se hace de la mejor manera posible. Si un hardware falla por completo o impide la migración en vivo, la VM falla y se reinicia de forma automática, y se registra un hostError
  • SO host y actualizaciones de BIOS
  • Actualizaciones relacionadas con la seguridad, con necesidad de respuesta rápida
  • Cambios en la configuración del sistema, incluido el cambio del tamaño de la partición raíz del host, para el almacenamiento de la imagen y los paquetes del host

La migración en vivo no modifica atributos ni propiedades de la VM. El proceso de migración en vivo solo transfiere una VM en ejecución de una máquina host a otra dentro de la misma zona. No se modifica ninguna de las propiedades y los atributos de la VM, incluidas las direcciones IP internas y externas, los metadatos de instancias, los volúmenes y datos de almacenamiento en bloque, el estado del SO y de la aplicación, la configuración y las conexiones de red y demás.

¿Cómo funciona el proceso de migración en vivo?

Cuando Google migra una instancia de VM en ejecución de un host a otro, traslada el estado completo de la instancia del origen al destino de forma transparente para el SO invitado y cualquier persona que se comunique con él. Hay muchos componentes involucrados en hacer que esto funcione a la perfección, pero los pasos de alto nivel se ilustran a continuación:

Componentes de la migración en vivo

El proceso comienza con una notificación que dice que las VM se deben expulsar de su máquina host actual. La notificación puede comenzar con un cambio de archivo que indique que hay una versión nueva del BIOS disponible, una operación de hardware que programa el mantenimiento o una señal automática de una falla inminente del hardware.

El software de administración de clústeres de Google detecta de forma constante estos eventos y los programa en función de políticas que controlan los centros de datos, como las tasas de uso de capacidad y la cantidad de VM que un cliente puede migrar a la vez.

Después de que se selecciona una VM para la migración, Google notifica al invitado que la migración es inminente. Luego de un período de espera, se selecciona un host de destino y se le solicita que configure una nueva VM “de destino” vacía para recibir la VM “de origen” que se migra. La autenticación se usa para establecer una conexión entre el origen y el destino.

La migración de la VM consta de las siguientes tres etapas:

  • Durante el período de disponibilidad limitada previo a la migración, la VM aún se ejecuta en la fuente, mientras que la mayor parte del estado se envía del origen al destino. Por ejemplo, Google copia toda la memoria del invitado en el destino, mientras rastrea las páginas que se cambiaron en el origen. El tiempo dedicado al período de disponibilidad limitada previo a la migración depende del tamaño de la memoria del invitado y la velocidad a la que se cambian las páginas.

  • Durante el período sin disponibilidad, que es un momento muy breve en el que la VM no se ejecuta en ningún lugar y se detiene, y se envía todo el estado restante necesario para comenzar a ejecutarla en el destino. La VM entra en la etapa de sin disponibilidad cuando el estado enviado durante el período de disponibilidad limitada previo a la migración alcanza un punto de rendimientos decrecientes. Se usa un algoritmo que equilibra la cantidad de bytes de memoria que se envían con la velocidad a la que la VM invitada realiza los cambios.

  • Durante el período de disponibilidad limitada posterior a la migración, la VM se ejecuta en la VM de destino. La VM de origen está presente y podría proporcionar funcionalidad complementaria para la VM de destino. Por ejemplo, hasta que la estructura de red alcance la nueva ubicación de la VM de destino, la VM de origen proporciona servicios de desvío de paquetes desde y hacia la VM de destino.

Por último, la migración se completa y el sistema borra la VM de origen. Puedes ver que la migración tuvo lugar en tus registros de VM. La migración en vivo es un componente fundamental de nuestra plataforma, por lo que Google prueba la migración en vivo de forma continua con un alto nivel de análisis. Durante las pruebas, usamos la inserción de errores para activar fallas en todos los puntos interesantes del algoritmo de migración. Generamos fallas activas y pasivas para cada componente. Lograr este proceso complejo y de varias facetas requiere una integración profunda en toda la infraestructura y un conjunto potente de procesos de programación, organización y automatización.

Migración en vivo y GPU

Las instancias con GPU adjuntas no se pueden migrar en vivo. Se deben configurar para que finalicen y, de forma opcional, se reinicien. Compute Engine ofrece un aviso de 60 minutos antes de que finalice una instancia de VM con una GPU adjunta. Para obtener más información sobre estos avisos de eventos de mantenimiento, consulta Obtén avisos de migración en vivo.

Para obtener más información sobre el manejo del mantenimiento del host con GPU, consulta la sección sobre cómo manejar el mantenimiento del host en la documentación de las GPU.

Migración en vivo y SSD locales

Compute Engine también puede migrar en vivo instancias con SSD locales adjuntos, mediante el traslado de las VM junto con su SSD local a una máquina nueva antes de cualquier mantenimiento programado.

Migración en vivo para instancias interrumpibles

No puedes configurar las instancias interrumpibles para que se migren en vivo. El comportamiento de mantenimiento de las instancias interrumpibles siempre se configura como TERMINATE de forma predeterminada y no es posible cambiar esta opción. No es posible configurar la opción de reinicio automático para las instancias interrumpibles, pero puedes reiniciarlas de forma manual una vez que se hayan interrumpido.

Si necesitas cambiar la instancia a fin de que deje de ser interrumpible, desvincula el disco de arranque de la instancia interrumpible y adjúntalo a una instancia nueva que no esté configurada para ser interrumpible. También puedes crear una instantánea del disco de arranque y usarla para crear una instancia nueva que no sea interrumpible.

Próximos pasos

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Documentación de Compute Engine