Si estás familiarizado con la función vMotion, probablemente recuerdes que la práctica recomendada es usar los mismos procesadores en todos los servidores ESXi para la migración en vivo de VM. Si deseas usar servidores con diferentes modelos de procesador en el clúster, es mejor implementar procesadores de la misma generación. Además, el requisito estricto es que los procesadores deben ser fabricados por el mismo proveedor, como Intel o AMD. De lo contrario, es probable que obtengas un error al usar vMotion.
VMware diseñó su software vSphere teniendo en cuenta las situaciones que pueden ocurrir en el entorno de producción, incluida la expansión de un clúster agregando nuevos servidores con diferentes procesadores. Esta es una situación común: imagina que tienes un clúster con 5 nodos ESXi que compraste hace 3 años y necesitas agregar dos nodos más para ejecutar más VM para satisfacer las necesidades de tu negocio. Los procesadores que compraste hace 3 años ya no se producen y ya no se venden en el mercado; solo puedes comprar los procesadores de la familia más reciente. No hay motivo de preocupación, puedes usar clústeres de Alta Disponibilidad en vSphere, agregar nodos con diferentes procesadores y usar vMotion para la migración en vivo de máquinas virtuales entre hosts que tienen diferentes procesadores. Esto es posible gracias a la función de Enhanced vMotion Capability (EVC) que se puede habilitar para clústeres en VMware vSphere.
Principio de funcionamiento del modo EVC de VMware
Cada nueva generación de procesadores incluye nuevos conjuntos de instrucciones además de los conjuntos de instrucciones disponibles para la generación de procesadores anterior. Las nuevas características suelen mejorar el rendimiento o la seguridad de las aplicaciones en ejecución. Por ejemplo, los procesadores de la generación SkyLake tienen un nuevo conjunto de instrucciones (SGX) en comparación con los procesadores de la generación Haswell. Veamos los conjuntos de instrucciones de estas dos generaciones de procesadores y exploremos sus detalles.
Conjuntos de instrucciones de Haswell (2013):
x86-64, MMX, AES-NI, CLMUL, FMA3, SSE, SSE2, SSE3, SSSE3, SSE4, SSE4.1, SSE4.2, AVX, AVX2, TXT, VT-x, VT-d. Las instrucciones TSX están deshabilitadas mediante microcódigo para los procesadores Haswell debido a un error, excepto para Haswell-EX.
Conjuntos de instrucciones de SkyLake (2017):
x86-64, MMX, AES-NI, CLMUL, FMA3, SSE, SSE2, SSE3, SSSE3, SSE4, SSE4.1, SSE4.2, AVX, AVX2, TXT, TSX, SGX, VT-x, VT-d.
Esto significa que si selecciona el nivel de compatibilidad de Haswell en la configuración de EVC, el conjunto de instrucciones SGX debe estar deshabilitado (enmascarado, hablando más precisamente) en los servidores con procesadores Skylake y, como resultado, todos los procesadores trabajarán con los mismos conjuntos de instrucciones. Por lo tanto, tendrá un entorno homogéneo adoptado para la migración de VM mediante el uso de vMotion. La compatibilidad uniforme de vMotion se proporciona mediante la aplicación de la misma línea base de instrucciones CPUID para todas las VM en ejecución en hosts ESXi sin procesadores uniformes. CPUID puede considerarse una API para la CPU.
Por un lado, las ventajas del conjunto de instrucciones SGX se pierden cuando se habilita el modo Haswell EVC, pero por otro lado, el rendimiento de su clúster existente no se reduce si agrega hosts con procesadores más nuevos al clúster. Si agrega hosts ESXi con procesadores más antiguos al clúster existente, es posible que note una reducción de rendimiento en casos particulares.
Nota: SGX (Extensiones de Guardia de Software) le permite organizar fragmentos protegidos de código y datos (también llamados enclaves) para garantizar un alto nivel de protección de datos para aplicaciones de trabajo contra ataques de hackers. Los desarrolladores que utilizan instrucciones SGX para sus aplicaciones pueden proteger las aplicaciones contra acceso o modificación no permitidos incluso si la aplicación del atacante tiene privilegios más altos.
Nota: TSX (Extensiones de Sincronización Transaccional) asegura mover la mayoría de las tareas en ejecución para distribuir recursos entre los núcleos del procesador a nivel de hardware (la CPU misma). Sin el soporte de instrucciones TSX por parte de un procesador, esta distribución se realiza a nivel de software por parte de un sistema operativo y aplicaciones. Si el conjunto de instrucciones TSX está deshabilitado para su procesador Haswell a través del microcódigo, es posible que necesite establecer el nivel más antiguo (Ivy Bridge) para el modo EVC.
Generalmente, las VM en ejecución deben apagarse y encenderse para aplicar los cambios en la configuración del modo EVC modificado. Si utiliza vCenter 4.1 o posterior, las VM en ejecución en el host ESXi con el procesador más antiguo pueden no ser apagadas (puede dejarlas en estado de ejecución). En este caso, el modo EVC debe ser igual a la generación de ese procesador más antiguo. Las VM en ejecución en hosts ESXi que tienen procesadores con características de CPU más recientes deben apagarse antes de habilitar el modo EVC en todo el cluster. Cuando un host ESXi se excluye de un cluster, continúa operando con el modo EVC deshabilitado.
Versión de VMware vSphere / Compatibilidad de CPU para EVC
El modo EVC requerido depende de los modelos de procesador y la versión de vCenter Server. El modo EVC en la última versión de vCenter Server admite los procesadores más recientes. Considere el uso de las últimas versiones de vCenter si tiene servidores con procesadores de las generaciones más nuevas. En la siguiente tabla, puede ver qué combinaciones de generaciones de procesadores Intel y versiones de vCenter son compatibles para determinar la línea base de cluster EVC para su entorno.
La configuración del nivel de modo EVC se determina por el modelo del procesador más antiguo del servidor ESXi dentro del clúster. Si es técnicamente posible seleccionar un nivel de EVC mode más antiguo que la generación del procesador más antiguo, generalmente no hay razón para hacerlo. Las versiones anteriores de ESXi y vSphere admiten procesadores más nuevos, pero el límite de EVC máximo se conserva en el nivel de los procesadores más antiguos que eran funcionales cuando se lanzó esa versión de vSphere y se consideraban los más nuevos disponibles en ese momento.
Cuando cambia el nivel de modo EVC, debe apagar y encender las VMs en ejecución para aplicar la configuración a esas VMs; reiniciar la VM no es suficiente.
Guía de compatibilidad de VMware
Puedes verificar la compatibilidad de tus procesadores y el modo EVC más alto disponible para tu servidor vCenter en el sitio web de VMware. Para comprobar la compatibilidad, abre la página de Guía de compatibilidad de VMware, selecciona serie de CPU en el menú desplegable (es decir, lo que estás buscando), en la lista de Versión de lanzamiento del producto selecciona tu versión de ESXi, en la lista de serie de CPU mantén presionado el botón Ctrl y selecciona los procesadores instalados en tus hosts de ESXi (haz clic en el botón izquierdo del mouse). Una vez que hayas seleccionado los parámetros necesarios, haz clic en el botón Matriz de CPU/EVC para ver la tabla de modos EVC disponibles para tus servidores ESXi. En el ejemplo mostrado en la captura de pantalla a continuación, se han seleccionado ESXi 6.5 (gestionado por vCenter 6.5), procesadores Intel Xeon E3-1500-v5, Xeon E5-4600-v3 y Xeon Platinum 8100. El nivel más alto del modo EVC admitido por todos los procesadores seleccionados es Generación Intel Haswell.
Requisitos
Para que vMotion funcione correctamente después de habilitar el modo EVC, se deben cumplir los siguientes requisitos:
- Los procesadores de todos los hosts de ESXi deben ser exclusivamente Intel o exclusivamente AMD.
- Las características de virtualización del procesador, como Intel VT-x o AMD-V, deben estar habilitadas en UEFI/BIOS de los hosts de ESXi.
- Los hosts de ESXi deben ser gestionados por el mismo servidor vCenter.
- Los hosts de ESXi deben estar configurados para usar vMotion.
Cómo habilitar y configurar EVC
Cómo habilitar y configurar EVC
Después de familiarizarse con la teoría, revisemos la configuración del modo EVC en la práctica. Es posible que necesite apagar su máquina virtual en el host ESXi cuyo nivel de EVC debe degradarse. Asegúrese de que no haya características del procesador deshabilitadas en UEFI/BIOS para evitar posibles problemas.
Abra el Cliente Web de VMware vSphere en su navegador web ingresando la dirección IP de su servidor vCenter en la barra de direcciones del navegador. Vaya a vCenter > Hosts and clusters y seleccione cada host ESXi para verificar la configuración de la CPU (unidad de procesamiento central). En el ejemplo actual, consideramos dos hosts que ejecutan ESXi 5.5 que están agregados al clúster y son administrados por vCenter Server 5.5. Como puede ver en la captura de pantalla a continuación, el modelo de procesador del primer host ESXi es Intel Xeon E3110 y el procesador instalado en el segundo host ESXi es Intel Xeon X3430.
Si los hosts ESXi ya han sido agregados al clúster, elija su clúster (temp-cluster en nuestro ejemplo), haga clic en la pestaña Manage, luego abra la pestaña Settings, seleccione Configuration > VMware EVC y haga clic en el botón Edit.
Ahora, antes de seleccionar el modo EVC en vCenter, abre una nueva pestaña en tu navegador web y accede a Guía de compatibilidad de VMware como se muestra en esta publicación de blog. En el ejemplo actual, debemos seleccionar ESXi 5.5, Serie Intel Xeon 31xx y Serie Intel Xeon 34xx. Después de hacer clic en el botón Matriz de CPU/EVC, puedes ver en la captura de pantalla que se debe seleccionar Generación Intel Penryn en la configuración del modo EVC.
Vuelve a la pestaña de tu navegador web con el Cliente Web de vSphere y abre la configuración del modo EVC para el clúster. Haz clic en Habilitar EVC para hosts Intel. En el menú desplegable del Modo EVC de VMware, debemos seleccionar Generación Intel Penryn. En la parte inferior de la ventana, deberías ver Validación exitosa en la sección de Compatibilidad. Ahora puedes hacer clic en Aceptar para guardar la configuración del modo EVC.
Después de eso, en la sección de VMware EVC, se muestra la información de que VMware EVC está habilitado. Haz clic en Detalles actuales de CPUID para expandir la sección con detalles sobre registros y valores de máscara.
El modo EVC también se puede habilitar durante la creación de un nuevo clúster; VMware promueve esta posibilidad como las prácticas recomendadas. Habilitar el modo EVC al crear un nuevo clúster evita que te encuentres con problemas relacionados con el apagado y la migración de máquinas virtuales que están encendidas en el clúster (como recordarás, típicamente una VM debe apagarse y encenderse para aplicar la nueva configuración de EVC).
Máscara de CPUID
Además del modo EVC global que se aplica a todas las MV y hosts ESXi en todo el clúster, vCenter Server te permite configurar manualmente las banderas CPUID para una MV personalizada. vCenter compara los parámetros CPUID establecidos para la MV con los parámetros CPUID disponibles en el host ESXi de destino. Si estos parámetros son iguales, se permite la migración de la MV con vMotion. La función de enmascaramiento de CPUID es más antigua que la función de modo EVC.
Para configurar máscaras CPUID para una MV, realiza las siguientes acciones:
Selecciona la MV necesaria, haz clic derecho en la MV y selecciona Editar configuración. En la ventana abierta de Editar configuración, abre Hardware virtual > CPU, selecciona máscara CPUID y haz clic en Avanzado.
En la ventana Máscara de identificación de CPU, selecciona la cadena de registro necesaria y haz clic en el valor para editar la máscara a nivel de bit. Pulsa el botón Legend para ver los significados de cada carácter utilizado para establecer la máscara.
¡Precaución! Por favor, no edites las máscaras antes de haberte familiarizado con la base de conocimientos de VMware o las instrucciones de soporte de VMware. Editar manualmente las máscaras de compatibilidad de CPU puede causar una configuración de MV no compatible. Por ejemplo, las MV de Windows pueden fallar con BSOD.
Verificación de la configuración del modo EVC en PowerCLI
Puedes verificar la configuración del modo EVC para todo el clúster y para MV personalizadas en VMware PowerCLI utilizando el comando:
Get-VM | Seleccionar Nombre, VersiónHardware,
@{Nombre=’Modo_VM_EVC’;Expresión={$_.ExtensionData.Runtime.MinRequiredEVCModeKey}},
@{Nombre=’Nombre_Clúster’;Expresión={$_.VMHost.Parent}},
@{Nombre=’Modo_Clúster_EVC’;Expresión={$_.VMHost.Parent.EVCMode}} | ft
También puedes verificar el nivel máximo de EVC admitido para todos los hosts de tu clúster después de ejecutar el comando:
Get-VMHost | Seleccionar Nombre, TipoProcesador, ModoEVCMax
Modo EVC por VM
El modo EVC considerado anteriormente es una opción a nivel de clúster. VMware vSphere 6.7 proporciona la capacidad de establecer un modo EVC por VM que puede ser útil para la migración de VMs entre diferentes clústeres o servidores vCenter y te ofrece más granularidad. Un modo EVC por VM se establece como un atributo de la configuración de la máquina virtual y añade más flexibilidad para gestionar VMs que deben migrar con vMotion. La compatibilidad de hardware de la VM debe ser de la versión 14 o superior. La configuración del modo EVC por VM se guarda en el archivo de configuración VMX de la VM como líneas que contienen la cadena featMask.vm.cpuid. Cuando una VM con el modo EVC por VM configurado se migra, su configuración EVC almacenada en el archivo VMX se migra con la VM. Los ajustes del modo EVC por VM se pueden cambiar cuando una VM está apagada (apaga y enciende la VM para aplicar los ajustes del modo EVC por VM cambiados).
Si habilitas un modo EVC por VM para una VM que reside en el clúster que ya tiene configurado el modo EVC global, un modo EVC por VM puede ser igual o inferior al modo EVC establecido en todo el clúster. Por lo tanto, es posible configurar tanto el modo EVC global como el modo EVC por VM al mismo tiempo. Después de clonar una VM, la configuración de EVC por VM se clona con la VM.
Para configurar el modo EVC por VM, abre el cliente HTML5 de VMware vSphere, ve a Hosts and Clusters, luego selecciona la VM necesaria. Abre la pestaña Configure, selecciona Más > VMware EVC y haz clic en Editar.
Cómo Habilitar el Modo EVC en el Clúster Sin Tiempo de Inactividad
En algunos casos, puedes habilitar el modo EVC en todo el clúster sin ningún tiempo de inactividad de la VM (generalmente, las VM deben apagarse y encenderse para aplicar la configuración del modo EVC del clúster). Esto es posible si se cumplen los siguientes requisitos:
- Las VM en ejecución residen en el host ESXi con el procesador más antiguo
- El modo EVC en el clúster está configurado para usar los conjuntos de instrucciones de CPU que coinciden con la generación del procesador más antiguo
Habilitar el Modo EVC para la VM del vCenter
Puedes experimentar la siguiente situación que es común en entornos de VMware vSphere:
El servidor vCenter se está ejecutando como una VM en un host ESXi que debe agregarse a un clúster para el cual se ha habilitado el modo EVC.
El problema es que un host ESXi con VMs en ejecución (incluida la VM que ejecuta vCenter) no se puede agregar al clúster después de habilitar EVC hasta que se apaguen todas las VMs. Por otro lado, la VM que ejecuta vCenter es necesaria para administrar el clúster, y no podemos apagar la VM de vCenter porque se está utilizando en este momento. Este problema es especialmente agudo cuando la VM de vCenter se está ejecutando en el host ESXi con un procesador más nuevo.
Nota: Se recomienda utilizar un vSwitch estándar (no un vSwitch distribuido) para conectar la VM que ejecuta vCenter a la red en este caso.
A possible solution. Consider the algorithm that can help you to resolve the issue for VMware vSphere 5.5:
- Mueva otro servidor ESXi (que no esté ejecutando una VM de vCenter) al clúster si aún no hay servidores ESXi en el clúster. Las VMs en el servidor ESXi que se está moviendo al clúster deben estar apagadas.
- Apague la VM que ejecuta vCenter Server. Conéctese al host ESXi en el que reside la VM de vCenter utilizando VMware Host Client para desregistrar la VM o conecte con un cliente SSH para copiar archivos. En VMware Host Client, haga clic derecho en la VM de vCenter y seleccione Desregistrar. Copie manualmente todos los archivos de la VM de vCenter al almacén de datos conectado al servidor ESXi que ya ha movido al clúster en el paso 1. Si ambos hosts ESXi utilizan un almacenamiento compartido NFS o iSCSI, no es necesario copiar los archivos de la VM a otra ubicación.
Nota: Es posible que necesite configurar la dirección MAC del adaptador de red virtual de la VM que ejecuta vCenter Server manualmente antes de mover la VM de un host ESXi a otro.
- Registre la máquina virtual vCenter en el host ESXi que ha sido movido al clúster (conéctese al host ESXi con el Cliente de Host de VMware, abra el almacén de datos, localice los archivos de la máquina virtual vCenter, seleccione el archivo VMX, haga clic derecho en el archivo y seleccione Registrar VM). Ejecute la máquina virtual vCenter en este host ESXi en el clúster. Inicie sesión en vCenter con el Cliente de vSphere de VMware para asegurarse de que puede administrar su entorno de vSphere con vCenter. Es posible que necesite desactivar temporalmente el Control de Admisión.
- Mueva el host ESXi fuente en el que originalmente trabajaba la máquina virtual vCenter al clúster. Apague otras VM en ese host ESXi si es necesario antes de mover el host.
Conclusión
La Capacidad de vMotion Mejorada (EVC) es una característica útil de VMware vSphere que mantiene su clúster escalable y le permite agregar nodos con procesadores de diferentes generaciones al clúster para realizar migraciones en vivo de máquinas virtuales entre hosts ESXi con vMotion. El modo EVC enmascara las características de los procesadores de nueva generación para crear una línea base unificada que coincida con las características de la generación de procesadores más antigua utilizada por los hosts ESXi en el clúster. Como resultado, tiene un entorno homogéneo donde todos los procesadores utilizan los mismos conjuntos de instrucciones y las VM en ejecución pueden migrar con vMotion. Un gran número de clientes de VMware que utilizan clústeres utilizan el modo EVC. Se recomienda habilitar el modo EVC en la etapa de creación del clúster para evitar posibles problemas relacionados con la adición de hosts ESXi y la migración de VM en ejecución, incluida la VM que ejecuta el Servidor vCenter.
Independientemente de si utilizas un clúster o no, no olvides respaldar las máquinas virtuales de VMware. NAKIVO Backup & Replication es una solución de protección de datos rápida, confiable y asequible que puede proteger tus máquinas virtuales de VMware incluso si esas máquinas virtuales están migrando a través de hosts ESXi en clústeres.
Source:
https://www.nakivo.com/blog/how-vmware-evc-mode-works-overview/