Der Umgang mit VMs, die in vSphere als ungültig (manchmal auch unbekannt ) angezeigt werden, kann sehr ärgerlich sein. Normalerweise passiert das, nachdem man eine VM gelöscht hat, die Konfiguration aber irgendwie noch auf dem Host oder im Inventar vorhanden ist. Vielleicht hat man manuell VM-Dateien aus dem VMFS gelöscht oder eine vMotion durchgeführt und hat nun diese Geistereinträge in der Liste. Das Ärgerliche daran? Man kann diese Dinger nicht über den Web Client löschen – die Schaltfläche „Registrierung aufheben“ ist funktionslos, und sie bleiben einfach da. Zum Glück kann man sie per SSH auf dem ESXi-Host entfernen, aber das ist nicht ganz einfach. Sobald das erledigt ist, sollte die VM aus dem Inventar verschwunden sein und alles wieder normal funktionieren.
So entfernen Sie „ungültige“ VMs aus vSphere
Aktivieren Sie SSH auf dem ESXi-Host.
- Gehen Sie zu Host > Aktionen > Dienste und suchen Sie dann nach SSH.
- Klicken Sie auf Aktionen > Starten, um es zu aktivieren. Falls SSH nicht aktiviert ist, können Sie dies hier tun – denn VMware macht es einem natürlich gerne etwas schwerer als nötig.
Dieser Schritt ist entscheidend, da Sie Zugriff auf die Kommandozeile benötigen, um die Bereinigung manuell durchzuführen. Ohne laufendes SSH sind Sie gezwungen, alles über die grafische Benutzeroberfläche zu erledigen, was in diesem Fall nicht funktioniert.
Verbindung via SSH herstellen
- Verwenden Sie ein Tool wie PuTTY oder mRemoteNG und stellen Sie eine SSH-Verbindung zu Ihrem ESXi-Host her.
- Melden Sie sich mit Ihren Root-Zugangsdaten an. Falls Sie damit noch keine Erfahrung haben, keine Sorge, es ist nicht so schlimm, aber seien Sie vorsichtig mit den Befehlen.
Ermitteln Sie die ID der problematischen VM.
- Laufen:
vim-cmd vmsvc/getallvms | grep invalid
Dieser Befehl listet alle VMs auf. Durch die Suche nach „invalid“ finden Sie die defekten VMs. Typischerweise sehen Sie dann etwa Folgendes:
Skipping invalid VM '22'
Die Zahl – hier 22 – ist die VM-ID. Falls mehrere IDs angezeigt werden, ist es ratsam, sich jede einzelne zu notieren, konzentrieren Sie sich aber hauptsächlich auf diejenige, die Probleme verursacht.
Versuchen Sie, die VM neu zu laden oder die Registrierung aufzuheben.
- Wenn Sie zunächst einen Reparaturversuch unternehmen möchten, führen Sie Folgendes aus:
vim-cmd vmsvc/reload 22
Dies kann den VM-Eintrag manchmal reparieren und den Normalzustand wiederherstellen – allerdings nicht immer, insbesondere wenn die VM-Dateien fehlen. Bei manchen Konfigurationen hilft dieser Befehl, eine korrekte Verbindung wiederherzustellen. Möglicherweise sehen Sie dann, dass der Eintrag nach einigen Minuten auf „ Ausgeschaltet“ wechselt oder aus der Liste verschwindet – aktualisieren Sie in diesem Fall einfach den Webclient.
- Wenn Sie die VM einfach nur bereinigen möchten, melden Sie sie mit folgendem Befehl ab:
vim-cmd /vmsvc/unregister 22
Das ist der eigentliche Bereinigungsschritt. Dabei wird die ungültige VM manuell aus dem Inventar entfernt. Die VM sollte kurz darauf nicht mehr im Webclient angezeigt werden. Falls sie weiterhin vorhanden ist, überprüfen Sie bitte die VM-ID; die Liste kann mitunter unübersichtlich sein.
Für die Mutigen: Manuelles Bearbeiten der hostd-Konfiguration
- Als letzte Möglichkeit öffnen Sie die Datei
/etc/vmware/hostd/vmInventory.xmlin einem Texteditor wie vi oder nano:
vi /etc/vmware/hostd/vmInventory.xml
Suchen Sie den Abschnitt, der Ihrer ungültigen VM entspricht, und löschen Sie diesen. Erstellen Sie vorher unbedingt eine Sicherungskopie, da eine Reparatur im Schadensfall sehr aufwendig ist. Starten Sie nach der Bearbeitung die Hostdienste neu services.sh restartund prüfen Sie, ob die VM nun nicht mehr vorhanden ist.
Hinweis: In manchen Fällen kann die manuelle Bearbeitung dieser Datei zu Problemen führen, wenn sie nicht korrekt durchgeführt wird. Daher sollten Sie keine Sicherungskopien erstellen und vorsichtig vorgehen.
Umgang mit hängenden VMs mit beschädigten Konfigurationen
Wenn sich eine VM nicht abmelden lässt oder erst nach einem Neustart verschwindet und der Status „Ungültig“ für eine laufende VM angezeigt wird, ist möglicherweise die Konfigurationsdatei der VM beschädigt. Die Lösung? Entfernen Sie die VM aus dem Inventar (über „ Aus Inventar entfernen“ oder Neustart) und erstellen Sie sie anschließend neu. Binden Sie die alten VMDK-Festplatten als vorhandene Festplatten an eine neue VM an, führen Sie eine Storage vMotion durch, um die Dateien zu konsolidieren, schalten Sie die VM ein und überprüfen Sie die Funktion. Löschen Sie anschließend die beschädigten Dateien der alten VM. Nicht die eleganteste Lösung, aber manchmal die einzige Möglichkeit.
Was passiert, wenn die VM aufgrund von Speicherproblemen verschwindet?
Wenn Sie den Zugriff auf den VMFS-Speicher verloren haben, bleiben die gestoppten VMs im Inventar hängen oder werden ausgeblendet. Sie müssen die VM manuell neu registrieren, indem Sie zur VMX-Datei der VM im Speicher navigieren. Klicken Sie einfach mit der rechten Maustaste darauf, wählen Sie „VM registrieren“ und starten Sie die VM anschließend. Dadurch sollte alles wieder funktionieren.
Das Durchforsten all dieser Einträge kann etwas mühsam sein, aber in den meisten Fällen lassen sich die fehlerhaften Einträge mit SSH-Befehlen beheben. Manchmal genügt es, den fehlerhaften Eintrag zu löschen und das System neu zu starten oder die VM manuell neu zu registrieren. Viel Erfolg und hoffentlich hilft Ihnen das, die Frustration zu verringern, wenn die Inventarisierung nicht mehr funktioniert.
Zusammenfassung
- Aktivieren Sie SSH auf dem ESXi-Host, falls es nicht aktiv ist.
- Verbindung via SSH herstellen
- Dient
vim-cmd vmsvc/getallvmszum Auffinden ungültiger VM-IDs - Versuchen Sie, die Seite neu zu laden oder sich abzumelden
vim-cmd vmsvc/reload.unregister - Bearbeiten Sie die Datei /etc/vmware/hostd/vmInventory.xml bei Bedarf manuell.
- VMs aus dem Speicher erneut registrieren, falls sie verschwunden sind
Zusammenfassung
Das Entfernen ungültiger VMs erfordert meist etwas SSH-Know-how und Geduld. Das ist nicht immer offensichtlich, insbesondere bei hartnäckigen Konfigurationen oder Speicherproblemen, aber sobald man die richtigen Befehle gefunden hat, ist es deutlich einfacher. Hoffentlich erspart das jemandem ein paar Kopfschmerzen – ich habe es auf einigen Hosts ausprobiert und die Geister-VMs endlich beseitigt.