Hyper-V-Host-CPU-Ressourcenverwaltung

Hyper-V-Host-CPU-Ressourcensteuerungen, die in Windows Server 2016 oder höher eingeführt wurden, ermöglichen Hyper-V-Administratoren eine bessere Verwaltung und Zuweisung von Host-Server-CPU-Ressourcen zwischen der Stamm- oder Verwaltungspartition und Gast-VMs. Mithilfe dieser Steuerungen können Administratoren eine Teilmenge der Prozessoren eines Hostsystems für die Stammpartition verwenden. Dadurch kann die auf einem Hyper-V-Host geleistete Arbeit von den Workloads getrennt werden, die auf virtuellen Gastcomputern ausgeführt werden, indem sie auf separaten Teilmengen der Systemprozessoren ausgeführt werden.

Ausführliche Informationen zur Hardware für Hyper-V-Hosts finden Sie unter Windows 10-Hyper-V-Systemanforderungen.

Hintergrund

Bevor Sie Steuerungen für Hyper-V-Host-CPU-Ressourcen festlegen, sollten Sie sich über die Grundlagen der Hyper-V-Architektur informieren. Eine allgemeine Zusammenfassung finden Sie im Abschnitt Hyper-V-Architektur. Dies sind wichtige Konzepte für diesen Artikel:

  • Hyper-V erstellt und verwaltet unter der Kontrolle des Hypervisors virtuelle Computerpartitionen, in denen Computeressourcen zugewiesen und freigegeben werden. Partitionen bieten starke Isolationsgrenzen zwischen allen virtuellen Gastcomputern sowie zwischen Gast-VMs und der Stammpartition.

  • Die Stammpartition ist selbst eine virtuelle Computerpartition, obwohl sie eindeutige Eigenschaften und viel höhere Berechtigungen als Gast-VMs aufweist. Die Stammpartition stellt die Verwaltungsdienste bereit, die alle virtuellen Gastcomputer steuern, bietet virtuelle Geräteunterstützung für Gastgeräte und verwaltet alle Geräte-I/O-Vorgänge für virtuelle Gastcomputer. Microsoft empfiehlt dringend, keine Anwendungsworkloads in der Hostpartition auszuführen.

  • Jeder virtuelle Prozessor (VP) der Stammpartition wird 1:1 einem zugrunde liegenden logischen Prozessor (LP) zugeordnet. Eine Host-VP wird immer auf derselben zugrunde liegenden LP ausgeführt. Es findet also keine Migration der VPs der Stammpartition statt.

  • Standardmäßig können die LPs, auf denen Host-VPs ausgeführt werden, auch Gast-VPs ausführen.

  • Ein Gast-VP kann vom Hypervisor so geplant werden, dass er auf jedem beliebigen verfügbaren logischen Prozessor ausgeführt wird. Zwar berücksichtigt der Hypervisorplaner die temporäre Cacheposition, NUMA-Topologie und viele andere Faktoren beim Planen eines Gast-VP, aber der VP könnte letztendlich auf jedem Host-LP geplant werden.

Die Minimalstamm- oder „Minroot“-Konfiguration

In früheren Versionen von Hyper-V wurde eine architektonische Höchstgrenze von 64 VPs pro Partition festgelegt. Dies gilt sowohl für die Stamm- als auch die Gastpartitionen. Da Systeme mit mehr als 64 logischen Prozessoren auf High-End-Servern auftraten, hat Hyper-V auch seine Hostskalierungsgrenzwerte weiterentwickelt, um diese größeren Systeme zu unterstützen, wobei ein Host mit bis zu 320 LPs unterstützt wurde. Das Brechen des Grenzwerts von 64 VP pro Partition zu diesem Zeitpunkt stellte jedoch mehrere Herausforderungen dar und führte zu Komplexitäten, die die Unterstützung von mehr als 64 VPs pro Partition nicht praktikabel machten. Um dem Rechnung zu tragen, beschränkte Hyper-V die Anzahl der VPs, die der Stammpartition zugewiesen wurden, auf 64, auch wenn der zugrunde liegende Computer über viele weitere logische Prozessoren verfügte. Der Hypervisor würde weiterhin alle verfügbaren LPs zum Ausführen von Gast-VPs verwenden, aber die Stammpartition wurde künstlich auf 64 begrenzt. Diese Konfiguration wurde als „Minimalstamm“- oder „Minroot“-Konfiguration bezeichnet. Leistungstests haben bestätigt, dass der Stamm selbst bei großen Systemen mit mehr als 64 LPs nicht mehr als 64 Stamm-VPs benötigt hat, um eine ausreichende Anzahl von Gast-VMs und Gast-VPs zu unterstützen. Tatsächlich waren häufig viel weniger als 64 Stamm-VPs ausreichend, natürlich je nach Anzahl und Größe der Gast-VMs, der spezifischen Workloads, die ausgeführt werden, usw.

Dieses „Minroot“-Konzept wird auch heute noch genutzt. Selbst wenn Windows Server 2016 Hyper-V den maximalen Grenzwert für die Architekturunterstützung für Host-LPs auf 512 LPs erhöht hat, ist die Stammpartition immer noch auf maximal 320 LPs beschränkt.

Verwenden von Minroot zum Einschränken und Isolieren von Hostcomputeressourcen

Mit dem hohen Standardschwellenwert von 320 LPs in Windows Server 2016 Hyper-V wird die Minroot-Konfiguration nur auf den größten Serversystemen verwendet. Diese Funktion kann jedoch vom Hyper-V-Hostadministrator auf einen viel niedrigeren Schwellenwert konfiguriert und somit genutzt werden, um die Menge der für die Stammpartition verfügbaren Host-CPU-Ressourcen stark einzuschränken. Die spezifische Anzahl der zu verwendenden Stamm-LPs muss natürlich sorgfältig ausgewählt werden, um die maximalen Anforderungen der VMs und Workloads zu unterstützen, die dem Host zugeordnet sind. Vernünftige Werte für die Anzahl der Host-LPs können jedoch durch sorgfältige Bewertung und Überwachung von Produktionsworkloads ermittelt und vor der umfassenden Bereitstellung in Nicht-Produktionsumgebungen überprüft werden.

Aktivieren und Konfigurieren von Minroot

Die Minroot-Konfiguration wird über Hypervisor-BCD-Einträge gesteuert. So aktivieren Sie Minroot über eine Befehlseingabeaufforderung mit Administratorrechten:

     bcdedit /set hypervisorrootproc n

Dabei steht n für die Anzahl der Stamm-VPs.

Das System muss neu gestartet werden, und die neue Anzahl von Stammprozessoren bleibt für die Lebensdauer des Betriebssystemstarts erhalten. Die Minroot-Konfiguration kann zur Laufzeit nicht dynamisch geändert werden.

Wenn mehrere NUMA-Knoten vorhanden sind, erhält jeder Knoten n/NumaNodeCount Prozessoren.

Beachten Sie, dass Sie bei mehreren NUMA-Knoten sicherstellen müssen, dass die Topologie des virtuellen Computers so ist, dass auf jedem NUMA-Knoten genügend freie LPs (d. h. LPs ohne Stamm-VPs) vorhanden sind, um die NUMA-Knoten-VPs des entsprechenden virtuellen Computers auszuführen.

Überprüfen der Minroot-Konfiguration

Sie können die Minroot-Konfiguration des Hosts wie unten gezeigt mit dem Task-Manager überprüfen.

Host's minroot configuration shown in Task Manager

Wenn Minroot aktiv ist, zeigt der Task-Manager zusätzlich zur Gesamtzahl der logischen Prozessoren im System die Anzahl der logischen Prozessoren an, die dem Host derzeit zugewiesen sind.