Virtualisierung erlaubt es Physische Hardware / Ressourcen logisch aufzuteilen oder zusammenzufassen. Für diesen Vorgang wird ein Hypervisor benötigt.

Nested Virtualisation


Wenn man eine Virtuelle Maschine in einer anderen VM macht, nennt man das Nested Virtualisation.

Was wird Virtualisiert?


Hardware
CPU
Systeme bzw. Hardware
Betriebssysteme
Anwendungen
Desktop
Rechenzentren
RAM
Festplatten
Storage
Netzwerk

Vorteile und Nachteile


VorteileNachteile
bessere Hardware Ausnutzungweniger Perfomance
leichtere Bereitstellung (z. B. von Servern)nicht jede Hardware kann Virtualisiert werden
mehr Flexibilität(kopieren von VMs)kann Single Point of Failure sein
leichtere Software-Tests und Entwicklung für verschiedene Systemekomplex

Arten


Es gibt verschiedene Arten der Virtualisierung mit verschiedenen Eigenschaften.

Oft spielt bei der Virtualisierung der Hypervisor eine wichtige Rolle. Er ist eine Software, die es ermöglicht Betriebssystem zu virtualisieren.

Level 1 Virtualisierung

Bei der Level 1 Virtualisierung wird der sogenannte Hypervisor auf den Ring 0 geschoben.

Dadurch entsteht eine sehr schnelle Verbindung zwischen Hardware und Betriebssystem.
Ein solcher Hypervisor ist z. B. HyperV.

Level 2 Virtualisierung

Bei der Level 2 Virtualisierung befindet sich der Hypervisor über dem Host-OS. Es ist weniger Performant als eine Level 1 Virtualisierung, jedoch besser für Testumgebungen geeignet.

Programm-Beispiele sind:

  • Virtual Box
  • KVM
  • VMware

Emulation Virtualisierung

Bei der Emulation wird nicht nur die Hardware geteilt bzw. zusammen gefügt sondern es wird nicht vorhandene Hardware simuliert. Das benötigt man um z. B. alte Programme auf neuer Hardware laufen zu lassen. Oder um Software auf andere CPU-Archetektur zu testen. (z. B. ARM auf einem x64 System)

Application Virtualisierung

Wenn nur einzelne APPs in einer VM laufen, nennt man das Applikations-Virtualisierung. Ein Beispiel dafür ist JAVA mit dem Java Virtual Maschine (JVM).

Betriebssystem Virtualisierung

Bei einer Betriebssystem-Virtualisierung wird der Kernel des Vorhandenen Host-OS verwendet und lediglich ein weiterer User-Mode hinzugefügt.
Programm-Beispiele sind Docker-Container.