Hyper-V-Architektur

Hyper-V ist eine hypervisorbasierte Virtualisierungstechnologie für bestimmte x64/Versionen von Windows. Der Hypervisor ist ein wesentlicher Bestandteil der Virtualisierung. Er ist die prozessorspezifische Virtualisierungsplattform, die es mehreren isolierten Betriebssystemen ermöglicht, sich eine einzige Hardwareplattform zu teilen.

Hyper-V unterstützt die Isolation wie eine Partition. Eine Partition ist eine logische Einheit der Isolation, die vom Hypervisor unterstützt wird und in der die Betriebssysteme ausgeführt werden. Der Microsoft-Hypervisor benötigt mindestens eine übergeordnete oder Stamm-Partition, die auf Windows ausgeführt wird. Der Virtualisierungs-Verwaltungsstapel wird in der übergeordneten Partition ausgeführt und hat direkten Zugriff auf Hardwaregeräte. Die Stamm-Partition erstellt anschließend die untergeordnete Partitionen, die die Gastbetriebssysteme hosten. Eine Stamm-Partition erstellt mithilfe der Hypercall-API (Application Programming Interface) untergeordnete Partitionen.

Partitionen haben keinen Zugriff auf den physischen Prozessor und behandeln die Unterbrechungen des Prozessors nicht. Sie verfügen stattdessen über eine virtuelle Ansicht des Prozessors und führen einen Adressraum für den virtuellen Speicher aus, der für jede Gastpartition intern ist. Der Hypervisor verarbeitet die Unterbrechungen des Prozessors und leitet sie an die entsprechende Partition weiter. Hyper-V kann auch per Hardware die Adressübersetzung zwischen verschiedenen virtuellen Gastadressräumen mithilfe einer Speicherverwaltungseinheit für die Ein-/Ausgabe (IOMMU) beschleunigen, die unabhängig von der Speicherverwaltungshardware funktioniert, die von der CPU genutzt wird. Eine IOMMU wird dann verwendet, um physischen Speicheradressen den Adressen neu zuordnen, die von der untergeordneten Partitionen verwendet werden.

Untergeordneten Partitionen haben ebenfalls keinen direkten Zugriff auf andere Hardwareressourcen und werden als virtuelle Ansicht der Ressourcen dargestellt, als sogenannte virtuelle Geräte (VDevs). Anfragen an virtuelle Geräte werden entweder über den VMBus oder den Hypervisor an die Geräte in der übergeordneten Partition umgeleitet, die die Anfragen behandelt. Der VMBus ist eine logische Partition zwischen Kommunikationskanälen. Die übergeordnete Partition hostet Virtualisierungsdienstanbieter (VSPs,) die über den VMBus kommunizieren, um Zugriffsanforderungen auf Geräte von untergeordneten Partitionen zu behandeln. Untergeordnete Partitionen hosten Virtualisierungsdienst-Consumer (VSCs), die die Clientanforderungen in der übergeordneten Partition über den VMBus an VSPs umleiten. Das gesamte Verfahren ist für das Gastbetriebssystem transparent.

Virtuelle Geräte können für Speicher, Netzwerke, Grafiken und Eingabe-Subsysteme auch eine Windows Server-Virtualisierungsfunktion nutzen, die „Optimierte E/A” genannt wird. Die „Optimierte E/A” ist eine spezielle Implementierung, die die Virtualisierung von high-Level Protokollen (wie z. B. SCSI) unterstützt, die den VMBus direkt nutzt und so alle Geräte-Emulationsebenen umgeht. Dadurch wird die Kommunikation effizienter. Es erfordert jedoch einen optimierte Gast, die Hypervisor und VMBus unterstützt. Hyper-V optimierte E/A und ein Kernel, der Hypervisor unterstützt wird über die Installation der Hyper-V-Integrationsdienste bereitgestellt. Integrationskomponenten, die virtuelle Server-Client-Treiber (VSC) enthalten, stehen auch für andere Clientbetriebssysteme zur Verfügung. Hyper-V erfordert einen Prozessor mit hardwareunterstützter Virtualisierung – beispielsweise mit Intel VT oder AMD Virtualization (AMD-V)-Technologie.

Das folgende Diagramm bietet einen allgemeinen Überblick über die Architektur einer Hyper-V-Umgebung.

Glossar

  • APIC – Erweiterter programmierbarer Interruptcontroller – ein Gerät, das es erlaubt, seinen Unterbrechungs-Ausgängen Prioritätsstufen zuzuweisen.
  • Untergeordnete Partition – Eine Partition, die Gastbetriebssysteme hostet - jeglicher Zugriff von einer untergeordneten Partition auf den physischen Speicher und die Geräte wird über den virtuellen Computer-Bus (VMBus) oder der Hypervisor bereitgestellt.
  • Hypercall - Eine Schnittstelle für die Kommunikation mit dem Hypervisor - die Hypercall-Schnittstelle ermöglicht den Zugriff auf die Optimierungen, die vom Hypervisor bereitgestellt werden.
  • Hypervisor – Eine Softwareschicht, die sich zwischen der Hardware und einer oder mehreren Betriebssystemen befindet. Ihre Hauptaufgabe ist die Ausführung isolierter Ausführungsumgebungen, die man Partitionen nennt. Der Hypervisor steuert und vermittelt den Zugriff auf die zugrunde liegende Hardware.
  • IC – Integrationskomponente – eine Komponente, die es der untergeordneten Partitionen ermöglicht, mit anderen Partitionen und dem Hypervisor zu kommunizieren.
  • E/A-Stapel – Eingabe/Ausgabe-Stapel
  • MSR – Speicherdienst-Routine
  • Stamm-Partition – Wird auch übergeordnete Partition genannt. Verwaltet Funktionen auf Computerebene wie Gerätetreiber, Energieverwaltung und Hinzufügen/Entfernen von Geräten. Die Stamm- (oder übergeordnete) Partition ist die einzige Partition, die direkten Zugriff auf den physischen Speicher und Geräte hat.
  • VID – Virtualisierungsinfrastruktur-Treiber – bietet Partitionsverwaltungsdienste, virtuelle Prozessorverwaltungsdienste und Arbeitsspeicher-Verwaltungsdienste für die Partitionen an.
  • VMBus – Channel-basierte Kommunikationsmechanismus für eine partitionsübergreifende Kommunikation und Geräteaufzählung auf Systemen mit mehreren aktiven virtualisierten Partitionen. Die VMBus wird mit Hyper-V-Integrationsdiensten installiert.
  • VMMS – Verwaltungsdienst für virtuelle Computer – ist für die Verwaltung des Zustands aller virtuellen Computer in den untergeordneten Partitionen verantwortlich.
  • VMWP – Arbeitsprozess für virtuelle Computer – eine Benutzermodus-Komponente des Virtualisierungsstapels. Der Arbeitsprozess bietet Verwaltungsdienst für virtuelle Computer von der Windows Server 2008-Instanz in der übergeordneten Partition auf die Gastbetriebssysteme in den untergeordneten Partitionen an. Der Verwaltungsdienst für virtuelle Computer erzeugt einen separaten Arbeitsprozess für jeden ausgeführten virtuellen Computer.
  • VSC – Virtualisierungsdienst-Client – eine synthetische Geräteinstanz, die sich in einer untergeordneten Partition befindet. VSCs nutzt die Hardwareressourcen, die von Virtualisierungsdienstanbietern (VSPs) in der übergeordneten Partition bereitgestellt werden. Diese kommunizieren mit den entsprechenden VSPs in der übergeordneten Partition über den VMBus, um die E/A-Geräteanforderungen einer untergeordneten Partition zu erfüllen.
  • VSP – Virtualisierungsdienstanbieter – dieser befindet sich in der Stamm-Partition und bietet über den virtuellen Computer-Bus (VMBus) Support für synthetische Geräte für untergeordneten Partitionen.
  • WinHv – Windows Hypervisorschnittstellenbibliothek - WinHv ist praktisch eine Verbindung zwischen einem partitionierten Betriebssystem-Treiber und dem Hypervisor, der es Treibern ermöglicht den Hypervisor mithilfe der Windows Standardaufrufkonventionen aufzurufen
  • WMI – der Verwaltungsdienst für virtuelle Computer bietet eine Reihe von Windows-Verwaltungsinstrumentation WMI-basierten APIs zum Verwalten und Steuern virtueller Computer.