Compania Canonical lansarea instrumentelor pentru organizarea muncii containerelor izolate , manager de containere și sistem de fișiere virtual pentru simularea în containere a /proc, /sys și reprezentarea virtualizată a cgroupfs pentru distribuții fără suport pentru spațiile de nume pentru cgroup. Ramura 4.0 este clasificată ca având suport pe termen lung, actualizările fiind generate pe parcursul a 5 ani
LXC reprezintă un runtime pentru a rula atât containere de sistem, cât și containere pentru aplicații individuale (OCI). LXC include biblioteca liblxc, un set de utilitare (lxc-create, lxc-start, lxc-stop, lxc-ls etc.), șabloane pentru construirea containerelor și un set de binding-uri pentru diverse limbaje de programare. Izolarea se realizează folosind mecanismele de bază ale nucleului Linux. Procesul de izolare a stack-ului de rețea, ipc, uts, identificatorii de utilizator și punctele de montare utilizează mecanismul spațiilor de nume (namespaces). Resursele sunt limitate prin intermediul cgroups. Pentru reducerea privilegiilor și limitarea accesului, sunt utilizate funcționalitățile nucleului, cum ar fi profilele Apparmor și SELinux, politicile Seccomp, Chroots (pivot_root) și capabilities. Codul LXC este scris în limbajul C și este distribuit sub licența GPLv2.
LXD reprezintă o suprastructură pe LXC, CRIU și QEMU, utilizată pentru gestionarea centralizată a containerelor și a mașinilor virtuale pe unul sau mai multe servere. Dacă LXC este un instrument de nivel jos pentru manipularea la nivel de containere individuale, LXD este implementat ca un proces de fundal care acceptă solicitările prin rețea prin intermediul REST API și permite crearea de configurații scalabile desfășurate pe un cluster de servere multiple.
Sunt acceptate diferite backend-uri de stocare (arbore de directoare, ZFS, Btrfs, LVM), instantanee cu o secțiune de stare, migrarea live a containerelor active de pe o mașină pe alta și instrumente pentru gestionarea stocării imaginilor. Codul LXD este scris în limbajul Go și este distribuit sub licența Apache 2.0.
Principalele în LXC 4.0:
- Driverul pentru gestionarea cgroup a fost complet rescris. A fost adăugată suportul pentru ierarhia unificată cgroup (cgroup2). A fost adăugată funcționalitatea controlerului freezer, care permite suspendarea funcționării în cgroup și eliberarea temporară a unor resurse (CPU, input/output și potențial chiar memorie) pentru a îndeplini alte sarcini;
- A fost realizată o infrastructură pentru interceptarea apelurilor sistemului;
- A fost adăugat suport pentru subsystem-ul kernel 'pidfd', destinat gestionării situației de reutilizare a PID (pidfd se leagă de un proces specific și nu se schimbă, în timp ce PID poate fi legat de un alt proces după finalizarea procesului curent asociat cu acest PID);
- A fost îmbunătățită crearea și ștergerea dispozitivelor de rețea, precum și mutarea acestora între spațiile de nume ale subsistemului de rețea;
- A fost implementată posibilitatea de a muta dispozitivele de rețea wireless (nl80211) în containere.
Principalele în LXD 4.0:
- A fost adăugat suport pentru lansarea nu doar a containerelor, ci și a mașinilor virtuale;
- Pentru segmentarea serverelor LXD a fost propusă o concepție de proiecte, care simplifică gestionarea grupurilor de containere și mașini virtuale. Fiecare proiect poate include un set propriu de containere, mașini virtuale, imagini, profile și secțiuni de stocare. În legătură cu proiectele se pot stabili propriile restricții și se pot modifica setările;
- A fost adăugat suport pentru interceptarea apelurilor sistemului pentru containere;
- A fost implementată crearea de backup-uri pentru medii și restaurarea acestora;
- A fost asigurată crearea automatizată de snapshot-uri pentru medii și secțiuni de stocare, cu posibilitatea de a stabili durata de existență a snapshot-ului;
- A fost adăugat un API pentru monitorizarea stării rețelei (lxc network info);
- A fost adăugat suport pentru , FS virtual pentru asocierea punctelor de montare cu spațiile de nume ale identificatorilor de utilizator (user namespace);
- Au fost propuse noi tipuri de adaptoare de rețea 'ipvlan' și 'routed';
- A fost adăugat un backend pentru utilizarea stocărilor bazate pe CephFS;
- Pentru clustere a fost implementat suportul pentru replicarea imaginilor și configurații multi-arhitectură;
- A fost adăugată posibilitatea de gestionare a accesului bazat pe roluri (RBAC);
- A fost adăugat suport pentru CGroup2;
- A fost adăugată posibilitatea de a configura adresa MAC și de a determina adresa sursă pentru NAT;
- A fost adăugat un API pentru gestionarea legăturilor în DHCP (leases);
- A fost adăugat suport pentru Nftables.
Sursa: opennet.ro
