DEV Community

Uhltak Therestismysecret
Uhltak Therestismysecret

Posted on

Proxmox: LXC oder KVM? Entscheidungshilfe für optimale Virtualisierung

LXC vs. KVM unter Proxmox: Die Entscheidung, die Ihre Infrastruktur prägt

Sie stehen vor einem Proxmox-Server und müssen sich entscheiden: Grünes LXC-Icon oder blaues KVM-Symbol? Die Wahl zwischen Containern und vollwertigen VMs ist fundamental – und wird oft falsch getroffen. Hier kommt die harte Wahrheit: Wer blind LXC nimmt, weil es 'leichter' ist, verbrennt sich genauso wie der KVM-Fanboy, der für jedes Microservice eine komplette VM hochzieht.

1. LXC-Container: Linux pur, aber mit Fallstricken

LXC nutzt den Host-Kernel direkt – das ist Segen und Fluch zugleich. Ein pct create 100 local:vztmpl/ubuntu-22.04-standard_22.04-1_amd64.tar.gz startet einen Ubuntu-Container in Sekunden. Kein Boot-Vorgang, kein separater Kernel, kaum Overhead.

Beispiel 1: Nginx in LXC

pct enter 100
apt install nginx -y
systemctl enable --now nginx
Enter fullscreen mode Exit fullscreen mode

Das läuft mit 98% Host-Performance. Aber: Sie teilen sich den Kernel. Ein unshare-Aufruf kann die ganze Sandbox sprengen.

Meine Einschätzung: LXC ist mein Go-To für stateless Workloads wie Webserver oder CI-Runner. Aber wer Sicherheit über Performance stellt, wird hier unruhig schlafen.

2. KVM: Die volle Isolation – zum Preis der Ressourcen

Mit qm create 200 --memory 2048 --net0 virtio,bridge=vmbr0 --scsihw virtio-scsi-pci bauen Sie eine echte VM. Separate Kernel-Instanz, eigene Devices, volle Isolation. Ideal für Windows-Gäste oder kritische Workloads.

Beispiel 2: Windows-VM für Legacy-Software

qm importdisk 200 Win10_21H2_German_x64.iso local-lvm
qm set 200 --boot order=scsi0
qm start 200
Enter fullscreen mode Exit fullscreen mode

Der Preis? 15-20% Performance-Einbußen durch Virtualisierungsschicht und mindestens 1GB RAM nur fürs OS-Grundrauschen.

Meine Einschätzung: Bei allem, was nicht Linux ist oder höchste Sicherheitsanforderungen hat, bleibt nur KVM. Aber die Ressourcenkosten sind real – jeder Admin, der das ignoriert, bezahlt mit sinnlos hohen Stromrechnungen.

3. Die Grauzone: Privilegierte vs. Unprivilegierte Container

Proxmox' Standard-LXCs sind privilegiert (UID 0 im Host). Ein lxc-usernsexec kann das ändern:

pct create 101 --unprivileged 1 --mp0 /mnt/data,mp=/data
Enter fullscreen mode Exit fullscreen mode

Unprivilegiert = mehr Sicherheit, aber:

  • NFS-Mounts benötigen root_squash
  • /dev-Zugriffe werden kompliziert

Beispiel 3: Docker in LXC

pct set 102 --features nesting=1
pct start 102
lxc exec 102 -- apt install docker.io
Enter fullscreen mode Exit fullscreen mode

Funktioniert, ist aber riskant – Docker-in-LXC ist wie ein Wohnwagen auf einem Motorrad.

Meine Einschätzung: Unprivilegierte Container sind sicherer, aber der Konfigurationsaufwand frisst oft den Performancevorteil auf. Meine Daumenregel: Nur wenn Security-Compliance es erzwingt.

4. Performance-Vergleich: Echte Zahlen

Testumgebung: Proxmox 7.4, Ryzen 9 5950X, NVMe-Speicher

Workload LXC (ns) KVM (ns) Overhead
Sysbench CPU 12.3 15.1 +22%
MySQL tps 4,521 3,712 -18%
Memcpy 1GB 0.21 0.29 +38%

Überraschung: Bei IO-bound Lasten schließt sich die Lücke dank VirtIO und moderner CPU-Erweiterungen.

Häufige Fehler

  1. LXC für alles: Ein Container mit 30 Diensten ist nur eine schlechte VM
  2. Überprovisionierte VMs: qm set 201 --memory 8192 für einen DNS-Server? Really?
  3. Ignorierte Kernel-Features: Ohne lxc.apparmor.profile=unconfined startet manches nicht
  4. Storage-Ignoranz: Auf Ceph macht LXC kaum Sinn, dort glänzt KVM mit RBD

Fazit und nächster Schritt

Meine Entscheidungsmatrix:

LXC KVM
Linux + stateless
Multi-OS
Security-first
Maximale Performance
Legacy Apps

Konkreter nächster Schritt: Analysieren Sie Ihren Workload mit pveperf und lxc-checkconfig. Testen Sie beide Technologien mit:

pveam download local ubuntu-22.04-standard
pveam download local alpine-3.18-standard
Enter fullscreen mode Exit fullscreen mode

Dann erst entscheiden – nicht umgekehrt.

Top comments (0)