PowerFlex: vMotion su host ESXi specifici ha esito negativo con errore "Failed to receive migration"
Summary: vMotion tra host ESXi non riesce a causa della mancata corrispondenza della configurazione dell'impostazione VHV.
Symptoms
Esempio di differenza di configurazione tra due host 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"
Quando si tenta di eseguire la migrazione delle VM a un host ESXi specifico utilizzando vMotion, la migrazione non riesce e genera l'errore "Failed to receive migration".
Cause
vMotion non riesce a causa di una mancata corrispondenza della configurazione tra gli host ESXi nell'ambiente. La virtualizzazione assistita dall'hardware virtuale (VHV) può essere abilitata su alcuni host e disabilitata su altri. Questa mancata corrispondenza causa l'errore di vMotion tra i due gruppi di host. Questo problema può essere confermato esaminando il file "vmware.log" associato alla VM in esecuzione e il file "/var/log/hostd.log" sugli host ESXi di origine/destinazione.
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
In base all'articolo della knowledgebase di VMware riportato di seguito, si consiglia di disabilitare VHV su tutti gli host ESXi. Se nell'ambiente si verifica un qualsiasi tipo di virtualizzazione nidificata (eseguendo ESXi come VM), questa modifica alla configurazione influirebbe sulle VM nidificate.
Supporto per l'esecuzione di ESXi come soluzione di virtualizzazione nidificata
Per disabilitare VHV, effettuare le seguenti operazioni:
- Impostazione dell'host ESXi in modalità di manutenzione
- Connettersi tramite SSH all host ESXi
- Passare al percorso /etc/vmware/
- Eseguire il backup del file di configurazione esistente eseguendo il comando "cp configuration config.bak"
- Modificare il file di configurazione esistente "configuration" e rimuovere la riga vhv.enable = TRUE
- Riavviare l'host ESXi
NOTA: Durante la disabilitazione di VHV in un'ambiente ESXi, vMotion eseguirà la migrazione delle VM solo tra gli host con la stessa impostazione di configurazione VHV. Il downtime sarà probabilmente necessario per le VM in esecuzione sugli host ESXi con VHV abilitato.
Esempio:
- Il VHV è abilitato per ESXi 1/2/3, mentre per ESXi 4/5/6 il VHV è disabilitato. Su ESXi 1/2/3 sono in esecuzione macchine virtuali.
- ESXi 3 entra in modalità di manutenzione ed esegue la migrazione delle VM a ESXi 2. VHV è disabilitato su ESXi 3.
- ESXi 2 entra in modalità di manutenzione ed esegue la migrazione delle VM a ESXi 1. VHV è disabilitato su ESXi 2.
- ESXi 1 non è in grado di accedere alla modalità di manutenzione poiché nessuna macchina virtuale in esecuzione può eseguire vMotion sugli host rimanenti a causa della differenza di configurazione VHV. A questo punto, le macchine virtuali devono essere temporaneamente spente.