Release des Container-Management-Systems LXD 5.0

Die Firma 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 Apache 2.0-Lizenz veröffentlicht. Die Version 5.0 gehört zu den LTS-Release-Versionen – Updates werden bis Juni 2027 bereitgestellt.

Als Runtime fĂŒr die AusfĂŒhrung von Containern wird das LXC-Toolkit verwendet, das aus der liblxc-Bibliothek, einer Sammlung von Dienstprogrammen (lxc-create, lxc-start, lxc-stop, lxc-ls usw.), Vorlagen zum Erstellen von Containern und einem Set von Bindings fĂŒr verschiedene Programmiersprachen besteht. Die Isolation erfolgt durch die nativen Mechanismen des Linux-Kernels. Zur Isolation von Prozessen, Netzwerk-Stacks, ipc, uts, Benutzer-IDs und Mount-Punkten wird der Mechanismus der Namespaces verwendet. Cgroups werden zur Ressourcenbegrenzung eingesetzt. Zur Herabsetzung von Berechtigungen und zur ZugangsbeschrĂ€nkung werden Kernelfunktionen wie Apparmor-Profile, SELinux, Seccomp-Richtlinien, Chroots (pivot_root) und FĂ€higkeiten genutzt.

Neben LXC nutzt LXD auch Komponenten aus den Projekten CRIU und QEMU. WĂ€hrend LXC ein Low-Level-Werkzeug zur Manipulation von einzelnen Containern ist, bietet LXD Mittel zur zentralen Verwaltung von in einem Cluster aus mehreren Containern bereitgestellten Containern. ServerLXD wird als Hintergrundprozess implementiert, der Anfragen ĂŒber das Netzwerk ĂŒber eine REST-API entgegennimmt und verschiedene Speicher-Backends (Verzeichnisbaum, ZFS, Btrfs, LVM) unterstĂŒtzt, Snapshots des Systemzustands, Live-Migration von laufenden Containern von einer Maschine zur anderen und Mittel zur Speicherung von Container-Images bietet. LXCFS wird verwendet, um in Containern ein Pseudo-Dateisystem /proc und /sys zu simulieren sowie eine virtualisierte Darstellung von cgroupfs zur Erzeugung des Anscheins eines gewöhnlichen, unabhĂ€ngigen Systems in den Containern.

Wesentliche Verbesserungen:

  • Die Möglichkeit, Festplatten und USB-GerĂ€te im laufenden Betrieb anzuschließen und zu trennen. In der virtuellen Maschine wird eine neue Festplatte durch das Erscheinen eines neuen GerĂ€ts auf dem SCSI-Bus und ein USB-GerĂ€t durch das Generieren eines USB-Hotplug-Ereignisses erkannt.
  • Die Möglichkeit, LXD auch unter Bedingungen ohne Netzwerkverbindung zu starten, wurde bereitgestellt, z. B. aufgrund fehlender erforderlicher NetzwerkgerĂ€te. Anstelle eines Fehlers beim Start von LXD werden jetzt so viele Umgebungen wie möglich unter den aktuellen Bedingungen gestartet, wĂ€hrend die anderen Umgebungen starten, sobald die Netzwerkverbindung hergestellt ist.
  • Eine neue Rolle fĂŒr Cluster-Mitglieder wurde hinzugefĂŒgt — ovn-chassis, die fĂŒr Cluster bestimmt ist, die OVN (Open Virtual Network) fĂŒr die Netzwerkkommunikation verwenden (durch Zuweisung der Rolle ovn-chassis können Server hervorgehoben werden, die als OVN-Router fungieren).
  • Ein optimierter Modus zum Aktualisieren des Inhalts von Speicherbereichen wurde vorgeschlagen. In frĂŒheren Versionen bestand die Aktualisierung darin, dass zunĂ€chst eine Instanz des Containers oder der Partition kopiert wurde, z. B. durch die Anwendung von send/receive in zfs oder btrfs, gefolgt von der Synchronisierung der erstellten Kopie durch das Starten des Programms rsync. Um die Effizienz der Aktualisierung zu erhöhen, virtuelle Maschinen wurde in der neuen Version eine fortschrittliche Migrationslogik implementiert, bei der, wenn der Quell- und Zielserver denselben Speicherpool verwenden, anstelle von rsync automatisch Snapshots und die Operationen send/receive angewendet werden.
  • Die Logik zur Identifizierung von Umgebungen in cloud-init wurde ĂŒberarbeitet: Anstelle von Umgebungsnamen wird jetzt die UUID als instance-id verwendet.
  • Die UnterstĂŒtzung fĂŒr den Systemaufruf sched_setscheduler wurde hinzugefĂŒgt, der es nicht privilegierten Containern ermöglicht, die PrioritĂ€t von Prozessen zu Ă€ndern.
  • Die Option lvm.thinpool_metadata_size wurde implementiert, die die GrĂ¶ĂŸe der Metadaten im thinpool steuert.
  • Das Dateiformat fĂŒr Netzwerkinformationen fĂŒr lxc wurde ĂŒberarbeitet. Die UnterstĂŒtzung fĂŒr die Bindung von Schnittstellen, NetzwerkbrĂŒcken, VLANs und OVN-Netzen 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 eine einheitliche cgroup-Hierarchie (cgroup2) hinzugefĂŒgt, /proc/slabinfo und /sys/devices/system/cpu wurden implementiert, fĂŒr den Aufbau wurde das Meson-Toolset verwendet.

Quelle: opennet.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster