Modo de compatibilidade do processador no Hyper-V

Aplica-se 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, Hyper-V Server 2012 R2

O Hyper-V oferece o modo de compatibilidade do processador, um recurso que foi apresentado pela primeira vez no Windows Server 2008 R2. O modo de compatibilidade do processador permite que você mova uma VM (máquina virtual) em execução ou salve o estado entre hosts de virtualização que usam diferentes gerações de processadores. Esse recurso funciona com a desabilitação de muitos recursos de processador modernos, o que pode afetar o desempenho da VM. Este documento fornece detalhes sobre o modo de compatibilidade do processador para Hyper-V.

Quando usar o modo de compatibilidade do processador

O modo de compatibilidade do processador é aplicável a qualquer cenário de mobilidade de VM que não envolva a reinicialização da VM. Elas incluem migração dinâmica, salvamento e restauração de VM e pontos de verificação de produção.

As VMs não podem ser migradas dinamicamente ou salvas e restauradas entre hosts de virtualização que usam processadores de diferentes fabricantes de CPU. Por exemplo, você não pode mover VMs em execução ou estado salvo de VM de um host com processadores Intel para um host com processadores AMD. Se você precisar mover uma VM nesse caso, a VM precisará primeiro ser desligada e reiniciada no novo host.

Se você planeja mover VMs sem reinicializá-las, entre hosts de virtualização que podem usar diferentes gerações de processadores, deve habilitar o modo de compatibilidade do processador. Por exemplo, você habilitaria o modo de compatibilidade do processador para garantir que possa migrar suas VMs em tempo real entre nós de cluster que usam diferentes conjuntos de recursos de processador. Você também pode usar o modo de compatibilidade do processador para salvar uma VM e restaurá-la em um computador host que tenha um conjunto de recursos de processador diferente do host de origem.

Por que o modo de compatibilidade do processador é necessário

As extensões ISA (arquitetura do conjunto de instruções) são otimizações e recursos introduzidos pelos fabricantes do processador. Esses recursos geralmente melhoram o desempenho ou a segurança usando hardware especializado em uma tarefa específica. Por exemplo, muitos aplicativos de mídia usam recursos de processador para acelerar os cálculos de vetor. Esses recursos raramente são necessários para que os aplicativos sejam executados; eles simplesmente aumentam o desempenho.

O conjunto de recursos disponível em um processador varia dependendo de sua criação, modelo e idade. Os sistemas operacionais e o software do aplicativo normalmente enumeram o conjunto de recursos do processador e as capacidades do sistema quando são iniciados pela primeira vez. O software não espera que os recursos do processador disponíveis mudem durante a vida útil, e isso poderia nunca acontecer quando em execução em um computador físico porque os recursos do processador são estáticos.

No entanto, os recursos de mobilidade da VM permitem que uma VM em execução seja migrada para um novo host de virtualização. Se o software na VM detectou e começou a usar um recurso de processador específico, e ele é movido para um novo host de virtualização que não tem essa funcionalidade, é provável que o software falhe. Isso pode resultar na falha da VM.

Para evitar essas falhas, o Hyper-V realiza pré-verificações sempre que uma migração dinâmica de VM ou operação de salvamento/restauração é iniciada. Essas verificações comparam o conjunto de recursos do processador que estão disponíveis para a VM no host de origem com o conjunto de recursos que estão disponíveis no host de destino. Se os conjuntos de recursos não corresponderem, a migração ou operação de restauração é cancelada.

Como funciona o modo de compatibilidade do processador

O modo de compatibilidade do processador faz com que o conjunto de recursos de processador disponíveis para VMs em um conjunto diferente de hosts de virtualização tenha correspondência com a apresentação de apenas um conjunto limitado de recursos de processador para a VM. O modo de compatibilidade do processador oculta os conjuntos de instruções mais recentes do processador, normalmente aqueles introduzidos nos últimos 10 anos. No entanto, a ocultação desses recursos significa que o sistema operacional convidado e o software de aplicativo não podem aproveitar esses aprimoramentos do conjunto de instruções do processador.

Para obter uma lista completa de recursos ocultos do modo de compatibilidade do processador, consulte a seção 5.2.11 na Especificação Funcional do Nível Superior do Hypervisor.

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

Consequências do uso do modo de compatibilidade do processador

É difícil quantificar os efeitos gerais de desempenho do modo de compatibilidade do processador. A perda de desempenho depende principalmente da carga de trabalho em execução na VM. Algumas cargas de trabalho não serão afetadas; já outras mostrarão uma diferença perceptível. Um software que dependa muito de otimizações de hardware (como criptografia, compactação ou cálculos intensivos de ponto flutuante) será o mais afetado.

O exemplo a seguir descreve como a criptografia AES é afetada pelo uso do modo de compatibilidade do processador, e há muitos mais. Se você estiver preocupado com o impacto no desempenho do modo de compatibilidade do processador, é melhor comparar o desempenho da carga de trabalho da VM com o modo de compatibilidade do processador habilitado e com ele desabilitado.

Exemplo: criptografia AES

Um exemplo de uma operação afetada pelo modo de compatibilidade do processador é a criptografia AES (uma forma comum de criptografia). Muitos novos processadores Intel e AMD incluem uma extensão ISA que acelera o AES usando hardware. A Intel afirma que essa otimização fornece um ganho de desempenho 2 a 3 vezes maior, com algumas implementações fornecendo um ganho 10 vezes maior. (Para obter mais informações, consulte Instruções de criptografia AES da Intel.)

Aplicativos que criptografam ou descriptografam uma grande quantidade de dados se beneficiam desse recurso de processador, ou seja, sua desativação com a habilitação do modo de compatibilidade do processador afetará o desempenho dessas operações específicas.

Usando o modo de compatibilidade do processador

Há conceitos importantes a serem entendidos no uso do modo de compatibilidade do processador no Hyper-V:

  • A execução de VMs só pode ser migrada entre hosts de virtualização que usam processadores do mesmo fabricante.

  • Você precisa desligar a VM antes de habilitar ou desabilitar o modo de compatibilidade do processador.

  • O modo de compatibilidade do processador não é exigido para movimentações de VM que envolvem uma parada e uma reinicialização da VM.

  • Sempre que uma VM for reiniciada, o sistema operacional convidado enumerará os recursos do processador que estão disponíveis no novo computador host.

Observação

No Windows Server, a Microsoft recomenda ativar o modo de compatibilidade do processador somente antes dos cenários de migração de VM e desativá-lo quando a migração for concluída.

Habilitar o modo de compatibilidade do processador usando o Gerenciador do Hyper-V

Para habilitar o modo de compatibilidade do processador para uma VM usando o Gerenciador do Hyper-V:

  1. Desligue a VM.

  2. Clique em Iniciar, vá em Ferramentas Administrativas e clique em Gerenciador do Hyper-V.

  3. Selecione o servidor que executa o Hyper-V e a VM desejada.

  4. Se a VM estiver em execução, você precisará desligar a VM para habilitar a configuração do modo de compatibilidade do processador.

  5. No painel Ação, clique em Configurações e clique em Processador.

  6. Expanda Processador e clique em Compatibilidade.

  7. Selecione Migrar para um computador físico com um processador diferente e clique em OK.

  8. Reinicie a VM.

Desabilitar o modo de compatibilidade do processador usando o Gerenciador do Hyper-V

Para desabilitar o modo de compatibilidade do processador para uma VM usando o Gerenciador do Hyper-V:

  1. Desligue a VM.

  2. Clique em Iniciar, vá em Ferramentas Administrativas e clique em Gerenciador do Hyper-V.

  3. Selecione o servidor que executa o Hyper-V e a VM desejada.

  4. Se a VM estiver em execução, você precisará desligar a VM para desabilitar a configuração do modo de compatibilidade do processador.

  5. No painel Ação, clique em Configurações e clique em Processador.

  6. Expanda Processador e clique em Compatibilidade.

  7. Desmarque a caixa de seleção Migrar para um computador físico com um processador diferente e clique em OK.

  8. Reinicie a VM.

Habilitar o modo de compatibilidade do processador usando o PowerShell

Para habilitar o modo de compatibilidade do processador para uma VM usando o PowerShell, desligue a VM e execute o cmdlet Set-VMProcessor, definindo CompatibilityForMigrationEnabled como $true:

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

Em seguida, reinicie a VM.

Aviso

Você pode ver parâmetros adicionais para Set-VMProcessor que são destinados a uso com o Azure Stack HCI. Não tente usá-los com o Windows Server ou você receberá uma mensagem de erro. O padrão e única CompatibilityForMigrationMode disponível para o Windows Server é MinimumFeatureSet. Saiba mais sobre o modo de compatibilidade de CPU dinâmica no Azure Stack HCI.

Desabilitar o modo de compatibilidade do processador usando o PowerShell

Para desabilitar o modo de compatibilidade do processador para uma VM usando o PowerShell, desligue a VM e execute o cmdlet Set-VMProcessor, definindo CompatibilityForMigrationEnabled como $false:

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

Em seguida, reinicie a VM.

Próximas etapas

Consulte também: