La migración en vivo , también llamada migración , se refiere al proceso de trasladar una máquina virtual (VM) en ejecución entre diferentes máquinas físicas de manera que la VM y las aplicaciones que se ejecutan en ella no se vean afectadas en su mayor parte. La memoria, el almacenamiento y la conectividad de red de la máquina virtual se transfieren desde la máquina anfitriona original a la de destino. El tiempo que transcurre entre la detención de la VM o la aplicación en el origen y su reanudación en el destino se denomina "tiempo de inactividad" o "apagón". [ 1 ]
Conceptos básicos de la migración en vivo
La migración en vivo requiere la transferencia del estado completo de la máquina virtual desde el host de origen al host de destino. Este estado incluye el estado de todos los componentes de la máquina virtual, por ejemplo, el contenido de los registros de las CPU virtuales (vCPU). El estado de la máquina virtual no es estable hasta que se pausa. Por ejemplo, mientras las vCPU no se hayan pausado, el estado de los registros virtuales puede estar cambiando.
La forma más sencilla de implementar la migración en vivo es pausar la máquina virtual, serializar y enviar el estado al host de destino, y reanudar la máquina virtual en dicho host. La serialización y el envío de ciertos estados, como el estado de la memoria principal de la máquina virtual o de los dispositivos de almacenamiento conectados localmente, pueden ser procesos lentos.
Migración en vivo de la memoria
Si se debe copiar todo el contenido de la memoria principal de la máquina virtual mientras esta se encuentra en pausa, dicha pausa se prolongará durante un tiempo considerable, dependiendo del tamaño de su memoria principal. Existen diversas técnicas para reducir el tiempo de inactividad en máquinas virtuales con gran cantidad de memoria.
Migración de memoria previa a la copia
La migración de memoria previa a la copia requiere que el hipervisor rastree en qué páginas está escribiendo el invitado. Con esta capacidad, es posible la siguiente estrategia: [ 2 ]
- Copia todas las páginas de memoria principal de la máquina virtual al host de destino.
- Antes de copiar cualquier página en particular, realice un seguimiento de cualquier escritura posterior en la página (por ejemplo, protegiendo contra escritura la entrada SLAT correspondiente).
- Una vez copiadas todas las páginas, inicie una nueva pasada de copia, pero copie únicamente las páginas en las que se haya escrito desde la última vez que se copiaron al host de destino (es decir, las páginas que estén "modificadas").
- Repita el paso 3 hasta que el conjunto de páginas sucias restantes sea pequeño.
- Pausar la máquina virtual y transferir las páginas modificadas restantes al host de destino.
Esta es la estrategia básica de pre-copia. Se pueden aplicar otras optimizaciones, como no reenviar páginas que probablemente se volverán a ensuciar rápidamente. [ 3 ]
Por lo general, el sistema invitado puede escribir en la memoria más rápido de lo que se puede copiar al sistema de destino, lo que significa que la precopia podría no converger nunca a un conjunto de datos modificados pequeño. Si el hipervisor no limita las escrituras en la memoria del sistema invitado, el tiempo de inactividad puede seguir siendo prolongado, incluso con la migración de memoria previa a la copia.
Migración de memoria posterior a la copia
La migración de memoria posterior a la copia es una estrategia para transferir la memoria principal de una máquina virtual fuera de un período de inactividad. Puede complementar la migración previa a la copia al reducir el tiempo de pausa cuando esta última no converge en un pequeño conjunto de páginas modificadas.
Requiere que el hipervisor intercepte los accesos a la memoria del invitado, lo que permite que la máquina virtual se reanude en el host de destino sin una copia completa de la memoria. Los accesos a páginas que aún no están presentes en el destino (por ejemplo, páginas modificadas durante la precopia) son obtenidos bajo demanda por el hipervisor. [ 4 ]
Para garantizar que todas las páginas modificadas se transfieran finalmente, un hipervisor que implemente la migración en vivo posterior a la copia también recuperará las páginas modificadas pendientes en segundo plano, simultáneamente con la recuperación bajo demanda de las páginas modificadas.
La transferencia posterior a la copia transfiere cada página solo una vez, mientras que la transferencia previa a la copia puede reenviar las páginas varias veces si se modifican repetidamente. Sin embargo, la transferencia previa a la copia mantiene un estado de máquina virtual consistente en el origen, mientras que la transferencia posterior a la copia divide el estado entre el origen y el destino. Como resultado, los fallos durante la transferencia posterior a la copia no se pueden recuperar, a diferencia de la transferencia previa a la copia, que se puede reiniciar. [ 5 ]
Administradores de máquinas virtuales con soporte para migración en vivo
- Virtuoso
- Xen desde la versión 2.0, 2004 para invitados PV; desde la versión 3.1, 18 de mayo de 2007 para invitados HVM [ 6 ]
- OpenVZ
- Servidor en la nube Parallels
- Particiones de carga de trabajo
- Máquinas virtuales de integridad
- KVM [ 7 ] [ 8 ] desde febrero de 2007, [ 9 ] con diferentes técnicas. [ 10 ]
- Servidor Oracle VM para x86
- Servidor Oracle VM para SPARC
- OVirt
- Virtualización de Red Hat
- Hipervisor POWER (PHYP)
- VMware ESXi
- Movilidad de particiones en vivo de IBM , desde 2007
- Servidor Hyper-V 2008 R2 [ 11 ]
- VirtualBox [ 12 ]
- Entorno virtual de Proxmox [ 13 ]
Plataformas en la nube con soporte para migración en vivo
Sistemas que proporcionan migración en vivo de software
Véase también
Referencias
- ↑ Andrei-Cristian Trăistaru (27 de mayo de 2025). «Un estudio exhaustivo sobre la migración en vivo de máquinas virtuales y técnicas para la optimización de la migración». 25.ª Conferencia Internacional sobre Sistemas de Control y Ciencias de la Computación (CSCS) de 2025. pp. 266–273 . doi : 10.1109/CSCS66924.2025.00047 . ISBN 979-8-3315-7343-0.
- ↑ Clark, Christopher; et al. Migración en vivo de máquinas virtuales . NSDI'05.
- ↑ Nathan, Senthil; et al. Evaluación comparativa del rendimiento de las migraciones de máquinas virtuales basada en la disponibilidad de recursos . ICPE'13. doi : 10.1145/2479871.2479932 .
- ↑ Hines, et al, Migración en vivo posterior a la copia de máquinas virtuales
- ↑ "Proceso de migración en vivo durante eventos de mantenimiento" . Documentación de Google Cloud . Consultado el 27 de abril de 2026.
- ↑ "Lista de correo del proyecto Xen" .
- ↑ "Migración - KVM" .
- ↑ "Capítulo 4. Migración en vivo de KVM en Red Hat Enterprise Linux 6" .
- ↑ "Versión KVM-15. LWN.net" .
- ↑ "Daniel P. Berrangé. Análisis de técnicas para garantizar la finalización de la migración con KVM" .
- ↑ Windows Server 2012 Unleashed . Sams. 16 de septiembre de 2012. ISBN 978-0-672-33622-5.
- ↑ "Manual de VirtualBox - Teletransporte" .
- ↑ "Máquinas virtuales Qemu/KVM - Proxmox VE" .
Enlaces externos
- Artículo práctico sobre la migración a Xen
- Puntos de control y migración en vivo de OpenVZ
- Migración en vivo en KVM
- VMware VMotion
- Microsoft: Guía paso a paso para la migración en vivo
- Documento técnico de Microsoft: Descripción general y arquitectura de la migración en vivo
- Virtualización