Wenn nichts mehr geht, hilft vim-cmd …
Es soll Situationen geben, in denen infrastrukturseitig ein Totalausfall vorliegt, selbst und vor allem in virtualisierten Umgebungen. Kein DNS, kein DHCP, kein Router oder Firewall mehr und wie Murphys Law es so vorsieht ist natürlich auch grad kein USB-C LAN Adapter für das aktuelle MacBook vorhanden. Gibt’s nicht bzw. sollte es in einer Produktivumgebung nicht geben? Leider manchmal eben doch, auch wenn es sich bei mir zuhause eher um ein Homelab handelt, so läuft mittlerweile doch alles mögliche an für das Heimnetz fundamentalen Services darauf. Und wie es halt immer so ist, baut man etwas um oder neu, wird aber aufgrund Zeitmangels nicht fertig und ganz plötzlich wird aus reiflich überlegter und sorgfältig geplanter Redundanz ein Single Point of Failure.
Wie kommt man nun also nach einem Stromausfall wieder zu einem funktionierenden Heimnetz wenn der Großteil virtualisiert und eben grad nicht verfügbar ist?
In meinem Fall musste ich in den Keller und über die Konsole direkt an den gerade „produktiven“ ESXi Host ran.
Mit F2 an DCUI anmelden.
Unter Troubleshooting Options die ESXi Shell mit Enable ESXi Shell aktivieren und DCUI mit 2x Esc verlassen.
Mit Strg+Alt+F1 zur Shell wechseln und anmelden.
So, welches war nun schnell wieder das richtige Kommando? esxcli? Nein, weil es nur laufende VM Prozesse anzeigen kann. esxcfg-…? Nein, da es keine Optionen für VMs beinhaltet. vim-cmd? Stimmt, da war was …
Eine Liste aller auf dem Host registrierten VMs erhält man mit:
vim-cmd vmsvc/getallvms | less
Wichtig ist hier vor allem die erste Spalte Vmid:
Der Domain Controller lässt sich nun folgendermaßen starten und prüfen:
vim-cmd vmsvc/power.on 59
vim-cmd vmsvc/power.getstate 59
esxcli vm process list
Nach ein paar Minuten können auch vCenter Server, NSX Manager, usw. der Reihe nach gestartet werden und anschließend ist auch der Zugriff auf Heimnetz und Internet wieder uneingeschränkt möglich. DNS, DHCP, WLAN und Netflix funktionieren wieder, alles in Butter!
Aufgrund der fehlenden DNS-Auflösung bei Boot des ESXi Hosts waren leider auch die über NFS 4.1 angebundenen Datastores inaccessible. Unglücklicherweise funktioniert esxcfg-nas –restore nur mit NFS Version 3 und so blieb nichts anderes übrig, als die Datastores mit esxcli storage nfs41 remove zu entfernen und anschließend mit add wieder hinzuzufügen.
Mittlerweile läuft alles wieder wie es soll auf meinem Intel NUC vSphere 7 vSAN Cluster mit voller Redundanz, aber unverhofft kommt ja bekanntlich oft ;-).