Virtuelle CPUs für Windows Server Hyper-V konfigurieren
Die Zuteilung virtueller CPUs an virtuelle Maschinen spielt eine große Leistung für die VM-Performance. So werden vCPUs für Hyper-V konfiguriert.
Um virtuelle CPUs in Hyper-V effizient zu steuern, ist es wichtig, dass die physischen CPUs der Hyper-V-Hosts entsprechend ausgestattet sind. Um mit Hyper-V effizient zu virtualisieren und virtuelle CPUs zuzuweisen, besteht der erste Schritt also darin, die physischen CPUs optimal zu planen.
Generell lassen sich in Windows Server 2012 R2 Hyper-V bis zu 320 Prozessoren nutzen und auch für Windows Server 2016 wird diese Anzahl vermutlich mindestens gleich groß sein. Diese Prozessoren können wiederum auf bis zu 2.048 virtuelle CPUs aufgeteilt und virtuellen Servern zugewiesen werden. Dabei gibt Hyper-V in Windows Server 2012 R2 kein bestimmtes Verhältnis zwischen logischen Prozessoren und virtuellen Prozessoren vor. Administratoren sind hier also weitgehend flexibel.
Die maximale Anzahl der vCPUs, die einem virtuellen Server zugewiesen werden können, hängt vom jeweiligen Betriebssystem ab, das in der virtuellen Maschine installiert ist. Windows Server 2008 R2/2012/2012 R2 und Windows Server 2016 unterstützen bis zu 64 vCPUs. Sind auf dem Hyper-V-Host auch virtuelle Arbeitsstationen im Einsatz, müssen auch hier die Grenzen für die maximal unterstützte CPU-Anzahl beachtet werden. Windows 8/8.1 und Windows 10 unterstützen bis zu 32 virtuelle Prozessoren in den VMs, Windows 7 dagegen nur vier.
Virtualisierungs-Funktionen moderner CPUs
Moderne Enterprise-CPUs unterstützen inzwischen fast alle die Virtualisierung. Ohne diese Unterstützung, die auch im BIOS aktiviert sein muss, kann die CPU immer nur ein Betriebssystem auf dem Server unterstützen. Greift ein virtuelles Betriebssystem auf die CPU zu, muss das Host-Betriebssystem die Anfragen erst umschreiben, an die CPU senden und die Antwort dann wieder an das Gast-Betriebssystem weiterleiten. Eine wenig ideale Vorgehensweise.
Durch aktivierte Virtualisierungs-Funktionen können virtuelle Betriebssysteme über die vCPUs auf die phyischen CPUs zugreifen. Hier stehen den virtuellen Prozessoren die gleichen Funktionen auf den physischen Prozessoren zur Verfügung, wie über das Host-Betriebssystem.
Intel-Prozessoren sind derzeit für die Virtualisierung am besten geeignet und bieten mit Intel Virtualization Technology (VT-x) die Unterstützung für Hyper-V. Das AMD-Pendant hört auf den Namen AMD-V. Aktuelle Prozessoren unterstützen auch Extended Page Tables, auch als Second-Level-Adress-Translation (SLAT) bezeichnet, was einen schnelleren Zugriff auf den Datenspeicher ermöglicht.
vCPUs in Windows Server Hyper-V konfigurieren
Beim Anlegen eines virtuellen Computers, aber auch jeder Zeit danach, lassen sich die Einstellungen der virtuellen CPUs anpassen. Dazu steht im Hyper-V-Manager in den Eigenschaften von VMs der Bereich Prozessor zur Verfügung.
Die meisten vCPU-Einstellungen lassen sich nur dann vornehmen, wenn die VM ausgeschaltet ist. Das gilt auch bei Windows Server 2016.
Unterhalb des Menüpunktes Prozessor lassen sich weitere Einstellungen vornehmen. Sind zum Beispiel in einem Hyper-V-Cluster verschiedene Prozessortypen im Einsatz, lässt sich hier der Kompatibilitätsmodus aktivieren. Dadurch besteht die Möglichkeit, virtuelle Server durch die Live-Migration im laufenden Betrieb zwischen Cluster-Knoten mit verschiedenen Prozessoren zu verschieben.
Allerdings ist das in der Praxis selten sinnvoll. Besser ist es, wenn alle Cluster-Knoten in einem Hyper-V-Cluster identisch konfiguriert sind.
Zusätzlich unterstützt Hyper-V an dieser Stelle auch Non-Uniform Memory Access (NUMA). Die Technologie verbessert die Kommunikation zwischen Arbeitsspeicher und Prozessor. Für einzelne VMs lässt sich NUMA in den Prozessoreinstellungen aktivieren und steuern.
Grenzwerte über die Ressourcensteuerung festlegen
In den vCPU-Einstellungen im Hyper-V-Manager können Administratoren auch über die Ressourcensteuerung festlegen, dass eine virtuelle CPU, oder eine virtuelle Maschine, mehr oder weniger Leistung von den physischen CPUs bekommt. Hier stehen folgende Werte zur Verfügung:
- Reserve für virtuellen Computer: Steuert den Mindestwert, der niemals unterschritten werden darf. Dadurch erhält eine VM immer eine garantierte Leistung.
- Anteil an Gesamtsystemressourcen: Zeigt den Anteil in Prozent der Gesamtauslastung an.
- Grenze für virtuellen Computer: Legt den Maximalwert für die CPU-Auslastung fest.
- Relative Gewichtung: Legt fest, welchen Anteil die virtuelle Maschine erhalten soll. Jeder VM kann eine relative Gewichtung erhalten. Ein Computer mit einer relativen Gewichtung von 100 erhält doppelt so viel Zugriff auf die CPU wie ein Computer mit einer Gewichtung von 50. Die Zahlen sind frei wählbar.
vCPU-Konfiguration über Hyper-V-Manager, SCVMM und PowerShell
Die vCPUs virtueller Maschinen steuern Administratoren entweder über den Hyper-V-Manager oder über System Center Virtual Machine Manager (SCVMM). Aber auch in der PowerShell lassen sich die Einstellungen festlegen und abrufen. Das wichtigste Cmdlet dazu lautet Set-VMProcessor. Soll zum Beispiel die VM nano mit zwei virtuellen CPUs konfiguriert werden und dabei eine Reserve von 10 Prozent, ein Maximum von 75 Prozent sowie eine relative Gewichtung von 100 erhalten, wird hierfür folgender Befehl verwendet:
Set-VMProcessor nano -Count 2 -Reserve 10 -Maximum 75 -RelativeWeight 100
Soll die Kompatibilität für die vCPUs aktiviert werden, wird folgender Befehl für den Server nano verwendet:
Set-VMProcessor nano -CompatibilityForMigrationEnabled $true
Um sich die Werte von vCPUs in der PowerShell anzuzeigen, wird das CMDlet Get-VMProcessor verwendet. Mit der Option |fl zeigt das Cmdlet alle Informationen zu den vCPUs einer VM an.
Folgen Sie SearchDataCenter.de auch auf Twitter, Google+, Xing und Facebook!