vSphere5: Zombie VM mit PowerCLI abschiessen

Gelegentlich kommt es vor: Eine VM läßt sich werder beenden, hart abschalten, noch neu starten. Ein sogenannter Zombie.

Unter vSphere5 funktionieren PowerCLI und ESXCLI etwas anders als unter vSphere 4.x.

Methode1: (Soft)

> $VM = Get-VM.<VM-Name>
> $esxcli = Get-EsxCli -vmhost ($VM.Host)
> $WorldID = ($esxcli.vm.process.list() | Where { $_.DisplayName -eq $VM.Name}).WorldID
> $result = $esxcli.vm.process.kill("soft", $WorldID)
> $result

Methode2: (Hard)

…und bist Du nicht willig….. 🙂

> $VM = Get-VM.<VM-Name>
> $esxcli = Get-EsxCli -vmhost ($VM.Host)
> $WorldID = ($esxcli.vm.process.list() | Where { $_.DisplayName -eq $VM.Name}).WorldID
> $result = $esxcli.vm.process.kill("hard", $WorldID)
> $result

Auch Wildcards lassen sich hier einsetzen (Achtung!):

> $VM = Get-VM.<VM-Namepart>*

Schiesst alle VMs ab, die mit dem Teilamen beginnen. Weitere Informationen zum Thema finden sich im Originalpost bei Virtu-Al. Dort befindet sich auch eine PS Funktion, die obige Befehle vereinfacht. Die Syntax ist dann reduziert auf:

Get-VM <VM-Name> | Kill-VM

Eine alternative Methode bedient sich der esxcli cmdlets

Dies ist eine moderne Abwandlung (vSphere 5) einer Methode, die ich in einem älteren Artikel unter vSphere 4.x beschrieben hatte.

connect-viserver esx1.mydomain.com

Alle aktiven VM Prozesse auflisten.

$esxcli = get-esxcli
$esxcli.vm.process.list()

Hier muss man die WorldID der Zombie-VM notieren.

Klar zum Abschuss!

$esxcli.vm.process.kill("hard", <WorldID>)

Hier ist <WorldID> durch 3867 zu ersetzen.

HA und DRS Audit: der Praxistest

Kürzlich habe ich hier eine Kurzmeldung zum HA und DRS Audit geschrieben. Heute hatte ich endlich einen Moment Zeit, dieses Skript (Version 1.1) zu testen. Ich war überrascht, wie einfach es ist: Skript herunterladen, PowerCLI öffnen, Skript starten, Server und Login eingeben, fertig! 🙂

Die Ausgabe erfolgt in HTML und erinnert stark an vCheck. Kein Wunder – es kommt vom selben Autor Alan Renouf alias Virtu-Al. Die Anwendung ist noch deutlich einfacher geworden. Server und Logindaten können in einer GUI-Maske (vgl. Bild) eingegeben werden.

Danach untersucht das Skript eine Virtuelle Infrastruktur nach Kriterien, die im Buch „HA and DRS Technical Deepdive“ von Frank Denneman und Duncan Epping diskutiert werden. Die Ergebnisabschnitte enthalten Empfehlungen und direkte Referenzen auf die entsprechenden Buchseiten zum Thema. Im Bild unten ist beispielhaft ein solcher Verweis dargestellt. Meine Wertung: Daumen hoch! 🙂