Företaget Canonical har publicerat en ny version av containersystemet LXD 5.20, vilket Ă€r anmĂ€rkningsvĂ€rt eftersom licensen för projektet har Ă€ndrats och nu krĂ€ver underskrift av ett CLA-avtal för överlĂ„telse av immateriella rĂ€ttigheter till koden vid godkĂ€nnande av Ă€ndringar i LXD. Licensen för koden som lagts till LXD av anstĂ€llda pĂ„ Canonical har Ă€ndrats frĂ„n Apache 2.0 till AGPLv3, medan koden frĂ„n externa bidragsgivare, som Canonical inte har immateriella rĂ€ttigheter till, förblir under Apache 2.0. Eftersom Canonical inte har möjlighet att Ă€ndra licensen för hela LXD-koden kommer projektet nu att levereras under blandade villkor - en del av koden under AGPLv3 och en del under Apache 2.0. ĂvergĂ„ngen till den nya licensen motiveras av en önskan att enhetliggöra licensen med andra serverprodukter frĂ„n Canonical, dĂ€r AGPLv3 anvĂ€nds.
Koden för tidigare versioner förblir fortfarande tillgĂ€nglig under licensen Apache 2.0, men alla Ă€ndringar som görs i omlicensierade komponenter kommer att publiceras enbart under licensen AGPLv3, vilket inte tillĂ„ter en fork av Incus att överföra Ă€ndringar frĂ„n LXD utan att omlicensiera sin kodbas till AGPLv3. Licenserna Apache 2.0 och AGPLv3 har en ensidig kompatibilitet, vilket innebĂ€r att kod under licensen Apache 2.0 kan inkluderas i kod under licensen AGPLv3, men inte vice versa. Ăndringen innebĂ€r en fullstĂ€ndig upphörande av samarbetet mellan projekten LXD och Incus, dĂ„ den nya licensen hindrar överföring av Ă€ndringar frĂ„n LXD till Incus, och frĂ„n Incus till LXD krĂ€ver underskrift av CLA-avtalet, vilket utvecklarna av Incus inte Ă€r villiga att göra.
En sÀrskiljande egenskap hos licensen AGPLv3 Àr införandet av ytterligare begrÀnsningar för applikationer som tillhandahÄller nÀtverkstjÀnster. Vid anvÀndning av AGPL-komponenter i nÀtverkstjÀnster Àr utvecklaren skyldig att tillhandahÄlla anvÀndaren kÀllkoden för alla gjorda Àndringar i dessa komponenter, Àven om programvaran som ligger till grund för tjÀnsten inte distribueras och enbart anvÀnds i intern infrastruktur för att organisera tjÀnstens drift. AGPL-licensen stÀller Àven krav pÄ copyleft, vilket innebÀr att för att inkludera AGPL-kod frÄn LXD i sitt projekt mÄste kodbasen för det egna projektet omlicensieras under AGPL-licensen.
LXD tillhandahÄller verktyg för centralt hanterande av containrar och virtuella maskiner som Àr distribuerade över en kluster av flera servrar. LXD Àr implementerat som en bakgrundsprocess som tar emot nÀtverksförfrÄgningar via REST API och stödjer olika lagringsbackend (katalogtrÀd, ZFS, Btrfs, LVM), ögonblicksbilder med tillstÄndsavskÀrningar, live-migrering av aktiva containrar frÄn en maskin till en annan samt verktyg för lagring av containerbilder. Som runtime för att köra containrar anvÀnds LXC-verktyg, vilket inkluderar biblioteket liblxc, en uppsÀttning verktyg (lxc-create, lxc-start, lxc-stop, lxc-ls etc.), mallar för att bygga containrar samt en uppsÀttning bindningar för olika programmeringssprÄk. Isoleringen sker med hjÀlp av kÀrnans inbyggda mekanismer i Linux (namnrymder, cgroups, Apparmor, SELinux, Seccomp). Förutom LXC anvÀnds Àven komponenter frÄn projekten CRIU och QEMU i LXD.
Bland de nya funktionerna i LXD 5.20 finns:
- Vid skapandet av lagringspooler baserade pÄ Cephfs har möjlighet att skapa metadata och data för OSD-pooler (Object Storage Daemon) införts, med parametrarna cephfs.create_missing, cephfs.meta_pool och cephfs.data_pool. Till exempel: lxc storage create mypool cephfs source=cephfs \ cephfs.create_missing=true \ cephfs.data_pool=xyz_data \ cephfs.meta_pool=xyz_meta
- I snap-paketet av LXD har en möjlighet lagts till för instÀllning av startprioritet frÄn olika diskar vid anvÀndning av lÀget security.csm i EDK2-firmware.
- I EDK2 UEFI-firmware har en avlusningslÀge (boot.debug_edk2=true) lagts till för diagnos av problem under uppstart virtuella maskiner. Avlusningsloggen sparas i filen $LXD_DIR/logs/<instance_name>/edk2.log.
- Auhtorisationskoden har omarbetats till en modulbaserad struktur som möjliggör stöd för OpenFGA utöver TLS-certifikatförfattning och Canonical RBAC.
- För att kompilera LXD krÀvs nu minst version 1.20 av programmeringssprÄket Go.
- Stödet för Shiftfs har tagits bort. För mappning av anvÀndaridentiteter bör monteringar med idmap anvÀndas, vilket stöds för Ext4, XFS, Btrfs, ZFS och Cephfs.
- Stödet för UEFI-firmwares med 2MB storlek har tagits bort (firmware som Àr 4MB krÀvs).
- FrÄn kodbasen av Incus-forken har stöd för att skapa lagring baserat pÄ NVMe-teknik överförts. För att ange disktype har en ny konfigurationsparameter "io.bus" lagts till, som som standard stÀlls in pÄ "virtio-scsi". Om vÀrdet Àndras till "nvme", kommer lagringsenheten i den virtuella maskinen att ses som en NVMe SSD.
- FrÄn kodbasen av Incus-forken har stöd för varmanslutning och varmavtagning (hot-plug/hot-remove) av filvÀgar eller individuella partitioner som genomförts frÄn vÀrdmiljön överförts. Tidigare krÀvde sÄdan genomförande genom virtio-fs eller 9p-filsystemet att den virtuella maskinen stÀngdes av. För att kringgÄ denna begrÀnsning har QEMU:s möjlighet till varmanslutning av PCI-enheter och montering av vÀgar inuti gÀstsystemet genom incus-agent anvÀnts.
- Enhetsidentifieraren org.linuxcontainers.lxd har omdöpts till com.canonical.lxd (för att sÀkerstÀlla bakÄtkompatibilitet har stödet för den gamla identifieraren bevarats).
KĂ€lla: opennet.ru
