vMotion le permite migrar una máquina virtual en vivo de un servidor físico a otro. Esto significa que no necesita tiempo de inactividad para realizar el mantenimiento del host de vSphere y que también es posible, sin tiempo de inactividad, equilibrar las máquinas virtuales en un clúster sin necesidad de apagar ninguna de las máquinas virtuales.
VMware también admite vMotion de larga distancia y vMotion entre vCenters, lo que le permite migrar cargas de trabajo a otro centro de datos o a la nube. Esto permite evitar desastres cuando una amenaza es inminente, ejecutar cargas de trabajo en una zona horaria específica y usar el estallido de la nube si comienza a quedarse sin recursos.
Antes de implementar vMotion, asegúrese de tener suficiente memoria y ancho de banda de red para admitir el proceso de migración, de que sus máquinas virtuales estén optimizadas para la migración en tiempo real y de que sepa cómo funciona la función en toda la infraestructura.
Requisitos de migración en vivo de vMotion
Casi todas las ediciones de vSphere contienen vMotion; solo vSphere Essentials kit no admite la función. vMotion es un proceso entre dos hosts ESXi, pero se inicia a través de vCenter, por lo que requiere una licencia de vCenter.
El resto de requisitos, como ancho de banda de red y RAM, no son muy exigentes. La migración se realiza entre dos hosts ESXi que deben tener una interfaz VMkernel con la función vMotion habilitada y pueden comunicarse entre sí a través de una conexión de red.
Para las máquinas virtuales que decida migrar, el requisito es que permanezcan en la misma red de capa 2. Hay un requisito de ancho de banda mínimo de 250 Mbps por migración de vMotion, pero es mejor tener más ancho de banda disponible.
El ancho de banda más disponible significa que puede realizar migraciones más rápido, lo cual es lo más importante con máquinas virtuales con grandes cantidades de RAM.
Cómo funciona vMotion
Para mover la máquina virtual a otro equipo físico, debe mover el contenido de la memoria y cambiar cualquier flujo de trabajo de procesamiento al otro equipo. vCenter inicia vMotion e inicia la migración después de una comprobación de compatibilidad con el host ESXi de origen y destino.
El proceso comienza con una copia de memoria inicial a través de la red habilitada para vMotion. La siguiente imagen muestra dónde debe copiar 16 GB de RAM para una máquina virtual con la cantidad de memoria requerida.
Idealmente, este paso sería instantáneo. Pero se tarda varios segundos en copiar 16 GB, y durante este proceso, algunas páginas de memoria en la memoria de origen cambian. El VMkernel realiza un seguimiento de las páginas que han cambiado y, a continuación, las copia en el host de destino.
Considere que esto sería otro gigabyte de RAM. Mientras copia esos 16 GB, la memoria cambia de nuevo. Esto se convierte en un proceso iterativo, como se muestra en la imagen de abajo.
Después de varias iteraciones, debería haber copiado la mayor parte de la memoria y queda una cantidad que se puede copiar en menos de 500 milisegundos. Si puede llegar a ese punto debido al rápido cambio de RAM de origen, la máquina virtual disminuirá la velocidad en la fuente con Aturdimiento Durante el envío de páginas para que sea posible copiar toda la memoria.
Suficiente ancho de banda es el requisito más importante para las máquinas virtuales grandes. Por ejemplo, copiar una máquina virtual de 768 GB a través de un enlace de 1 Gbps lleva demasiado tiempo llegar a un punto de conmutación estable.
Es una buena idea tener una red vMotion dedicada con 10 Gbps o más y múltiples adaptadores de red. También se recomiendan varios puertos VMkernel si realiza varias migraciones simultáneamente o migra máquinas virtuales grandes.
Una vez que copia la memoria, el procesamiento de instrucciones se detiene en el host ESXi de origen y continúa en el host ESXi de destino. Desde la perspectiva del sistema operativo invitado, no sucedió nada porque todas las instrucciones se procesan, pero en otro host.
Necesita acción en la red porque el tráfico de red debe enviarse al host ESXi de destino, no al host ESXi de origen. El host ESXi de destino envía un paquete de protocolo de resolución de direcciones invertida al conmutador físico, lo que desencadena el proceso de aprendizaje de MAC para listar la dirección MAC de la máquina virtual en el puerto de salida donde se conecta el host ESXi.
Ahora la carga de trabajo se migra sin problemas, y puede decir con seguridad que puede mover cualquier aplicación habilitada para TCP sin interrupción.
Mejoras y consideraciones
A lo largo de los años, la mayoría de las mejoras de vMotion se implementaron debido al aumento constante de las especificaciones de máquinas virtuales. Este es el caso de vSphere 7, donde en la actualización 2 puede configurar una máquina virtual con un máximo de 896 VCPU y 24 TB de RAM.
VMware realizó mejoras importantes en vSphere 7 U1 en la forma en que el VMkernel inicia el proceso que rastrea qué páginas de memoria cambian durante el proceso de copia de memoria.
La función de instalación de seguimiento de páginas sueltas elimina la necesidad de detener todas las VCPU al insertar un trazador de páginas. Dedica una vCPU a realizar este proceso para que todas las demás VCPU puedan continuar ejecutando instrucciones de SO invitado.
Otra mejora es que el proceso de VM ya está conmutado antes de mover toda la memoria a su destino. La memoria del otro host se marca como remota y se obtiene más tarde.
Si diseña y dimensiona correctamente sus hosts y componentes de red, vMotion no presenta grandes desventajas.