Lansarea sistemului de gestionare a containerelor LXD 5.0

Compania Canonical a publicat versiunea managerului de containere LXD 5.0 și a sistemului de fișiere virtual LXCFS 5.0. Codul LXD este scris în limbajul Go și este distribuit sub licența Apache 2.0. Ramura 5.0 este considerată o versiune cu suport pe termen lung, iar actualizările vor fi disponibile până în iunie 2027.

Pentru rularea containerelor se utilizează instrumentele LXC, care includ biblioteca liblxc, un set de utilitare (lxc-create, lxc-start, lxc-stop, lxc-ls etc.), șabloane pentru crearea containerelor și un set de legături pentru diferite limbaje de programare. Izolarea se realizează prin mecanismele standard ale kernel-ului Linux. Izolarea proceselor, stivei de rețea ipc, uts, identificatorilor de utilizatori și punctelor de montare se face prin mecanismul spațiilor de nume (namespaces). Resursele sunt limitate prin cgroups. Pentru reducerea privilegiilor și limitarea accesului sunt utilizate funcționalități ale kernel-ului precum profilele Apparmor și SELinux, politicile Seccomp, Chroots (pivot_root) și capabilities.

Pe lângă LXC, în LXD se aplică și componente din proiectele CRIU și QEMU. Dacă LXC este un instrument de nivel scăzut pentru manipularea la nivel de containere individuale, LXD oferă mijloace pentru gestionarea centralizată a containerelor desfășurate într-un cluster format din mai multe. servereLXD este implementat ca un proces de fundal care primește cereri prin rețea prin intermediul REST API și suportă diverse back-end-uri de stocare (copaci de directoare, ZFS, Btrfs, LVM), instantanee de stări, migrarea live a containerelor funcționale de pe o mașină pe alta și mijloace pentru stocarea imaginilor containerelor. LXCFS este utilizat pentru simularea în containere a pseudo-sistemelor de fișiere /proc și /sys, precum și a reprezentărilor virtualizate cgroupfs pentru a conferi containerelor aspectul unor sisteme independente obișnuite.

Îmbunătățiri cheie:

  • Posibilitatea de conectare și deconectare la cald a discurilor și a dispozitivelor USB. În mașina virtuală, un nou disc este definit prin apariția unei noi unități pe bus-ul SCSI, iar un dispozitiv USB — prin generarea unui eveniment USB hotplug.
  • A fost introdusă posibilitatea de a lansa LXD chiar și în condițiile imposibilității de a stabili o conexiune de rețea, de exemplu, din cauza lipsei unui dispozitiv de rețea necesar. În loc să emită o eroare la lansarea LXD, acum se lansează numărul maxim de medii posibil în condițiile actuale, iar celelalte medii sunt lansate după ce conexiunea de rețea este stabilită.
  • A fost adăugată o nouă rol de membri ai clusterului - ovn-chassis, destinată clusterelor care folosesc OVN (Open Virtual Network) pentru interacțiunea de rețea (prin atribuirea rolului ovn-chassis, se pot aloca servere pentru îndeplinirea funcțiilor de routere OVN).
  • A fost propus un mod optimizat de actualizare a conținutului secțiunilor de stocare. În versiunile anterioare, actualizarea consta în copierea inițială a exemplarei containerului sau a secțiunii, de exemplu, prin utilizarea funcționalității send/receive în zfs sau btrfs, după care copia creată era sincronizată prin lansarea programului rsync. Pentru a îmbunătăți eficiența actualizării mașini virtuale în noua versiune a fost implementată o logică avansată de migrare, în care, dacă serverul sursă și serverul țintă utilizează același pool de stocare, în loc de rsync se aplică automat instantanee și operații de send/receive.
  • A fost revizuită logica de identificare a medii în cloud-init: în loc de numele medii, ca instance-id este folosit acum UUID.
  • A fost adăugat suport pentru interceptarea apelului de sistem sched_setscheduler, care permite containerelor fără privilegii să modifice prioritățile proceselor.
  • A fost implementată opțiunea lvm.thinpool_metadata_size, care gestionează dimensiunea metadatelor din thinpool.
  • A fost revizuit formatul fișierului cu informații de rețea pentru lxc. A fost adăugat suport pentru datele despre legăturile interfețelor, punți de rețea, VLAN și rețea OVN.
  • Au fost ridicate cerințele minime pentru versiunile componentelor: kernel Linux 5.4, Go 1.18, LXC 4.0.x și QEMU 6.0.
  • În LXCFS 5 a fost adăugat suport pentru ierarhia unificată cgroup (cgroup2), au fost implementate /proc/slabinfo și /sys/devices/system/cpu, iar pentru asamblare a fost folosit unelte meson.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster