PowerFlex: vMotion a hosts ESXi específicos falla con el error "No se pudo recibir la migración"
Summary: vMotion entre hosts ESXi falla debido a una incompatibilidad de configuración de la configuración de VHV.
Symptoms
Ejemplo de diferencia de configuración entre dos hosts 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"
Cuando se intenta migrar VM a un host ESXi específico mediante vMotion, la migración falla y genera el error "No se pudo recibir la migración".
Cause
vMotion falla debido a una incompatibilidad de configuración entre los hosts ESXi en el entorno. La virtualización asistida por hardware virtual (VHV) puede estar habilitada en algunos hosts y deshabilitada en otros. Esta falta de coincidencia hace que vMotion falle entre los dos grupos de hosts. Este problema se puede confirmar revisando el archivo "vmware.log" asociado con la VM en ejecución y el archivo "/var/log/hostd.log" en los hosts ESXi de origen/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
Según el siguiente artículo de la base de conocimientos de VMware, se sugiere deshabilitar VHV en todos los hosts ESXi. Si se produce algún tipo de virtualización anidada en el entorno (con ESXi en ejecución como una máquina virtual), este cambio en la configuración afectaría a las máquinas virtuales anidadas.
Compatibilidad con la ejecución de ESXi como una solución de virtualización anidada
Para deshabilitar VHV, realice los siguientes pasos:
- Coloque el host ESXi en modo de mantenimiento
- Acceda mediante SSH al host ESXi
- Vaya a la ruta /etc/vmware/
- Respalde el archivo de configuración existente ejecutando el comando "cp configuration config.bak"
- Edite el archivo de configuración existente "configuration" y elimine la línea vhv.enable = TRUE
- Reinicie el host ESXi
NOTA: Mientras deshabilita VHV en un entorno ESXi, vMotion solo migrará VM entre hosts con el mismo ajuste de configuración de VHV. Es muy probable que se requiera tiempo de inactividad para las VM que se ejecutan en los hosts ESXi con VHV habilitado.
Ejemplo:
- ESXi 1/2/3 tiene VHV habilitado y ESXi 4/5/6 tiene VHV deshabilitado. ESXi 1/2/3 tiene VM en ejecución.
- ESXi 3 entra en modo de mantenimiento y migra las VM a ESXi 2. VHV está deshabilitado en ESXi 3.
- ESXi 2 entra en modo de mantenimiento y migra las VM a ESXi 1. VHV está deshabilitado en ESXi 2.
- ESXi 1 no puede entrar en el modo de mantenimiento, ya que ninguna máquina virtual en ejecución puede ejecutar vMotion en los hosts restantes debido a la diferencia de configuración de VHV. Las VM deben estar apagadas temporalmente en este punto.