Se você está familiarizado com o recurso vMotion, provavelmente se lembra de que a prática recomendada é usar os mesmos processadores em todos os servidores ESXi para a migração ao vivo de VMs. Se você deseja usar servidores com modelos de processadores diferentes no cluster, é melhor implantar processadores da mesma geração. Além disso, o requisito estrito é que os processadores devem ser fabricados pelo mesmo fornecedor, como Intel ou AMD. Caso contrário, é provável que você receba 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 adicionando novos servidores com processadores diferentes. Essa é uma situação comum – imagine que você tenha um cluster com 5 nós ESXi que você 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 você comprou há 3 anos não estão mais sendo produzidos 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 habilitado 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 examinar os conjuntos de instruções dessas duas gerações de processadores e explorar seus detalhes.
Conjuntos de instruções 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 estão desativadas via microcódigo para processadores Haswell devido a um bug, exceto para Haswell-EX.
Conjuntos de instruções 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 funcionarão com os mesmos conjuntos de instruções. Assim, você terá um ambiente homogêneo adotado para a migração de VMs usando vMotion. A compatibilidade uniforme do vMotion é fornecida por meio da imposição da mesma linha de base de instruções CPUID para todas as VMs em execução em 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 EVC Haswell é 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 redução de desempenho em casos específicos.
Nota: 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 utilizam instruções SGX para seus aplicativos podem proteger os aplicativos contra acesso ou modificação não autorizados, mesmo se o aplicativo atacante tiver privilégios mais altos.
Nota: 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 parte de um processador, essa distribuição é realizada no nível de software por um sistema operacional e aplicativos. Se o conjunto de instruções TSX estiver desativado para o 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 novamente para aplicar as configurações de modo EVC alteradas. Se você estiver utilizando 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 de execução). Neste 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 processador e da versão do servidor vCenter. O modo EVC na versão mais recente do servidor vCenter suporta os processadores mais recentes. Considere utilizar versões mais recentes do vCenter se tiver servidores com processadores das gerações mais recentes. 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 no cluster. É tecnicamente possível selecionar o nível mais antigo (menor) do modo EVC do que a geração do processador mais antigo, mas geralmente não há motivo para fazer essas configurações. Versões antigas do ESXi e vSphere suportam novos processadores, mas o nível máximo de baseline EVC é preservado no nível dos processadores mais antigos que eram funcionais quando essa versão do vSphere foi lançada e considerados os mais novos disponíveis naquele momento.
Quando você muda o nível do modo EVC, você deve desligar e ligar novamente as VMs em execução para aplicar as configurações nestas VMs; reiniciar a VM não é suficiente.
Guia de Compatibilidade VMware
Você pode verificar a compatibilidade dos 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 VMware, selecione a 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 pressione o botão Ctrl e selecione os processadores instalados em seus hosts do ESXi (clique no botão esquerdo do mouse). Depois de ter selecionado os parâmetros necessários, clique no botão Matriz de CPU/EVC para ver a tabela dos 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 ativados 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 EVC deve ser degradado. Certifique-se de que não há recursos do processador desativados na UEFI/BIOS para evitar possíveis problemas.
Abra o Cliente da Web VMware vSphere em seu navegador da web digitando 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 em execução no ESXi 5.5 que foram adicionados ao cluster e gerenciados pelo servidor vCenter 5.5. Como você pode ver na captura de tela abaixo, o modelo do 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, em seguida, 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 acesse 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 CPU/EVC, você pode ver na captura de tela que 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 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 VMware, devemos selecionar Geração Intel Penryn. Na parte inferior da janela, você deverá 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 VMware EVC, a informação de que o VMware EVC está ativado é exibida. Clique em Detalhes da CPUID Atuais 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 ao criar um novo cluster evita 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 global EVC que é aplicado a todas as VMs e hosts ESXi em todo o cluster, o vCenter Server permite que você configure manualmente as flags CPUID para uma VM personalizada. O vCenter compara os parâmetros CPUID definidos para a VM com os parâmetros CPUID disponíveis no host ESXi de destino. Se esses parâmetros forem os mesmos, a migração da VM com o vMotion é permitida. O recurso de mascaramento de CPUID é mais antigo que o recurso de modo EVC.
Para configurar máscaras 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 CPUID e clique em Avançado.
Na janela Máscara de Identificação da CPU, selecione a string de registro necessária e clique no valor para editar a máscara em um nível de bit. Pressione 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 a base de conhecimento VMware ou instruções de suporte VMware. A edição das máscaras de compatibilidade da CPU manualmente pode causar uma configuração de VM não suportada. Por exemplo, as VMs do Windows podem falhar com 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 Nome,ProcessorType,MaxEVCMode
Modo EVC por VM
O modo EVC considerado acima é uma opção de nível de cluster. O VMware vSphere 6.7 fornece a capacidade de definir um modo EVC por VM que pode ser útil para 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 no cluster que já possui o modo EVC global configurado, um modo EVC por VM pode ser igual ou inferior ao modo EVC definido em todo o cluster. 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 com a VM.
Para configurar o modo EVC por VM, abra o cliente VMware vSphere HTML5, vá para Hosts e Clusters, 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, é possível habilitar o modo EVC em todo o cluster sem tempo de inatividade para nenhuma VM (geralmente, as VMs devem ser desligadas e ligadas para aplicar as configurações do modo EVC do cluster). Isso é possível se os seguintes requisitos forem atendidos:
- As VMs em execução residem no host ESXi com o processador mais antigo
- O modo EVC no cluster está configurado para usar os conjuntos de instruções da CPU correspondentes à geração do processador mais antigo
Habilitando o Modo EVC para a VM do vCenter
Você pode encontrar a seguinte situação comum em ambientes VMware vSphere:
O vCenter Server está em execução como uma VM em um host ESXi que deve ser adicionado a um cluster para o qual o modo EVC está habilitado.
O problema é que um host ESXi com VMs em execução (incluindo a VM executando o vCenter) não pode ser adicionado ao cluster após a ativação do EVC até que todas as VMs sejam desligadas. Por outro lado, a VM executando o vCenter é necessária para gerenciar o cluster e não podemos desligar a VM do vCenter porque ela está em uso no momento. Esse problema é especialmente agudo quando a VM do vCenter está sendo executada no host ESXi com um processador mais recente.
Observação: É recomendado usar um vSwitch padrão (não um vSwitch Distribuído) para conectar a VM que executa o vCenter à rede nesse caso.
A possible solution. Consider the algorithm that can help you to resolve the issue for VMware vSphere 5.5:
- 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.
- Desligue a VM que executa o vCenter Server. Conecte-se ao host ESXi em que a VM do vCenter está localizada usando o VMware Host Client para desregistrar a VM ou conecte-se com um cliente SSH para copiar arquivos. No VMware Host Client, clique com o botão direito na VM do vCenter e clique em Desregistrar. 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, não é necessário copiar os arquivos da VM para outro local.
Observação: Talvez seja necessário definir manualmente o endereço MAC do adaptador de rede virtual da VM que executa o vCenter Server antes de mover a VM de um host ESXi para outro.
- Registre a VM do vCenter no host ESXi que foi movido para o cluster (conecte-se ao host ESXi com o Cliente de Host VMware, abra o datastore, localize os arquivos da VM do vCenter, selecione o arquivo VMX, clique com o botão direito do mouse 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 vSphere da VMware para garantir que você possa gerenciar seu ambiente vSphere com o vCenter. Talvez seja necessário desativar o Controle de Admissão temporariamente.
- 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 que você adicione 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 os recursos dos processadores de nova geração para criar uma linha de base unificada que corresponda aos recursos 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 ser migradas com o vMotion. Um grande número de clientes da VMware que usam clusters utilizam o modo EVC. É recomendado 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 que executa o vCenter Server.
Independentemente de usar um cluster ou não, 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/