Modo de compatibilidad del procesador en Hyper-V

Se aplica a: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2, Hyper-V Server 2019, Hyper-V Server 2016 o Hyper-V Server 2012 R2

Hyper-V ofrece el modo de compatibilidad del procesador, una característica que se introdujo por primera vez en Windows Server 2008 R2. El modo de compatibilidad del procesador permite mover una máquina virtual en ejecución o guardar el estado entre hosts de virtualización que usan diferentes generaciones de procesadores. Esta característica funciona deshabilitando muchas características de procesador modernas, lo que puede afectar al rendimiento de la máquina virtual. En este documento se proporcionan detalles sobre el modo de compatibilidad del procesador para Hyper-V.

Cuándo usar el modo de compatibilidad del procesador

El modo de compatibilidad del procesador es aplicable a cualquier escenario de movilidad de máquina virtual que no implique reiniciar la máquina virtual. Entre ellas se incluyen la migración en vivo de la máquina virtual, guardar y restaurar, y los puntos de comprobación de producción.

Las máquinas virtuales no se pueden migrar ni guardar ni restaurar en vivo entre hosts de virtualización que usan procesadores de distintos fabricantes de CPU. Por ejemplo, no puede mover VM en ejecución ni VM de estado guardado de un host con procesadores Intel a un host con procesadores AMD. Si debe mover una máquina virtual en este caso, primero deberá apagarla y luego reiniciarla en el nuevo host.

Si planea mover máquinas virtuales sin reiniciarlas, entre hosts de virtualización que pueden usar diferentes generaciones de procesadores, debe habilitar el modo de compatibilidad del procesador. Por ejemplo, habilitaría el modo de compatibilidad del procesador para asegurarse de que puede migrar dinámicamente las máquinas virtuales entre nodos de clúster que usan diferentes conjuntos de características de procesador. También puede usar el modo de compatibilidad del procesador para guardar una máquina virtual y restaurarla en un equipo host que tenga un conjunto de características de procesador diferente al host de origen.

Por qué es necesario el modo de compatibilidad del procesador

Las extensiones de arquitectura del conjunto de instrucciones (ISA) son optimizaciones y características introducidas por los fabricantes de procesadores. Estas características suelen mejorar el rendimiento o la seguridad al usar hardware especializado para una tarea determinada. Por ejemplo, muchas aplicaciones multimedia usan características de procesador para acelerar los cálculos vectoriales. Estas características muy pocas veces son necesarias para que las aplicaciones se ejecuten, simplemente aumentan el rendimiento.

El conjunto de características que está disponible en un procesador varía en función de su versión, modelo y antigüedad. Los sistemas operativos y el software de aplicación suelen enumerar el conjunto de características del procesador del sistema cuando se inician por primera vez. El software no espera que las características disponibles del procesador cambien durante su vigencia y, por supuesto, esto no podría ocurrir nunca cuando se ejecuta en un equipo físico, ya que las características del procesador son estáticas, a menos que se actualice el procesador.

Sin embargo, las características de movilidad de VM permiten migrar una VM en ejecución a un nuevo host de virtualización. Si el software de la VM ha detectado y empezado a usar una característica de procesador determinada, y la VM se mueve a un nuevo host de virtualización que carece de esa funcionalidad, es probable que se produzca un error en el software. Esto podría ocasionar el bloqueo de la VM.

Para evitar estos errores, Hyper-V realiza comprobaciones “previas al piloto” cada vez que se inicia una migración en vivo de una VM o una operación de guardado y restauración. Estas comprobaciones comparan el conjunto de características del procesador que están a disposición de la VM en el host de origen con el conjunto de características que están disponibles en el host de destino. Si estos conjuntos de características no coinciden, se cancela la operación de migración o restauración.

Funcionamiento del modo de compatibilidad del procesador

El modo de compatibilidad del procesador garantiza que el conjunto de características de procesador disponibles para las máquinas virtuales en un conjunto dispar de hosts de virtualización coincidirá al presentar solo un conjunto limitado de características de procesador a la máquina virtual. El modo de compatibilidad del procesador oculta los conjuntos de instrucciones de procesador más recientes, normalmente los introducidos en los últimos 10 años. Sin embargo, ocultar estas características significa que el sistema operativo invitado y el software de aplicación no pueden aprovechar estas mejoras del conjunto de instrucciones del procesador.

Para obtener una lista completa de las características que están ocultas para el modo de compatibilidad del procesador, consulte la sección 5.2.11 en la especificación funcional del nivel superior del hipervisor.

Processor compatibility mode hides newer processor instructions sets for smooth VM migrations between host servers

Ramificaciones del uso del modo de compatibilidad del procesador

Es difícil cuantificar los efectos generales de rendimiento del modo de compatibilidad del procesador. La pérdida de rendimiento depende principalmente de la carga de trabajo que se ejecuta en la máquina virtual. Algunas cargas de trabajo no se verán afectadas, mientras que otras mostrarán una diferencia notable. El software que se basa en gran medida en optimizaciones de hardware (como cifrado, compresión o cálculos de punto flotante intensivo) será el más afectado.

En el ejemplo siguiente se describe cómo se ve afectado el cifrado AES al utilizar el modo de compatibilidad con el procesador, y hay muchos más. Si le preocupa el impacto en el rendimiento del modo de compatibilidad del procesador, es mejor comparar el rendimiento de la carga de trabajo de máquina virtual con el modo de compatibilidad del procesador habilitado y con él deshabilitado.

Ejemplo: cifrado AES

Un ejemplo de una operación que se ve afectada por el modo de compatibilidad del procesador es el cifrado AES (una forma común de cifrado). Muchos procesadores Intel y AMD nuevos incluyen una extensión ISA que acelera AES mediante hardware. Intel afirma que esta optimización proporciona una ganancia de rendimiento de 2 a 3 plegamientos, con algunas implementaciones que proporcionan una ganancia de 10 veces. (Para obtener más información, vea Intel Advanced Encryption Standard Instructions.)

Las aplicaciones que cifran o descifran una gran cantidad de datos se benefician de esta característica de procesador, por lo que desactivarla al habilitar el modo de compatibilidad del procesador afectará al rendimiento de estas operaciones específicas.

Modo de compatibilidad de procesador

Hay conceptos importantes que se deben comprender al usar el modo de compatibilidad del procesador en Hyper-V:

  • La ejecución de máquinas virtuales solo se puede migrar entre hosts de virtualización que usan procesadores del mismo fabricante.

  • Tiene que apagar la VM para poder habilitar o deshabilitar el modo de compatibilidad del procesador.

  • El modo de compatibilidad del procesador no es necesario para los movimientos de máquina virtual que implican una detención y un reinicio de la máquina virtual.

  • Cada vez que se reinicie una VM, el sistema operativo invitado enumerará las características del procesador que están disponibles en el nuevo equipo host.

Nota

En Windows Server, Microsoft recomienda activar el modo de compatibilidad del procesador solo antes de los escenarios de migración de máquinas virtuales y, a continuación, desactivarlo cuando se complete la migración.

Habilitación del modo de compatibilidad del procesador mediante PowerShell

Para habilitar el modo de compatibilidad del procesador para una máquina virtual mediante el Administrador de Hyper-V:

  1. Apague la máquina virtual.

  2. Haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Hyper-V.

  3. Seleccione el servidor que ejecuta Hyper-V y la máquina virtual deseada.

  4. Si la máquina virtual se está ejecutando, debe apagar la máquina virtual para habilitar la configuración del modo de compatibilidad del procesador.

  5. En el panel Acción, haga clic en Configuración y, a continuación, haga clic en Procesador.

  6. Expanda Procesador y haga clic en Compatibilidad.

  7. Seleccione Migrar a un equipo físico con un procesador diferente y, a continuación, haga clic en Aceptar.

  8. Reinicie la VM.

Deshabilitar el modo de compatibilidad del procesador con el Administrador de Hyper-V

Para deshabilitar el modo de compatibilidad del procesador para una máquina virtual mediante el Administrador de Hyper-V:

  1. Apague la máquina virtual.

  2. Haga clic en Inicio, seleccione Herramientas administrativas y, a continuación, haga clic en Administrador de Hyper-V.

  3. Seleccione el servidor que ejecuta Hyper-V y la máquina virtual deseada.

  4. Si la máquina virtual se está ejecutando, debe apagar la máquina virtual para deshabilitar la configuración del modo de compatibilidad del procesador.

  5. En el panel Acción, haga clic en Configuración y, a continuación, haga clic en Procesador.

  6. Expanda Procesador y haga clic en Compatibilidad.

  7. Desactive la casilla Migrar a un equipo físico con otro procesador y, a continuación, haga clic en Aceptar.

  8. Reinicie la VM.

Habilitación del modo de compatibilidad del procesador mediante PowerShell

Para habilitar el modo de compatibilidad del procesador para una máquina virtual mediante PowerShell, apague la máquina virtual y ejecute el cmdlet Set-VMProcessor y establezca CompatibilityForMigrationEnabled en $true:

get-vm -name <name of VM> -ComputerName <target cluster or host> | Set-VMProcessor -CompatibilityForMigrationEnabled $true

A continuación, reinicie la máquina virtual.

Advertencia

Es posible que vea parámetros adicionales para Set-VMProcessor, que están diseñados para su uso con Azure Stack HCI. No intente usarlos con Windows Server o recibirá un mensaje de error. El CompatibilityForMigrationMode predeterminado y único disponible para Windows Server es MinimumFeatureSet. Obtenga información sobre el modo de compatibilidad dinámica de CPU en Azure Stack HCI.

Deshabilitación del modo de compatibilidad del procesador mediante PowerShell

Para deshabilitar el modo de compatibilidad del procesador para una máquina virtual mediante PowerShell, apague la máquina virtual y ejecute el cmdlet Set-VMProcessor y establezca CompatibilityForMigrationEnabled en $false:

get-vm -name <name of VM> -ComputerName <target cluster or host> | Set-VMProcessor -CompatibilityForMigrationEnabled $false

A continuación, reinicie la máquina virtual.

Pasos siguientes

Consulte también: