Sortie du système de gestion de conteneurs LXD 5.0

La société Canonical a publié la version 5.0 du gestionnaire de conteneurs LXD et du système de fichiers virtuel LXCFS 5.0. Le code de LXD est écrit en Go et distribué sous la licence Apache 2.0. La branche 5.0 fait partie des versions avec support à long terme, avec des mises à jour prévues jusqu'en juin 2027.

Le runtime utilisé pour exécuter les conteneurs est l'outil LXC, qui comprend la bibliothèque liblxc, un ensemble d'utilitaires (lxc-create, lxc-start, lxc-stop, lxc-ls, etc.), des modèles pour créer des conteneurs et un ensemble de liaisons pour différents langages de programmation. L'isolation est assurée par les mécanismes natifs du noyau Linux. Pour l'isolation des processus, de la pile réseau, ipc, uts, des identifiants utilisateurs et des points de montage, le mécanisme des espaces de noms (namespaces) est utilisé. Les cgroups sont utilisés pour limiter les ressources. Pour réduire les privilèges et restreindre l'accès, des fonctionnalités du noyau telles que les profils Apparmor et SELinux, les politiques Seccomp, les Chroots (pivot_root) et les capabilities sont mises en œuvre.

Outre LXC, LXD utilise également des composants des projets CRIU et QEMU. Alors que LXC est un outil de bas niveau pour manipuler des conteneurs individuels, LXD fournit des moyens de gestion centralisée des conteneurs déployés dans un cluster de plusieurs. serveurs. LXD fonctionne comme un processus en arrière-plan qui accepte les requêtes réseau via une API REST et prend en charge divers backends de stockage (arborescence de répertoires, ZFS, Btrfs, LVM), des instantanés de l'état, la migration à chaud des conteneurs en fonctionnement d'une machine à une autre et des outils pour stocker des images de conteneurs. LXCFS est utilisé pour simuler dans les conteneurs un pseudo-système de fichiers /proc et /sys, ainsi qu'une représentation virtualisée de cgroupfs pour donner aux conteneurs l'apparence d'un système indépendant normal.

Améliorations clés :

  • Possibilité de connexion et de déconnexion à chaud des disques et des dispositifs USB. Dans la machine virtuelle, un nouveau disque est défini par l'apparition d'un nouvel appareil sur le bus SCSI, tandis qu'un dispositif USB est déterminé par la génération d'un événement de branchement à chaud USB.
  • Il est désormais possible de démarrer LXD même en l'absence de connexion réseau, par exemple en raison de l'absence de l'appareil réseau nécessaire. Au lieu de renvoyer une erreur lors du démarrage de LXD, il démarre maintenant le maximum d'environnements possible dans les conditions actuelles, tandis que les autres environnements seront lancés une fois la connexion réseau rétablie.
  • Un nouveau rôle pour les membres du cluster a été ajouté - ovn-chassis, conçu pour les clusters utilisant OVN (Open Virtual Network) pour l'interaction réseau (en attribuant le rôle ovn-chassis, il est possible de désigner des serveurs pour effectuer des fonctions de routeurs OVN).
  • Un mode d'optimisation pour la mise à jour du contenu des sections de stockage a été proposé. Dans les versions précédentes, la mise à jour consistait à d'abord copier l'instance du conteneur ou la section, par exemple, en utilisant la fonctionnalité send/receive dans zfs ou btrfs, puis la copie créée était synchronisée en exécutant le programme rsync. Pour améliorer l'efficacité de la mise à jour, machines virtuelles la nouvelle version utilise une logique avancée de migration, où, si le serveur source et le serveur cible utilisent un même pool de stockage, au lieu de rsync, des instantanés et des opérations send/receive sont automatiquement appliqués.
  • La logique d'identification des environnements dans cloud-init a été repensée : au lieu d'utiliser les noms d'environnements comme instance-id, l'UUID est désormais utilisé.
  • Le support de l'interception de l'appel système sched_setscheduler a été ajouté, permettant aux conteneurs non privilégiés de modifier les priorités des processus.
  • L'option lvm.thinpool_metadata_size a été implémentée, contrôlant la taille des métadonnées dans thinpool.
  • Le format du fichier d'informations réseau pour lxc a été retravaillé. Le support des données de liaison des interfaces, des ponts réseau, des VLAN et des réseaux OVN a été ajouté.
  • Les exigences pour les versions minimales des composants ont été augmentées : noyau Linux 5.4, Go 1.18, LXC 4.0.x et QEMU 6.0.
  • LXCFS 5 a ajouté le support pour la hiérarchie cgroup unifiée (cgroup2), implémenté /proc/slabinfo et /sys/devices/system/cpu, utilisant l'outil meson pour l'assemblage.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster