Spoločnosť Canonical nástroj na organizáciu práce izolovaných kontajnerov , manažér kontajnerov a virtuálny súborový systém na simuláciu v kontajneroch /proc, /sys a virtualizovaného zobrazenia cgroupfs pre distribúcie bez podpory namespace pre cgroup. Vetva 4.0 je zaradená medzi verzie s dlhodobou podporou, aktualizácie ktorých sa vytvárajú počas 5 rokov
LXC je runtime na spúšťanie ako systémových kontajnerov, tak aj kontajnerov pre jednotlivé aplikácie (OCI). LXC zahŕňa knižnicu liblxc, súbor nástrojov (lxc-create, lxc-start, lxc-stop, lxc-ls a pod.), šablóny na vytváranie kontajnerov a súbor bindingov pre rôzne programovacie jazyky. Izolácia sa dosahuje prostredníctvom štandardných mechanizmov jadra Linux. Na izoláciu procesov, sieťového stacku ipc, uts, identifikátorov používateľov a bodov montovania sa používa mechanizmus namespaces. Na obmedzenie zdrojov sa aplikujú cgroups. Na znižovanie privilégií a obmedzenie prístupu sú využívané funkcie jadra, ako sú profily Apparmor a SELinux, politiky Seccomp, Chroots (pivot_root) a capabilities. Kód LXC v jazyku C a šíri sa pod licenciou GPLv2.
LXD je nadstavba nad LXC, CRIU a QEMU, ktorá slúži na centralizované riadenie kontajnerov a virtuálnych strojov na jednom alebo viacerých serveroch. Zatiaľ čo LXC je nízkoúrovňový nástroj na manipuláciu s jednotlivými kontajnermi, LXD je realizovaný ako proces na pozadí, ktorý prijíma požiadavky cez Sieť pomocou REST API a umožňuje vytváranie škálovateľných konfigurácií nasadených na klaster z viacerých serverov.
Podporujú sa rôzne backendové úložiská (strom adresárov, ZFS, Btrfs, LVM), snapshoty s rezom stavu, live-migrácia bežiacich kontajnerov z jedného stroja na druhý a nástroje na organizáciu úložiska obrazov. Kód LXD v jazyku Go a šíri sa pod licenciou Apache 2.0.
Kľúčové v LXC 4.0:
- Kompletné prepisovanie ovládača pre prácu s cgroup. Pridaná podpora pre unifikovanú hierarchiu cgroup (cgroup2). Pridaná funkčnosť kontroléra freezer, pomocou ktorého je možné zastaviť činnosť v cgroup a dočasne uvoľniť niektoré zdroje (CPU, vstup/výstup a potenciálne aj pamäť) na vykonávanie iných úloh;
- Implementovaná infraštruktúra na zachytávanie systémových volaní;
- Pridaná podpora subsystému kernelu „pidfd“, určeného na riešenie situácie s opätovným použitím PID (pidfd je viazaný na konkrétny proces a nemení sa, zatiaľ čo PID môže byť priradený inému procesu po ukončení aktuálneho procesu spojeného s týmto PID);
- Vylepšené vytváranie a odstraňovanie sieťových zariadení, ako aj ich premiestňovanie medzi priestorami mien sieťového subsystému;
- Implementovaná možnosť premiestnenia bezdrôtových sieťových zariadení (nl80211) do kontajnerov.
Kľúčové vo verzii LXD 4.0:
- Pridaná podpora spúšťania nielen kontajnerov, ale aj virtuálnych strojov;
- Pre segmentáciu serverov LXD bola navrhnutá koncepcia projektov, ktorá zjednodušuje správu skupín kontajnerov a virtuálnych strojov. Každý projekt môže obsahovať svoju vlastnú sadu kontajnerov, virtuálnych strojov, obrazov, profilov a úložných sekcií. V súvislosti s projektmi je možné nastaviť vlastné obmedzenia a meniť nastavenia;
- Pridaná podpora pre zachytávanie systémových volaní pre kontajnery;
- Implementované vytváranie záloh prostredí a obnova z nich;
- Zabezpečené automatizované vytváranie snímok prostredí a úložných sekcií s možnosťou stanovenia času existencie snímky;
- Pridané API na monitorovanie stavu siete (lxc network info);
- Pridaná podpora , virtuálny FS na mapovanie bodov pripojenia s priestorom mien identifikátorov používateľov (user namespace);
- Navrhnuté nové typy sieťových adaptérov „ipvlan“ a „routed“;
- Pridaný backend na použitie úložísk založených na CephFS;
- Pre klastry bola implementovaná podpora replikácie obrazov a mnohých architektúrnych konfigurácií;
- Pridaná možnosť správy prístupu na základe rolí (RBAC);
- Pridaná podpora CGroup2;
- Pridaná možnosť nastavenia MAC adresy a určenia zdrojovej adresy pre NAT;
- Pridané API na správu viazaní v DHCP (leases);
- Pridaná podpora Nftables.
Zdroj: opennet.ru
