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 KB, пропонується вимкнути VHV на всіх хостів ESXi. Якщо в середовищі відбувається будь-який тип вкладеної віртуалізації (під керуванням ESXi як віртуальної машини), ця зміна конфігурації вплине на вкладені віртуальні машини.
Підтримка запуску ESXi як вкладеного рішення для віртуалізації
Щоб відключити VHV, виконайте наступні дії:
- Переведіть хост ESXi в режим обслуговування
- SSH на хост ESXi
- Перейдіть до path /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. На цьому етапі віртуальні машини повинні бути тимчасово вимкнені.