Veröffentlichung des Container-Management-Systems LXD 5.0

Canonical hat die Version 5.0 des Container-Managers LXD und des virtuellen Dateisystems LXCFS 5.0 veröffentlicht. Der LXD-Code ist in Go geschrieben und wird unter der Lizenz Apache 2.0 verteilt. Die Version 5.0 wird als Long-Term Support (LTS) klassifiziert – Updates werden bis Juni 2027 bereitgestellt.

Als Runtime zur Ausführung von Containern wird das LXC-Toolkit verwendet, das die Bibliothek liblxc, eine Sammlung von Dienstprogrammen (wie lxc-create, lxc-start, lxc-stop, lxc-ls usw.), Vorlagen für den Aufbau von Containern und eine Reihe von Bindings für verschiedene Programmiersprachen umfasst. Die Isolierung erfolgt durch die standardmäßigen Mechanismen des Linux-Kernels. Zur Isolierung von Prozessen, Netzwerkstapeln, ipc, uts, Benutzer-IDs und Mount-Punkten wird der Mechanismus der Namensräume (namespaces) verwendet. Zur Ressourcenkontrolle kommen cgroups zum Einsatz. Dafür werden Kernelfunktionen wie Apparmor- und SELinux-Profile, Seccomp-Politiken, Chroots (pivot_root) und Berechtigungen eingesetzt.

Neben LXC verwendet LXD auch Komponenten aus den Projekten CRIU und QEMU. Während LXC ein Low-Level-Werkzeug zur Manipulation einzelner Container ist, bietet LXD Mittel zur zentralen Verwaltung von Containern, die in einem Cluster von mehreren betrieben werden. Server. LXD wird als Hintergrundprozess realisiert, der Netzwerkrequests über eine REST-API annimmt und verschiedene Backends für Speicher unterstützt (Verzeichnisbaum, ZFS, Btrfs, LVM), Snapshots mit Statusschnitten, Live-Migration von laufenden Containern von einer Maschine zur anderen sowie Mittel zur Speicherung von Container-Images. LXCFS wird verwendet, um in Containern ein Pseudo-Dateisystem /proc und /sys sowie eine virtualisierte Darstellung von cgroupfs zu simulieren, um den Containern das Aussehen eines normalen, unabhängigen Systems zu verleihen.

Wesentliche Verbesserungen:

  • Die Möglichkeit des heißen Anschließens und Abkoppelns von Festplatten und USB-Geräten. In der virtuellen Maschine wird eine neue Festplatte durch das Erscheinen eines neuen Geräts auf dem SCSI-Bus erkannt, während ein USB-Gerät durch das Generieren eines USB-Hotplug-Ereignisses erkannt wird.
  • Die Möglichkeit, LXD auch dann zu starten, wenn eine Netzwerkverbindung nicht hergestellt werden kann, wurde bereitgestellt, zum Beispiel aufgrund fehlender Netzwerkgeräte. Anstelle einer Fehlermeldung beim Start von LXD startet das System nun die maximal mögliche Anzahl an Umgebungen unter den aktuellen Bedingungen, während die verbleibenden Umgebungen gestartet werden, sobald die Netzwerkverbindung hergestellt wird.
  • Eine neue Rolle für Cluster-Mitglieder wurde hinzugefügt — ovn-chassis, die für Cluster gedacht ist, die OVN (Open Virtual Network) für die Netzwerkverbindung verwenden. Durch die Zuweisung der Rolle ovn-chassis können Server für die Ausführung von OVN-Router-Funktionen выделены werden.
  • Ein optimierter Modus zur Aktualisierung des Inhalts von Speichersektoren wurde vorgeschlagen. In früheren Versionen bestand das Aktualisierungsverfahren darin, dass zunächst die Container-Instanz oder der Sektor kopiert wurde, beispielsweise durch die Nutzung der Send/Receive-Funktionalität in ZFS oder BTRFS, gefolgt von der Synchronisierung der erstellten Kopie über das Programm rsync. Um die Effizienz der Aktualisierung zu steigern... virtuellen Maschinen Im neuen Release wird eine fortgeschrittene Migrationslogik verwendet. Wenn der Quell- und Zielserver dasselbe Speicherset nutzen, werden anstelle von rsync automatisch Snapshots und Send/Receive-Operationen angewendet.
  • Die Logik zur Identifikation von Umgebungen in cloud-init wurde überarbeitet: Anstelle von Umgebungsnamen wird nun UUID als instance-id verwendet.
  • Die Unterstützung für den Systemaufruf sched_setscheduler wurde hinzugefügt, die es nicht privilegierten Containern ermöglicht, die Prioritäten von Prozessen zu ändern.
  • Die Option lvm.thinpool_metadata_size wurde implementiert, um die Größe der Metadaten im Thinpool zu steuern.
  • Das Format der Datei mit Netzwerkinformationen für lxc wurde überarbeitet. Unterstützung für Daten zu Interface-Bindungen, Netzbrücken, VLAN und OVN-Netzwerken wurde hinzugefügt.
  • Die Anforderungen an die minimalen Versionen der Komponenten wurden erhöht: Linux-Kernel 5.4, Go 1.18, LXC 4.0.x und QEMU 6.0.
  • In LXCFS 5 wurde die Unterstützung für die einheitliche Hierarchie cgroup (cgroup2) implementiert, sowie /proc/slabinfo und /sys/devices/system/cpu, wobei das Meson-Werkzeug verwendet wurde.

Quelle: opennet.ru

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster