ΠΠ±ΡΠ½ΠΎΡΡΡΠ° Π½Π° Linux Containers ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ LXC 6.0, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΠΉΠΊΠΈ runtime, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ ΠΊΠ°ΠΊΡΠΎ Π·Π° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Ρ ΠΏΡΠ»Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°, ΠΊΠΎΠΈΡΠΎ ΡΠ° Π±Π»ΠΈΠ·ΠΊΠΈ Π΄ΠΎ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ, ΡΠ°ΠΊΠ° ΠΈ Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (OCI). LXC ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈ ΠΊΡΠΌ Π½ΠΈΡΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΈΡΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ, ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ Π½Π° Π½ΠΈΠ²ΠΎ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. ΠΠ° ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅, ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅Ρ ΠΎΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΡΡΠ²ΡΡΠΈ, ΡΠ΅ ΡΠ°Π·Π²ΠΈΠ²Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Incus ΠΈ LXD Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° LXC. ΠΠ΅ΡΠΊΠ°ΡΠ° LXC 6.0 Π΅ ΠΎΡΠ½Π΅ΡΠ΅Π½Π° ΠΊΡΠΌ ΠΈΠ·Π΄Π°Π½ΠΈΡΡΠ° Ρ Π΄ΡΠ»Π³ΠΎΡΡΠΎΡΠ½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°, ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡΡΠ° Π·Π° ΠΊΠΎΠΈΡΠΎ ΡΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠ°Ρ Π² ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° 5 Π³ΠΎΠ΄ΠΈΠ½ΠΈ (Π΄ΠΎ 2029 Π³ΠΎΠ΄ΠΈΠ½Π°). ΠΠΎΠ΄ΡΡ Π½Π° LXC Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π΅Π·ΠΈΠΊΠ° C ΠΈ Π΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π°Π½ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·Π° GPLv2.
Π ΡΡΡΡΠ°Π²Π° Π½Π° LXC Π²Π»ΠΈΠ·Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° liblxc, Π½Π°Π±ΠΎΡ ΠΎΡ ΡΡΠΈΠ»ΠΈΡΠΈ (lxc-create, lxc-start, lxc-stop, lxc-ls ΠΈ Ρ.Π½.), ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π·Π° ΠΈΠ·Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΈ Π½Π°Π±ΠΎΡ ΠΎΡ Π±ΠΈΠ½Π΄ΠΈΠ½Π³ΠΈ Π·Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ½ΠΈ Π΅Π·ΠΈΡΠΈ. ΠΠ·ΠΎΠ»Π°ΡΠΈΡΡΠ° ΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° ΡΡΠ΅Π· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux. ΠΠ° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅, ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡ ΡΡΠ΅ΠΊ ipc, uts, ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈΡΠ΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅ ΠΈ ΡΠΎΡΠΊΠΈΡΠ΅ Π½Π° ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡΡ Π½Π° ΠΈΠΌΠ΅Π½Π°ΡΠ° (namespaces). ΠΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΡΡΠΈΡΠ΅ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π°Ρ cgroups. ΠΠ° ΠΏΠΎΠ½ΠΈΠΆΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΡΡΡΠΏΠ° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π½Π° ΡΠ΄ΡΠΎΡΠΎ, ΠΊΠ°ΡΠΎ ΠΏΡΠΎΡΠΈΠ»ΠΈ Apparmor ΠΈ SELinux, ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Seccomp, Chroots (pivot_root) ΠΈ capabilities.
ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ:
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΠ°ΠΉΠ» lxc, ΠΊΠΎΠΉΡΠΎ ΡΡΡΠ΅ΡΠ°Π²Π° Π² Π΅Π΄Π½Π° ΡΡΠΈΠ»ΠΈΡΠ° Π²ΡΠΈΡΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ, ΠΏΡΠ΅Π΄ΠΈ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π°Π½ΠΈ ΠΊΠ°ΡΠΎ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΡΠΈΠ»ΠΈΡΠΈ βlxc-*β. ΠΠ° ΡΠ±ΠΎΡΠΊΠ° Π½Π° ΠΎΠ±Π΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΠ°ΠΉΠ» Π΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π° ΠΎΠΏΡΠΈΡΡΠ° βtools-multicall=trueβ, ΠΏΡΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΡΡΠΎ Π²ΡΠΈΡΠΊΠΈ ΡΡΠ°ΡΠΈ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΡΠΈΠ»ΠΈΡΠΈ ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π°Ρ ΠΊΠ°ΡΠΎ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΡΠ½ΠΈ Π²ΡΡΠ·ΠΊΠΈ ΠΊΡΠΌ ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° lxc. Π‘ΡΠ±ΠΈΡΠ°Π½Π΅ΡΠΎ Π² Π΅Π΄ΠΈΠ½ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ ΡΠ°ΠΉΠ» ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° Π΄ΠΈΡΠΊΠΎΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΎΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅, ΠΊΠΎΠ΅ΡΠΎ Π΅ Π°ΠΊΡΡΠ°Π»Π½ΠΎ Π·Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ.
- Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° liblxc Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ set_timeout, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° Π΄Π° ΡΠ΅ Π·Π°Π΄Π°Π΄Π΅ ΡΠ°ΠΉΠΌΠ°ΡΡ Π·Π° Π²ΡΡΠΊΠ°ΠΊΠ²ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ LXC monitor.
- Π ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈΡΠ΅ ΠΌΠΎΡΡΠΎΠ²Π΅ lxcbr0 ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° IPv6 Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° Π°Π΄ΡΠ΅ΡΠΈΡΠ΅ ΠΎΡ ΠΏΠΎΠ΄ΡΠ΅ΡΠ°ΡΠ° IPv6 ULA (Unique Local Address).
- Π ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° lxc-usernsexec ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΎΠΏΡΠΈΠΈΡΠ΅ β-uβ ΠΈ β-gβ Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΈΡΠ΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΠΈ Π³ΡΡΠΏΠ°ΡΠ° (UID ΠΈ GID).
- Π ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° lxc-checkconfig Π΅ ΠΎΡΠΈΠ³ΡΡΠ΅Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π²Π΅ΡΡΠΈΡΡΠ° ΡΠ°ΠΌΠΎ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° lxc-start, ΠΈ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΠ°Π½Π΅ Π·Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΡΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΡΠΈΠΏ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡ ΠΈΠΌΠ΅Π½Π°.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΎΠ±ΡΠ°Π·ΠΈ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π² OCI ΡΠΎΡΠΌΠ°Ρ, Π² ΠΊΠΎΠΈΡΠΎ Π·Π° ΠΊΠΎΠΌΠΏΡΠ΅ΡΠΈΡ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ° Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Squashfs.
- ΠΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ systemd ΡΡΠ΅Π· D-Bus Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΠΎΡΠ΄Π΅Π»Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° libdbus-1 Π²ΠΌΠ΅ΡΡΠΎ libsystemd.
- Π‘ΠΏΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Upstart.
Π‘ΡΡΠ΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Incus, Π² ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΊΠΎΠΉΡΠΎ ΠΎΠ±ΡΠ½ΠΎΡΡΡΠ° Π½Π° Linux Containers ΡΠ°Π·Π²ΠΈΠ²Π° fork Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ LXD, ΡΡΠ·Π΄Π°Π΄Π΅Π½ ΠΎΡ ΡΡΠ°ΡΠ°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ, Π½ΡΠΊΠΎΠ³Π° ΡΡΠ·Π΄Π°Π»Π° LXD. ΠΠΎΠ΄ΡΡ Π½Π° Incus Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π΅Π·ΠΈΠΊΠ° Go ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ Apache 2.0. Incus 6.0 ΠΏΡΡΠ²ΠΎ Π΅ ΠΏΠΎΠ·ΠΈΡΠΈΠΎΠ½ΠΈΡΠ°Π½ ΠΊΠ°ΡΠΎ ΡΡΠ°Π±ΠΈΠ»Π½Π° Π²Π΅ΡΡΠΈΡ, Π·Π° ΠΊΠΎΡΡΠΎ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΎΡΠΈΠ³ΡΡΠ΅Π½ Π΄ΡΠ»ΡΠ³ ΡΠΈΠΊΡΠ» Π½Π° Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ (LTS). ΠΡ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² Incus 6.0 ΡΠ΅ ΠΎΡΠΊΡΠΎΡΠ²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΌΡΠ΅ΠΆΠΎΠ²ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ ΡΡΠ΅Π· API bridge.external_interfaces, ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π°Π²ΡΠ΅Π½ΡΠΈΠΊΠ°ΡΠΈΡ ΡΡΠ΅Π· JWT (JSON Web Token), ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° USB ΠΈ ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° βincus info βresourcesβ, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π²Π΅ΡΡΠΈΡ LXD 5.21 Π² ΡΡΠΈΠ»ΠΈΡΠ°ΡΠ° lxd-to-incus.
Incus ΠΈ LXD ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΈ Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΌΠ°ΡΠΈΠ½ΠΈ, ΡΠ°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ ΠΊΠ°ΠΊΡΠΎ Π½Π° Π΅Π΄ΠΈΠ½ Ρ ΠΎΡΡ, ΡΠ°ΠΊΠ° ΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅Ρ ΠΎΡ Π½ΡΠΊΠΎΠ»ΠΊΠΎ. ΡΡΡΠ²ΡΡΠΈ. ΠΡΠΎΠ΅ΠΊΡΡΡ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΏΠΎΠ΄ ΡΠΎΡΠΌΠ°ΡΠ° Π½Π° ΡΠΎΠ½ΠΎΠ² ΠΏΡΠΎΡΠ΅Ρ, ΠΏΡΠΈΠ΅ΠΌΠ°Ρ Π·Π°ΡΠ²ΠΊΠΈ ΠΏΠΎ ΠΌΡΠ΅ΠΆΠ°ΡΠ° ΡΡΠ΅Π· REST API ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π±Π΅ΠΊΠ΅Π½Π΄ΠΈ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ (Π΄ΡΡΠ²ΠΎ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ZFS, Btrfs, LVM), ΠΌΠΎΠΌΠ΅Π½ΡΠ½ΠΈ ΡΠ½ΠΈΠΌΠΊΠΈ Ρ ΠΎΡΡΠ΅ΡΠΊΠ° Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ, live ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π½Π° ΡΠ°Π±ΠΎΡΠ΅ΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ ΠΎΡ Π΅Π΄Π½Π° ΠΌΠ°ΡΠΈΠ½Π° Π½Π° Π΄ΡΡΠ³Π° ΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π° Π·Π° ΡΡΡ ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΎΠ±ΡΠ°Π·ΠΈ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ. ΠΠ° ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈΡΠ΅ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ LXC. ΠΠ·ΠΎΠ»Π°ΡΠΈΡΡΠ° ΡΠ΅ ΠΎΡΡΡΠ΅ΡΡΠ²ΡΠ²Π° Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux (ΠΈΠΌΠ΅Π½ΠΈ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°, cgroups, Apparmor, SELinux, Seccomp).
ΠΠ±ΡΠ½ΠΎΡΡΡΠ° Linux Containers ΠΊΡΡΠ°ΡΠΎΡΡΡΠ²Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° LXD, ΠΏΡΠ΅Π΄ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Canonical Π΄Π° ΡΠ΅ΡΠΈ Π΄Π° ΡΡΠ°Π½ΡΡΠΎΡΠΌΠΈΡΠ° LXD Π² ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ. Π¦Π΅Π»ΡΠ° Π½Π° ΡΠΎΡΠΊΠ° Π΅ Π΄Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌ Π²Π°ΡΠΈΠ°Π½Ρ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° LXD, ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠ°Π½ ΠΎΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡΠ° Canonical. Π‘ΡΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° Incus ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠ°Π±ΠΎΡΠ° ΠΏΠΎ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° Π½ΡΠΊΠΎΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΡΠ°Π»Π½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ, Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΈ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° LXD, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎ-ΡΠ°Π½ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π±ΡΠ΄Π°Ρ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Π½ΠΈ Π±Π΅Π· Π΄Π° ΡΠ΅ Π½Π°ΡΡΡΠΈ ΠΎΠ±ΡΠ°ΡΠ½Π°ΡΠ° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ.
ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Canonical ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π° Π½ΠΎΠ²Π° Π²Π΅ΡΡΠΈΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ LXD 5.21.1. ΠΠ΅ΡΠΊΠ°ΡΠ° LXD 5.21 Π΅ ΠΌΠ°ΡΠΊΠΈΡΠ°Π½Π° ΠΊΠ°ΡΠΎ LTS ΠΈ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΡΠ½Π° Π΄ΠΎ ΡΠ½ΠΈ 2029 Π³ΠΎΠ΄ΠΈΠ½Π°. ΠΠΎΠ΄ΡΡ, Π΄ΠΎΠ±Π°Π²Π΅Π½ Π² LXD ΠΎΡ ΡΠ»ΡΠΆΠΈΡΠ΅Π»ΠΈΡΠ΅ Π½Π° Canonical, ΡΠ΅ ΠΏΡΠ΅Π΄Π»Π°Π³Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· AGPLv3, Π½ΠΎ ΠΊΠΎΠ΄ΡΡ Π½Π° ΡΡΠ΅ΡΠΈ ΡΡΡΠ°Π½ΠΈ, Π·Π° ΠΊΠΎΠΉΡΠΎ Canonical Π½ΡΠΌΠ° ΠΈΠΌΡΡΠ΅ΡΡΠ²Π΅Π½ΠΈ ΠΏΡΠ°Π²Π°, ΠΎΡΡΠ°Π²Π° ΠΏΠΎΠ΄ Apache 2.0. ΠΡΠ² ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΈΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ Π² LXD 5.21.1 ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΡΠ±Π΅Π»Π΅ΠΆΠΈ ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ΡΠΎ Π½Π° snap ΠΏΠ°ΠΊΠ΅ΡΠ° Ρ LXD Π½Π° Π²Π΅ΡΠΊΠΈ LXC 6.0 ΠΈ LXCFS 6.0. Π API Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΎ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ storage_volumes_all ΠΈ ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΡ Ρ Π½Π΅Π³ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ /1.0/storage_volumes Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΡΠΏΠΈΡΡΠΊ Ρ Π²ΡΠΈΡΠΊΠΈ ΠΎΠ±Π΅ΠΌΠΈ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅. ΠΠΎΠ±Π°Π²Π΅Π½ΠΎ Π΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ instances_files_modify_permissions Π·Π° ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ°Π½Π΅ ΡΡΠ΅Π· API Π½Π° ΠΏΡΠ°Π²Π°ΡΠ° Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°ΡΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
ΠΠΎΡΡΡΠΏΠ΅Π½ Π΅ ΡΠ΅Π»ΠΈΠ· Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½Π°ΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° LXCFS 6.0, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π·Π° ΡΠΈΠΌΡΠ»ΠΈΡΠ°Π½Π΅ Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Π½Π° ΠΏΡΠ΅Π²Π΄ΠΎ-ΡΠ‘ /proc ΠΈ /sys, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π·Π° Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΡΠ½Π΅ Π½Π° cgroupfs Π·Π° Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ Π±Π΅Π· ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡ ΠΈΠΌΠ΅Π½Π° cgroup. Π Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΎΠΏΡΠΈΡ ββenable-cgroupβ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° Π²Π³ΡΠ°Π΄Π΅Π½Π°ΡΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π²ΠΈΡΡΡΠ°Π»Π½ΠΎ Π΄ΡΡΠ²ΠΎ cgroupfs Π·Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ cgroupv1 (Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈΡΠ΅ ΠΎΡ ΡΠ΄ΡΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΎΡ ΠΈΠΌΠ΅Π½Π° Π·Π° cgroup, ΡΠ°ΠΊΠ° ΡΠ΅ Π²ΠΊΠ»ΡΡΠ²Π°Π½Π΅ΡΠΎ ΠΏΠΎ ΠΏΠΎΠ΄ΡΠ°Π·Π±ΠΈΡΠ°Π½Π΅ Π½Π° Π²Π³ΡΠ°Π΄Π΅Π½Π° Π°Π»ΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈΠ·Π³ΡΠ±ΠΈ ΡΠΌΠΈΡΡΠ» ΠΈ Π²Π΅ΡΠ΅ Π΅ ΠΎΠΏΡΠΈΠΎΠ½Π°Π»Π½ΠΎ). ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, Π² LXCFS 6.0 Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½Π° ΡΠΈΠ»ΡΡΠ°ΡΠΈΡΡΠ° Π½Π° CPU ΠΏΡΠΈ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»Π° /sys/devices/system/cpu, Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ ΠΎΡ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ online/offline.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
