PowerFlex: сбой vMotion для определенных хостов ESXi с ошибкой «Не удалось получить перенос»
Summary: Сбой vMotion между хостами ESXi из-за несоответствия конфигурации параметров VHV.
Symptoms
Пример различия в конфигурации двух хостов 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"
При попытке перенести виртуальные машины на определенный хост ESXi с помощью vMotion происходит сбой переноса и появляется сообщение об ошибке «Не удалось получить перенос».
Cause
Сбой vMotion из-за несоответствия конфигурации между хостами ESXi в среде. Виртуальная аппаратная виртуализация (VHV) может быть включена на одних хостах и отключена на других. Это несоответствие приводит к сбою vMotion между двумя группами хостов. Эту проблему можно подтвердить, просмотрев файл «vmware.log», связанный с работающей виртуальной машиной, и файл «/var/log/hostd.log» на исходных или целевых хостах ESXi.
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
На основании приведенной ниже статьи базы знаний VMware рекомендуется отключить VHV на всех хостах ESXi. Если в среде применяется какой-либо тип вложенной виртуализации (при работе с ESXi в качестве виртуальной машины), это изменение конфигурации повлияет на вложенные виртуальные машины.
Поддержка запуска ESXi в качестве решения для вложенной виртуализации
Чтобы отключить VHV, выполните следующие действия.
- Переведите хост ESXi в режим обслуживания
- Подключитесь по SSH к хосту ESXi.
- Перейдите в папку /etc/vmware/.
- Создайте резервную копию существующего файла конфигурации, выполнив команду «cp configuration config.bak»
- Отредактируйте существующий файл конфигурации «configuration» и удалите строку vhv.enable = TRUE
- Перезагрузите хост ESXi.
ПРИМЕЧАНИЕ. При отключении VHV в среде ESXi vMotion будет переносить виртуальные машины только между хостами с одинаковым параметром конфигурации VHV. Простой, скорее всего, потребуется для виртуальных машин, работающих на хостах ESXi с включенной поддержкой VHV.
Пример:
- В ESXi 1/2/3 включен VHV, в ESXi 4/5/6 отключен VHV. На каждом ESXi 1/2/3 запущены виртуальные машины.
- ESXi 3 перейдет в режим обслуживания и перенесет виртуальные машины в ESXi 2. VHV отключен в ESXi 3.
- ESXi 2 перейдет в режим обслуживания и перенесет виртуальные машины в ESXi 1. VHV отключен в ESXi 2.
- ESXi 1 не может перейти в режим обслуживания, так как ни одна из запущенных виртуальных машин не может подключить vMotion к оставшимся хостам из-за разницы в конфигурации VHV. На этом этапе виртуальные машины должны быть временно выключены.