PowerFlex: o vMotion para hosts específicos do ESXi falha com o erro "Failed to receive migration"
Summary: O vMotion entre hosts do ESXi falha devido à disparidade de configuração da configuração do VHV.
Symptoms
Exemplo de diferença de configuração entre dois hosts do ESXi:
[root@esxi01:/etc] cat /etc/vmware/config libdir = "/usr/lib/vmware" authd.proxy.nfc = "vmware-hostd:ha-nfc" authd.proxy.nfcssl = "vmware-hostd:ha-nfcssl" authd.proxy.vpxa-nfcssl = "vmware-vpxa:vpxa-nfcssl" authd.proxy.vpxa-nfc = "vmware-vpxa:vpxa-nfc" authd.fullpath = "/sbin/authd" vhv.enable = "TRUE" [root@esxi02:/etc] cat /etc/vmware/config libdir = "/usr/lib/vmware" authd.proxy.nfc = "vmware-hostd:ha-nfc" authd.proxy.nfcssl = "vmware-hostd:ha-nfcssl" authd.proxy.vpxa-nfcssl = "vmware-vpxa:vpxa-nfcssl" authd.proxy.vpxa-nfc = "vmware-vpxa:vpxa-nfc" authd.fullpath = "/sbin/authd"
Ao tentar migrar VMs para um host do ESXi específico usando o vMotion, a migração falha e gera o erro "Failed to receive migration".
Cause
O vMotion está falhando devido a uma disparidade de configuração entre os hosts do ESXi no ambiente. A virtualização virtual assistida por hardware (VHV) pode ser habilitada em alguns hosts e desabilitada em outros. Essa disparidade faz com que o vMotion falhe entre os dois grupos de hosts. Esse problema pode ser confirmado analisando o arquivo "vmware.log" associado à VM em execução e o arquivo "/var/log/hostd.log" nos hosts do ESXi de origem/destino.
HOSTD.LOG: YYYY-MM-DDTHH:MM:SS.707Z warning hostd[3E9C2B70] [Originator@6876 sub=Vmsvc.vm:/vmfs/volumes/vsan:52564a82ba326e84-801d1a338d7d6fbc/7cb5cb5a-3b00-46cf-40eb-3cfdfe0f1d40/VIRTUAL_MACHINE.vmx] Failed to find activation record, event user unknown. YYYY-MM-DDTHH:MM:SS.708Z info hostd[3E9C2B70] [Originator@6876 sub=Vimsvc.ha-eventmgr] Event 131 : Error message on VIRTUAL_MACHINE on target_esxi.fqdn.com in ha-datacenter: Configuration mismatch: The virtual machine cannot be restored because the snapshot was taken with VHV enabled. To restore, set vhv.enable to true. YYYY-MM-DDTHH:MM:SS.709Z info hostd[40040B70] [Originator@6876 sub=Vimsvc.ha-eventmgr] Event 132 : Deleted ports in the vSphere Distributed Switch in ha-datacenter. YYYY-MM-DDTHH:MM:SS.710Z info hostd[2BDE2B70] [Originator@6876 sub=Vmsvc.vm:/vmfs/volumes/vsan:52564a82ba326e84-801d1a338d7d6fbc/7cb5cb5a-3b00-46cf-40eb-3cfdfe0f1d40/VIRTUAL_MACHINE.vmx] Answered question 1938160 YYYY-MM-DDTHH:MM:SS.710Z warning hostd[2BDE2B70] [Originator@6876 sub=Vmsvc.vm:/vmfs/volumes/vsan:52564a82ba326e84-801d1a338d7d6fbc/7cb5cb5a-3b00-46cf-40eb-3cfdfe0f1d40/VIRTUAL_MACHINE.vmx] Failed to find activation record, event user unknown. YYYY-MM-DDTHH:MM:SS.710Z info hostd[2BDE2B70] [Originator@6876 sub=Vimsvc.ha-eventmgr] Event 133 : Error message on VIRTUAL_MACHINE on target_esxi.fqdn.com in ha-datacenter: Failed to receive migration. --> VMWARE.LOG: YYYY-MM-DDTHH:MM:SS.407Z| vmx| I125: Msg_Post: Error YYYY-MM-DDTHH:MM:SS.407Z| vmx| I125: [msg.cpuid.vhv.enablemismatch] Configuration mismatch: The virtual machine cannot be restored because the snapshot was taken with VHV enabled. To restore, set vhv.enable to true. YYYY-MM-DDTHH:MM:SS.407Z| vmx| I125: ---------------------------------------- YYYY-MM-DDTHH:MM:SS.409Z| vmx| I125: Vigor_MessageRevoke: message 'msg.cpuid.vhv.enablemismatch' (seq 1946687) is revoked YYYY-MM-DDTHH:MM:SS.409Z| vmx| I125: MigrateSetStateFinished: type=2 new state=12 YYYY-MM-DDTHH:MM:SS.409Z| vmx| I125: MigrateSetState: Transitioning from state 11 to 12. YYYY-MM-DDTHH:MM:SS.409Z| vmx| I125: Migrate: Caching migration error message list: YYYY-MM-DDTHH:MM:SS.409Z| vmx| I125: [msg.checkpoint.migration.failedReceive] Failed to receive migration. YYYY-MM-DDTHH:MM:SS.410Z| vmx| I125: Msg_Post: Error YYYY-MM-DDTHH:MM:SS.410Z| vmx| I125: [msg.checkpoint.migration.failedReceive] Failed to receive migration. YYYY-MM-DDTHH:MM:SS.410Z| vmx| I125: ----------------------------------------
Resolution
Com base no artigo da base de conhecimento da VMware abaixo, é recomendável desativar o VHV em todos os hosts do ESXi. Se qualquer tipo de virtualização aninhada estiver ocorrendo no ambiente (executando o ESXi como uma VM), essa alteração de configuração afetará as VMs aninhadas.
Suporte para executar o ESXi como uma solução de virtualização aninhada
Para desativar o VHV, execute as seguintes etapas:
- Coloque o host do ESXi no modo de manutenção
- SSH para o host do ESXi
- Navegue até o caminho /etc/vmware/
- Faça backup do arquivo de configuração existente executando o comando "cp configuration config.bak"
- Edite o arquivo de configuração existente "configuration" e remova a linha vhv.enable = TRUE
- Reinicialize o host do ESXi
Nota: Ao desativar o VHV em um ambiente ESXi, o vMotion só migrará VMs entre hosts com a mesma definição de configuração do VHV. O tempo de inatividade provavelmente será necessário para as VMs em execução nos hosts do ESXi com o VHV ativado.
Exemplo:
- ESXi 1/2/3 têm VHV ativado, ESXi 4/5/6 têm VHV desativado. Cada ESXi 1/2/3 tem VMs em execução.
- O ESXi 3 entra no modo de manutenção e migra as VMs para o ESXi 2. O VHV está desativado no ESXi 3.
- O ESXi 2 entra no modo de manutenção e migra as VMs para o ESXi 1. O VHV está desativado no ESXi 2.
- O ESXi 1 não consegue entrar no modo de manutenção, pois nenhuma VM em execução pode executar o vMotion nos hosts restantes devido à diferença de configuração do VHV. As VMs devem ser desligadas temporariamente nesse ponto.