In diesem Dokument werden die grundlegenden Konzepte von virtuellen Maschinen (VM) sowie privilegierten und unprivilegierten LXC Containern im Kontext der Virtualisierungsplattform [Proxmox](https://www.proxmox.com) erläutert. Zudem werden Vor- und Nachteile dargestellt und Entscheidungshilfen gegeben, wann welche Technologie eingesetzt werden sollte.
Eine Virtuelle Maschine ist eine vollständig isolierte Umgebung, die ein komplettes Betriebssystem inklusive eigener Kernel-Instanz ausführt. Die Virtualisierung erfolgt in der Regel durch einen Hypervisor (bei Proxmox KVM-basiert). VMs erhalten dedizierte virtuelle Hardware (CPU, RAM, virtuelle Festplatten, virtuelle Netzwerkadapter), auf welcher ein Gastbetriebssystem wie Linux, Windows oder BSD installiert werden kann.
Eigenschaften einer VM:
Beispiel: Auf einem Proxmox-Host wird eine VM mit 4 vCPUs, 8 GB RAM und 100 GB virtuellem Speicherplatz erstellt, auf der ein vollständiges Ubuntu Server OS läuft.
LXC (Linux Containers) ist eine leichtgewichtige Virtualisierungs- bzw. Containerisierungstechnologie, die auf Betriebssystem-Ebene arbeitet. Anstatt eine komplette Hardware-Umgebung zu emulieren, nutzen LXC Container den Kernel des Host-Systems direkt, teilen sich also denselben Kernel. Jeder Container ist jedoch in Bezug auf Prozesse, Dateisystem, Netzwerk und Ressourcen weitgehend isoliert.
Eigenschaften von LXC Containern:
LXC Container sind in zwei Varianten verfügbar: privilegiert und unprivilegiert.
Ein privilegierter Container läuft mit root-Rechten im Kontext des Host-Systems (UID 0 im Container entspricht UID 0 auf dem Host). Dies macht ihn konzeptionell einfacher, birgt aber gewisse Sicherheitsrisiken, da ein Fehler in einem privilegierten Container theoretisch einfacher auf den Host übergreifen kann.
Eigenschaften privilegierter Container:
Unprivilegierte Container verwenden eine UID/GID-Map (Benutzer- und Gruppen-ID-Zuordnungen) im Host, um sicherzustellen, dass „root“ im Container nicht dasselbe wie „root“ im Host ist. Der Container-„root“ ist hierbei im Host lediglich ein normaler unprivilegierter User, was die Sicherheit deutlich erhöht.
Eigenschaften unprivilegierter Container:
Technologie | Virtualisierungsebene | Kernel-Nutzung | Overhead | Startzeit | Anwendungsfälle |
---|---|---|---|---|---|
VM (KVM) | Hardware-Ebene | Eigener Kernel im Gast | Höher | Langsamer (Sekunden bis Minuten) | Vollständige OS-Isolation, heterogene Betriebssysteme (z. B. Windows, Linux gemischt) |
LXC Container (priv./unpriv.) | Betriebssystem-Ebene | Teilt sich den Kernel mit dem Host | Sehr gering | Sehr schnell (Sekundenbruchteile) | Homogene Linux-Workloads, schnelle Bereitstellung, leichtgewichtige Services |
Vorteile:
Nachteile:
Vorteile:
Nachteile:
Vorteile:
Nachteile:
Virtuelle Maschinen: Setze VMs ein, wenn
Privilegierte LXC Container: Setze privilegierte Container ein, wenn
Unprivilegierte LXC Container: Setze unprivilegierte Container ein, wenn
Proxmox bietet mit KVM-VMs und LXC-Containern zwei Hauptvirtualisierungsansätze. VMs sind ideal für heterogene, vollständig isolierte Umgebungen und bieten maximale Flexibilität, aber auf Kosten von Ressourcen und Startzeiten. LXC Container bieten leichtgewichtigere, schnellere Umgebungen für Linux-basierte Workloads. Unprivilegierte Container erhöhen dabei die Sicherheit erheblich.
Durch die gezielte Wahl der passenden Technologie kannst Du Deine Ressourcen effizient nutzen und Deine Sicherheits- und Performanzanforderungen optimal ausbalancieren.