Virtualisierung

Was ist LXC?

Auch bekannt als: Linux Containers
Definition

LXC is Linux-native containerisation that isolates processes with namespaces and cgroups while sharing the host kernel. LXC is excellent inside a trust boundary you already own and weak as a multi-tenant boundary, because a kernel escape affects every container on the host.

Warum LXC wichtig ist

LXC ist hervorragend innerhalb einer Vertrauensgrenze, die Sie bereits besitzen, und schwach als Multi-Tenant-Grenze, da ein Kernel-Escape jeden Container auf dem Host betrifft.

LXC in der Praxis

Mit LXC erhalten Sie einen schlanken Container, der den Kernel des Hosts teilt. Sie verwalten ihn über die lxc-Befehle oder die API und beobachten die cgroup-Statistiken für CPU- und Speicherdruck. Die Optimierung besteht hauptsächlich aus Namespace- und cgroup-Limits: Prozesse festlegen, Speicherobergrenzen setzen. Die Kosten für Fehler sind hoch: Ein Kernel-Ausbruch gefährdet jeden Container auf dem Host. Behandeln Sie den Host also als einzelne Vertrauensdomäne und planen Sie Failover auf Host-Ebene, nicht pro Container.

Was Leute bei LXC falsch machen

Manche behandeln LXC als Sicherheitsgrenze wie KVM. Das ist falsch: Container teilen sich einen Kernel, daher kann ein Fehler in diesem Kernel aus jedem Container ausbrechen. Die Korrektur lautet: LXC dient der Isolierung innerhalb einer Vertrauensdomäne, die Sie besitzen, nicht für Multi-Tenant-Hosting mit potenziell feindlichen Mietern.

LXC – häufige Fragen

Ist LXC dasselbe wie Docker?

Nein. Docker baut auf Container-Primitiven wie LXC auf, fügt aber Image-Verwaltung, Layer und Orchestrierung hinzu. LXC ist eher wie eine leichte VM: Sie betreiben eine vollständige Distribution darin und verwalten sie direkt mit systemd oder init. Docker verpackt Apps; LXC virtualisiert Systeme.

Kann ich LXC mit einem eigenen Kernel betreiben?

Das hängt vom Host ab. Einige Anbieter wie OnionVPS gewähren vollen Root-Zugriff und erlauben eigene Kernel, aber bei LXC teilen Sie den Host-Kernel, daher ist ein eigener Kernel nicht für den Container selbst. Dafür nutzen Sie KVM. LXC ist an die Kernel-Version und -Konfiguration des Hosts gebunden.

Mehr aus virtualisierung

KVM
KVM ist vollständige Hardware-Virtualisierung, die in den Linux-Kernel integriert ist und jedem Gast einen eigenen Kernel und hardwaregestützte Isolierung von anderen Mandanten bietet.
OpenVZ
OpenVZ ist containerbasierte Virtualisierung, bei der jede Instanz den Host-Kernel teilt, sodass Gäste keine Kernel-Module laden oder ein anderes Betriebssystem ausführen können.
Hypervisor
Ein Hypervisor ist die Softwareschicht, die virtuelle Maschinen erstellt und ausführt und physische CPU, Speicher und E/A zwischen ihnen zuteilt.
Verschachtelte Virtualisierung
Verschachtelte Virtualisierung ermöglicht es einer virtuellen Maschine, selbst virtuelle Maschinen auszuführen, indem die Prozessor-Virtualisierungserweiterungen dem Gast exponiert werden.
vCPU
Eine vCPU ist ein virtueller Prozessor, der einem Gast präsentiert wird und durch Planungszeit auf einem physischen Kern oder Thread unterstützt wird.
cloud-init
cloud-init ist der Standardmechanismus zur Konfiguration einer virtuellen Maschine beim ersten Start unter Verwendung von Metadaten, die von der Plattform bereitgestellt werden.