Společnost Canonical převedla projekt LXD na licenci AGPLv3

Společnost Canonical vydala novou verzi systému správy kontejnerů LXD 5.20, která se vyznačuje změnou licence projektu a zavedením požadavku na podepisování dohody CLA o převodu majetkových práv kódu při přijímání změn v LXD. Licence na kód, který do LXD přidali zaměstnanci Canonical, byla změněna z Apache 2.0 na AGPLv3, zatímco kód od třetích stran, na který má Canonical práva, zůstává pod Apache 2.0. Tím, že Canonical nemá možnost změnit licenci na celý kód LXD, bude projekt nyní dodáván za smíšených podmínek — část kódu pod AGPLv3 a část pod Apache 2.0. Přechod na novou licenci je vysvětlován přáním unifikovat licenci s dalšími serverovými produkty Canonical, které používají AGPLv3.

Kód starších verzí nadále zůstává dostupný pod licencí Apache 2.0, avšak všechny změny provedené v pře licencovaných komponentech budou publikovány pouze pod licencí AGPLv3, což znemožní forku Incus přenášet změny z LXD bez převedení svého kódového základu na licenci AGPLv3. Licence Apache 2.0 a AGPLv3 mají jednostrannou kompatibilitu, která spočívá v tom, že kód pod licencí Apache 2.0 může být zahrnut do kódu pod licencí AGPLv3, ale naopak to neplatí. Tato změna znamená úplné přerušení spolupráce mezi projekty LXD a Incus, protože nové licence brání převodu změn z LXD do Incus a z Incus do LXD je potřeba podepsání dohody CLA, kterou vývojáři Incus podepisovat nehodlají.

Charakteristikou licence AGPLv3 je zavedení dodatečných omezení pro aplikace, které zajišťují fungování síťových služeb. Při používání komponent AGPL v síťových službách je vývojář povinen poskytnout uživateli zdrojový kód všech změn provedených v těchto komponentách, i když základní software služby není distribuován a používá se výhradně ve vnitřní infrastruktuře pro organizaci práce služby. Licence AGPL také ukládá podmínky copyleftu, tj. aby bylo možné zahrnout AGPL kód z LXD do svého projektu, musí být kódová základna vlastního projektu pře licencována pod licencí AGPL.

LXD poskytuje prostředky pro centralizované řízení kontejnerů a virtuálních strojů nasazených v clusteru několika servery. LXD je implementován jako proces běžící na pozadí, který zpracovává požadavky přes síť prostřednictvím REST API a podporuje různé backendy úložišť (strom adresářů, ZFS, Btrfs, LVM), snapshoty s okamžitým stavem, živou migraci běžících kontejnerů z jednoho stroje na druhý a nástroje pro ukládání obrazů kontejnerů. Jako runtime pro spuštění kontejnerů se používá nástroj LXC, který zahrnuje knihovnu liblxc, sadu utilit (lxc-create, lxc-start, lxc-stop, lxc-ls atd.), šablony pro vytváření kontejnerů a sadu vazeb pro různé programovací jazyky. Izolace je zajištěna pomocí vestavěných mechanismů jádra Linuxu (jmenné prostory, cgroups, Apparmor, SELinux, Seccomp). Kromě LXC používá LXD také komponenty z projektů CRIU a QEMU.

Mezi novinky přidané do LXD 5.20 patří:

  • Při vytváření úložišť na bázi Cephfs byla přidána možnost vytváření metadat a dat pro OSD (Object Storage Daemon) úložiště pomocí parametrů cephfs.create_missing, cephfs.meta_pool a cephfs.data_pool. Například: lxc storage create mypool cephfs source=cephfs \ cephfs.create_missing=true \ cephfs.data_pool=xyz_data \ cephfs.meta_pool=xyz_meta
  • Do snap balíčku LXD byla do firmwaru EDK2 přidána možnost nastavení priority bootování z různých disků při použití režimu security.csm.
  • Do firmwaru EDK2 UEFI byl přidán ladicí režim (boot.debug_edk2=true) pro diagnostiku problémů při spouštění virtuálních strojů. Ladicí log se ukládá do souboru $LXD_DIR/logs/<instance_name>/edk2.log.
  • Kód autorizace byl převeden na modulární základnu, což umožnilo podporu OpenFGA vedle autorizace prostřednictvím TLS certifikátů a Canonical RBAC.
  • Pro kompilaci LXD je nyní vyžadována minimálně verze jazyka Go 1.20.
  • Byla odstraněna podpora Shiftfs. Pro mapování identifikátorů uživatelů by se mělo používat montování s idmap, které je podporováno pro Ext4, XFS, Btrfs, ZFS a Cephfs.
  • Byla odstraněna podpora firmwaru UEFI o velikosti 2MB (je nutné použít firmware o velikosti 4MB).
  • Z kódu forku Incus byla přesunuta podpora pro vytváření úložišť na bázi technologie NVME. Pro zadání typu disku byl přidán nový konfigurační parametr „io.bus“, který je standardně nastaven na hodnotu „virtio-scsi“. Při změně hodnoty na „nvme“ bude úložiště ve virtuálním stroji viditelné jako NVME SSD.
  • Z kódu forku Incus byla převedena podpora pro horké připojení a horké odpojení (hot-plug/hot-remove) souborových cest nebo jednotlivých oddílů, které byly přiřazeny z hostitelského prostředí. Dříve bylo takové přiřazení pomocí ovladače virtio-fs nebo FS 9p nutné přerušit virtuální stroj. Aby se toto omezení obešlo, byla využita možnost QEMU pro horké připojení PCI zařízení a připojení cesty uvnitř hostitelského systému prostřednictvím incus-agent.
  • Identifikátor zařízení org.linuxcontainers.lxd byl přejmenován na com.canonical.lxd (pro zachování zpětné kompatibility byla zachována podpora starého identifikátoru).

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster