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/cpuinfoContainer 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 $USERDienst prüfen
systemctl status libvirtdVM erstellen (Beispiel)
virt-install \
--name ubuntu-vm \
--ram 2048 \
--vcpus 2 \
--disk size=20 \
--cdrom ubuntu.iso \
--os-variant ubuntu22.04Proxmox 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 --allFazit
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.