Canonical on avaldanud LXD 5.0 konteinerihalduri ja LXCFS 5.0 virtuaalse failisüsteemi versiooni. LXD kood on kirjutatud Go keeles ja avaldatud Apache 2.0 litsentsi järgi. 5.0 haru on pikaajalise toe väljaanded — värskendused jätkuvad kuni juuni 2027.
Konteinerite käivitamiseks kasutatakse LXC tööriistu, mille hulka kuuluvad liblxc teek, utiliidid (nt lxc-create, lxc-start, lxc-stop, lxc-ls jne), konteinerite loomise mallid ja erinevate programmeerimiskeelte sidumisvõimalused. Isolatsioon saavutatakse Linuxi tuuma standardmehhanismide abil. Protsesside, võrgu, IPC, UTS, kasutajaidentiteetide ja mount-punktide isolatsiooniks kasutatakse nimede ruumimehhanismi (namespaces). Rikkete piiramiseks rakendatakse cgroups. Privileegide vähendamiseks ja juurdepääsu piiramise võimaluseks kasutatakse selliseid tuuma funktsioone nagu Apparmor ja SELinux profiilid, Seccomp poliitikad, Chroots (pivot_root) ja capabilities.
Lisaks LXC-le kasutatakse LXD-s ka projekte CRIU ja QEMU. Kui LXC on madala taseme tööriist üksikute konteinerite käitlemiseks, siis LXD pakub vahendeid, et tsentraalselt hallata klasterisse installitud konteinersüsteeme. serveriteLXD rakendatakse taustaprotsessina, mis võtab võrgus REST API kaudu vastu päringuid ja toetab erinevaid salvestuslahendusi (kaustapuu, ZFS, Btrfs, LVM), olekuli snapshot'e, töötavate konteinerite live-migratsiooni ühest masinast teise ning konteineripiltide salvestamise vahendeid. LXCFS kasutatakse konteinerites failisüsteemi simulatsiooniks psühholoogilised failid /proc ja /sys, samuti cgroupfi virtualiseeritud esitus, et anda konteineritele tavapärase iseseisva süsteemi välimus.
Peamised täiustused:
- Dintel diskide ja USB-seadmete kuumplugimise ja lahtiühendamise võimalus. Virtuaalses masinas määratakse uus ketas uue seadme ilmumise kaudu SCSI bussil, samas kui USB-seade genereerib USB hotplug sündmuse.
- LXD käivitamise võimalus on nüüd olemas isegi siis, kui võrgukonne ei saa luua, näiteks vajaliku võrguseadmestiku puudumise tõttu. Selle asemel, et käivitamisel viga anda, käivitab LXD nüüd võimalikult palju keskkondi vastavalt olemasolevatele tingimustele, ning ülejäänud keskkonnad käivituvad pärast võrgukonne loomist.
- Uus klastriliikmete roll — ovn-chassis on lisatud, mis on mõeldud klastritele, mis kasutavad OVN (Open Virtual Network) võrgukooste jaoks (rolli ovn-chassis määramine võimaldab serverite eraldamist OVN marsruuterite funktsioonide täitmiseks).
- Optimeeritud uuendamisrežiim salvestusruumide osade sisu uuendamiseks on nüüd pakutud. Varasemates väljalaskes hõlmas uuendamine esmalt konteineri või osa kopeerimist, näiteks kasutades ZFS või Btrfs saite/saate funktsioone, seejärel sünkrooniti loodud koopia rsynci programmi käivitamise kaudu. Uuendamise tõhususe parandamiseks virtuaalmasinad Uues väljaandes on kasutusele võetud täiustatud migratsiooniloogika, mille korral, kui lähte- ja sihtserver kasutavad sama salvestuspuud, rakendatakse automaatselt snapshot'e ja send/receive operatsioone, mitte rsync'i.
- Cloud-init'i keskkondade tuvastamise loogika on ümber töötatud: nüüd kasutatakse instance-id'ina keskkonna nimede asemel UUID-d.
- Lisatud tugi süsteemikõne sched_setscheduler'i pealtkuulamisele, võimaldades privileegideta konteineritel muuta protsesside prioriteete.
- Rakendatud on valik lvm.thinpool_metadata_size, mis haldab thinpool'i metaandmete suurust.
- LXC jaoks on ümber töötatud võrginformatsiooni failiformaat. Lisatud on tugi liidestete, võrgu sildade, VLAN-i ja OVN-võrgu andmete sidumiseks.
- Suurendatud on minimaalsete komponentide versiooninõudeid: Linuxi tuum 5.4, Go 1.18, LXC 4.0.x ja QEMU 6.0.
- LXCFS 5-s on lisatud tugi ühtsest cgroup'hierarhiast (cgroup2), rakendatud on /proc/slabinfo ja /sys/devices/system/cpu, ehitamiseks on kasutatud meson'i tööriistu.
Allikas: opennet.ru
