Canonical์ ์ปจํ ์ด๋ ๊ด๋ฆฌ์ LXD 5.0 โโ๋ฐ ๊ฐ์ ํ์ผ ์์คํ LXCFS 5.0์ ๋ฆด๋ฆฌ์ค๋ฅผ ์ถ์ํ์ต๋๋ค. LXD ์ฝ๋๋ Go๋ก ์์ฑ๋์์ผ๋ฉฐ Apache 2.0 ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค. 5.0 ๋ถ๊ธฐ๋ ์ฅ๊ธฐ ์ง์ ๋ฆด๋ฆฌ์ค๋ก ๋ถ๋ฅ๋ฉ๋๋ค. ์ ๋ฐ์ดํธ๋ 2027๋ XNUMX์๊น์ง ์์ฑ๋ฉ๋๋ค.
์ปจํ ์ด๋ ์คํ์ ์ํ ๋ฐํ์์ผ๋ก liblxc ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ์ ํธ๋ฆฌํฐ ์ธํธ(lxc-create, lxc-start, lxc-stop, lxc-ls ๋ฑ), ์ปจํ ์ด๋ ๊ตฌ์ถ์ ์ํ ํ ํ๋ฆฟ ๋ฐ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ํ ๋ฐ์ธ๋ฉ ์ธํธ์ ๋๋ค. ๊ฒฉ๋ฆฌ๋ ํ์ค Linux ์ปค๋ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ์ํ๋ฉ๋๋ค. ํ๋ก์ธ์ค, ipc ๋คํธ์ํฌ ์คํ, uts, ์ฌ์ฉ์ ID ๋ฐ ๋ง์ดํธ ์ง์ ์ ๊ฒฉ๋ฆฌํ๊ธฐ ์ํด ๋ค์์คํ์ด์ค ๋ฉ์ปค๋์ฆ์ด ์ฌ์ฉ๋ฉ๋๋ค. cgroup์ ๋ฆฌ์์ค๋ฅผ ์ ํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๊ถํ์ ๋ฎ์ถ๊ณ ์ก์ธ์ค๋ฅผ ์ ํํ๊ธฐ ์ํด Apparmor ๋ฐ SELinux ํ๋กํ, Seccomp ์ ์ฑ , Chroots(pivot_root) ๋ฐ ๊ธฐ๋ฅ๊ณผ ๊ฐ์ ์ปค๋ ๊ธฐ๋ฅ์ด ์ฌ์ฉ๋ฉ๋๋ค.
LXC ์ธ์๋ LXD๋ CRIU ๋ฐ QEMU ํ๋ก์ ํธ์ ๊ตฌ์ฑ ์์๋ ์ฌ์ฉํฉ๋๋ค. LXC๊ฐ ๊ฐ๋ณ ์ปจํ ์ด๋ ์์ค์์ ์กฐ์ํ๊ธฐ ์ํ ํ์ ์์ค ํดํท์ด๋ผ๋ฉด LXD๋ ์ฌ๋ฌ ์๋ฒ ํด๋ฌ์คํฐ์ ๋ฐฐํฌ๋ ์ปจํ ์ด๋๋ฅผ ์ค์ ์ง์ค์์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. LXD๋ REST API๋ฅผ ํตํด ๋คํธ์ํฌ๋ฅผ ํตํ ์์ฒญ์ ๋ฐ์๋ค์ด๊ณ ๋ค์ํ ์คํ ๋ฆฌ์ง ๋ฐฑ์๋(๋๋ ํ ๋ฆฌ ํธ๋ฆฌ, ZFS, Btrfs, LVM), ์ํ ์ฌ๋ผ์ด์ค๊ฐ ์๋ ์ค๋ ์ท, ํ ๋จธ์ ์์ ๋ค๋ฅธ ๋จธ์ ์ผ๋ก ์คํ ์ค์ธ ์ปจํ ์ด๋์ ์ค์๊ฐ ๋ง์ด๊ทธ๋ ์ด์ ์ ์ง์ํ๋ ๋ฐฑ๊ทธ๋ผ์ด๋ ํ๋ก์ธ์ค๋ก ๊ตฌํ๋ฉ๋๋ค. ์ด๋ฏธ์ง ์ปจํ ์ด๋๋ฅผ ์ ์ฅํ๋ ๋๊ตฌ. LXCFS๋ ์ปจํ ์ด๋์์ ์์ฌ FS /proc ๋ฐ /sys๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ, ๊ฐ์ํ๋ ํํ์ธ cgroupfs๋ ์ปจํ ์ด๋์ ์ผ๋ฐ ๋ ๋ฆฝ ์์คํ ์ ๋ชจ์์ ์ ๊ณตํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์ฃผ์ ๊ฐ์ ์ฌํญ:
- ๋๋ผ์ด๋ธ ๋ฐ USB ์ฅ์น์ ํซ ํ๋ฌ๊น ๋ฐ ๋ถ๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค. ๊ฐ์ ๋จธ์ ์์๋ SCSI ๋ฒ์ค์ ์ ์ฅ์น๊ฐ ๋ํ๋๋ฉด ์ ๋์คํฌ๊ฐ ๊ฐ์ง๋๊ณ , USB ํซํ๋ฌ๊ทธ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด USB ์ฅ์น๊ฐ ๊ฐ์ง๋ฉ๋๋ค.
- ํ์ํ ๋คํธ์ํฌ ์ฅ์น๊ฐ ์์ด ๋คํธ์ํฌ ์ฐ๊ฒฐ์ด ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ์๋ LXD๋ฅผ ์คํํ ์ ์์ต๋๋ค. LXD๋ ์์ ์ ์ค๋ฅ๋ฅผ ํ์ํ๋ ๋์ ํ์ฌ ์กฐ๊ฑด์์ ๊ฐ๋ฅํ ์ต๋ ํ๊ฒฝ ์๋ฅผ ์์ํ๊ณ ๋๋จธ์ง ํ๊ฒฝ์ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ด ์ค์ ๋ ํ ์์๋ฉ๋๋ค.
- ๋คํธ์ํฌ ํต์ ์ ์ํด OVN(๊ฐ๋ฐฉํ ๊ฐ์ ๋คํธ์ํฌ)์ ์ฌ์ฉํ๋ ํด๋ฌ์คํฐ๋ฅผ ์ํ ์๋ก์ด ํด๋ฌ์คํฐ ๋ฉค๋ฒ ์ญํ ์ธ ovn-chassis๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. ovn-chassis ์ญํ ์ ํ ๋นํ๋ฉด OVN ๋ผ์ฐํฐ์ ๊ธฐ๋ฅ์ ์ํํ ์๋ฒ๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
- ์คํ ๋ฆฌ์ง ํํฐ์ ์ ๋ด์ฉ์ ์ ๋ฐ์ดํธํ๊ธฐ ์ํ ์ต์ ํ๋ ๋ชจ๋๊ฐ ์ ์๋์์ต๋๋ค. ์ด์ ๋ฆด๋ฆฌ์ค์์ ์ ๋ฐ์ดํธ๋ ๋จผ์ zfs ๋๋ btrfs์ ๋ณด๋ด๊ธฐ/๋ฐ๊ธฐ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋ ์ธ์คํด์ค ๋๋ ํํฐ์ ์ ๋ณต์ฌํ๋ ๊ฒ์ผ๋ก ๊ตฌ์ฑ๋์์ผ๋ฉฐ, ๊ทธ ํ ์์ฑ๋ ๋ณต์ฌ๋ณธ์ rsync ํ๋ก๊ทธ๋จ์ ์คํํ์ฌ ๋๊ธฐํ๋์์ต๋๋ค. ๊ฐ์ ๋จธ์ ์ ๋ฐ์ดํธ์ ํจ์จ์ฑ์ ๋์ด๊ธฐ ์ํด ์ ๋ฆด๋ฆฌ์ค์์๋ ์์ค ๋ฐ ๋์ ์๋ฒ๊ฐ ๋์ผํ ์คํ ๋ฆฌ์ง ํ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ rsync ๋์ ์ค๋ ์ท ๋ฐ ๋ณด๋ด๊ธฐ/๋ฐ๊ธฐ ์์ ์ด ์๋์ผ๋ก ์ฌ์ฉ๋๋ ๊ณ ๊ธ ๋ง์ด๊ทธ๋ ์ด์ ๋ ผ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- cloud-init์์ ํ๊ฒฝ์ ์๋ณํ๋ ๋ ผ๋ฆฌ๊ฐ ์ฌ์์ ๋์์ต๋๋ค. ์ด์ ํ๊ฒฝ ์ด๋ฆ ๋์ UUID๊ฐ ์ธ์คํด์ค ID๋ก ์ฌ์ฉ๋ฉ๋๋ค.
- sched_setscheduler ์์คํ ํธ์ถ ํํน์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์ด ๊ถํ์ด ์๋ ์ปจํ ์ด๋๊ฐ ํ๋ก์ธ์ค ์ฐ์ ์์๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
- Thinpool์ ๋ฉํ๋ฐ์ดํฐ ํฌ๊ธฐ๋ฅผ ์ ์ดํ๊ธฐ ์ํด lvm.thinpool_metadata_size ์ต์ ์ด ๊ตฌํ๋์์ต๋๋ค.
- 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