Izdanje LXD 5.0 ​​​​sustava za upravljanje kontejnerima

Canonical je objavio izdanje upravitelja spremnika LXD 5.0 ​​​​i virtualnog datotečnog sustava LXCFS 5.0. LXD kod je napisan u Go i distribuiran pod licencom Apache 2.0. Grana 5.0 klasificirana je kao izdanje za dugoročnu podršku - ažuriranja će se generirati do lipnja 2027.

Kao runtime za pokretanje spremnika koristi se LXC toolkit koji uključuje liblxc biblioteku, skup uslužnih programa (lxc-create, lxc-start, lxc-stop, lxc-ls itd.), predloške za izgradnju spremnika i skup povezivanja za razne programske jezike. Izolacija se provodi pomoću standardnih mehanizama jezgre Linuxa. Za izolaciju procesa, ipc mrežnog stoga, korisničkih ID-ova i točaka montiranja, koristi se mehanizam imenskih prostora. cgrupe se koriste za ograničavanje resursa. Za smanjenje privilegija i ograničavanje pristupa koriste se značajke jezgre kao što su Apparmor i SELinux profili, Seccomp pravila, Chroots (pivot_root) i mogućnosti.

Uz LXC, LXD također koristi komponente iz projekata CRIU i QEMU. Ako je LXC skup alata niske razine za manipulaciju na razini pojedinačnih spremnika, onda LXD pruža alate za centralizirano upravljanje spremnicima raspoređenim u klasteru od nekoliko poslužitelja. LXD je implementiran kao pozadinski proces koji prihvaća zahtjeve preko mreže putem REST API-ja i podržava različite pozadine za pohranu (stablo direktorija, ZFS, Btrfs, LVM), snimke s presjekom stanja, živu migraciju pokrenutih spremnika s jednog stroja na drugi, i alate za spremanje spremnika slika. LXCFS se koristi za simulaciju pseudo-FS /proc i /sys u spremnicima, i virtualiziranog predstavljanja cgroupfs kako bi spremnici dali izgled običnog neovisnog sustava.

Ključna poboljšanja:

  • Mogućnost vrućeg uključivanja i isključivanja diskova i USB uređaja. U virtualnom stroju, novi disk se otkriva pojavom novog uređaja na SCSI sabirnici, a USB uređaj se otkriva generiranjem USB hotplug događaja.
  • LXD je moguće pokrenuti čak i kada je nemoguće uspostaviti mrežnu vezu, na primjer, zbog nepostojanja potrebnog mrežnog uređaja. Umjesto prikazivanja pogreške pri pokretanju, LXD sada pokreće najveći mogući broj okruženja u trenutnim uvjetima, a preostala okruženja pokreću se nakon što se uspostavi mrežna veza.
  • Dodana je nova uloga člana klastera - ovn-chassis, namijenjena klasterima koji za mrežnu komunikaciju koriste OVN (Open Virtual Network) (dodjeljivanjem uloge ovn-chassis možete odabrati poslužitelje koji će obavljati funkcije OVN routera).
  • Predložen je optimizirani način za ažuriranje sadržaja particija za pohranu. U prethodnim izdanjima, ažuriranje se sastojalo od prvog kopiranja instance spremnika ili particije, na primjer, korištenjem funkcije slanja/primanja u zfs ili btrfs, nakon čega je stvorena kopija sinkronizirana pokretanjem programa rsync. Kako bi se poboljšala učinkovitost ažuriranja virtualnih strojeva, novo izdanje koristi naprednu migracijsku logiku, u kojoj se, ako izvorni i odredišni poslužitelj koriste isti skladišni prostor, snimke i operacije slanja/primanja automatski koriste umjesto rsync.
  • Logika za identifikaciju okruženja u cloud-init-u je prerađena: umjesto naziva okruženja, UUID se sada koristi kao instance-id.
  • Dodana podrška za spajanje sistemskog poziva sched_setscheduler, dopuštajući neprivilegiranim spremnicima promjenu prioriteta procesa.
  • Opcija lvm.thinpool_metadata_size implementirana je za kontrolu veličine metapodataka u thinpoolu.
  • Format datoteke s podacima o mreži za lxc je redizajniran. Dodana podrška za podatke o povezivanju sučelja, mrežnim mostovima, VLAN i OVN mreži.
  • Povećani su zahtjevi za minimalne verzije komponenti: Linux kernel 5.4, Go 1.18, LXC 4.0.x i QEMU 6.0.
  • LXCFS 5 dodao je podršku za objedinjenu hijerarhiju cgroup (cgroup2), implementirao /proc/slabinfo i /sys/devices/system/cpu i koristio meson toolkit za sklapanje.

Izvor: opennet.ru

Dodajte komentar