Canonical teatas, et on välja andnud uue konteinerihalduse süsteemi LXD 5.20, mis paistab silma projekti litsentsimuudatuse ja vajadusega allkirjastada CLA-leping, mis käsitleb koodi omandihüvitisi LXD muudatuste vastuvõtmisel. Canonicali töötajate poolt LXD-sse lisatud koodi litsents on muudetud Apache 2.0-lt AGPLv3-ks, samas kui kolmandate osapoolte kood, mille suhtes Canonicalil ei ole omandiõigusi, jääb endiselt Apache 2.0 alla. Kuna Canonical ei saa muuta kogu LXD koodi litsentsi, tarnitakse projekt nüüd segatud tingimustel – osa koodist AGPLv3 ja osa Apache 2.0 all. Uue litsentsi kasutuselevõttu põhjendab soov ühtlustada litsents teised Canonicali serveritooted, mis kasutavad AGPLv3.
Vana versioonide kood jääb endiselt kergesti kättesaadavaks Apache 2.0 litsentsi alusel, kuid kõik muudatused, mis tehakse litsentsitud komponentides, avaldatakse ainult AGPLv3 litsentsi alusel. See takistab Incus'e fork'il LXD-st muudatuste ülekandmist ilma oma koodibaasi AGPLv3 litsentsile viimiseta. Apache 2.0 ja AGPLv3 litsentside vahel on ühepoolne ühilduvus, mis tähendab, et Apache 2.0 litsentsi all olev kood võib kuuluda AGPLv3 litsentsi alla, kuid vastupidi ei saa. See muudatus tähendab täielikku koostöö lõppu LXD ja Incus projektide vahel, kuna uus litsents takistab muudatuste ülekandmist LXD-st Incus'e ning Incus'e poolne vajadus CLA-lepingute allkirjastamiseks takistab LXD-s muudatuste ülekandmist, mida Incus'i arendajad ei kavatse allkirjastada.
AGPLv3 litsentsi eripära on täiendavate piirangute kehtestamine rakendustele, mis pakuvad võrgu teenuste toimimist. Kui AGPL-komponente kasutatakse võrgu teenuste töös, peab arendaja kasutajale pakkuma kõigi nende komponentide muudatuste allika koodi, isegi kui teenuse alusena kasutatav tarkvara ei ole levitatud ja seda kasutatakse ainult sisemises infrastruktuuris teenuse töö korraldamiseks. AGPL litsents kehtestab ka kopyleft tingimusi, see tähendab, et AGPL-koodi lisamiseks oma projekti, peab enda projekti koodibaas olema litsentseeritud AGPL litsentsi alla.
LXD pakub vahendeid konteinerite ja virtuaalsete masinate tsentraliseeritud haldamiseks, mis on juurutatud mitme klastrisse. serverite. LXD on realiseeritud taustaprotsessina, mis võtab võrgupäringuid vastu REST API kaudu ja toetab erinevaid salvestusbackend'e (failisüsteemipuud, ZFS, Btrfs, LVM), olekusnapshot'e, töötavate mahutite live-migratsiooni ühest masinast teise ning konteineripiltide salvestamise vahendeid. Mahutite käivitamiseks kasutatakse LXC tööriistakomplekti, mis sisaldab liblxc raamatukogu, utiliite (lxc-create, lxc-start, lxc-stop, lxc-ls jne), konteinerite loomiseks mõeldud šabloone ja sidemeid erinevatele programmeerimiskeelte jaoks. Isolatsioon toimub Linuxi tuuma meetodite (nimetusalad, cgroups, Apparmor, SELinux, Seccomp) abil. Peale LXC kasutatakse LXD-s ka komponente projektidest CRIU ja QEMU.
LXD 5.20 lisatud võimaluste seas:
- Cephfs-põhiste salvestuspulsse luues on nüüd võimalik luua metainfosi ja andmeid OSD-pulse (Object Storage Daemon) jaoks, kasutades parameetreid cephfs.create_missing, cephfs.meta_pool ja cephfs.data_pool. Näiteks: lxc storage create mypool cephfs source=cephfs \ cephfs.create_missing=true \ cephfs.data_pool=xyz_data \ cephfs.meta_pool=xyz_meta
- LXD snap-pakendis on EDK2 püsivara lisatud võimalus seadistada erinevate kõvaketaste käivitamise prioriteet security.csm režiimis.
- EDK2 UEFI püsivara on saanud süsteemivea leidmiseks debug-režiimi (boot.debug_edk2=true). virtuaalmasinad. Vealogid salvestatakse faili $LXD_DIR/logs//edk2.log.
- Autoriseerimiskood on muudetud modulaarseks, mis võimaldab toetada OpenFGA lisaks TLS-sertifikaatide ja Canonical RBAC autoriseerimisele.
- LXD kompileerimiseks on nüüd vaja vähemalt Go keele versiooni 1.20.
- Shiftfs tugi on eemaldatud. Kasutaja ID-de kaardistamiseks tuleks kasutada idmap-iga seotud mountimist, mis toetab Ext4, XFS, Btrfs, ZFS ja Cephfs.
- UEFI püsivara, mille suurus on 2MB, on eemaldatud (kasutada tuleks 4MB suurusi püsivara).
- Incus forki koodibaasist on üle viidud NVME tehnoloogial põhineva salvestuslahenduse loomise tugi. Ketaste tüübi määramiseks on lisatud uus konfigureerimise parameeter „io.bus”, mis on vaikimisi seadistatud väärtusele „virtio-scsi”. Kui väärtus muudetakse „nvme”-ks, kuvatakse salvestusseade virtuaalmasinas kui NVME SSD.
- Fork Incus koodibaasist on toetatud failiteede või eraldi partitsioonide kuumühendust ja kuum eemaldamist (hot-plug/hot-remove), mis on edastatud host-ümbrusest. Varem nõudis selline edastus virtio-fs või 9p FS draiveri abil virtuaalmasina seiskamist. Selle piirangu ületamiseks on kasutatud QEMU-d PCI-seadmestiku kuumühenduse võimaluse ja tee mountimise kaudu külalisüsteemis incus-agent'i abil.
- Seadme identifikaator org.linuxcontainers.lxd on ümber nimetatud com.canonical.lxd (tagasilöögikompatibiilsuse säilitamiseks on vanema identifikaatori tugi alles).
Allikas: opennet.ru
