Tags: ESXi, vSphere, Power Management, PowerShell
Auch bei einfachen Operationen wie dem Ein- und Ausschalten von virtuellen Maschinen hat PowerShell oft Vorteile gegenüber dem vSphere Web Client. Das gilt etwa dann, wenn man einen Befehl auf mehrere VMs anwenden will, und diese Filterkriterien entsprechen müssen.
Wenn man sich im vSphere Web Client die Auswahl unter Betrieb im Kontextmenü einer VM ansieht, dann stehen dort gleich mehrere Aktionen zu Verfügung. Das sind zum einen jene, die der Hypervisor von außen auf die VM anwendet, darunter das Ein- und Ausschalten oder Zurücksetzen. Zusätzlich gibt es die Option, das Gastbetriebssystem mit Hilfe der VMware Tools herunterzufahren oder neu zu starten.
Hartes Ausschalten und Reset vermeiden
In die erste Kategorie fallen Start-VM, Stop-VM und Restart-VM. Während es zu Start-VM aus naheliegenden Gründen keine Alternative von innerhalb der VM gibt, sind ansonsten die Cmdlets Stop-VMGuest und Restart-VMGuest vorzuziehen.
Die ersten Cmdlets repräsentieren nämlich harte Varianten, die eine VM einfach ausschalten bzw. zurücksetzen und so zu Datenverlusten führen können. Die Wirkung von Stop-VM und Restart-VM entspricht in der physikalischen Welt dem Ziehen des Netzsteckers bzw. dem Drücken der Reset-Taste.
Diese Maßnahmen scheinen nur angebracht, wenn eine VM hängt und auf keine Kommandos mehr reagiert. Für diesen Fall bietet Stop-VM noch zusätzlich den Schalter -kill. Seine Verwendung setzt jedoch voraus, dass man die Verbindung nicht über vCenter, sondern direkt über den betreffenden ESXi-Host aufbaut.
Herunterfahren und Neustart
Der Aufruf der genannten Cmdlets erfolgt durchwegs nach dem gleichen Muster: Sie erwarten den Namen der virtuellen Maschinen über den Parameter VM:
Stop-VMGuest -VM "Windows 7 x86"
Meistens wird man PowerCLI dann einsetzen, wenn man etwa für Wartungsarbeiten eine größere Zahl an VMs herunterfahren oder starten muss. In diesem Fall wäre es umständlich, alle Namen der VMs für den Aufruf der Cmdlets einzutippen.
Hier empfiehlt sich der Einsatz von Get-VM, das virtuelle Maschinen nach verschiedenen Kriterien filtern kann. Sollen etwa alle VMs heruntergefahren werden, die auf dem Datastore QNAP-iSCSI-0 gespeichert sind, dann könnte der Aufruf so aussehen:
Get-VM -Datastore "QNAP-iSCSI-0" | Stop-VMGuest
Wenn man diesen Befehl abschickt, wird man schnell feststellen, dass Stop-VMGuest für jede einzelne VM eine Bestätigung des Benutzers anfordert. Bei einer größeren Zahl an VMs ist dieses Verhalten meist unerwünscht.
Stattdessen kann man Stop-VMGuest erst mit dem Schalter -WhatIf aufruft, um zu sehen, welche Auswirkung der Befehl hätte. Zusätzlich kann man die Sammlung auf eingeschaltete VMs eingrenzen, um Fehlermeldungen zu vermeiden. Anschließend unterdrückt man mit
Get-VM -Datastore "QNAP-iSCSI-0" | ? Powerstate -eq "PoweredOn" | Stop-VMGuest -confirm:$false
die Nachfragen. Den Parameter Confirm unterstützen alle bisher genannten Cmdlets.
Virtuelle Maschinen anhalten
Neben den Neustarten und Herunterfahren einer VM besteht noch die Möglichkeit, diese "einzufrieren" (der Web Client bezeichnet diese Aktion mit Anhalten, Hyper-V mit Speichern). Der Speicherinhalt der VM wird dabei auf Platte geschrieben, so dass man ihren Zustand anschließend wiederherstellen kann.
Auch hier bieten sich eine interne und eine externe Methode an, wobei die Unterschiede nicht wesentlich sind. Bei Suspend-VM versetzt der Hypervisor die VM in den Ruhezustand, während Suspend-VMGuest den Energiesparmodus im Gastbetriebssystem aktiviert:
Suspend-VMGuest -VM "Windows 7 x86" -confirm:$false
Diese Aktion entspräche also dem Befehl Energie sparen im Startmenü von Windows 7. In beiden Fällen reanimiert man die VM mit Start-VM.
Täglich Know-how für IT-Pros mit unserem Newsletter
Ähnliche Beiträge
- Tool für Maximalwerte in VMware vSphere, Poster für Cmdlets in PowerCLI 10
- VMware bringt künftig vCenter- vor ESXi-Releases, vSphere 8 U1 als IA verfügbar
- VMware vSphere 8 Update 1: Configuration Profiles nun GA, erweiterter TPM -Support, Okta als Identity Provider
- ESXi Free 8.0: Neuerungen, Hardware-Voraussetzungen, Lizenzierung
- VMware PowerCLI v13: Alle Module nun für Windows, Mac und Linux, Update für vSAN und NSX
Weitere Links