
peshkova - stock.adobe.com
Vollständige und Paravirtualisierung: Wichtige Unterschiede
Sowohl die vollständige als auch die Paravirtualisierung ermöglichen die Abstraktion von Hardwareressourcen, aber die Technologien unterscheiden sich in Bezug auf die Isolationsstufen.
Die Idee hinter jeder Virtualisierung ist es, die Hardwareressourcen eines Computers von der Software, die diese Ressourcen nutzt, zu abstrahieren. Ein Hypervisor ist ein Software-Tool, das auf dem Host-System installiert wird, um diese Abstraktionsebene bereitzustellen. Sobald ein Hypervisor installiert ist, interagieren Betriebssysteme und Anwendungen mit den virtualisierten Ressourcen, die vom Hypervisor abstrahiert werden – nicht mit den physischen Ressourcen des eigentlichen Host-Computers.
Es gibt verschiedene Arten der Virtualisierung, die sich in der Isolationsebene unterscheiden: die vollständige Virtualisierung und die Paravirtualisierung.
Was ist vollständige Virtualisierung?
Virtualisierung wird oft als vollständige Virtualisierung bezeichnet. Das heißt, der Hypervisor bietet eine vollständige Abstraktion durch eine softwarebasierte Virtualisierungsschicht und weist abstrahierte Ressourcen einer oder mehreren logischen Einheiten zu, die als virtuelle Maschinen (VMs) bezeichnet werden. Das wird in der Regel als Typ-1-Virtualisierung bezeichnet und ist in Produkten wie VMware ESXi zu finden. Jede VM und ihr Gastbetriebssystem funktionieren so, als würden sie allein auf unabhängigen Computern laufen, und die Betriebssysteme und Anwendungen erfordern keine speziellen Änderungen oder Anpassungen, um in einer typischen VM zu funktionieren. Jede VM ist logisch von jeder anderen VM isoliert. VMs kommunizieren nicht miteinander und teilen keine Ressourcen, es sei denn, die VMs sind absichtlich dafür eingerichtet – in der Regel durch standardmäßige Netzwerkkommunikation.
Allerdings hatten frühe Hypervisoren ein Leistungsproblem. Hypervisoren verlassen sich auf Hardwareemulation, wie zum Beispiel einen VM-Manager, um die binären Übersetzungen zwischen physischer Hardware und virtuellen Ressourcen, wie CPUs und Memory-Plätzen, hin und her zu verarbeiten. Diese ständige Übersetzung führt zu einer Leistungseinbuße des Host-Computers. In den frühen Tagen der vollständigen Virtualisierung begrenzte diese Leistungseinbuße die praktische Anzahl von VMs, die ein System hosten konnte, und schränkte häufig die Arten von Anwendungen ein, die erfolgreich in einer VM ausgeführt werden konnten.
Diese frühen Leistungsprobleme bei der Virtualisierung wurden durch den allgemeinen Einsatz von hardwareunterstützten Prozessoren, die Erweiterungen Befehlssatzes der Prozessoren enthalten, einschließlich der Intel Virtualization Technology (VT) und AMD Virtualization (AMD-V), längst behoben. Heutzutage arbeitet die vollständige Virtualisierung mit Hardwaregeschwindigkeiten und bietet eine hervorragende Leistung für die Servervirtualisierung in Produktionsumgebungen. Das hat dazu geführt, dass die Paravirtualisierung nicht mehr verwendet wird, obwohl es immer noch wichtig ist zu verstehen, was Paravirtualisierung ist und wie sie in das verfügbare Spektrum der Virtualisierungstechnologien passt.

Vorteile der vollständigen Virtualisierung
Bei der vollständigen Virtualisierung (Typ 1) ist keine Unterstützung durch das Betriebssystem erforderlich, um einen Computer zu virtualisieren oder VMs zu erstellen. Dadurch können IT-Administratoren Betriebssysteme und Anwendungen ohne Änderungen ausführen. Das liegt daran, dass der Hypervisor die Ressourcen vollständig verwaltet und Anweisungen schnell übersetzt. Der Hypervisor ermöglicht es dem Betriebssystem auch, neue Hardware zu emulieren, was die Zuverlässigkeit, Sicherheit und Produktivität in einem System verbessern kann.
Die vollständige Virtualisierung ermöglicht es Administratoren, Anwendungen auf vollständig isolierten Gastbetriebssystemen auszuführen, wodurch mehrere Betriebssysteme gleichzeitig unterstützt werden – zum Beispiel Windows Server 2016 in einer VM, Windows Server 2019 in einer anderen VM und Ubuntu Linux in einer weiteren VM – und das alles auf demselben Computer. Die vollständige Virtualisierung bietet auch andere Funktionen, wie zum Beispiel einfache VM-Backups und -Migrationen, sodass VMs problemlos von einem Computer auf einen anderen verschoben werden können, ohne die VM und ihre Arbeitslast zu unterbrechen. Diese Art von Flexibilität ermöglicht es Unternehmen, Hardwarekosten zu senken und die Wartung der Systemhardware zu vereinfachen.
Nachteile der vollständigen Virtualisierung
Trotz der breiten Akzeptanz und des anhaltenden Erfolgs der Virtualisierung hat diese Technologie auch einige Nachteile. Der Einsatz von Hypervisoren und hardwareunterstützten Prozessoren bietet im Vergleich zu Bare-Metal- (nicht virtualisierten) Betriebssystemen und Anwendungsbereitstellungen eine hervorragende Leistung, aber der Hypervisor selbst fügt dem Technologie-Stack, den ein Unternehmen beschaffen, lizenzieren, implementieren und verwalten muss, eine zusätzliche Komplexitätsebene hinzu.
Anwendungen, die einen direkten Zugriff auf die zugrunde liegende Computerhardware erfordern, funktionieren in einer VM nicht ordnungsgemäß. Heutzutage sind solche Anwendungen äußerst selten und stellen in der Regel eine verschwindend geringe Minderheit der Legacy-Anwendungen dar. Selbst in extremen Fällen, in denen eine Legacy-Anwendung nicht aktualisiert werden kann, kann sie auf einem dedizierten Server weiterbetrieben werden und sollte die Einführung und Nutzung der vollständigen Virtualisierung für andere Unternehmens-Workloads nicht beeinträchtigen.
IT-Fachleute müssen bei der Bereitstellung von VMs Verfügbarkeit und Risiken berücksichtigen. In Bare-Metal-Umgebungen wirkt sich ein Serverfehler auf eine Arbeitslast aus. In einer virtualisierten Umgebung kann ein physischer Serverfehler oder -ausfall alle auf dem System ausgeführten VMs betreffen. Wenn beispielsweise ein Server mit fünf VMs ausfällt, fallen auch alle fünf Arbeitslasten aus und müssen wiederhergestellt werden. Mehrere VMs auf demselben System können auch die verfügbare LAN-Bandbreite des Systems überlasten. Daher sind Lastausgleichs-, Schutz- und Wiederherstellungsschemata in virtualisierten Rechenzentren von großer Bedeutung.
Was ist Paravirtualisierung?
Paravirtualisierung zielte darauf ab, die Leistung der frühen Virtualisierung zu verbessern, indem ein Betriebssystem in die Lage versetzt wurde, die Anwesenheit eines Hypervisors zu erkennen. Produkte wie IBM LPAR ermöglichen es dem Betriebssystem, direkt mit diesem Hypervisor zu kommunizieren, um Aktivitäten zu teilen, die ansonsten für den VM-Manager des Hypervisors komplex und zeitaufwendig wären. Befehle, die vom Betriebssystem an den Hypervisor gesendet werden, werden als Hypercalls bezeichnet. Gleichzeitig kann das Betriebssystem weiterhin mit der zugrunde liegenden Hardwareebene kommunizieren und diese verwalten – das ist der para- oder partial-Aspekt.
Damit die Paravirtualisierung funktioniert, müssen Administratoren die Gast-VM-Betriebssysteme modifizieren oder anpassen, um eine API zu implementieren, die Hypercalls mit dem Paravirtualisierungs-Hypervisor austauschen kann. In der Regel erfordert ein paravirtualisierter Hypervisor wie Xen eine Betriebssystemunterstützung und Treiber, die in den Linux-Kernel und andere Betriebssysteme integriert sind.
Unveränderte, proprietäre Betriebssysteme wie Microsoft Windows können nicht in einer paravirtualisierten Umgebung ausgeführt werden, obwohl möglicherweise paravirtualisierungsfähige Gerätetreiber verfügbar sind, mit denen ein unverändertes Betriebssystem auf einem Xen-Hypervisor ausgeführt werden kann. Administratoren müssen das Betriebssystem so ändern, dass es mit dem Hypervisor kommunizieren kann, die Anwendungen selbst müssen jedoch nicht geändert werden.
Vorteile der Paravirtualisierung
Die Paravirtualisierung beruht auf der direkten Kommunikation zwischen dem Kernel des Gastbetriebssystems und dem zugrunde liegenden Hypervisor in einem System. In den Anfängen der Virtualisierung konnte sie im Vergleich zu vollständigen Hypervisoren ohne den Vorteil von hardwareunterstützten Prozessoren eine verbesserte Leistung und Systemauslastung bieten. Die Paravirtualisierung versprach auch einfachere Backups, schnellere Migrationen, eine verbesserte Serverkonsolidierung und einen geringeren Stromverbrauch im Vergleich zu Hypervisoren auf veralteter Hardware.
Heutzutage werden die Vorteile der Paravirtualisierung durch ihre Nachteile im Vergleich zur vollständigen Virtualisierung auf moderner Hardware mit hardwareunterstützten Prozessoren weitgehend aufgehoben.
Nachteile der Paravirtualisierung
Trotz der frühen Vorteile der Paravirtualisierung gibt es auch einige wichtige Kritikpunkte. Da Administratoren das Betriebssystem modifizieren müssen, ist die Verwendung der Paravirtualisierung auf Betriebssystemversionen beschränkt – die meisten davon Open Source -, die ordnungsgemäß für eine solche Verwendung modifiziert und validiert wurden, schränkt daher die Anzahl der verfügbaren Betriebssystemoptionen ein. Große proprietäre Betriebssysteme wie Windows Server unterstützen die Paravirtualisierung einfach nicht.
Für die Paravirtualisierung sind außerdem ein Hypervisor und ein modifiziertes Betriebssystem erforderlich, die über APIs miteinander kommunizieren können. Diese direkte Kommunikation schafft eine enge Abhängigkeit zwischen dem Betriebssystem und dem Hypervisor, was möglicherweise zu Problemen bei der Versionskompatibilität führt, bei denen ein Hypervisor- oder Betriebssystem-Update die Virtualisierung unterbrechen könnte. Die absichtliche Kommunikation könnte auch mögliche Sicherheitslücken im System darstellen.
Ein weiterer Nachteil der Paravirtualisierung ist die Unfähigkeit, Leistungssteigerungen vorherzusagen. Viele der Vorteile der Paravirtualisierung variieren je nach Arbeitslast. Im Wesentlichen bestimmen die Anzahl der Paravirtualisierungs-APIs und die Rechenleistung, die diese APIs vom System erhalten, die Vorteile, von denen Arbeitslasten profitieren.
Hauptunterschiede zwischen vollständiger Virtualisierung und Paravirtualisierung
Die Paravirtualisierung versucht, die gleichen Ziele zu erreichen wie die Virtualisierung des Typs 1. Allerdings wird bei der Paravirtualisierung das Betriebssystem als Workaround modifiziert, was oft unerwünscht ist, da es die Virtualisierung vom Betriebssystem abhängig macht. Jegliche Betriebssystem-Patches oder -Updates – oder sogar die Notwendigkeit, auf ein anderes Betriebssystem umzusteigen – können die Virtualisierung auf diesem System lahmlegen. Typ-1-Virtualisierung bietet eine vollständige Isolierung und macht die Virtualisierung völlig unabhängig von allen anderen Betriebssystemen, die auf dem System laufen. Tatsächlich ist ein Host-Betriebssystem bei Typ-1-Virtualisierung nicht erforderlich. Der Typ-1-Hypervisor selbst fungiert effektiv als Host-Betriebssystem.
Während bei der Paravirtualisierung versucht wird, eine Virtualisierungsschicht unterhalb eines modifizierten Host-Betriebssystems zu implementieren, wird bei der Typ-2-(Gast-)Virtualisierung ein Hypervisor einfach als gewöhnliche Anwendung über einem unveränderten Standardbetriebssystem installiert. Sobald ein Typ-2-Hypervisor installiert ist, können Administratoren nach Bedarf VMs erstellen. Die Typ-2-Virtualisierung ist die Grundlage der Container-Virtualisierung, bei der ein spezieller Hypervisor, die so genannte Container-Engine, zum Einsatz kommt. Typ-2-Hypervisoren und Container-Engines können sich ein Host-Betriebssystem teilen, aber auch hier erfordert das Host-Betriebssystem keine Änderungen und schafft keine unerwünschten Abhängigkeiten für VMs.
Verständnis der hardwareunterstützten Virtualisierung
Bei der vollständigen Virtualisierung werden die Hardwareressourcen eines Computers – Memory, Prozessoren, Netzwerk-E/A – durch einen Software-Hypervisor abstrahiert und logische Repräsentationen dieser Ressourcen für logische VM-Instanzen bereitgestellt. Dadurch wird eine weitere Softwareschicht für die Verwaltung der Ressourcen und die Übersetzung zwischen logischen und physischen Ressourcen erforderlich. In den Anfängen der Virtualisierung führte diese ständige Umrechnung zwischen physischen und logischen Ressourcen zu erheblichen Leistungseinbußen, die die Anzahl der VMs, die ein Hypervisor praktisch auf einem Computer erstellen und unterstützen konnte, begrenzten.

Die Entwickler von Computerhardware erkannten schnell, dass viele der zeitaufwändigen Prozesse, die für eine vollständige Virtualisierung erforderlich sind, durch das Hinzufügen spezifischer Mikroprozessorbefehle erheblich beschleunigt werden können, anstatt Software zur Emulation dieser Funktionen außerhalb des Prozessors zu verwenden. Die Hinzufügung dieser neuen Befehlssätze wurde als hardwaregestützte Virtualisierung bezeichnet.
Ab 2005 fügten die großen Mikroprozessorhersteller Intel und AMD ihren Prozessorfamilien neue Befehlssätze hinzu, die speziell zur Beschleunigung der mit der Virtualisierung verbundenen Aufgaben entwickelt wurden. Intel nannte diese Erweiterungen Intel VT, während AMD die Erweiterungen AMD-V nannte. Heute unterstützen praktisch alle Mikroprozessoren, vielleicht mit einigen wenigen Ausnahmen für spezielle oder aufgabenspezifische Mikrocontroller, Virtualisierungsbefehlssätze.
Vollständige und Paravirtualisierung im Vergleich
Heutzutage enthalten die meisten Allzweck-Mikroprozessoren, die für Server der Unternehmensklasse bestimmt sind, entweder Intel- oder AMD-Erweiterungen für die hardwaregestützte Virtualisierung. Dadurch wurden die mit der Vollvirtualisierung verbundenen Leistungseinbußen beseitigt, und die Vollvirtualisierung vom Typ 1 konnte sich zum vorherrschenden Ansatz für die Unternehmensvirtualisierung entwickeln. Sogar Typ-2-Virtualisierung und Containerisierung – über ein gemeinsam genutztes Host-Betriebssystem – können mit modernen Mikroprozessoren die Leistung nativer Hardware erreichen.
In Kombination mit den Vorteilen der vollständigen Virtualisierungsisolierung und der Möglichkeit, jedes beliebige Betriebssystem ohne Änderungen zu verwenden, hat die Paravirtualisierung in den Rechenzentren von Unternehmen nicht viel Anklang gefunden. Das hat dazu beigetragen, dass sich die Vollvirtualisierung in weiten Teilen der Branche zum De-facto-Standard entwickelt hat – im Gegensatz zur Paravirtualisierung, die im Allgemeinen auf experimentelle und Nischenanwendungen beschränkt ist.