Firma Canonical vahendid isoleeritud konteinerite töö korraldamiseks , konteinerihaldur ja virtuaalne failisüsteem konteinerites /proc, /sys simuleerimiseks ja virtuaalsete cgroupfs esitlemiseks jaotustes, mis ei toeta nimespette, cgroupi jaoks. 4.0 haru kuulub pikaajalise toe väljaannetesse, mille uuendused vormitakse järgmise 5 aasta jooksul.
LXC on runtime süsteemide ja rakenduste konteinerite käitamiseks (OCI). LXC koosneb liblxc teegist, tööriistade komplektist (nt lxc-create, lxc-start, lxc-stop, lxc-ls jne), konteinerite ehitamiseks mõeldud mallidest ja erinevate programmeerimiskeelte sidumistest. Isolatsioon saavutatakse Linuxi tuuma tavamehanismide abil. Protsesside, võrgu, ipc, uts, kasutajatunnuste ja montaažipunktide isolatsiooniks kasutatakse nimede ruume (namespaces). Ressursside piiramist teostatakse cgroups'i abil. Privilegiteetide vähendamiseks ja juurdepääsu piiramiseks kasutatakse tuuma võimalusi, nagu Apparmor ja SELinux profiilid, Seccomp poliitikad, Chroots (pivot_root) ja capabilities. LXC kood on kirjutatud C keeles ja levitatakse GPLv2 litsentsi alusel.
LXD on LXC, CRIU ja QEMU peal ehitatud kiht, mida kasutatakse konteinerite ja virtuaalmasinate tsentraliseeritud haldamiseks ühel või mitmel serveril. Kui LXC on madala taseme tööriist individuaalsete konteinerite tasemel manipuleerimiseks, siis LXD on rakendatud taustaprotsessina, mis võtab võrgus REST API kaudu vastu päringuid ja võimaldab luua skaleeritavaid konfiguratsioone, mis on juurutatud mitmete serverite klastrisse.
Toetatakse erinevaid salvestuse tagaplane (kaustapuu, ZFS, Btrfs, LVM), oleku jäädvustamine, töötavate konteinerite live-migreeerimine ühest masinast teise ja vahendid piltide salvestuse korraldamiseks. LXD kood on kirjutatud Go keeles ja levitatakse Apache 2.0 litsentsi alusel.
Peamised LXC 4.0-s:
- Cgroup’i töötlemise draiver on täielikult ümber kirjutatud. Lisatud on toetus ühtsele cgroup’i hierarhiale (cgroup2). Lisatud on freezer-kontrolleri funktsionaalsus, mille abil saab cgroup’i töötamise peatada ja ajutiselt vabastada mõned ressursid (CPU, sisend/väljund ja potentsiaalselt isegi mälu) teiste ülesannete täitmiseks;
- Süsteemikutsungite püüdmiseks on loodud infrastruktuur;
- Lisatud on "pidfd" kernelisüsteemi alamhulga tugi, mis on mõeldud PID-i (pidfd seondub konkreetse protsessiga ja ei muutu, samas kui PID võib olla seotud teise protsessiga pärast selle konkreetse protsessi lõpetamist) taaskasutamisprobleemide käsitlemiseks;
- Parandatud on võrguseadmete loomist ja eemaldamist, samuti nende liikumist võrgu alamhulga nimede ruumide vahel;
- Rakendatud on võimalus liigutada traadita võrguseadmeid (nl80211) konteineritesse.
Peamised LXD 4.0-s:
- Lisatud on tugi mitte ainult konteinerite, vaid ka virtuaalmasinate käivitamiseks;
- LXD serverite segmentimiseks on pakutud projektide kontseptsioon, mis lihtsustab konteinerite ja virtuaalmasinate rühmade haldamist. Iga projekt võib sisaldada oma kogumit konteineritest, virtuaalmasinatest, piltidest, profiilidest ja salvestusosadest. Projektide seondumisega on võimalik määrata oma piirangud ja muuta seadeid;
- Lisatud on süsteemikutsungite püüdmise tugi konteinerite jaoks;
- Realiseeritud on varukoopiate loomine keskkondade jaoks ja nende taastamine;
- Tagatud on automatiseeritud keskkondade ja salvestusosade jääkide loomine koos jäägi kehtivusaega määramise võimalusega;
- Lisatud API võrgu seisundi jälgimiseks (lxc network info);
- Lisatud tugi , virtuaalne failisüsteem montaažipunktide sidumiseks kasutaja identifikaatorite ruumidega (user namespace);
- Pakutud uusi of võrguadapterite tüüpe «ipvlan» ja «routed»;
- Lisatud tagurpidi CephFS-põhiste salvestusruumide kasutamiseks;
- Klastrite jaoks on rakendatud piltide replikatsiooni ja multiarhitektuursete konfiguratsioonide toetamine;
- Lisatud juurdepääsu haldamise võimalus rollipõhiselt (RBAC);
- Lisatud CGroup2 tugi;
- Lisatud MAC-aadressi seadistamise ja NAT-i allika aadressi määramise võimalus;
- Lisatud API DHCP sidumiste haldamiseks (leases);
- Lisatud Nftablesi tugi.
Allikas: opennet.ru
