Release av LXD 5.0-hanteringssystem för behållare

Canonical har publicerat releasen av containerhanteraren LXD 5.0 ​​och det virtuella filsystemet LXCFS 5.0. LXD-koden är skriven i Go och distribueras under Apache 2.0-licensen. 5.0-grenen klassificeras som en långsiktig supportrelease - uppdateringar kommer att genereras fram till juni 2027.

Som en körtid för att starta behållare används LXC-verktygslådan, som inkluderar liblxc-biblioteket, en uppsättning verktyg (lxc-create, lxc-start, lxc-stop, lxc-ls, etc.), mallar för att bygga behållare och en uppsättning bindningar för olika programmeringsspråk. Isolering utförs med vanliga Linux-kärnmekanismer. För att isolera processer, ipc-nätverksstacken, uts, användar-ID och monteringspunkter, används namnutrymmesmekanismen. cgroups används för att begränsa resurser. För att sänka privilegier och begränsa åtkomst används kärnfunktioner som Apparmor- och SELinux-profiler, Seccomp-policyer, Chroots (pivot_root) och funktioner.

Förutom LXC använder LXD även komponenter från CRIU- och QEMU-projekten. Om LXC är en verktygslåda på låg nivå för manipulering på nivån för enskilda behållare, så tillhandahåller LXD verktyg för centraliserad hantering av behållare som distribueras i ett kluster av flera servrar. LXD implementeras som en bakgrundsprocess som accepterar förfrågningar över nätverket via REST API och stöder olika lagringsbackends (katalogträd, ZFS, Btrfs, LVM), ögonblicksbilder med en tillståndsdel, livemigrering av körande behållare från en maskin till en annan, och verktyg för att lagra bildbehållare. LXCFS används för att simulera pseudo-FS /proc och /sys i behållare, och den virtualiserade representationen cgroupfs för att ge behållarna utseendet av ett vanligt oberoende system.

Viktiga förbättringar:

  • Möjlighet till hot-plugging och urkoppling av enheter och USB-enheter. I en virtuell maskin detekteras en ny disk genom att en ny enhet dyker upp på SCSI-bussen, och en USB-enhet upptäcks genom genereringen av en USB hotplug-händelse.
  • Det är möjligt att starta LXD även när det är omöjligt att upprätta en nätverksanslutning, till exempel på grund av frånvaron av nödvändig nätverksenhet. Istället för att visa ett fel vid start, startar LXD nu det maximala antalet möjliga miljöer under nuvarande förhållanden, och de återstående miljöerna startas efter att nätverksanslutningen har upprättats.
  • En ny klustermedlemsroll har lagts till - ovn-chassi, avsedd för kluster som använder OVN (Open Virtual Network) för nätverkskommunikation (genom att tilldela rollen ovn-chassi kan du välja servrar för att utföra funktionerna hos OVN-routrar).
  • Ett optimerat läge för uppdatering av innehållet i lagringspartitioner har föreslagits. I tidigare utgåvor bestod uppdateringen av att först kopiera en containerinstans eller partition, till exempel med hjälp av skicka/ta emot-funktionaliteten i zfs eller btrfs, varefter den skapade kopian synkroniserades genom att köra programmet rsync. För att förbättra effektiviteten av att uppdatera virtuella maskiner använder den nya utgåvan avancerad migreringslogik, där, om käll- och destinationsservrarna använder samma lagringspool, används ögonblicksbilder och skicka/ta emot operationer automatiskt istället för rsync.
  • Logiken för att identifiera miljöer i cloud-init har omarbetats: istället för miljönamn används nu UUID som instans-id.
  • Lade till stöd för att koppla systemanropet sched_setscheduler, vilket gör det möjligt för oprivilegierade behållare att ändra processprioriteter.
  • Alternativet lvm.thinpool_metadata_size har implementerats för att kontrollera storleken på metadata i thinpool.
  • Filformatet med nätverksinformation för lxc har gjorts om. Tillagt stöd för data om gränssnittsbindning, nätverksbryggor, VLAN och OVN-nätverk.
  • Kraven på minsta komponentversioner har höjts: Linuxkärna 5.4, Go 1.18, LXC 4.0.x och QEMU 6.0.
  • LXCFS 5 lade till stöd för den förenade cgroup-hierarkin (cgroup2), implementerade /proc/slabinfo och /sys/devices/system/cpu och använde meson-verktygssatsen för montering.

Källa: opennet.ru

Lägg en kommentar