Nmedia - Fotolia

PowerShell-Cmdlets zur Verwaltung des SCVMM-Wartungsmodus

In SCVMM hilft der Wartungsmodus bei Support und Aktualisierung von Virtualisierungs-Hosts. Diese PowerShell-Cmdlets vereinfachen das Arbeiten.

Wartungsarbeiten werden auf Virtualisierungs-Hosts durchgeführt, um die Übereinstimmung der IT-Umgebung mit Compliance-Standards und –Prozessen sicherzustellen. Ein viel wichtigerer Grund für Wartungsarbeiten ist aber, dass Windows-Sicherheits-Updates damit schneller durchgeführt werden können.

Es gibt verschiedene Möglichkeiten, Virtualisierungs-Hosts in den Wartungsmodus zu versetzen, der einfachste Weg führt aber über SCVMM-Cmdlets (System Center Virtual Machine Manager) für die PowerShell, die bei der SCVMM-Installation mitinstalliert werden. Natürlich lässt sich ein Host auch über die Verwaltungskonsole von SCVMM in den Wartungsmodus versetzen, damit lassen sich aber nur für einen einzelnen Node oder Cluster gleichzeitig Wartungsarbeiten durchführen. Über die PowerShell und das Cmdlet Disable-SCVMHost können dagegen auch mehrere VM-Hosts in den Wartungsmodus versetzt werden.

Vor dem Starten des SCVMM-Wartungsmodus

Es gibt allerdings einige Dinge, die Administratoren wissen sollten, noch bevor sie einen Virtualisierungs-Host in den Wartungsmodus versetzen. Bei Hosts eines Clusters muss beispielsweise bedacht werden, dass in diesem Fall alle virtuellen Maschinen des Hosts per Live-Migration auf einen anderen Knoten im Cluster verschoben werden.

Wenn System Center Virtual Machine Manager für das Aktivieren des Wartungsmodus verwendet wird, dann wird man vor dem Starten dieses Prozesses gefragt, ob die laufenden virtuellen Maschinen auf einen anderen Knoten verschoben werden sollen. Wenn das Disable-SCVMHost-Cmdlet verwendet wird, dann muss allerdings separat auch der Parameter MoveWithinCluster angehängt werden.

Falls es virtuelle Maschinen im Cluster gibt, für die keine Hochverfügbarkeit innerhalb eines Failover-Clusters konfiguriert wurde, dann werden diese VMs einfach gestoppt und gesichert, wenn der Wartungsmodus aktiviert wird. Handelt es sich dagegen nicht um einen Cluster, sondern um einen einzelnen Host, dann werden alle darauf ausgeführten virtuellen Maschinen ebenfalls gestoppt.

Aktivieren des Wartungsmodus über die PowerShell

Im Folgenden werden einige Beispiele für die Verwendung des Disable-SCVMHost-Cmdlets aufgeführt. Um beispielsweise den Wartungsmodus für einen einzelnen Host zu aktivieren, werden die folgenden PowerShell-Befehle auf dem SCVMM-Server ausgeführt:

$VMHost = Get-SCVMHost –ComputerName “VHostServer”

Disable-SCVMHost –VMHost $VMHost -MoveWithinCluster

Die Verwendung des Parameters MoveWithinCluster zusammen mit dem Disable-SCVMHost-Cmdlet ermöglicht dabei die Live-Migration der virtuellen Maschinen auf einen anderen Node im Failover-Cluster.

Wenn man dagegen den Wartungsmodus für alle Virtualisierungs-Hosts in einer bestimmten SCVMM-Hostgruppe aktivieren will, dann könnte man die folgenden PowerShell-Befehle verwenden:

$VMMGroup = Get-SCVMHostGroup –Name “Dallas” –VMServer “VHostServer.TechTarget.com”

$HostsInVMMGroup = Get-SCVMHost –VMHostGroup

ForEach ($EachHost in $HostsInVMMGroup

{

Disable-SCVMHost –VMHost $VMHost -$EachHost

}

System Center Virtual Machine Manager unterstützt dabei den Wartungsmodus sowohl für Hyper-V als auch für VMware ESXi und XenServer. Der zugrundeliegende Prozess mag dabei zwar ein anderer sein, wenn etwa VMware ESXi in den Wartungsmodus versetzt wird, aber das Vorgehen über die PowerShell bleibt natürlich das Gleiche. Sobald ein Host in den Wartungsmodus versetzt wurde, deaktiviert SCVMM automatisch das Erstellen neuer VMs und die Live-Migration für diesen Host und nimmt Einzel-Hosts beziehungsweise Cluster-Hosts aus dem Rating-System von SCVMM.

Soll ein Host wieder aus dem Wartungsmodus aktiviert werden, dann kann dies ebenfalls wieder über den SCVMM-Manager oder die PowerShell erfolgen, das hierfür benötigte Cmdlet lautet Enable-SCVMHost und wird wie folgt verwendet:

$MyHost = Get-SCVMHost –ComputerName “VHostServer”

Enable-SCVMHost –VMHost $MyHost

Einer der wichtigen Schalter, den sowohl das Enable-SCVMHost- als auch das Disable-SCVMHost- Cmdlet unterstützt, ist der RunAsynchronous-Parameter, der die Kontrolle sofort an das PowerShell-Fenster übergibt, anstatt auf das vollständige Abarbeiten des letzten Befehls zu warten. Hiermit lässt sich ein Worker-Thread erstellen, der den Wartungsmodus-Prozess abarbeitet, während man selbst sofort wieder zum PowerShell-Fenster gelangt.

Nachteile des automatischen Wartungsmodus in SCVMM

Wenn ein Virtualisierungs-Host oder Cluster-Host wieder aus dem Wartungsmodus zurückgeholt wird, dann erledigt SCVMM nicht mehr, als die Services des Hosts zurückzubringen. Auch wenn SCVMM dem aus dem Wartungsmodus zurückgekehrten Host wieder die Teilnahme am Host-Rating ermöglicht, migriert dieser Prozess die virtuellen Maschinen nicht wieder zurück, die anfangs per Live-Migration bei der Aktivierung des Wartungsmodus verschoben wurden.

SCVMM startet auch die virtuellen Maschinen nicht wieder, die gestoppt wurden. Damit müssen alle virtuellen Maschinen per Hand wieder zurückmigriert werden, um die anfängliche Workload-Gleichheit wiederherzustellen. Dieser Umstand ist einer der Nachteile des SCVMM-Wartungsmodus, durch den etwas manuelle Arbeit notwendig ist, bevor der Host wieder in den Normalzustand zurückgekehrt ist. Auch wenn SCVMM per Load Balancing virtuelle Workloads eines Clusters über Dynamic Optimization ausbalancieren wird, könnte es einige Zeit dauern, bis die Workloads wieder gleich verteilt sind.

Folgen Sie SearchDataCenter.de auch auf Twitter, Google+, Xing und Facebook!

Artikel wurde zuletzt im Oktober 2016 aktualisiert

Erfahren Sie mehr über Server- und Desktop-Virtualisierung

- GOOGLE-ANZEIGEN

ComputerWeekly.de

Close