Tvrtka Canonical prebacila je projekt LXD na licencu AGPLv3

Tvrtka Canonical objavila je novu verziju sustava upravljanja kontejnerima LXD 5.20, koja se ističe promjenom licence projekta i uvođenjem potrebe za potpisivanjem CLA sporazuma o prijenosu vlasničkih prava na kod prilikom prihvaćanja izmjena u LXD-u. Licenca za kod koji su dodali zaposlenici Canonical promijenjena je s Apache 2.0 na AGPLv3, dok kod vanjskih sudionika, za koji Canonical nema vlasnička prava, ostaje pod Apache 2.0. Budući da Canonical nema mogućnost promjene licence za sav kod LXD-a, projekt će se sada isporučivati pod miješanim uvjetima - dio koda pod AGPLv3, a dio pod Apache 2.0. Prijelaz na novu licencu objašnjava se željom da se unificira licenca s drugim poslužiteljskim proizvodima tvrtke Canonical koji koriste AGPLv3.

Kod starih izdanja i dalje ostaje dostupan pod licencom Apache 2.0, ali će sve izmjene u prelicenciranim komponentama biti objavljene isključivo pod licencom AGPLv3, što neće omogućiti forku Incus prenositi izmjene iz LXD-a bez prevođenja svoje kodne baze na licencu AGPLv3. Licence Apache 2.0 i AGPLv3 imaju jednostranu kompatibilnost, koja se svodi na to da se kod pod licencom Apache 2.0 može uključiti u kod pod licencom AGPLv3, ali ne obrnuto. Ova promjena znači potpuno prekid suradnje između projekata LXD i Incus, budući da novu licencu sprječava prijenos izmjena iz LXD-a u Incus, a iz Incus-a u LXD potrebu za potpisivanjem CLA sporazuma, koji programeri Incus-a ne žele potpisati.

Značajka licence AGPLv3 je uvođenje dodatnih ograničenja za aplikacije koje osiguravaju funkcioniranje mrežnih usluga. Kada se koriste AGPL-komponenti u radu mrežnih usluga, programer je dužan osigurati korisniku izvorni kod svih izmjena koje su napravljene u tim komponentama, čak i ako temeljni softver usluge nije distribuiran i koristi se isključivo u unutarnjoj infrastrukturi za organizaciju rada usluge. Licenca AGPL također postavlja uvjete copyleft-a, tj. za uključivanje AGPL-koda iz LXD-a u svoj projekt, kodna baza vlastitog projekta mora biti prelicencirana pod licencom AGPL.

LXD omogućuje centralizirano upravljanje kontejnerima i virtualnim strojevima raspoređenim u klasteru s više poslužitelja. LXD je implementiran kao pozadinski proces koji prima zahtjeve putem mreže putem REST API-ja i podržava različite backendove za pohranu (stablo direktorija, ZFS, Btrfs, LVM), snimke stanja, live migraciju aktivnih kontejnera s jednog stroja na drugi te alate za pohranu slika kontejnera. Kao runtime za pokretanje kontejnera koristi se alat LXC, koji uključuje biblioteku liblxc, set alata (lxc-create, lxc-start, lxc-stop, lxc-ls itd.), predloške za izradu kontejnera i set veza za različite programske jezike. Izolacija se ostvaruje korištenjem nativnih mehanizama jezgre Linux (imenici prostora, cgroups, Apparmor, SELinux, Seccomp). Osim LXC-a, LXD također koristi komponente iz projekata CRIU i QEMU.

Među novim mogućnostima uvedenim u LXD 5.20:

  • Pri stvaranju skladišnih poolova temeljenih na Cephfsu omogućeno je stvaranje metapodataka i podataka za OSD (Object Storage Daemon) poolove, koristeći parametre cephfs.create_missing, cephfs.meta_pool i cephfs.data_pool. Na primjer: lxc storage create mypool cephfs source=cephfs \ cephfs.create_missing=true \ cephfs.data_pool=xyz_data \ cephfs.meta_pool=xyz_meta
  • U snap paketu LXD dodana je mogućnost podešavanja prioriteta pokretanja s različitih diskova prilikom korištenja moda security.csm.
  • Dodana je mogućnost debag mod za EDK2 UEFI (boot.debug_edk2=true) za dijagnosticiranje problema tijekom pokretanja virtualnih mašina. Debag log se sprema u datoteku $LXD_DIR/logs//edk2.log.
  • Kod autorizacije je prebačen na modularnu osnovu, što je omogućilo podršku za OpenFGA uz podršku za autorizaciju putem TLS certifikata i Canonical RBAC.
  • Za kompilaciju LXD-a sada je potrebna barem verzija jezika Go 1.20.
  • Podrška za Shiftfs je uklonjena. Za mapiranje korisničkih identifikatora treba koristiti montiranje s idmap, podržano za Ext4, XFS, Btrfs, ZFS i Cephfs.
  • Podrška za UEFI firmware veličine 2MB je uklonjena (potrebno je koristiti firmware veličine 4MB).
  • Iz koda forka Incus prenesena je podrška za stvaranje spremišta temeljenih na NVMe tehnologiji. Za specificiranje vrste diska dodan je novi konfiguracijski parametar „io.bus“, koji je prema zadanim postavkama postavljen na „virtio-scsi“. Kada se promijeni na „nvme“, skladiste u virtualnoj mašini će se prikazivati kao NVMe SSD.
  • Iz koda forka Incus prenesena je podrška za vruće povezivanje i vruće uklanjanje (hot-plug/hot-remove) datotečnih putanja ili pojedinačnih particija, proslijeđenih iz host okruženja. Ranije je takva prosljeđivanje zahtijevalo zaustavljanje virtualne mašine kada se koristio virtio-fs ili 9p FS. Kako bi se zaobišlo to ograničenje, iskoristila je mogućnost QEMU za vruće povezivanje PCI uređaja i montiranje putanje unutar gostujućeg sustava putem incus-agenta.
  • Identifikator uređaja org.linuxcontainers.lxd preimenovan je u com.canonical.lxd (zbog očuvanja unazadne kompatibilnosti, podrška za stari identifikator je sačuvana).

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster