chris - Fotolia

Diese Hardwarefunktionen unterstützen Virtualisierung

Intel-, AMD- und Arm-Prozessoren unterstützen Virtualisierung auf vielfältige Weise. Informieren Sie sich über neue Technologien und wie Sie von ihnen profitieren können.

Die Chiphersteller Intel, AMD und Arm Ltd. implementieren Befehlssatzerweiterungen, die das Umsetzen von Virtualisierungsszenarien erleichtern. Doch bei all den Codes und Akronymen verlieren Interessenten schnell den Überblick.

Die Hardwareunterstützung ist eine unabdingbare Voraussetzung für eine praktische, produktionsreife Virtualisierung, da sie den Hypervisor in die Lage versetzt, komplexe Übersetzungen von Befehlsprivilegien zu verarbeiten und virtualisierte Speicherressourcen mit Hardware-Taktraten zu verwalten.

Befehlssatzerweiterungen – komplette Sätze neuer Transistoren, die zu Prozessoren und anderen Chips hinzugefügt werden, die neue Funktionen bieten und spezifische neue Befehle direkt verarbeiten – verbessern die Hardwareunterstützung für Virtualisierung. Ohne Erweiterungen benötigen Sie für viele Virtualisierungsfunktionen eine Softwareemulation, die oft zu umständlich und ineffizient ist, um umfangreichere Projekte umzusetzen. Es schränkt die Zahl – und die Leistung – der virtualisierten Workloads auf Produktionsservern und somit Wert der Virtualisierung ein.

Für die Virtualisierung benötigen Sie eine umfangreiche Speicherverwaltung und privilegierte Zugriffskontrolle. Daher bieten die großen Prozessorhersteller die Virtualisierung mit Befehlssatzerweiterungen und einer Reihe von ergänzenden Prozessorfunktionen.

Intel-Virtualisierungstechnologie

Im Jahr 2005 führte Intel mit Intel VT-x bei zwei Modellen des Pentium 4-Prozessors erstmals Hardwareunterstützung für Virtualisierung ein. VT-x fügte 10 neue Befehle hinzu, die das Erstellen und Steuern von VMs ermöglichten. Die Virtualisierungssoftware läuft in einem virtuellen Ausführungsmodus, in dem ein Gastbetriebssystem volle Rechte hat, so dass das Host-Betriebssystem ununterbrochen, geschützt und isoliert ist.

2008 fügte Intel Unterstützung für erweiterte Seitentabellen (EPTs) hinzu, Intels Implementierung von Second-Level Address Translation (SLAT) oder verschachteltem Paging. Diese Technologie wird oft als Speichervirtualisierung bezeichnet.

Bei der Virtualisierung müssen physische Speicheradressen in virtuelle Speicheradressen übersetzt werden. Das Problem ist, dass diese Übersetzung zweimal stattfindet: einmal für die Host-VM und dann ein zweites Mal für jede Gast-VM. Dies erhöht den Overhead und verlangsamt die Leistung. SLAT-Technologien verarbeiten diese Übersetzungen, um die Speicherverwaltung zu verbessern und die Gesamtleistung zu steigern.

Im Jahr 2010 unterstützte Intel uneingeschränkte Gäste – auch IA-32e-Modus genannt – die es logischen Prozessoren und virtuellen CPUs ermöglichten, im realen Modus auf dem Prozessor zu laufen. Dadurch kann ein Gast im Bare-Metal-Modus mit seiner eigenen EPT arbeiten. Kurz nach der Veröffentlichung von IA-32 entwickelte Intel CPUs mit einer 64-Bit-Erweiterung und klassifizierte sie als IA-64 neu.

Eine seit langem bestehende Herausforderung bei der Virtualisierung ist das Problem der Verschachtelung, das heißt das Ausführen einer VM innerhalb einer VM. Jede virtuelle Maschine verwendet eine eigene Datenstruktur. Bei einer verschachtelten VM müssen Administratoren somit die Datenstruktur ändern oder austauschen.

Im Jahr 2013 führte Intel die VMCS-Schattenfunktion (Virtual Machine Control Structure) ein. Davor haben Administratoren jede VMCS zwischengespeichert und Software verwendet, um VMCS-Schatten zu verwalten. Dieser zeitraubende Prozess beeinträchtigte jedoch die Leistung. Das Hinzufügen von VMCS-Shadowing zum Prozessor erhöhte somit Effizienz und Geschwindigkeit.

Im Jahr 2022 unterstützen die meisten Intel-CPUs die Virtualisierung. Admins können Xeon-Prozessoren für Server verwenden, die große Mengen an Cache-Speicher für die Leistung bieten. Die neueste Version – Rocket Lake – hat bis zu acht Kerne, setzt auf Intel Xe-Grafik und unterstützt Peripheral Component Interconnect (PCI) Express 4.0.

Intels Core i5-, i7- und i9-Optionen integrieren Multithreading und mehrere Kerne. Intels kommende Version der 13. Generation mit dem Codenamen Raptor Lake verfügt über stromsparende Gracemont-Kerne, verwendet eine Hybridarchitektur und ist mit Alder Lake-Systemen kompatibel.

AMD-Virtualisierung

AMD fügte 2006 die für die Virtualisierungsunterstützung erforderlichen Befehlssatzerweiterungen in mehrere seiner Prozessorfamilien ein, darunter den Athlon 64, Athlon 64 X2, Athlon 64 FX, Turion 64 X2 und einige Opteron-, Phenom- und Phenom II-Prozessoren. AMD-V-Befehle ermöglichen es Entwicklern, Software zu schreiben, die VMs erstellt und steuert und Hypervisoren unterstützt.

Später fügte AMD einigen K10- und Phenom II-Prozessoren Unterstützung für SLAT oder verschachtelte Seitentabellen in Form von Rapid Virtualization Indexing hinzu, das funktional mit Intels EPTs identisch ist, um die Leistung von Übersetzungen von physischem zu virtuellem Speicher zu beschleunigen.

Im Jahr 2022 unterstützen alle Zen-basierten Prozessoren von AMD AMD-V. Bei einigen Motherboards müssen Administratoren jedoch die Virtualisierung speziell in der Firmware (UEFI) aktivieren, bevor Anwendungen VMs nutzen.

Für Server verfügt die Epyc 7003 Prozessorserie des Unternehmens über 7-Nanometer-x86-CPU-Technologie, mehrere Dual-Inline-Speichermodul-Konfigurationen und bis zu 32 MB L3-Cache pro Kern.

Die Ryzen Threadripper PRO 5000 WX-Serie, die in Desktop-Hardware verbaut ist, bietet bis zu 64 CPU-Kerne, 128 Threads und einen maximalen Boost-Takt von 4,5 GHz.

Arm-Virtualisierung

Arm-Prozessoren nutzen in der Regel reduzierte Befehlssätze, die aufgrund der geringeren Anzahl von Transistoren weniger Energie und Kühlung benötigen, und bieten aufgrund des einfacheren Prozessordesigns oft eine bessere Leistung. Arm-Chips laufen seit langem in eingebetteten Systemen und Servern, die für einfache, hochvolumige Workloads bestimmt sind, wie zum Beispiel Webserver.

Der Industriestandard der Arm-Architektur, Version 8 (Armv8-A), ermöglicht es dem Arm-Chip, mehrere VMs mit jeweils unterschiedlichen Betriebssystemen auszuführen.

Mit Armv8.1 wurden Virtualisierungs-Host-Erweiterungen (VHE) eingeführt, die eine verbesserte Unterstützung für Hypervisoren vom Typ 2 bieten. Armv8.1-VHE enthält auch eine grundlegende Adressübersetzung, und Armv8.3-NV fügte Unterstützung für verschachtelte Virtualisierung hinzu.

Die nächste Generation der Arm-Architektur, Armv9 genannt, wurde im März 2021 angekündigt und konzentriert sich auf die Architektur für sichere KI- und Machine-Learning-Workloads (ML). Armv9-A umfasst Funktionen für Memory Tagging, Branch Target Identification und Cache Clean bis hin zu Deep Persistence. Armv9.1-A bietet feinkörnige Traps für die Virtualisierung und einen hochpräzisen generischen Timer. Mit Armv9.2-A haben Admins Zugriff auf die Aufzeichnung von Verzweigungsaufzeichnungen.

E/A-Virtualisierung

Während sich die typische Virtualisierung auf die Kernverarbeitung und den Arbeitsspeicher konzentriert, erweitert die E/A-Virtualisierung die virtuelle Umgebung, um Peripheriegeräte in virtuelle Darstellungen zu abstrahieren, was eine bessere gemeinsame Nutzung der Hardware zwischen VM-Instanzen ermöglicht. Beispiele für E/A-Virtualisierungstechnologien sind die folgenden:

  • Intel VT for Directed I/O, oder VT-d, baut auf der Intel VT-Technologie mit einer I/O-Speicherverwaltungseinheit (IOMMU) auf. Eine MMU übersetzt virtuelle in physische Adressen; die IOMMU ordnet Geräteadressen physischen Adressen zu und ermöglicht VMs die direkte Nutzung von Peripheriegeräten.
  • Virtual Machine Device Queues (VMDq) verbessert die Datenverarbeitungsleistung durch Gruppierung und Sortierung von Netzwerkdaten an der Netzwerkschnittstelle und nicht im VM-Manager (VM Monitor oder Hypervisor). Wenn zunächst die richtigen Daten zum Hypervisor gelangen, lässt sich das LAN-Verhalten verbessern.
  • Single-Root-I/O-Virtualisierung (SR-IOV) bietet standardisierte Mittel für Geräte, um ihre Anwesenheit und Verfügbarkeit für die Ausführung auf mehreren VMs zu melden. Dazu gehört auch die Möglichkeit, die PCI-Schnittstelle in mehrere virtuelle PCI-Schnittstellen zu virtualisieren. Administratoren teilen damit die Bandbreite eines einzelnen Ports in kleinere virtualisierte Teile auf, die direkt mit zugewiesenen VMs kommunizieren.
  • Die Intel Data Direct I/O Technology (DDIO) ist kein Virtualisierungstyp, sondern eine Erweiterung, die es Netzwerk-Controllern ermöglicht, direkt mit dem Cache des Prozessors zu kommunizieren, statt Daten zuerst an den Hauptspeicher zu senden und dann vom Speicher in den Cache zu verschieben. In Kombination mit Virtualisierungsverbesserungen erhöht DDIO die effektive Netzwerkbandbreite, die Netzwerklatenz verringern und den Strombedarf senken.

Intel APICv und AMD AVIC

Prozessoren verwenden Interrupts, die das System in Reaktion auf Ereignisse, wie zum Beispiel ein Tastatursignal oder einen Systemzustand, unterbrechen. Eine hohe Zahl von Unterbrechungen beeinträchtigt jedoch die Leistung des Virtualisierungssystems, da Unterbrechungen dazu führen, dass die Workloads angehalten werden und die CPU auf andere Systemaufgaben warten muss.

Die Unterbrechungsvirtualisierung sortiert die Unterbrechungen und stellt sie in eine Warteschlange, um diese potenziellen Auswirkungen auf die Leistung zu verringern. Die Sortierung führt dazu, dass das System Unterbrechungen anhand ihrer Priorität adressiert, während die Warteschlange erreicht, dass die Unterbrechungen zum optimalen Zeitpunkt behandelt werden.

Sowohl Intel als auch AMD haben 2012 die Unterbrechungsvirtualisierung eingeführt. AMD verwendet den Advanced Virtual Interrupt Controller (AVIC), der auf neueren Carrizo-Prozessoren verfügbar ist. Intel verwendet die Advanced Programmable Interrupt Controller-Virtualisierung (APICv), die erstmals 2013 und 2014 bei einigen Xeon E5-Prozessoren verbaut war.

Erfahren Sie mehr über Server- und Desktop-Virtualisierung

ComputerWeekly.de
Close