Virtualisierung ist die Grundlage moderner Server-Infrastruktur. Sie ermöglicht es, mehrere virtuelle Maschinen auf einem physischen Server zu betreiben.

Was ist Virtualisierung?

Virtualisierung abstrahiert Hardware-Ressourcen, sodass mehrere Betriebssysteme gleichzeitig auf einer physischen Maschine laufen können. Jede virtuelle Maschine (VM) verhält sich wie ein eigenständiger Computer.

Vorteile

  • Ressourceneffizienz: Hardware wird besser ausgelastet
  • Isolation: VMs sind voneinander getrennt
  • Flexibilität: Schnelles Erstellen und Löschen von Systemen
  • Kosteneinsparung: Weniger physische Server nötig
  • Snapshots: Systemzustände sichern und wiederherstellen

Hypervisor-Typen

Der Hypervisor (auch Virtual Machine Monitor) verwaltet die virtuellen Maschinen.

Typ-1-Hypervisor (Bare-Metal)

Läuft direkt auf der Hardware, ohne darunterliegendes Betriebssystem:

| Hypervisor | Beschreibung | |------------|--------------| | VMware ESXi | Enterprise-Standard | | Microsoft Hyper-V | In Windows Server integriert | | KVM | Linux-Kernel-basiert, Open Source | | Xen | Open Source, von AWS genutzt | | Proxmox VE | Open Source, basiert auf KVM/LXC |

Vorteile: Bessere Performance, direkte Hardware-Zugriffe

Typ-2-Hypervisor (Hosted)

Läuft als Anwendung auf einem Betriebssystem:

| Hypervisor | Plattform | |------------|-----------| | VirtualBox | Windows, Mac, Linux | | VMware Workstation | Windows, Linux | | VMware Fusion | macOS | | Parallels | macOS |

Vorteile: Einfachere Einrichtung, ideal für Entwicklung

Virtualisierungs-Technologien

Vollvirtualisierung

Die VM simuliert komplette Hardware. Das Gastbetriebssystem muss nicht angepasst werden.

  • VMware ESXi
  • Microsoft Hyper-V
  • KVM mit QEMU

Paravirtualisierung

Das Gastbetriebssystem wird angepasst, um effizienter mit dem Hypervisor zu kommunizieren.

  • Xen (ursprünglich)
  • Virtio-Treiber für KVM

Hardware-unterstützte Virtualisierung

Moderne CPUs unterstützen Virtualisierung direkt:

  • Intel VT-x: Intel Virtualization Technology
  • AMD-V: AMD Virtualization

Prüfen ob verfügbar:

grep -E '(vmx|svm)' /proc/cpuinfo

Container vs. Virtuelle Maschinen

Container (z.B. Docker) sind keine klassische Virtualisierung:

| Aspekt | VM | Container | |--------|-----|-----------| | Isolation | Komplett (eigener Kernel) | Prozess-Ebene | | Overhead | Hoch (eigenes OS) | Niedrig | | Startzeit | Minuten | Sekunden | | Größe | GB | MB | | Sicherheit | Höher | Niedriger |

Container: Gut für Anwendungen VMs: Gut für komplette Systeme und höhere Isolation

KVM - Kernel-based Virtual Machine

KVM ist in den Linux-Kernel integriert und der Standard für Linux-Virtualisierung.

KVM installieren

# Ubuntu/Debian
apt install qemu-kvm libvirt-daemon-system virtinst

# Benutzer zur Gruppe hinzufügen
usermod -aG libvirt $USER
usermod -aG kvm $USER

Dienst prüfen

systemctl status libvirtd

VM erstellen (Beispiel)

virt-install \
  --name ubuntu-vm \
  --ram 2048 \
  --vcpus 2 \
  --disk size=20 \
  --cdrom ubuntu.iso \
  --os-variant ubuntu22.04

Proxmox VE

Proxmox ist eine beliebte Open-Source-Virtualisierungsplattform mit Web-Oberfläche.

Vorteile

  • Kombiniert KVM (VMs) und LXC (Container)
  • Web-basierte Verwaltung
  • Cluster-Fähigkeit
  • Backup-Integration
  • Keine Lizenzkosten

Installation

Proxmox wird als ISO installiert und ersetzt das vorhandene Betriebssystem.

VMware vSphere

VMware ist der Enterprise-Standard für Virtualisierung:

  • ESXi: Kostenloser Hypervisor
  • vCenter: Zentrale Verwaltung (kostenpflichtig)
  • vSAN: Software-defined Storage
  • NSX: Software-defined Networking

Einsatzgebiete

Server-Konsolidierung

Mehrere Server auf einer Hardware zusammenfassen:

  • Reduziert Hardware-Kosten
  • Spart Strom und Platz
  • Einfachere Verwaltung

Entwicklung und Test

  • Schnell neue Umgebungen erstellen
  • Snapshots vor Tests
  • Verschiedene Betriebssysteme parallel

High Availability

  • VMs zwischen Hosts verschieben (Live-Migration)
  • Automatischer Neustart bei Hardware-Ausfall
  • Load-Balancing

Cloud Computing

IaaS-Anbieter basieren auf Virtualisierung:

  • Kunden erhalten VMs (vServer)
  • Flexible Ressourcenzuweisung
  • Pay-per-Use

Ressourcen-Management

CPU-Zuweisung

  • vCPUs: Virtuelle CPU-Kerne
  • CPU-Pinning: vCPUs an physische Kerne binden
  • Overcommitment: Mehr vCPUs als physische Kerne (mit Vorsicht)

RAM-Management

  • Feste Zuweisung oder dynamisch (Ballooning)
  • Memory Overcommitment möglich aber riskant
  • KSM (Kernel Same-page Merging) für Deduplizierung

Storage

  • Thick Provisioning: Speicher sofort reserviert
  • Thin Provisioning: Speicher wächst mit Nutzung
  • Shared Storage: SAN, NFS für Cluster

Performance-Überlegungen

Best Practices

1. Hardware-Virtualisierung aktivieren: VT-x/AMD-V im BIOS 2. Virtio-Treiber: Für bessere I/O-Performance 3. SSD für VM-Storage: Große Performance-Gewinne 4. Nicht überbuchen: CPU/RAM-Overcommitment begrenzen 5. Regelmäßige Updates: Hypervisor aktuell halten

Monitoring

# VM-Auslastung unter KVM
virt-top

# Alle VMs anzeigen
virsh list --all

Fazit

Virtualisierung ist unverzichtbar für moderne IT-Infrastruktur. Für Linux-Server ist KVM mit Proxmox oder libvirt die beste Wahl. Container ergänzen VMs für Anwendungs-Deployment. Beide Technologien haben ihre Berechtigung.