PowerFlex: Funkcja vMotion do określonych hostów ESXi kończy się niepowodzeniem z powodu błędu "Nie udało się odebrać migracji"
Summary: Funkcja vMotion między hostami ESXi kończy się niepowodzeniem z powodu niezgodności konfiguracji ustawień VHV.
Symptoms
Przykład różnicy w konfiguracji dwóch hostów 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"
Podczas próby migracji maszyn wirtualnych do określonego hosta ESXi przy użyciu funkcji vMotion migracja kończy się niepowodzeniem i generuje błąd "Nie udało się odebrać migracji".
Cause
Funkcja vMotion kończy się niepowodzeniem z powodu niezgodności konfiguracji między hostami ESXi w środowisku. Wirtualizacja wspomagana sprzętowo (VHV) może być włączona na niektórych hostach i wyłączona na innych. Ta niezgodność powoduje niepowodzenie funkcji vMotion między dwiema grupami hostów. Problem ten można potwierdzić, przeglądając plik "vmware.log" powiązany z uruchomioną maszyną wirtualną oraz plik "/var/log/hostd.log" na źródłowych/docelowych hostach 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
W oparciu o poniższy artykuł bazy wiedzy VMware zaleca się wyłączenie VHV na wszystkich hostach ESXi. Jeśli w środowisku występuje jakikolwiek typ zagnieżdżonej wirtualizacji (uruchamianie ESXi jako maszyny wirtualnej), ta zmiana konfiguracji będzie miała wpływ na zagnieżdżone maszyny wirtualne.
Obsługa uruchamiania ESXi jako zagnieżdżonego rozwiązania wirtualizacji
Aby wyłączyć VHV, wykonaj następujące czynności:
- Przełącz hosta ESXi w tryb konserwacji
- Za pomocą protokołu SSH połącz się z hostem ESXi
- Przejdź do ścieżki /etc/vmware/.
- Utwórz kopię zapasową istniejącego pliku konfiguracyjnego, uruchamiając polecenie "cp configuration config.bak"
- Edytuj istniejący plik konfiguracyjny "configuration" i usuń wiersz vhv.enable = TRUE
- Ponownie uruchom hosta ESXi
UWAGA: Podczas wyłączania VHV w środowisku ESXi funkcja vMotion migruje tylko maszyny wirtualne między hostami z tym samym ustawieniem konfiguracji VHV. Przestój będzie najprawdopodobniej wymagany w przypadku maszyn wirtualnych działających na hostach ESXi z włączoną funkcją VHV.
Przykład:
- ESXi 1/2/3 mają włączone VHV, ESXi 4/5/6 mają wyłączone VHV. W każdym z ESXi 1/2/3 są uruchomione maszyny wirtualne.
- ESXi 3 przechodzi w tryb konserwacji i migruje maszyny wirtualne do ESXi 2. VHV jest wyłączony w ESXi 3.
- ESXi 2 przechodzi w tryb konserwacji i migruje maszyny wirtualne do ESXi 1. VHV jest wyłączony w ESXi 2.
- ESXi 1 nie może przejść do trybu konserwacji, ponieważ żadna uruchomiona maszyna wirtualna nie może wykonać funkcji vMotion na pozostałych hostach ze względu na różnicę w konfiguracji VHV. W tym momencie należy tymczasowo wyłączyć maszyny wirtualne.