lunes, 29 de septiembre de 2008

Enhanced VMotion Compatibility

A lo largo de los ultimos años os habréis visto en la necesidad de ampliar vuestra infraestructura virtual con nuevos servidores y ver que al incluir una nueva generación de procesadores no podemos hacer VMotion con los antiguos. El problema de la compatibilidad con VMotion viene dado por la incorporación de nuevos juegos de instrucciones en cada generación de procesadores que hacen que una maquina virtual no deba ser migrada de un procesador a otro de una generación anterior para garantizar su estabilidad.

Por ejemplo, si una aplicación esta ejecutándose en un servidor con procesadores basados en arquitectura Penryn que soportan el juego de instrucciones SSE4.1 y permitimos migrarla a un servidor donde la arquitectura del procesador es Merom-SSSE3, la aplicación no se da cuenta de esta migración y al intentar hacer uso de alguna instrucción SSE4.1 para optimizar su ejecución generara una excepción y provocara que el sistema deje de funcionar.



Las mascaras para hacer compatibles procesadores de distinta generación Intel Prescott-SSE3, Merom-SSSE3, Penryn-SSE4.1 o Nehalem-SSE4.2 nunca han estado soportadas por VMware como indican en los KB1991(Intel) y KB1992(AMD)

Para remediar este problema los nuevos procesadores vienen con una funcionalidad que permite al VMM ocultar características del procesador, modificando las respuestas de la instrucción CPUID, para hacerlos compatibles con otros procesadores mas antiguos. Esta tecnología se conoce con el nombre de FlexMigration en Intel o Extended Migration en AMD.

La funcionalidad que utiliza esta tecnología en VI3 se encuentra disponible a partir de ESX3.5U2 y VC2.5U2 bajo el nombre de EVC o Enhanced VMotion Compatibility. Cuando habilitamos EVC en cluster de ESX lo que estamos haciendo es decir al VMM que muestre a las maquinas virtuales el conjunto de instrucciones mas bajo que soportan todos los procesadores del cluster, por defecto este juego de instrucciones es el de la arquitectura Merom-SSE3 en el caso de Intel, de esta forma todos los procesadores presentan las mismas características de este procesador base.

Los servidores con procesadores que no tengan las características del procesador base o no soporten FlexMigration no podrán ser agregados a un cluster de EVC.

Si al agregar un host a un cluster de EVC os da un aviso de que el servidor no puede ser agregado porque no está soportado por EVC debéis revisar lo siguiente:

  • Los procesadores del servidor soportan Intel FlexMigration o AMD-V Extended Migration o son del tipo base definido.
  • En la BIOS tenéis habilitadas las funcionalidades Intel VT Virtualization Technology y XD Execute Disable Bit o equivalentes en AMD-V.
  • Las maquinas virtuales del servidor que queréis añadir están apagadas.
  • Todos los servidores del cluster se encuentran en la versión ESX3.5 U2 o superior y están manejados por VC2.5 U2.

Esta tecnología no permite hacer compatibles procesadores de distintos fabricantes AMD/Intel. La compatibilidad de VMotion a nivel de fabricante queda de la siguiente manera:

  • Intel Merom Xeon® 3200, Intel Xeon® 5300, Intel Xeon® 7300 o posteriores.
  • AMD Second Generation Opteron (Rev-E/F), AMD Third Generation Opteron (Barcelona) o posteriores.

Guía de referencia de VMotion:
http://www.vmware.com/files/pdf/vmotion_info_guide.pdf

Lista de procesadores compatibles:
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003212

No hay comentarios: