Kompania Canonical publikoi versionin e ri tĂ« sistemit tĂ« menaxhimit tĂ« kontejnerĂ«ve LXD 5.20, i cili Ă«shtĂ« i veçantĂ« pĂ«r ndryshimin e licencĂ«s sĂ« projektit dhe pĂ«rfshirjen e nevojĂ«s pĂ«r nĂ«nshkrimin e marrĂ«veshjes CLA pĂ«r transferimin e tĂ« drejtave pronĂ«sore mbi kodin kur pranohet ndryshime nĂ« LXD. Licenca pĂ«r kodin qĂ« Ă«shtĂ« shtuar nĂ« LXD nga punonjĂ«sit e Canonical Ă«shtĂ« ndryshuar nga Apache 2.0 nĂ« AGPLv3, ndĂ«rsa kodi i kontribuesve tĂ« jashtĂ«m, pĂ«r tĂ« cilin Canonical nuk ka tĂ« drejta pronĂ«sore, mbetet nĂ«n Apache 2.0. Duke qenĂ« se Canonical nuk ka mundĂ«si ta ndryshojĂ« licencĂ«n pĂ«r tĂ« gjithĂ« kodin LXD, projekti tani do tĂ« ofrohet nĂ«n kushte tĂ« pĂ«rziera â njĂ« pjesĂ« e kodit nĂ«n AGPLv3 dhe njĂ« pjesĂ« nĂ«n Apache 2.0. Kalimi nĂ« licencĂ«n e re shpjegohet me dĂ«shirĂ«n pĂ«r tĂ« unifikuar licencĂ«n me produktet e tjera serverike tĂ« Canonical, nĂ« tĂ« cilat pĂ«rdoret AGPLv3.
Kodi i versioneve të vjetra mbetet si më parë nën licencën Apache 2.0, por të gjitha ndryshimet e bëra në komponentët e licencuar të rilicencuara do të publikohen vetëm nën licencën AGPLv3, që do të thotë se Incus nuk do të mund të transferojë ndryshime nga LXD pa e kthyer bazën e tij të kodit në licencën AGPLv3. Licencat Apache 2.0 dhe AGPLv3 kanë një përputhje njëanshme, e cila përfshin që kodi nën licencën Apache 2.0 mund të përfshihet në kodin nën licencën AGPLv3, por jo e kundërta. Ky ndryshim nënkupton një ndalim të plotë të bashkëpunimit midis projekteve LXD dhe Incus, pasi transferimi i ndryshimeve nga LXD në Incus pengohet nga licenca e re, ndërsa nga Incus në LXD, nevoja për nënshkrimin e marrëveshjes së CLA, të cilën zhvilluesit e Incus nuk kanë ndërmend ta nënshkruajnë.
Karakteristika e licencës AGPLv3 është vendosja e kufizimeve shtesë për aplikacionet që sigurojnë funksionimin e shërbimeve rrjetërore. Kur përdoren komponentë AGPL në punën e shërbimeve rrjetërore, zhvilluesi është i detyruar t'i ofrojë përdoruesit kodin burimor të të gjitha ndryshimeve të bëra në këto componente, edhe nëse software më i bazuar në shërbim nuk shpërndahet dhe përdoret ekskluzivisht në infrastrukturën e brendshme për organizimin e punës së shërbimit. Licenca AGPL gjithashtu vendos kushte kopilef, domethënë për të përfshirë kodin AGPL nga LXD në projektin tuaj, baza e kodit të projektit tuaj duhet të rilicensohet nën licencën AGPL.
LXD ofron mjete për menaxhimin e centralizuar të kontejnerëve dhe makinave virtuale të vendosura në një kluster me disa servera. LXD është implementuar si një proces në sfond, i cili pranon kërkesa nëpërmjet rrjetit përmes REST API dhe mbështet backend-e të ndryshme për ruajtjen (strukturat e drejtorive, ZFS, Btrfs, LVM), snapshot-e të gjendjeve, migrim në kohë reale të kontejnerëve në punë nga një makinë në tjetrën dhe mjete për ruajtjen e imazheve të kontejnerëve. Si runtime për ekzekutimin e kontejnerëve përdoret mjeti LXC, i cili përfshin bibliotekën liblxc, një grup utilitarësh (lxc-create, lxc-start, lxc-stop, lxc-ls etj.), shabllone për ndërtimin e kontejnerëve dhe një grup lidhjesh për gjuhë të ndryshme programimi. Izolimi realizohet me mekanizmat standard të bërthamës Linux (hapësirat e emrave, cgroups, Apparmor, SELinux, Seccomp). Përveç LXC, LXD përdor gjithashtu komponente nga projektet CRIU dhe QEMU.
Mes mundësive të reja të shtuara në LXD 5.20:
- Gjatë krijimit të grupeve të ruajtjes bazuar në Cephfs është ofruar mundësia për të krijuar meta të dhëna dhe të dhëna për grupet OSD (Object Storage Daemon), duke përdorur parametrat cephfs.create_missing, cephfs.meta_pool dhe cephfs.data_pool. Për shembull: lxc storage create mypool cephfs source=cephfs \ cephfs.create_missing=true \ cephfs.data_pool=xyz_data \ cephfs.meta_pool=xyz_meta
- Në paketën snap LXD është shtuar mundësia për të konfiguruar prioritetin e ngarkesës nga disqe të ndryshëm duke përdorur modin security.csm.
- Në firmware EDK2 UEFI është shtuar një mod i debuggimit (boot.debug_edk2=true) për diagnostikimin e problemeve gjatë ngarkesës. makinave virtuale. Logu i deugggimit ruhet në skedarin $LXD_DIR/logs//edk2.log.
- Kodi i autorizimit është përmirësuar në një bazë modulare, që lejon mbështetje për OpenFGA përveç autorizimit përmes certifikatave TLS dhe Canonical RBAC.
- Për të kompilar LXD tani nevojitet të paktën versioni i gjuhës Go 1.20.
- Mbështetja për Shiftfs është hequr. Për mapimin e identifikuesve të përdoruesve duhet të përdoret montimi me idmap, që mbështetet për Ext4, XFS, Btrfs, ZFS dhe Cephfs.
- Mbështetja për firmware UEFI me madhësi 2MB është hequr (duhen përdorur firmware me madhësi 4MB).
- Përkrahja për krijimin e magazinave të bazuara në teknologjinë NVME është transferuar nga kodi i fork-ut Incus. Për të caktuar tipin e disku, është shtuar një parametr i ri konfigurimi 'io.bus', i cili në mënyrë të paracaktuar është vendosur në 'virtio-scsi'. Kur ndryshohet në 'nvme', disku në makinë do të shihet si NVME SSD.
- Nga kodi i forkes Incus është transferuar mbështetja për lidhjen dhe heqjen e nxehtë (hot-plug/hot-remove) të rrugëve të skedarëve ose seksioneve të veçanta, të kaluara nga mjedisi pritës. Më parë, një kalim i tillë me ndihmën e drejtorit virtio-fs ose FS 9p kërkonte ndalimin e makinës virtuale. për të anashkaluar këtë kufizim është përdorur mundësia e QEMU për lidhjen e nxehtë të pajisjeve PCI dhe montimin e rrugës brenda sistemit pritës përmes incus-agent.
- Identifikuesi i pajisjes org.linuxcontainers.lxd është ribërë emri në com.canonical.lxd (për të ruajtur njëkohshmërinë, mbështetje e vjetër është ruajtur).
Burimi: opennet.ru
