lunes, 30 de enero de 2012

Como funciona vMotion y las mejoras incluidas en vSphere 5


Hola a todos, en el siguiente post hablaremos un poco sobre vMotion y su funcionamiento.  Además hablaremos de las novedades de vMotion incluidas en vSphere 5, las cuales no han sido muy promocionadas al lado de otros anuncios, pero que claramente mejoran el funcionamiento de esta funcionalidad esencial en un entorno VMware.

vMotion es una tecnologia que permite la migración "en caliente" de una MV desde un host a otro, sin un impacto apreciable por el usuario final.  Además, vMotion es la pieza clave de otras funcionalidades como DRS y DPM.

Como funciona?
Al usar vMotion para mover una MV de un host a otro se transfiere el estado de ejecución completo de la MV desde el host de origen al host de destino, utilizando una conexión de red de alta velocidad.  El estado de ejecución consiste de 3 componentes principales:

Estado de dispositivos virtuales: Incluyendo el estado de la CPU, red, adaptadores de disco, etc.  vSphere puede serializar el estado de los dispositivos virtuales, lo cual generalmente tiene un tamaño menor a 8MB.  En algunos casos puede crecer por sobre los 128MB, lo cual de igual modo puede ser transferido muy rapidamente en una red de alta velocidad.

Conexiones de dispositivos de red y SCSI: La arquitectura de red virtual de vSphere centrada en los vSwitch y en las NIC virtuales (vNIC), permite que sea facil preservar las conexiones de red existentes, incluso despues que una MV es migrada a otro host.  Hay que recordar que cada vNIC tiene su propia MAC Address que es independiente de la MAC Address de las NIC fisicas, por lo que al mover una MV de un host a otro, la conexión a red permanecerá activa, mientras el host de origen y el host de destino se encuentren en la misma subred.  Una vez que la migración se completa, el host de destino envia un paquete RARP al Switch fisico para asi asegurar que el Switch actualice sus tablas con el nuevo puerto de Switch utilizado por la MV migrada.
Por otro lado, el uso de almacenamiento compartido como SAN o NAS hace que sea muy facil transferir el estado de los discos

La memoria fisica de la máquina virtual: Este es por lejos el componente de mayor tamaño que necesita ser transferido durante una migración con vMotion.  Hay que recordar que una MV puede llegar a tener hasta 1TB de memoria asignada, por lo que la eficiencia en la transferencia de la memoria es un punto critico en vMotion.
Para permitir que la MV continue ejecutandose durante la transferencia de la memoria, y que este proceso sea transparente para el usuario, el proceso deberá llevarse a cabo en multiples fases:

  • Fase 1: Seguimiento de la MV.  Durante esta etapa, se realiza un seguimiento de las paginas de memoria de la MV, para asi poder registrar cualquier modificacion realizada en la MV durante la migración.  Este seguimiento puede causar una baja considerable en el rendimiento de la MV.  Este impacto es proporcional al tamaño de la memoria de la MV.
  • Fase 2: Pre-copia. Debido a que la MV continua en ejecución y modificando el estado de la memoria en el host de origen durante esta fase, el contenido de la memoria de la MV es copiado desde el host de origen al host de destino en un proceso iterativo.
    Con la primera iteracion se copia todo el contenido de la memoria.  En las siguientes iteraciones, se copian solo las paginas que fueron modificadas durante dicho periodo.  El numero de iteraciones y de paginas de memoria copiadas durante cada iteracion, depende de que tan activamente es utilizada la memoria debido a las operaciones realizadas dentro de la MV.
    Durante esta fase, el impacto mayor es en el uso de la red de vMotion, sin un uso significativo de ciclos de CPU en la MV.  El impacto en la performance de la MV es menor reduciendo la velocidad de escritura de paginas de memoria.
  • Fase 3: Switchover. Esta es la fase final del proceso de vMotion, donde la maquina virtual es pausada momentaneamente en el host de origen, para asi poder copiar los ultimos cambios en la memoria al host de destino, y que finalmente la maquina virtual retome sus operaciones en el host de destino.  Aunque la duración de esta fase es normalmente de menos de un segundo, es la fase en que más probablemente se percibirá un impacto en la performance de la MV, con un aumento de la latencia abrupto y momentaneo.  El alcance del impacto depende de varios factores, como la infraestructura de red, el almacenamiento, el hardware utilizado en los hosts, version de vSphere, etc.


Mejoras en vSphere 5
vSphere 5 trae importantes mejoras en vMotion, lo cual mejora considerablemente la performance.

Uso de multiples NICs para vMotion
En vSphere permit utilizar multiples adaptadores de red para vMotion, reduciendo dramaticamente los tiempos de migración.


Con esta funcionalidad, el VMkernel balanceará en forma transparente el trafico de vMotion entre todas las vmknics configuradas para vMotion, de manera de saturar todas las conexiones.  Incluso durante una unica operación de vMotion, el VMkernel utiliza todos los adaptadores de red disponibles para distribuir el trafico de vMotion.

En algunas mediciones se han encontrado mejoras de más de un 30% en la performance de las operaciones de vMotion.

Metro vMotion
En vSphere 5 se introduce una nueva caracteristica de Metro vMotion que es Latency-Aware, que provee de mejor performance en redes de alta latencia, y además aumenta el limite de latencia en redes de vMotion de 5 milisegundos a 10 milisegundos.

Stun During Page Send (SDPS)
vSphere incluye nuevas mejoras para asegurar que vMotion no fallará debido a problemas en la copia de la memoria.  Recordemos que el proceso de transferencia del contenido de la memoria durante una operacion de vMotion incluye un proceso iterativo.  En la mayoria de los casos, una iteracion debiera tomar menos tiempo que la iteracion anterior, no obstante, en algunos casos donde la MV modifica la memoria más rapido de lo que puede ser transferida (por ejemplo por limitaciones en la red de vMotion), resultaba en una operacion fallida de vMotion en vSphere 4.1 y versiones anteriores, debido a que el proceso iterativo no generaba ningun progreso en la transferencia.

Ante la presencia de estos casos, las mejoras introducidas en vSphere 5 reducen la velocidad de la máquina virtual, asegurandose que la tasa de modificación de la memoria sea menor que la tasa de transferencia, evitando asi fallas de vMotion.

Otras mejoras en la performance de vMotion
vSphere 5 incluye otras mejoras en la performance de las operaciones de vMotion:

  • Mejoras significativas para minimizar el impacto de la tarea de seguimiento de los cambios en la memoria.
  • Numerosas mejoras para reducir el tiempo necesario para que la MV retome un nivel normal de performance despues de una operacion de vMotion.
  • Optimizaciones que permiten que vMotion sature en forma efectiva un ancho de banda de 10GbE durante una migración con vMotion.

Espero les haya resultado interesante.  Si tienen cualquier pregunta, no duden en dejar sus comentarios!

0 comentarios:

Publicar un comentario