Hoe los je een ongeldige status van een virtuele machine op in VMware ESXi?

Het kan erg frustrerend zijn om virtuele machines (VM’s) als ongeldig (soms ook wel ‘onbekend’ genoemd) in vSphere te zien. Meestal gebeurt dit nadat je een VM hebt verwijderd, maar de configuratie op de een of andere manier nog steeds op de host of in de inventaris aanwezig is. Misschien heb je handmatig VM-bestanden uit het VMFS verwijderd of een vMotion uitgevoerd, en nu zitten er spookvermeldingen in je lijst. Het frustrerende is dat je deze VM’s niet via de webclient kunt verwijderen – de knop ‘ Registratie ongedaan maken ‘ werkt niet en ze blijven daar maar staan. Gelukkig kun je ze wel verwijderen via SSH op de ESXi-host, maar dat is niet de meest eenvoudige procedure. Zodra dit is gedaan, zou de VM uit je inventaris moeten verdwijnen en is alles weer normaal.

Hoe verwijder ik ‘ongeldige’ VM’s uit vSphere?

Schakel SSH in op de ESXi-host.

  • Ga naar Host > Acties > Services en zoek vervolgens SSH.
  • Klik op Acties > Start om het in te schakelen. Als SSH niet is ingeschakeld, kunt u dat hier doen – want VMware maakt het natuurlijk graag wat ingewikkelder dan nodig.

Deze stap is cruciaal omdat je toegang tot de commandoregel nodig hebt om handmatig op te ruimen. Zonder SSH-toegang kun je alles via de grafische gebruikersinterface doen, wat in dit geval niet werkt.

Verbinden via SSH

  • Gebruik een tool zoals PuTTY of mRemoteNG om via SSH verbinding te maken met je ESXi-host.
  • Log in met je root-gegevens. Als je hier nieuw mee bent, weet dan dat het geen ramp is, maar wees voorzichtig met commando’s.

Zoek de ID van de problematische virtuele machine.

  • Loop:vim-cmd vmsvc/getallvms | grep invalid

Met dit commando worden alle virtuele machines weergegeven. Door te zoeken naar ‘invalid’ kun je de defecte machines vinden. Meestal zie je dan iets als:

Skipping invalid VM '22'

Het nummer – in dit geval 22 – is de ID van de virtuele machine. Als u er meerdere ziet, is het de moeite waard om ze allemaal te noteren, maar concentreer u vooral op degene die de problemen veroorzaakt.

Probeer de virtuele machine opnieuw te laden of te deactiveren.

  • Als je eerst een reparatie wilt proberen, voer dan het volgende commando uit:vim-cmd vmsvc/reload 22

Dit kan soms de VM-vermelding herstellen en de normale werking terugbrengen, hoewel dit niet altijd het geval is, vooral als de VM-bestanden verdwenen zijn. In sommige configuraties helpt deze opdracht bij het herstellen van een correcte koppeling, waarna de VM mogelijk na een paar minuten de status ‘ Uitgeschakeld’ krijgt of uit de lijst verdwijnt. Vernieuw in dat geval de webclient.

  • Als je alleen wilt opruimen, kun je de VM afmelden met:vim-cmd /vmsvc/unregister 22

Dat is de echte opruimstap. De ongeldige VM wordt handmatig uit de inventaris verwijderd. De VM zal kort daarna uit de webclient verdwijnen. Als deze er nog steeds staat, controleer dan de VM-ID; de lijst kan soms onoverzichtelijk zijn.

Voor de dapperen: handmatig de hostd-configuratie bewerken

  • Als laatste redmiddel kun je het bestand openen /etc/vmware/hostd/vmInventory.xmlin een teksteditor zoals vi of nano:
vi /etc/vmware/hostd/vmInventory.xml

Zoek het gedeelte dat overeenkomt met uw ongeldige VM en verwijder dat gedeelte. Maak eerst een back-up, want als u iets beschadigt, is het lastig te herstellen. Start na het bewerken de hostservices opnieuw op services.sh restarten controleer of de VM verdwenen is.

Let op: In sommige gevallen kan het handmatig bewerken van dit bestand problemen veroorzaken als dit onjuist wordt gedaan. Sla daarom geen back-ups over en wees voorzichtig.

Het afhandelen van vastgelopen virtuele machines met beschadigde configuraties

Als een VM zich niet kan afmelden of pas na een herstart verdwijnt, en je de status ‘Ongeldig’ krijgt bij een actieve VM, is het configuratiebestand van de VM mogelijk beschadigd. De oplossing? Verwijder de VM uit de inventaris (via ‘ Verwijderen uit inventaris’ of herstarten) en maak deze opnieuw aan. Koppel de oude VMDK-schijven aan een nieuwe VM als bestaande schijven, voer een Storage vMotion uit om de bestanden te consolideren, schakel de VM in en controleer of alles werkt. Verwijder vervolgens de beschadigde oude VM-bestanden. Niet de meest elegante oplossing, maar soms is dit de enige manier.

Wat als de virtuele machine verdwijnt na problemen met de opslag?

Als u de toegang tot de VMFS-opslag bent kwijtgeraakt, blijven de gestopte VM’s vastzitten of worden ze verborgen in de inventaris. U moet de VM handmatig opnieuw registreren door naar het VMX-bestand van de VM in de opslag te navigeren. Klik met de rechtermuisknop, kies ‘VM registreren’ en schakel de VM vervolgens in. Dat zou alles weer moeten opstarten.

Het kan een beetje een rommelig klusje zijn om dit allemaal uit te pluizen, maar in de meeste gevallen lossen SSH-opdrachten de spookvermeldingen op. Soms is het gewoon een kwestie van het foute record verwijderen en de computer opnieuw opstarten, of de VM handmatig opnieuw registreren. Succes ermee, en hopelijk vermindert dit een deel van de frustratie wanneer de inventaris niet meer meewerkt.

Samenvatting

  • Schakel SSH in op de ESXi-host als dit nog niet actief is.
  • Verbinden via SSH
  • Gebruik dit vim-cmd vmsvc/getallvmsom ongeldige VM-ID’s te vinden.
  • Probeer opnieuw te laden of uit te loggen met vim-cmd vmsvc/reloadofunregister
  • Bewerk /etc/vmware/hostd/vmInventory.xml handmatig indien nodig.
  • Registreer virtuele machines opnieuw vanuit de opslag als ze verdwenen zijn.

Samenvatting

Het verwijderen van ongeldige virtuele machines komt meestal neer op een beetje SSH-trucjes en geduld. Dit is niet altijd even duidelijk, vooral bij hardnekkige configuraties of opslagproblemen, maar zodra je de juiste commando’s hebt gevonden, is het een stuk eenvoudiger. Hopelijk bespaart dit iemand wat kopzorgen – het werkte op een paar hosts en de spook-VM’s zijn eindelijk verdwenen.