Was ist Virtualisierung

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Was ist Virtualisierung?

  • Abstraktion physischer IT-Ressourcen (z.B. Hardware, Software-Komponenten).
  • Erstellung virtueller oder logischer Komponenten.
  • Zentraler Vorteil ist die Abstraktionsschicht zwischen physischer Ressource und virtuellem Abbild.
  • Grundlage diverser Cloud-Services.
  • Die Abgrenzung zwischen Virtualisierung und Emulation betrifft nur die CPU – bei der Virtualisierung wird die CPU direkt ausgeführt, bei der Emulation wird auch die CPU nachgebildet.

Definition Virtualisierung

  • Abstraktion physischer IT-Ressourcen wie Hardware, Software, Speicher und Netzwerkkomponenten.
  • Bereitstellung dieser Ressourcen auf virtueller Ebene.
  • Vorteil ist Flexibilität.
  • Hardwareunabhängigkeit.
  • Virtualisierung bedeutet die effiziente Nutzung der CPU, während Geräte entweder emuliert oder para-virtuell bereitgestellt werden.

Abgrenzung zu Simulation und Emulation

Simulation

  • Vollständige Nachbildung eines Systems mittels Software.
  • Auch die CPU wird nachgebildet.
  • Alle Systemkomponenten und deren innere Logik werden nachgestellt.
  • Einsatz von Crosscompilern.
  • Ermöglicht Ausführen von Software für veraltete Großrechner auf modernen Plattformen.
  • Praktisch kein produktiver Einsatz.
  • Beispiel: iPhone-Simulator in Xcode zum Testen von Webseiten.

Emulation

  • Stellt die Funktionen von Hardware- oder Software-Komponenten bereit.
  • Abbildung der äußeren Funktionsweise, keine Nachbildung der inneren Logik.
  • Ziel ist es, dieselben Ergebnisse wie mit realem Pendant zu erzielen.
  • Fokus liegt auf Ergebnisgenauigkeit.
  • Bei der Emulation werden sowohl CPU als auch Geräte nachgebildet, was zu einer geringeren Geschwindigkeit führt.

Virtualisierung

  • Virtualisierung ist eine Hybridlösung, die die direkte Ausführung der CPU ermöglicht, während Geräte emuliert oder para-virtuell bereitgestellt werden.
  • CPU-Ausführung: Direkter Zugriff auf die physische CPU (z. B. VT-x/AMD-V), keine Emulation der CPU-Instruktionen.
  • Emulierte Komponenten:
    • BIOS/UEFI-Firmware (SeaBIOS, OVMF).
    • Basis-Hardware (PIIX3/SATA-Controller, RTL8139-NIC).
    • Grafikkarten (Standard-VGA, virtio-GPU).
    • Legacy-Geräte (i8042-Controller, PS/2-Maus).
  • Para-virtuelle Geräte:
    • Hochleistungs-Netzwerk (virtio-net).
    • Blockgeräte (virtio-blk).
    • Balloon-Treiber (Speichermanagement).
  • Virtualisierung bietet den Vorteil, dass sie mit der echten CPU arbeitet, während die emulierten/virtuellen Komponenten für das komplette System zur Verfügung gestellt werden.
  • Während Emulation die vollständige Nachbildung von Systemen (einschließlich der CPU) erfordert, werden in der Virtualisierung nur die Geräte nachgebildet oder optimiert.
  • Beispiel: KVM/QEMU, VMware, Hyper-V, Proxmox — hier wird die CPU virtualisiert, aber die Geräte sind emuliert oder para-virtuell bereitgestellt.

Wie funktioniert Virtualisierung?

  • Ähnelt Konzepten der Simulation und Emulation.
  • Ziel ist, möglichst wenig zu simulieren oder zu emulieren.
  • Fokus liegt auf Etablierung einer Abstraktionsschicht.
  • Der Kernaspekt der Virtualisierung ist die direkte Nutzung der CPU, während Geräte durch Emulation oder Para-Virtualisierung bereitgestellt werden.
  • Virtuelle Maschinen laufen effizient, da die CPU direkt verwendet wird, aber die Peripherie (z.B. Netzwerkkarten, Festplatten) emuliert oder optimiert wird.

Formen der Virtualisierung

Hardware-Virtualisierung

  • Bereitstellung von Hardware-Komponenten mittels Software, unabhängig von physischer Grundlage.
  • Beispiel: Virtuelle Maschine (VM).
  • VM verhält sich wie ein physischer Rechner inklusive Hardware und Betriebssystem.
  • Hypervisor erzeugt Abstraktionsschicht zwischen physischer Hardware und virtuellem System.

Vollvirtualisierung

  • Hypervisor stellt jeder VM eine komplette virtuelle Hardware-Umgebung bereit.
  • Gastbetriebssystem muss nicht modifiziert werden.

Paravirtualisierung

  • Gastbetriebssystem wird modifiziert.
  • Beispielsweise Anpassung des Kernels.
  • Vorteil: Häufig höhere Effizienz.

Quellen

Präsentation