LXC 5.0 ์ปจํ…Œ์ด๋„ˆ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ์ถœ์‹œ

Canonical์€ ๊ฐ€์ƒ ๋จธ์‹ ์— ๊ฐ€๊นŒ์šด ์ „์ฒด ์‹œ์Šคํ…œ ํ™˜๊ฒฝ์—์„œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ถŒํ•œ์ด ์—†๋Š” ๊ฐœ๋ณ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปจํ…Œ์ด๋„ˆ(OCI)๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•œ ๋Ÿฐํƒ€์ž„์„ ์ œ๊ณตํ•˜๋Š” LXC 5.0 ๊ฒฉ๋ฆฌ๋œ ์ปจํ…Œ์ด๋„ˆ ํˆดํ‚ท ๋ฆด๋ฆฌ์Šค๋ฅผ ๋ฐœํ‘œํ–ˆ์Šต๋‹ˆ๋‹ค. LXC๋Š” ๊ฐœ๋ณ„ ์ปจํ…Œ์ด๋„ˆ ์ˆ˜์ค€์—์„œ ์ž‘๋™ํ•˜๋Š” ์ €์ˆ˜์ค€ ํˆดํ‚ท์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์„œ๋ฒ„์˜ ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฐฐํฌ๋œ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ค‘์•™ ์ง‘์ค‘์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด LXC๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ LXD ์‹œ์Šคํ…œ์ด ๊ฐœ๋ฐœ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. LXC 5.0 ๋ธŒ๋žœ์น˜๋Š” ์žฅ๊ธฐ ์ง€์› ๋ฆด๋ฆฌ์Šค๋กœ ๋ถ„๋ฅ˜๋˜๋ฉฐ ์—…๋ฐ์ดํŠธ๋Š” 5๋…„์— ๊ฑธ์ณ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. LXC ์ฝ”๋“œ๋Š” C๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ GPLv2์— ๋”ฐ๋ผ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค.

LXC์—๋Š” liblxc ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์œ ํ‹ธ๋ฆฌํ‹ฐ ์„ธํŠธ(lxc-create, lxc-start, lxc-stop, lxc-ls ๋“ฑ), ์ปจํ…Œ์ด๋„ˆ ๊ตฌ์ถ•์„ ์œ„ํ•œ ํ…œํ”Œ๋ฆฟ ๋ฐ ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ ์„ธํŠธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฉ๋ฆฌ๋Š” ํ‘œ์ค€ Linux ์ปค๋„ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ํ”„๋กœ์„ธ์Šค, ipc ๋„คํŠธ์›Œํฌ ์Šคํƒ, uts, ์‚ฌ์šฉ์ž ID ๋ฐ ๋งˆ์šดํŠธ ์ง€์ ์„ ๊ฒฉ๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. cgroup์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์ œํ•œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ถŒํ•œ์„ ๋‚ฎ์ถ”๊ณ  ์•ก์„ธ์Šค๋ฅผ ์ œํ•œํ•˜๊ธฐ ์œ„ํ•ด Apparmor ๋ฐ SELinux ํ”„๋กœํ•„, Seccomp ์ •์ฑ…, Chroots(pivot_root) ๋ฐ ๊ธฐ๋Šฅ๊ณผ ๊ฐ™์€ ์ปค๋„ ๊ธฐ๋Šฅ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ :

  • ์šฐ๋ฆฌ๋Š” autotools์—์„œ X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ๋ฐ GTK์™€ ๊ฐ™์€ ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๋ฐ์—๋„ ์‚ฌ์šฉ๋˜๋Š” Meson ๋นŒ๋“œ ์‹œ์Šคํ…œ์œผ๋กœ ์ „ํ™˜ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • cgroup ๊ตฌ์„ฑ์„ ์œ„ํ•œ ์ƒˆ๋กœ์šด ์˜ต์…˜ ์ถ”๊ฐ€ - lxc.cgroup.dir.container, lxc.cgroup.dir.monitor, lxc.cgroup.dir.monitor.pivot ๋ฐ lxc.cgroup.dir.container.inner. ์ด๋ฅผ ํ†ตํ•ด cgroup์„ ๋ช…์‹œ์ ์œผ๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ๊ฒฝ๋กœ, ๋ชจ๋‹ˆํ„ฐ๋ง ํ”„๋กœ์„ธ์Šค ๋ฐ ์ค‘์ฒฉ๋œ cgroup ๊ณ„์ธต ๊ตฌ์กฐ.
  • ๋ณ„๋„์˜ ์‹œ์Šคํ…œ ์‹œ๊ณ„ ์ƒํƒœ๋ฅผ ์ปจํ…Œ์ด๋„ˆ์— ๋ฐ”์ธ๋”ฉํ•˜๋Š” ์‹œ๊ฐ„ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์–ด ์‹œ์Šคํ…œ ์‹œ๊ณ„์™€๋Š” ๋‹ค๋ฅธ ์ปจํ…Œ์ด๋„ˆ์—์„œ ๊ณ ์œ ํ•œ ์‹œ๊ฐ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ์„ ์œ„ํ•ด lxc.time.offset.boot ๋ฐ lxc.time.offset.monotonic ์˜ต์…˜์ด ์ œ์•ˆ๋˜์–ด ์žˆ์œผ๋ฉฐ ์ด๋ฅผ ํ†ตํ•ด ๊ธฐ๋ณธ ์‹œ์Šคํ…œ ์‹œ๊ณ„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ์˜ ์˜คํ”„์…‹์„ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฐ€์ƒ ์ด๋”๋„ท ์–ด๋Œ‘ํ„ฐ(Veth)์— ๋Œ€ํ•ด VLAN ์ง€์›์ด ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. VLAN์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธ VLAN์„ ์„ค์ •ํ•˜๋Š” veth.vlan.id์™€ ์ถ”๊ฐ€ ํƒœ๊ทธ๊ฐ€ ์ง€์ •๋œ VLAN์„ ๋ฐ”์ธ๋”ฉํ•˜๋Š” veth.vlan.tagged.id ์˜ต์…˜์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
  • ๊ฐ€์ƒ ์ด๋”๋„ท ์–ด๋Œ‘ํ„ฐ์˜ ๊ฒฝ์šฐ ์ƒˆ๋กœ์šด ์˜ต์…˜ veth.n_rxqueues ๋ฐ veth.n_txqueues๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜์‹  ๋ฐ ์ „์†ก ๋Œ€๊ธฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€