Linux Containers: LXC, LXD und LXCFS in Version 4.0 erschienen
Die Linux Containers Runtime und die zugehörigen Projekte für die Verwaltung und das FUSE-Dateisystem sind als frische Long-term-Support-Varianten erschienen.
- Rainald Menge-Sonnentag
Das Open-Source-Projekt Linux Containers (LXC) ist in Version 4.0 erschienen. Parallel wechseln auch das Tool zum Verwalten von System-Containern und virtuellen Maschinen LXD sowie das auf FUSE aufgebaute Dateisystem LXCFS auf dieselbe Versionsnummer. Bei allen drei Veröffentlichungen handelt es sich um LTS-Releases (Long-term Support).
Erweiterte Anbindung für cgroups und Syscalls
Die Container-Laufzeitumgebung LXC zur Virtualisierung von Linux-Systemen auf Betriebssystemebene bietet neuerdings eine Unterstützung für cgroup2 zum hierarchischen Organisieren von Prozessen. Zu der Arbeitsweise von LXC gehört das Kombinieren der cgroups im Kernel, um die Ressourcen der Container zu verwalten.
Außerdem erweitert LXC das Erstellen von Stubs für Systemaufrufe, die der C-Library des Systems fehlen. Dazu führt LXC eigene Definitionen für __NR_<syscall-name>
ein, die immer dann zum Tragen kommen, wenn das jeweilige System die Syscalls nicht definiert. Damit lassen sich beispielsweise unterschiedliche Kernels beim Kompilieren und im Deployment abfedern. Außerdem verbessert LXC das Verwalten von Netzwerkgeräten und repariert die Funktion zum Verwenden drahtloser Netzwerkressourcen über nl80211 in Containern.
Virtuelle Maschinen und Projekte für LXD
LXD ist ein Hypervisor zur Verwaltung von Linux-Containern, der auf den früher verwendeten LXC-Tools aufbaut. Das aktuelle Release bringt neben einigen Neuerungen auch eine Änderung mit, die zu Inkompatibilität mit Version 3.x führt: Das Flag --instance-only
ersetzt das bisherige --container-only
.
Neuerdings ist ein Backup und Restore virtueller Maschinen über lxc export
und lxc import
möglich. Dabei gilt es jedoch zu beachten, dass große Datenmengen anfallen, da virtuelle Maschinen im Gegensatz zu Containern unabhängig von der tatsächlichen Nutzung einen großen Block darstellen.
Einige wichtige Ergänzungen waren bereits in späteren 3.x-Releases integriert, sind aber in Version 3.0 eingeflossen: LXD kann neben Containern auch virtuelle Maschinen starten. Dazu dient der --vm
-Parameter für den lxc launch
-Befehl. LXD-Server lassen sich zudem in Projekte aufteilen, die jeweils eigene Instanzen, Images, Profile und Storage-Volumen verwalten. Neue Projekte erben die Einstellung eines default
-Projekts, und für einzelne Projekte lassen sich spezielle Einschränkungen und Obergrenzen festlegen.
Aufräumarbeiten für das Dateisystem
LXCFS ist das Dateisystem, das auf FUSE (Filesystem in Userspace) aufsetzt. Für Version 4.0 haben die Projektbetreiber das Repository neu organisiert und aufgeteilt. Anwender finden zudem eine erweiterte Liste von Parametern für das Ausführen von lxcfs
auf der Kommandozeile. Wie LXC bietet auch das Dateisystem im aktuellen Release eine Unterstützung der einheitlichen cgroup-Hierarchie in cgroup2.
Weitere Details zu den 4.0-Releases finden sich in den jeweiligen Foren zu LXC, LXD und LXCFS. Alle drei Projekte genießen als LTS-Release einen garantierten Support bis 2025, und der Releasezyklus sieht frische LTS-Varianten alle zwei Jahre vor. (rme)