Zombie VM killen

Eine Methode zum Abschuss einer Zombie-VM (eine VM die sich mit Mitteln des vSphere Clients nicht abschalten lässt).

Auf der ESX Konsole:

Zuerst der Versuch auf die nette Tour:

vmware-cmd /vmfs/volumes/<Volume>/<VMOrdner>/<VMName>.vmx stop

Die Chancen, daß das nicht zum Ziel führt sind erhöht. Schließlich funktionierte es über die GUI schon nicht. Also nochmal, jetzt aber mit etwas Nachdruck:

vmware-cmd /vmfs/volumes/<Volume>/<VMOrdner>/<VMName>.vmx stop hard

Wenn das auch nicht hilft, dann muss die Kettensäge ran. Wir haben es mit einem harten Zombie zu tun. 😉 Zunächst brauchen wir die PID der VM. Die bekommen wir mit:

ps auxfww | grep <vmname>

Die gesuchte PID (process ID) befindet sich rechts neben „root“.

kill -9 <PID>

vSphereCLI

Diese Methode ist auch bei ESXi einsetzbar.

esxcli --server <Host> --username root --password "<pass>" vms vm list

Die World ID der VM notieren

esxcli --server <Host> vms vm kill --world-id <ID> --type <soft|hard|force>

Die Modi soft, hard und force sind verschiedene Härtegrade der Abschaltung.

soft: löst einen normalen Shutdown der VM aus. Enstpricht dem „kill <PID>“ auf der ESX Konsole.

hard: die etwas härte Methode. Schaltet die VM hart aus. Entspricht dem „kill -9 <PID>“ im obigen Beispiel auf der Konsole.

force: wenn nichts mehr hilft. Abschuss ohne Rüchsicht auf Verluste. Sollte nur angewandt werden, wenn es mit soft oder hard nicht funktionierte.

powerCLI

PowerCLI erinnert in vielen Punkten an eine bash und ist daher auch sehr gut zur Progrmmierung geeignet. Für einige Aufgaben gibt es keinen direkten Befehl, aber diese können z.B. durch Aufruf der esxcli Kommandos ausgeführt werden.

Für die Einbindung des ESXCli Cmdlets benötigen wir PowerCLI 4.1.1

Die PowerCLI Kommandos fand ich im Blogbeitrag von Boerlowie. Herzlichen Dank.

Connect-VIServer -Server <Host> -Credential $(Get-Credential -Credential root)
$esxcli = Get-EsxCli -Server <Host>
$esxcli.vms.vm.list() | Format-Table -Property DisplayName, WorldID

Die WorldID der Zombie-VM notieren für das folgende Kommando. Auch hier gibt es wieder die drei Modi soft, hard und force (vgl. oben).

$esxcli.vms.vm.kill("soft", <WorldID>)

ESXi Jumboframes auf vSwitch aktivieren

vSphereCLI:

Die Option –username muss nicht übergeben werden. Ohne Übergabe wird der Username und das Kennwort bei Verbindung abgefragt.

Einstellungen des vSwitch anzeigen:

vicfg-vswitch.pl --server <Name> [--username root] -l

MTU am vSwitch ändern:

Option -m bzw. –mtu setzt die maximale Paketgröße (Maximum Transmission Unit) auf z.B. 9000 Byte für alle am vSwitch angeschlossenen NICs. Alle Adapter müssen diese MTU unterstützen!

vicfg-vswitch.pl --server <Name> -m 9000 <vSwitch>

MTU auf Adapter anzeigen

vicfg-nics.pl --server <Name> -l

Einschränkung:

Diese Methode funktioniert nicht mit der freien Version von ESXi 4.x

 

virtuellen SCSI Adapter tauschen

Es gibt Situationen, da ist es notwendig den virtuellen SCSI Adapter einer VM zu tauschen. Ich fand neulich eine Windows XP VM mit virtuellem IDE Controller auf einem ESX System. Wie kam das dorthin? Konfigurieren kann man ein solches Szenario im vSphere-Client nicht (ist auch gut so 😉 ). In der Regel kommen solche Wolpertinger durch Konvertierungen von VMware Workstation-VM, oder durch P2V Konvertierungen aus einem realen PC. Dieser hat meist einen IDE/SATA Controller.

Wie werde ich das nun wieder los?

„virtuellen SCSI Adapter tauschen“ weiterlesen

endlich online

Kennt Ihr das auch? Es gibt unzählige Tricks, mit denen man die virtuelle Welt leichter verwalten kann. Fehler, die man schonmal erfolgreich beseitigt hatte. Arbeitsabläufe, Best-practise, no-nos usw. Das Problem: Ich habe sie nicht aufgeschrieben und kann mich Monate später nur noch schleierhaft daran erinnern. Dieser Blog soll Abhilfe schaffen. 🙂

Ich werde also hier immer wieder meine Gedankenschnipsel zum Thema ESX, Storage und allem was dazu gehört niederschreiben. Mal schauen ob es dann besser wird. 😉