Como Funciona o Modo EVC do VMware: Visão Geral Completa

Se estiver familiarizado com o recurso vMotion, provavelmente se lembrará de que a prática recomendada é usar os mesmos processadores em todos os servidores ESXi para migração ao vivo de VMs. Se deseja utilizar servidores com modelos de processador diferentes no cluster, é melhor implantar processadores da mesma geração. Além disso, o requisito rigoroso é que os processadores devem ser fabricados pelo mesmo fornecedor, como Intel ou AMD. Caso contrário, é provável que ocorra um erro ao usar o vMotion.

A VMware projetou seu software vSphere levando em consideração as situações que podem ocorrer no ambiente de produção, incluindo a expansão de um cluster ao adicionar novos servidores com processadores diferentes. Esta é uma situação comum – imagine que você tem um cluster com 5 nós ESXi que comprou há 3 anos e precisa adicionar mais dois nós para executar mais VMs para atender às suas necessidades de negócios. Os processadores que comprou há 3 anos não estão mais sendo produzidos atualmente e não são mais vendidos no mercado; você só pode comprar os processadores da família mais recente. Não há motivo para se preocupar – você pode usar clusters de Alta Disponibilidade no vSphere, adicionar nós com processadores diferentes e usar o vMotion para migração ao vivo de máquinas virtuais entre hosts que possuem processadores diferentes. Isso é possível devido ao recurso Enhanced vMotion Capability (EVC) que pode ser ativado para clusters no VMware vSphere.

Princípio de Funcionamento do Modo EVC da VMware

Cada nova geração de processadores inclui novos conjuntos de instruções além dos conjuntos de instruções disponíveis para a geração de processadores anterior. Novos recursos geralmente melhoram o desempenho ou a segurança das aplicações em execução. Por exemplo, os processadores da geração SkyLake têm um novo conjunto de instruções (SGX) em comparação com os processadores da geração Haswell. Vamos dar uma olhada nos conjuntos de instruções dessas duas gerações de processadores e explorar seus detalhes.

Conjuntos de instruções do 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. As instruções TSX são desativadas via microcódigo para processadores Haswell devido a um bug, exceto para Haswell-EX.

Conjuntos de instruções do 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.

Isso significa que se você selecionar o nível de compatibilidade Haswell nas configurações EVC, o conjunto de instruções SGX deve ser desativado (mascarado, mais precisamente falando) nos servidores com processadores Skylake e, como resultado, todos os processadores trabalharão com os mesmos conjuntos de instruções. Assim, você terá um ambiente homogêneo adotado para a migração de VM usando vMotion. A compatibilidade uniforme do vMotion é fornecida pela aplicação do mesmo conjunto básico de instruções CPUID para todas as VMs em execução nos hosts ESXi sem processadores uniformes. CPUID pode ser considerado uma API para a CPU.

Por um lado, as vantagens do conjunto de instruções SGX são perdidas quando o modo Haswell EVC está ativado, mas, por outro lado, o desempenho do seu cluster existente não é reduzido se você adicionar hosts com processadores mais recentes ao cluster. Se você adicionar hosts ESXi com processadores mais antigos ao cluster existente, pode notar uma redução de desempenho em casos particulares.

Nota: O SGX (Software Guard Extensions) permite que você organize fragmentos protegidos de código e dados (também chamados de enclaves) para garantir um alto nível de proteção de dados para aplicativos em funcionamento contra ataques de hackers. Desenvolvedores que usam instruções SGX para seus aplicativos podem proteger os aplicativos contra acesso ou modificação não autorizados, mesmo que o aplicativo atacante tenha privilégios mais altos.

Nota: O TSX (Transactional Synchronization Extensions) garante a movimentação da maioria das tarefas em execução para distribuir recursos entre os núcleos do processador no nível de hardware (a própria CPU). Sem suporte para instruções TSX por um processador, essa distribuição é realizada em um nível de software por um sistema operacional e aplicativos. Se o conjunto de instruções TSX estiver desativado para seu processador Haswell via microcódigo, você pode precisar definir o nível mais antigo (Ivy Bridge) para o modo EVC.

Geralmente, as VMs em execução devem ser desligadas e ligadas para aplicar as configurações de modo EVC alteradas. Se você estiver usando o vCenter 4.1 ou posterior, as VMs em execução no host ESXi com o processador mais antigo podem não ser desligadas (você pode deixá-las no estado em execução). Nesse caso, o modo EVC deve ser igual à geração desse processador mais antigo. As VMs em execução nos hosts ESXi que possuem processadores com recursos de CPU mais recentes devem ser desligadas antes de habilitar o modo EVC em todo o cluster. Quando o host ESXi é excluído de um cluster, ele continua a operar com o modo EVC desativado.

Versão do VMware vSphere / Compatibilidade de CPU para EVC

O modo EVC necessário depende dos modelos de processadores e da versão do Servidor vCenter. O modo EVC na versão mais recente do Servidor vCenter suporta os processadores mais recentes. Considere o uso de vCenter das últimas versões se você tiver servidores com processadores das últimas gerações. Na tabela abaixo, você pode ver quais combinações de gerações de processadores Intel e versões do vCenter são suportadas para determinar a linha de base do cluster EVC para o seu ambiente.

O modo EVC mais adequado é determinado pelo modelo do processador mais antigo do servidor ESXi dentro do cluster. É tecnicamente possível selecionar o nível mais antigo (inferior) do modo EVC do que a geração do processador mais antigo, mas geralmente não há motivo para fazer tais configurações. Versões mais antigas do ESXi e do vSphere suportam novos processadores, mas a linha de base máxima do EVC é preservada no nível dos processadores mais antigos que estavam funcionais quando essa versão do vSphere foi lançada e foram considerados os mais recentes disponíveis naquela época.

Ao alterar o nível do modo EVC, você deve desligar e ligar as VMs em execução para aplicar as configurações a essas VMs; reiniciar a VM não é suficiente.

Guia de compatibilidade da VMware

Você pode verificar a compatibilidade dos seus processadores e o modo EVC mais alto disponível para o seu servidor vCenter no site da VMware. Para verificar a compatibilidade, abra a página do Guia de Compatibilidade da VMware, selecione série de CPU no menu suspenso (ou seja, o que você está procurando), na lista de Versão de Lançamento do Produto selecione sua versão do ESXi, na lista de série de CPU segure o botão Ctrl e selecione os processadores instalados em seus hosts ESXi (clique com o botão esquerdo do mouse). Depois de selecionar os parâmetros necessários, clique no botão Matriz de CPU/EVC para ver a tabela de modos EVC disponíveis para seus servidores ESXi. No exemplo mostrado na captura de tela abaixo, o ESXi 6.5 (gerenciado pelo vCenter 6.5), os processadores Intel Xeon E3-1500-v5, Xeon E5-4600-v3 e Xeon Platinum 8100 foram selecionados. O nível mais alto do modo EVC suportado por todos os processadores selecionados é Geração Intel Haswell.

Requisitos

Para que o vMotion funcione corretamente após habilitar o modo EVC, os seguintes requisitos devem ser atendidos:

  • Os processadores de todos os hosts ESXi devem ser apenas Intel ou apenas AMD.
  • Recursos de virtualização do processador, como Intel VT-x ou AMD-V, devem estar habilitados no UEFI/BIOS dos hosts ESXi.
  • Os hosts ESXi devem ser gerenciados pelo mesmo servidor vCenter.
  • Os hosts ESXi devem estar configurados para usar o vMotion.Como Habilitar e Configurar o EVC

Como Habilitar e Configurar EVC

Após se familiarizar com a teoria, vamos revisar a configuração do modo EVC na prática. Você pode precisar desligar sua VM no host ESXi cujo nível de EVC deve ser degradado. Certifique-se de que não há recursos do processador desabilitados no UEFI/BIOS para evitar possíveis problemas.

Abra o Cliente da Web do VMware vSphere em seu navegador da web, inserindo o endereço IP do seu servidor vCenter na barra de endereços do navegador. Vá para vCenter > Hosts e clusters e selecione cada host ESXi para verificar a configuração da CPU (unidade central de processamento). No exemplo atual, consideramos dois hosts executando o ESXi 5.5 que estão adicionados ao cluster e gerenciados pelo vCenter Server 5.5. Como você pode ver na captura de tela abaixo, o modelo de processador do primeiro host ESXi é Intel Xeon E3110 e o processador instalado no segundo host ESXi é Intel Xeon X3430.

Se os hosts ESXi já foram adicionados ao cluster, escolha seu cluster (temp-cluster em nosso exemplo), clique na guia Gerenciar, depois abra a guia Configurações, selecione Configuração > VMware EVC e clique no botão Editar.

Agora, antes de selecionar o modo EVC no vCenter, abra uma nova aba em seu navegador da web e abra o Guia de Compatibilidade da VMware conforme mostrado acima neste post do blog. No exemplo atual, devemos selecionar ESXi 5.5, Série Intel Xeon 31xx e Série Intel Xeon 34xx. Após clicar no botão Matriz de CPU/EVC, você pode ver na captura de tela que a Geração Intel Penryn deve ser selecionada nas configurações do modo EVC.

Volte para a aba do seu navegador da web com o Cliente da Web do vSphere e abra as configurações do modo EVC para o cluster. Clique em Ativar EVC para Hosts Intel. No menu suspenso do Modo EVC da VMware, devemos selecionar Geração Intel Penryn. Na parte inferior da janela, você deve ver Validação bem-sucedida na seção de Compatibilidade. Agora você pode clicar em OK para salvar as configurações do modo EVC.

Depois disso, na seção do VMware EVC, a informação de que o VMware EVC está ativado é exibida. Clique em Detalhes atuais do CPUID para expandir a seção com detalhes sobre registros e valores de máscara.

O modo EVC também pode ser ativado durante a criação de um novo cluster; a VMware promove essa possibilidade como as práticas recomendadas. Ativar o modo EVC durante a criação de um novo cluster impede que você encontre problemas relacionados ao desligamento e migração de VMs que estão ligadas no cluster (como você se lembra, normalmente uma VM deve ser desligada e ligada para aplicar as novas configurações do EVC).

Máscara de CPUID

Além do modo EVC global que é aplicado a todas as VMs e hosts ESXi em todo o cluster, o vCenter Server permite que você configure manualmente os sinais de CPUID para uma VM personalizada. O vCenter compara os parâmetros de CPUID definidos para a VM com os parâmetros de CPUID disponíveis no host ESXi de destino. Se esses parâmetros forem os mesmos, a migração da VM com vMotion é permitida. O recurso de máscara de CPUID é mais antigo do que o recurso de modo EVC.

Para configurar máscaras de CPUID para uma VM, execute as seguintes ações:

Selecione a VM necessária, clique com o botão direito na VM e selecione Editar Configurações. Na janela aberta Editar Configurações, abra Hardware Virtual > CPU, selecione Máscara de CPUID e clique em Avançado.

Na janela Máscara de Identificação de CPU, selecione a cadeia de registro necessária e clique no valor para editar a máscara em nível de bit. Aperte o botão Legenda para visualizar os significados de cada caractere usado para definir a máscara.

Cuidado! Por favor, não edite as máscaras antes de se familiarizar com o conhecimento da base de VMware ou instruções de suporte da VMware. A edição manual das máscaras de compatibilidade de CPU pode causar uma configuração de VM não suportada. Por exemplo, VMs do Windows podem falhar com o BSOD.

Verificando a Configuração do Modo EVC no PowerCLI

Você pode verificar a configuração do modo EVC para todo o cluster e para VMs personalizadas no VMware PowerCLI usando o comando:

Get-VM | Select Name,HardwareVersion,

@{Nome=’Modo_VM_EVC’;Expressão={$_.ExtensionData.Runtime.MinRequiredEVCModeKey}},

@{Nome=’Nome_do_Cluster’;Expressão={$_.VMHost.Parent}},

@{Nome=’Modo_EVC_do_Cluster’;Expressão={$_.VMHost.Parent.EVCMode}} | ft

Você também pode verificar o nível máximo de EVC suportado para todos os hosts do seu cluster após executar o comando:

Get-VMHost | Select-Object Name,ProcessorType,MaxEVCMode

Modo EVC por VM

O modo EVC considerado acima é uma opção de nível de cluster. O VMware vSphere 6.7 oferece a capacidade de definir um modo EVC por VM que pode ser útil para a migração de VMs entre diferentes clusters ou servidores vCenter e oferece mais granularidade. Um modo EVC por VM é definido como um atributo das configurações da máquina virtual e adiciona mais flexibilidade para gerenciar VMs que devem migrar com vMotion. A compatibilidade de hardware da VM deve ser da versão 14 ou superior. A configuração do modo EVC por VM é salva no arquivo de configuração VMX da VM como linhas que contêm a string featMask.vm.cpuid. Quando uma VM com modo EVC por VM configurado é migrada, sua configuração EVC armazenada no arquivo VMX é migrada com a VM. As configurações de modo EVC por VM podem ser alteradas quando uma VM está desligada (desligue e ligue a VM para aplicar as configurações de modo EVC por VM alteradas).

Se você habilitar um modo EVC por VM para uma VM que reside em um cluster que já possui o modo EVC global configurado, o modo EVC por VM pode ser igual ou inferior ao modo EVC definido no cluster inteiro. Assim, é possível configurar tanto o modo EVC global quanto o modo EVC por VM ao mesmo tempo. Após clonar uma VM, as configurações de EVC por VM são clonadas junto com a VM.

Para configurar o modo EVC por VM, abra o cliente HTML5 do VMware vSphere, vá para Hosts e Clusters, então selecione a VM necessária. Abra a guia Configurar, selecione Mais > VMware EVC e clique em Editar.

Como Habilitar o Modo EVC no Cluster Sem Tempo de Inatividade

Em alguns casos, você pode habilitar o modo EVC no cluster inteiro sem nenhum tempo de inatividade de VM (geralmente, as VMs devem ser desligadas e reiniciadas para aplicar as configurações do modo EVC do cluster). Isso é possível se as seguintes condições forem atendidas:

  • As VMs em execução residem no host ESXi com o processador mais antigo
  • O modo EVC no cluster é configurado para usar os conjuntos de instruções de CPU que correspondem à geração do processador mais antigo

Habilitando o Modo EVC para a VM do vCenter

Você pode enfrentar a seguinte situação, comum em ambientes VMware vSphere:

O vCenter Server está sendo executado como uma VM em um host ESXi que deve ser adicionado a um cluster no qual o modo EVC está habilitado.

O problema é que um host ESXi com VMs em execução (incluindo a VM que executa o vCenter) não pode ser adicionado a um cluster após a ativação do EVC até que todas as VMs sejam desligadas. Por outro lado, a VM que executa o vCenter é necessária para gerenciar o cluster e não podemos desligar a VM do vCenter porque está sendo usada agora. Esse problema é especialmente grave quando a VM do vCenter está sendo executada no host ESXi com um processador mais recente.

Nota: Recomenda-se usar um vSwitch padrão (não um Distributed vSwitch) para conectar a VM que executa o vCenter à rede neste caso.

A possible solution. Consider the algorithm that can help you to resolve the issue for VMware vSphere 5.5:

  1. Mova outro servidor ESXi (que não esteja executando uma VM do vCenter) para o cluster, se ainda não houver servidores ESXi no cluster. As VMs no servidor ESXi que está sendo movido para o cluster devem ser desligadas.
  2. Desligue a VM que executa o Servidor vCenter. Conecte-se ao host ESXi no qual reside a VM do vCenter usando o VMware Host Client para cancelar o registro da VM ou conectar-se com um cliente SSH para copiar arquivos. No VMware Host Client, clique com o botão direito na VM do vCenter e selecione Cancelar registro. Copie manualmente todos os arquivos da VM do vCenter para o datastore conectado ao servidor ESXi que você já moveu para o cluster no passo 1. Se um armazenamento compartilhado NFS ou iSCSI for usado por ambos os hosts ESXi, você não precisará copiar os arquivos da VM para outro local.

Nota: Você pode precisar definir o endereço MAC para o adaptador de rede virtual da VM que executa o Servidor vCenter manualmente antes de mover a VM de um host ESXi para outro.

  1. Registre a VM do vCenter no host ESXi que foi movido para o cluster (conecte-se ao host ESXi com o Cliente do Host VMware, abra o datastore, localize os arquivos da VM do vCenter, selecione o arquivo VMX, clique com o botão direito no arquivo e clique em Registrar VM). Execute a VM do vCenter neste host ESXi no cluster. Faça login no vCenter com o Cliente do vSphere VMware para garantir que você possa gerenciar seu ambiente do vSphere com o vCenter. Você pode precisar desativar o Controle de Admissão temporariamente.
  2. Mova o host ESXi de origem no qual a VM do vCenter originalmente funcionava para o cluster. Desligue outras VMs nesse host ESXi, se necessário, antes de mover o host.

Conclusão

A Capacidade de vMotion Aprimorada (EVC) é um recurso útil do VMware vSphere que mantém seu cluster escalável e permite adicionar nós com processadores de diferentes gerações ao cluster para realizar a migração de VMs ao vivo entre hosts ESXi com vMotion. O modo EVC mascara as características dos processadores de nova geração para criar uma linha de base unificada que corresponda às características da geração de processadores mais antiga usada pelos hosts ESXi no cluster. Como resultado, você tem um ambiente homogêneo onde todos os processadores usam os mesmos conjuntos de instruções e as VMs em execução podem migrar com vMotion. Um grande número de clientes da VMware que usam clusters usam o modo EVC. É recomendável que você habilite o modo EVC no estágio da criação do cluster para evitar possíveis problemas relacionados à adição de hosts ESXi e à migração de VMs em execução, incluindo a VM em execução do Servidor vCenter.

Independentemente de usar ou não um cluster, não se esqueça de fazer backup das VMs do VMware. O NAKIVO Backup & Replication é uma solução de proteção de dados rápida, confiável e acessível que pode proteger suas VMs do VMware, mesmo que essas VMs estejam migrando entre hosts ESXi em clusters.

Source:
https://www.nakivo.com/blog/how-vmware-evc-mode-works-overview/