Tags: Hyper-V, PowerShell, Switch, Netzwerk
Wenn man des Öfteren Hyper-V-Hosts aufsetzen muss, dann lohnt es sich, diesen Vorgang mit PowerShell zu automatisieren. Dabei lassen sich über ein Script alle notwendigen Schritte remote erledigen, von der Installation der Rolle über die Konfiguration der Host-Einstellungen bis zum Anlegen eines virtuellen Switches.
Der erste Schritt beim Einrichten eines Hyper-V-Hosts besteht im Hinzufügen der Rolle. Dies erfolgt mit Hilfe von Install-WindowsFeature. Dieser Beitrag beschreibt das Vorgehen ausführlich für Server 2012, das Procedere hat sich in der Version 2016 nicht geändert. Der Aufruf wird in den meisten Fällen so aussehen:
Install-WindowsFeature Hyper-V -ComputerName MyHost -Restart
Nach dem Neustart des Servers ist dieser mit den Standardwerten von Hyper-V konfiguriert. Diese lassen sich mit
Get-VMHost -ComputerName MyHost| select -Property *
anzeigen.
Einstellungen des Hosts ändern mit Set-VMHost
Einige davon wird man in den meisten Fällen nicht belassen wollen, etwa die Standardpfade zum Speichern der VMs und der virtuellen Laufwerke. Sie zeigen per Vorgabe auf das Systemlaufwerk. Zuständig für das Ändern der Host-Konfiguration ist das Cmdlet Set-VMHost.
Wenn man auf die Schnelle sehen möchte, mit welchen Parametern man bestimmte Einstellungen anpassen kann, dann liefert
(Get-Command Set-VMHost).Parameters | select -ExpandProperty Keys
diese Information.
Im grafischen Hyper-V-Manager sind diese Einstellungen auf mehrere Dialoge verteilt. So findet man die meisten von ihnen im Menü Aktion => Hyper-V-Einstellungen. Die Konfiguration von Storage, das via FibreChannel angebunden ist, erfolgt dagegen über den Manager für virtuelle SANs.
Hier ein paar Beispiele, die einzelne Einstellungen für Hyper-V ändern (sie ließen sich natürlich in einem Aufruf zusammenfassen):
Set-VMHost -ComputerName MyHost -VirtualHardDiskPath c:\clusterStorage\volume2 -Passthru
Damit passt man den Standardpfad für VHDs an. Der Schalter Passthru sorgt dafür, dass man das Ergebnis der Operation angezeigt bekommt. Folgender Befehl aktiviert den erweiterten Sitzungsmodus:
Set-VMHost -ComputerName MyHost -EnableEnhancedSessionMode $true
Um die Zahl der gleichzeitig möglichen Live Migrations auf 3 festzulegen und das Authentifizierungsprotokoll auf Kerberos zu ändern, geht man so vor:
Set-VMHost -ComputerName MyHost `
-MaximumVirtualMachineMigrations 3 `
-VirtualMachineMigrationAuthenticationType Kerberos `
-UseAnyNetworkForMigration $true
Dieses Kommando aktiviert zudem die Option, beliebige Netzwerke für die Migration von VMs zuzulassen. Wenn man stattdessen ein bestimmtes auswählen möchte, dann setzt man den Wert des letzten Parameters auf $false und legt das gewünschte Netzwerk mit Set-VMMigrationNetwork fest.
Virtuellen Switch einrichten
Ein funktionsfähiger Host benötigt einen virtuellen Switch, damit VMs untereinander oder mit der Außenwelt kommunizieren können. In den meisten Fällen wird man einen externen vSwitch brauchen, so dass sich die VMs mit anderen Hosts oder dem Internet verbinden können.
Diese Aufgabe erledigt das Cmdlet New-VMSwitch. Es unterstützt zwar den Parameter SwitchType, aber diesen benötigt man nur für Internal und Private. Für einen externen Switch muss man dagegen den Namen eines Netzwerkadapters angeben, und sobald man dies tut, erzeugt das Cmdlet automatisch einen virtuellen Switch vom Typ External.
Bevor man diesen Befehl absetzen kann, muss man somit den Namen des Adapters ermitteln, an den man den vSwitch binden möchte. Diese Aufgabe erledigt Get-NetAdapter, das aber den Parameter ComputerName nicht unterstützt. Aus diesem Grund erfolgt der Remote-Aufruf mittels Invoke-Command:
Invoke-Command -ComputerName MyHost{Get-NetAdapter -Physical}
Wenn man den Namen des Adapters auf diese Weise erhalten hat, dann kann man nun den virtuellen Switch erzeugen:
New-VMSwitch -ComputerName MyHost -NetAdapterName Ethernet0 `
-Name Extern -AllowManagementOS $true
Der erforderliche Parameter Name legt den Namen des vSwitch fest (in diesem Beispiel "Extern") und die Option AllowManagementOS sorgt dafür, dass das Management-OS in der Parent Partition den Adapter mitbenutzen darf.
Möchte man einen internen vSwitch anlegen, dann erledigt dies ein Kommando nach diesem Muster:
New-VMSwitch -ComputerName MyHost -SwitchType Internal -Name Intern
Windows 10 und Server 2016 erlauben auch die Konfiguration eines virtuellen NAT-Switches. Dieser Beitrag beschreibt, wie man dafür vorgehen muss.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
Weitere Links