Выпуск систСмы управлСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ LXD 5.0

Компания Canonical ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π»Π° Ρ€Π΅Π»ΠΈΠ· ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² LXD 5.0 ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ Π€Π‘ LXCFS 5.0. Код LXD написан Π½Π° языкС Go ΠΈ распространяСтся ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ Apache 2.0. Π’Π΅Ρ‚ΠΊΠ° 5.0 отнСсСна ΠΊ выпускам с Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ — обновлСния Π±ΡƒΠ΄ΡƒΡ‚ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄ΠΎ июня 2027 Π³ΠΎΠ΄Π°.

Π’ качСствС runtime для запуска ΠΊΠ°ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ инструмСнтарий LXC, Π² состав ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° liblxc, Π½Π°Π±ΠΎΡ€ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ (lxc-create, lxc-start, lxc-stop, lxc-ls ΠΈ Ρ‚.ΠΏ.), ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ для построСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ Π½Π°Π±ΠΎΡ€ Π±ΠΈΠ½Π΄ΠΈΠ½Π³ΠΎΠ² для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языков программирования. Π˜Π·ΠΎΠ»ΡΡ†ΠΈΡ осущСствляСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡˆΡ‚Π°Ρ‚Π½Ρ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² ядра Linux. Для изоляции процСссов, сСтСвого стСка ipc, uts, ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈ Ρ‚ΠΎΡ‡Π΅ΠΊ монтирования ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ пространств ΠΈΠΌΡ‘Π½ (namespaces). Для ограничСния рСсурсов ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ cgroups. Для пониТСния ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ ΠΈ ограничСния доступа задСйствованы Ρ‚Π°ΠΊΠΈΠ΅ возмоТности ядра, ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ Apparmor ΠΈ SELinux, ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Seccomp, Chroots (pivot_root) ΠΈ capabilities.

Помимо LXC Π² LXD Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² CRIU ΠΈ QEMU. Если LXC являСтся Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌ инструмСнтариСм для манипуляции Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², Ρ‚ΠΎ LXD прСдоставляСт срСдства для Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ управлСния ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌΠΈ, Ρ€Π°Π·Π²Ρ‘Ρ€Π½ΡƒΡ‚Ρ‹ΠΌΠΈ Π² кластСрС ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сСрвСров. LXD Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ процСсса, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π΅Π³ΠΎ запросы ΠΏΠΎ сСти Ρ‡Π΅Ρ€Π΅Π· REST API ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ бэкСнды Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰ (Π΄Π΅Ρ€Π΅Π²ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ, ZFS, Btrfs, LVM), ΡΠ½Π°ΠΏΡˆΠΎΡ‚Ρ‹ со срСзом состояния, live-ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² с ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π½Π° Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΈ срСдства для хранСния ΠΎΠ±Ρ€Π°Π·ΠΎΠ² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ². LXCFS примСняСтся для симуляции Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… псСвдо-Π€Π‘ /proc ΠΈ /sys, Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ прСдставлСния cgroupfs для придания ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ Π²ΠΈΠ΄Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΉ нСзависимой систСмы.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ:

  • Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ горячСго ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ дисков ΠΈ USB-устройств. Π’ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ машинС Π½ΠΎΠ²Ρ‹ΠΉ диск опрСдСляСтся Ρ‡Π΅Ρ€Π΅Π· появлСниС Π½ΠΎΠ²ΠΎΠ³ΠΎ устройства Π½Π° шинС SCSI, Π° USB-устройство — Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ события USB hotplug.
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ запуска LXD Π΄Π°ΠΆΠ΅ Π² условиях нСвозмоТности поднятия сСтСвого соСдинСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ·-Π·Π° отсутствия Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ сСтСвого устройства. ВмСсто Π²Ρ‹Π²ΠΎΠ΄Π° ошибки ΠΏΡ€ΠΈ запускС LXD Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ запускаСт максимально Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… условиях число ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ, Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ окруТСния Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ послС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Π»Π°ΠΆΠ΅Π½ΠΎ сСтСвоС соСдинСниС.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° новая Ρ€ΠΎΠ»ΡŒ Ρ‡Π»Π΅Π½ΠΎΠ² кластСра — ovn-chassis, прСдназначСнная для кластСров, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… OVN (Open Virtual Network) для сСтСвого взаимодСйствия (Ρ‡Π΅Ρ€Π΅Π· присвоСниС Ρ€ΠΎΠ»ΠΈ ovn-chassis ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ сСрвСры для выполнСния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΎΠ² OVN).
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ обновлСния содСрТимого Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. Π’ ΠΏΡ€ΠΎΡˆΠ»Ρ‹Ρ… выпусках ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ сводилось ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π²Π½Π°Ρ‡Π°Π»Π΅ экзСмпляр ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΈΠ»ΠΈ Ρ€Π°Π·Π΄Π΅Π» копировался, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ send/receive Π² zfs ΠΈΠ»ΠΈ btrfs, послС Ρ‡Π΅Π³ΠΎ созданная копия ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»Π°ΡΡŒ Ρ‡Π΅Ρ€Π΅Π· запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ rsync. Для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ эффСктивности обновлСния Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин Π² Π½ΠΎΠ²ΠΎΠΌ выпускС задСйствована продвинутая Π»ΠΎΠ³ΠΈΠΊΠ° ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π² случаС, Ссли исходный ΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ сСрвСр ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΏΡƒΠ» хранСния, вмСсто rsynс автоматичСски ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΡΠ½Π°ΠΏΡˆΠΎΡ‚Ρ‹ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ send/receive.
  • ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° Π»ΠΎΠ³ΠΈΠΊΠ° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ Π² cloud-init: вмСсто ΠΈΠΌΡ‘Π½ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΉ Π² качСствС instance-id Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ UUID.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° систСмного Π²Ρ‹Π·ΠΎΠ²Π° sched_setscheduler, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Ρ‹ процСссов.
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° опция lvm.thinpool_metadata_size, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Π² thinpool.
  • ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° с сСтСвой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ для lxc. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ связывании интСрфСйсов, сСтСвых мостах, VLAN ΠΈ OVN-сСти.
  • ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Ρ‹ трСбования ΠΊ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ вСрсиям ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²: ядро Linux 5.4, Go 1.18, LXC 4.0.x ΠΈ QEMU 6.0.
  • Π’ LXCFS 5 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ cgroup (cgroup2), Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ /proc/slabinfo ΠΈ /sys/devices/system/cpu, для сборки задСйствован инструмСнтарий meson.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru