Veröffentlichung des Verwaltungswerkzeugs für Container LXC und LXD 4.0

Das Unternehmen Canonical veröffentlicht Release der Werkzeuge zur Organisation der Arbeit mit isolierten Containern LXC 4.0, Container-Manager LXD 4.0 und virtuelle FS LXCFS 4.0 zur Simulation in Containern /proc, /sys und virtualisiertem cgroupfs für Distributionen ohne Unterstützung von Namensräumen für cgroup. Der Branch 4.0 gehört zu den Versionen mit Langzeitunterstützung, für die Updates über einen Zeitraum von 5 Jahren bereitgestellt werden.

LXC ist ein Runtime zum Ausführen sowohl von Systemcontainern als auch von Containern für einzelne Anwendungen (OCI). LXC umfasst die Bibliothek liblxc, eine Reihe von Utilities (lxc-create, lxc-start, lxc-stop, lxc-ls usw.), Vorlagen zum Erstellen von Containern und eine Sammlung von Bindings für verschiedene Programmiersprachen. Die Isolation erfolgt durch die standardmäßigen Mechanismen des Linux-Kernels. Für die Isolation von Prozessen, Netzwerktecken, ipc, uts, Benutzer-IDs und Mount-Punkten wird der Mechanismus der Namensräume verwendet. Zur Begrenzung von Ressourcen werden cgroups eingesetzt. Zur Herabsetzung von Privilegien und zur Begrenzung des Zugriffs werden Funktionen des Kernels wie Apparmor-Profile und SELinux, Seccomp-Politiken, Chroots (pivot_root) und Capabilities genutzt. Der LXC-Code wurde ist in der Programmiersprache C geschrieben und steht unter der Lizenz GPLv2.

LXD ist eine Erweiterung von LXC, CRIU und QEMU, die zur zentralisierten Verwaltung von Containern und virtuellen Maschinen auf einem oder mehreren Servern verwendet wird. Während LXC ein Low-Level-Werkzeug zur Manipulation auf der Ebene einzelner Container ist, wird LXD als Hintergrundprozess implementiert, der über das Netzwerk Anfragen über die REST API entgegennimmt und skalierbare Konfigurationen ermöglicht, die auf einem Cluster von mehreren Servern bereitgestellt werden.
Es werden verschiedene Backend-Speicher unterstützt (Verzeichnisbaum, ZFS, Btrfs, LVM), Snapshots mit Zustandsaufzeichnung, Live-Migration von laufenden Containern von einem Host auf einen anderen und Werkzeuge zur Organisation des Image-Speichers. Der LXD-Code wurde ist in der Programmiersprache Go geschrieben und steht unter der Lizenz Apache 2.0.

Hauptmerkmale Verbesserungen in LXC 4.0:

  • Der Treiber für die Arbeit mit cgroup wurde vollständig neu geschrieben. Unterstützung für die vereinheitlichte cgroup-Hierarchie (cgroup2) wurde hinzugefügt. Die Funktionalität des Controllers freezer wurde eingeführt, mit der der Betrieb in cgroup gestoppt und einige Ressourcen (CPU, E/A und potenziell sogar Speicher) vorübergehend freigegeben werden können, um andere Aufgaben auszuführen.
  • Infrastruktur für das Abfangen von Systemaufrufen implementiert;
  • Unterstützung des Kern-Subsystems „pidfd“ hinzugefügt, das zur Verarbeitung von Situationen mit wiederverwendbaren PIDs gedacht ist (pidfd ist an einen bestimmten Prozess gebunden und ändert sich nicht, während die PID nach Abschluss des aktuellen Prozesses an einen anderen Prozess gebunden werden kann);
  • Verbesserte Erstellung und Löschung von Netzwerkgeräten sowie deren Verschiebung zwischen Namensräumen des Netzwerk-Subsystems;
  • Die Möglichkeit zur Verschiebung von drahtlosen Netzwerkgeräten (nl80211) in Container wurde implementiert.

Hauptmerkmale Verbesserungen in LXD 4.0:

  • Unterstützung für den Start von nicht nur Containern, sondern auch virtuellen Maschinen hinzugefügt;
  • Für die Segmentierung von LXD-Servern wurde das Konzept von Projekten vorgeschlagen, das die Verwaltung von Gruppen von Containern und virtuellen Maschinen vereinfacht. Jedes Projekt kann seine eigene Sammlung von Containern, virtuellen Maschinen, Images, Profilen und Speicherbereichen enthalten. In Verbindung mit Projekten können eigene Einschränkungen festgelegt und Einstellungen geändert werden;
  • Unterstützung für das Abfangen von Systemaufrufen für Container hinzugefügt;
  • Die Erstellung von Backups von Umgebungen und die Wiederherstellung daraus wurde implementiert;
  • Automatisierte Erstellung von Snapshots von Umgebungen und Speicherbereichen mit der Möglichkeit zur Festlegung der Lebensdauer des Snapshots sichergestellt;
  • API zur Überwachung des Netzwerkstatus hinzugefügt (lxc network info);
  • Unterstützung hinzugefügt für shiftfs, virtuelle FS zur Zuordnung von Mount-Punkten zu Benutzernamensräumen (user namespace);
  • Neue Typen von Netzwerkadaptern „ipvlan“ und „routed“ vorgeschlagen;
  • Backend zur Nutzung von Speicherlösungen auf Basis von CephFS hinzugefügt;
  • Unterstützung für die Replikation von Images und multiarchitektonischen Konfigurationen für Cluster implementiert;
  • Möglichkeit zur rollenbasierten Zugriffskontrolle (RBAC) hinzugefügt;
  • Unterstützung für CGroup2 hinzugefügt;
  • Möglichkeit zur Konfiguration von MAC-Adressen und zur Bestimmung der Quelladresse für NAT hinzugefügt;
  • API zur Verwaltung von DHCP-Bindungen (leases) hinzugefügt;
  • Unterstützung für Nftables hinzugefügt.

Quelle: opennet.ru

60GB SSD 8Gb DDR4