Kapitel 9: Virtualisation
1. Grundidee der Virtualisierung
Definition Virtual Machine (VM): Eine Software-Implementierung eines Computers, die Programme wie eine
physische Maschine ausführt.
Isolation: Software innerhalb einer VM ist auf die bereitgestellten Ressourcen begrenzt und kann nicht aus der
virtuellen Umgebung ausbrechen.
Zwei Hauptkategorien:
o Prozess (oder Applikations-) VM: Unterstützt einen einzelnen Prozess und bietet eine
plattformunabhängige Umgebung (z. B. Java VM, .NET).
Bei Java wird der Quellcode in Bytecode übersetzt. Dieser Bytecode wird von der JVM
ausgeführt. Das Programm ist damit nicht direkt an eine bestimmte Prozessorarchitektur
gebunden.
o System (oder Full) VM: Bietet eine komplette Systemplattform, die ein vollständiges Betriebssystem
(OS) unterstützt.
Der physische Rechner heißt Host. Das Betriebssystem innerhalb der VM wird als
Gastbetriebssystem oder Guest OS bezeichnet. Die VMs verhalten sich weitgehend wie
eigenständige Rechner und sind voneinander isoliert.
2. Vorteile der Virtualisierung
Ressourcenteilung: Spart Hardwarekosten (CAPEX = Capital Expenditure) und Betriebskosten (OPEX (=
Operational Expenditure) für Energie, Kühlung, Platz).
Flexibilität: VMs können einfach migriert (verschoben) werden, was die Wartung erleichtert.
Sicherheit: Bessere Isolation als bei Multi-User-Betriebssystemen; Ressourcenbegrenzungen schützen den
Host vor Angriffen (z. B. DoS = Denial of Service Attack, wenn Server gehackt wurde) auf eine VM.
Effizienz: Viele physische Server sind nur schwach ausgelastet. Werden mehrere Dienste in getrennten
VMs auf einem Host betrieben, kann die vorhandene Hardware wesentlich effizienter genutzt werden.
3. Nachteile
Geringere Effizienz als eine reale Maschine beim indirekten Hardwarezugriff (allerdings durch moderne
Hardware minimiert).
Höherer Verwaltungsaufwand, komplexere Fehlersuche und die Abhängigkeit von der Sicherheit des
Hypervisors.
4. Virtualisierungsvarianten
VMs auf einem Host können unterschiedliche Kombinationen von Betriebssystem und Befehlssatzarchitektur (ISA)
verwenden:
gleiches OS und gleiche ISA
verschiedene OS bei gleicher ISA, zum Beispiel Linux und Windows auf x86-64
verschiedene OS und verschiedene ISA, zum Beispiel ARM auf einem x86-Rechner
Kapitel 9 – Virtualisierung | Seite 1
, 5.Virtualisierungstechniken (Hypervisor-basiert)
Ein Hypervisor (auch Virtual Machine Monitor, VMM) ist die Software, die Ressourcen an VMs verteilt und
Zugriffsrechte erzwingt.
Software-Virtualisierung: Softwarevirtualisierung benötigt keine spezielle Hardwareunterstützung.
Hardware und gegebenenfalls eine fremde Prozessorarchitektur werden durch Software emuliert. Sie
eignet sich für Cross-Virtualisierung, ist aber vergleichsweise langsam.(z. B. ARM auf x86 für Smartphone-
Entwicklung).
o QEMU
o VMware
o VirtualBox
Hardware-unterstützte Virtualisierung: Moderne Prozessoren besitzen spezielle Erweiterungen für
Virtualisierung. Dadurch können Gastbefehle weitgehend direkt auf der echten CPU ausgeführt werden.
Der Leistungsverlust gegenüber einer physischen Maschine ist häufig sehr klein.
o Hyper-V
o VirtualBox
o KVM zusammen mit QEMU
Paravirtualisierung: Bei der Paravirtualisierung weiß das Gastbetriebssystem, dass es virtualisiert wird. Es
verwendet angepasste Treiber und effizientere Schnittstellen, etwa virtIO für Netzwerk- oder
Speichergeräte. Dadurch sinkt der Emulationsaufwand.
o Xen
o QEMU mit virtIO
o VirtualBox
In der Praxis werden die Techniken häufig kombiniert: Hardwarevirtualisierung für CPU und RAM,
Paravirtualisierung für Netzwerk- und Speichergeräte und Emulation für spezielle Geräte.
6. Hardwareunterstützung auf x86
VT-x: Basis-Hardwarebeschleunigung & erleichtert den kontrollierten Wechsel zwischen Gast und
Hypervisor.
VT-d (IOMMU): stellt eine I/O Memory Management Unit (IOMMU) bereit. Sie übersetzt virtuelle
Geräteadressen in physische Adressen. Damit können reale Geräte, zum Beispiel Netzwerkkarten, sicher
direkt an VMs weitergereicht werden (Device Passthrough).
VT-c / VMDq / SR-IOV: VMDq ermöglicht mehrere Ein- und Ausgabewarteschlangen pro Netzwerkkarte.
Netzwerkpakete können dadurch effizient verschiedenen VMs zugeordnet werden.
SR-IOV unterteilt ein physisches PCIe-Gerät in eine Physical Function (PF) und mehrere Virtual Functions
(VF). Die PF wird vom Host verwaltet; einzelne VFs können direkt VMs zugeordnet werden. So kann eine
physische Netzwerkkarte nahezu wie mehrere getrennte Geräte genutzt werden.
Kapitel 9 – Virtualisierung | Seite 2
1. Grundidee der Virtualisierung
Definition Virtual Machine (VM): Eine Software-Implementierung eines Computers, die Programme wie eine
physische Maschine ausführt.
Isolation: Software innerhalb einer VM ist auf die bereitgestellten Ressourcen begrenzt und kann nicht aus der
virtuellen Umgebung ausbrechen.
Zwei Hauptkategorien:
o Prozess (oder Applikations-) VM: Unterstützt einen einzelnen Prozess und bietet eine
plattformunabhängige Umgebung (z. B. Java VM, .NET).
Bei Java wird der Quellcode in Bytecode übersetzt. Dieser Bytecode wird von der JVM
ausgeführt. Das Programm ist damit nicht direkt an eine bestimmte Prozessorarchitektur
gebunden.
o System (oder Full) VM: Bietet eine komplette Systemplattform, die ein vollständiges Betriebssystem
(OS) unterstützt.
Der physische Rechner heißt Host. Das Betriebssystem innerhalb der VM wird als
Gastbetriebssystem oder Guest OS bezeichnet. Die VMs verhalten sich weitgehend wie
eigenständige Rechner und sind voneinander isoliert.
2. Vorteile der Virtualisierung
Ressourcenteilung: Spart Hardwarekosten (CAPEX = Capital Expenditure) und Betriebskosten (OPEX (=
Operational Expenditure) für Energie, Kühlung, Platz).
Flexibilität: VMs können einfach migriert (verschoben) werden, was die Wartung erleichtert.
Sicherheit: Bessere Isolation als bei Multi-User-Betriebssystemen; Ressourcenbegrenzungen schützen den
Host vor Angriffen (z. B. DoS = Denial of Service Attack, wenn Server gehackt wurde) auf eine VM.
Effizienz: Viele physische Server sind nur schwach ausgelastet. Werden mehrere Dienste in getrennten
VMs auf einem Host betrieben, kann die vorhandene Hardware wesentlich effizienter genutzt werden.
3. Nachteile
Geringere Effizienz als eine reale Maschine beim indirekten Hardwarezugriff (allerdings durch moderne
Hardware minimiert).
Höherer Verwaltungsaufwand, komplexere Fehlersuche und die Abhängigkeit von der Sicherheit des
Hypervisors.
4. Virtualisierungsvarianten
VMs auf einem Host können unterschiedliche Kombinationen von Betriebssystem und Befehlssatzarchitektur (ISA)
verwenden:
gleiches OS und gleiche ISA
verschiedene OS bei gleicher ISA, zum Beispiel Linux und Windows auf x86-64
verschiedene OS und verschiedene ISA, zum Beispiel ARM auf einem x86-Rechner
Kapitel 9 – Virtualisierung | Seite 1
, 5.Virtualisierungstechniken (Hypervisor-basiert)
Ein Hypervisor (auch Virtual Machine Monitor, VMM) ist die Software, die Ressourcen an VMs verteilt und
Zugriffsrechte erzwingt.
Software-Virtualisierung: Softwarevirtualisierung benötigt keine spezielle Hardwareunterstützung.
Hardware und gegebenenfalls eine fremde Prozessorarchitektur werden durch Software emuliert. Sie
eignet sich für Cross-Virtualisierung, ist aber vergleichsweise langsam.(z. B. ARM auf x86 für Smartphone-
Entwicklung).
o QEMU
o VMware
o VirtualBox
Hardware-unterstützte Virtualisierung: Moderne Prozessoren besitzen spezielle Erweiterungen für
Virtualisierung. Dadurch können Gastbefehle weitgehend direkt auf der echten CPU ausgeführt werden.
Der Leistungsverlust gegenüber einer physischen Maschine ist häufig sehr klein.
o Hyper-V
o VirtualBox
o KVM zusammen mit QEMU
Paravirtualisierung: Bei der Paravirtualisierung weiß das Gastbetriebssystem, dass es virtualisiert wird. Es
verwendet angepasste Treiber und effizientere Schnittstellen, etwa virtIO für Netzwerk- oder
Speichergeräte. Dadurch sinkt der Emulationsaufwand.
o Xen
o QEMU mit virtIO
o VirtualBox
In der Praxis werden die Techniken häufig kombiniert: Hardwarevirtualisierung für CPU und RAM,
Paravirtualisierung für Netzwerk- und Speichergeräte und Emulation für spezielle Geräte.
6. Hardwareunterstützung auf x86
VT-x: Basis-Hardwarebeschleunigung & erleichtert den kontrollierten Wechsel zwischen Gast und
Hypervisor.
VT-d (IOMMU): stellt eine I/O Memory Management Unit (IOMMU) bereit. Sie übersetzt virtuelle
Geräteadressen in physische Adressen. Damit können reale Geräte, zum Beispiel Netzwerkkarten, sicher
direkt an VMs weitergereicht werden (Device Passthrough).
VT-c / VMDq / SR-IOV: VMDq ermöglicht mehrere Ein- und Ausgabewarteschlangen pro Netzwerkkarte.
Netzwerkpakete können dadurch effizient verschiedenen VMs zugeordnet werden.
SR-IOV unterteilt ein physisches PCIe-Gerät in eine Physical Function (PF) und mehrere Virtual Functions
(VF). Die PF wird vom Host verwaltet; einzelne VFs können direkt VMs zugeordnet werden. So kann eine
physische Netzwerkkarte nahezu wie mehrere getrennte Geräte genutzt werden.
Kapitel 9 – Virtualisierung | Seite 2