์ฌ์ฉ์ ๊ณต๊ฐ์์ ํ๋ก์ธ์ค๋ฅผ ์ ์ฅํ๊ณ ๋ณต์ํ๋๋ก ์ค๊ณ๋ CRIU 3.16(์ฌ์ฉ์ ๊ณต๊ฐ์์ ๊ฒ์ฌ์ ๋ฐ ๋ณต์) ํดํท์ด ์ถ์๋์์ต๋๋ค. ์ด ํดํท์ ์ฌ์ฉํ๋ฉด ํ๋ก์ธ์ค ํ๋ ๋๋ ๊ทธ๋ฃน์ ์ํ๋ฅผ ์ ์ฅํ ๋ค์ ์ด๋ฏธ ์ค์ ๋ ๋คํธ์ํฌ ์ฐ๊ฒฐ์ ๋์ง ์๊ณ ๋ ์์คํ ์ฌ๋ถํ ํ๋ ๋ค๋ฅธ ์๋ฒ์์์ ์์ ์ ํฌํจํ์ฌ ์ ์ฅ๋ ์์น์์ ์์ ์ ์ฌ๊ฐํ ์ ์์ต๋๋ค. ํ๋ก์ ํธ ์ฝ๋๋ GPLv2 ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค.
CRIU ๊ธฐ์ ์ ์์ฉ ๋ถ์ผ์๋ ์ฅ๊ธฐ ์คํ ํ๋ก์ธ์ค์ ์คํ ์ฐ์์ฑ์ ๋ฐฉํดํ์ง ์๊ณ OS ์ฌ๋ถํ ๋ณด์ฅ, ๊ฒฉ๋ฆฌ๋ ์ปจํ ์ด๋์ ์ค์๊ฐ ๋ง์ด๊ทธ๋ ์ด์ , ๋๋ฆฐ ํ๋ก์ธ์ค ์์ ๊ฐ์ํ(์ด๊ธฐํ ํ ์ ์ฅ๋ ์ํ์์ ์์ ์์ ๊ฐ๋ฅ), ์ปค๋ ์ํ ๋ฑ์ด ์์ต๋๋ค. ์๋น์ค๋ฅผ ๋ค์ ์์ํ์ง ์๊ณ ์ ๋ฐ์ดํธ, ์ฅ๊ธฐ ์คํ ํ๋ก์ธ์ค์ ์ํ๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ์ ์ฅ ์ถฉ๋ ๋ฐ์ ์ ์์ ์ ์ฌ๊ฐํ๊ธฐ ์ํ ์ปดํจํ ์์ , ํด๋ฌ์คํฐ ๋ ธ๋์ ๋ก๋ ๋ฐธ๋ฐ์ฑ, ๋ค๋ฅธ ๋จธ์ ์ ํ๋ก์ธ์ค ๋ณต์ (์๊ฒฉ ์์คํ ์ผ๋ก ํฌํฌ), ์ค๋ ์ท ์์ฑ ๋ค๋ฅธ ์์คํ ์์ ๋ถ์์ ์ํด ์๋ ์ค์ด๊ฑฐ๋ ํ๋ก๊ทธ๋จ์์ ์ถ๊ฐ ์์ ์ ์ทจ์ํด์ผ ํ๋ ๊ฒฝ์ฐ ์ฌ์ฉ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ์คํํฉ๋๋ค. CRIU๋ OpenVZ, LXC/LXD ๋ฐ Docker์ ๊ฐ์ ์ปจํ ์ด๋ ๊ด๋ฆฌ ์์คํ ์ ์ฌ์ฉ๋ฉ๋๋ค. CRIU๊ฐ ์๋ํ๋ ๋ฐ ํ์ํ ๋ณ๊ฒฝ ์ฌํญ์ ๊ธฐ๋ณธ Linux ์ปค๋์ ํฌํจ๋์ด ์์ต๋๋ค.
์ ๋ฆด๋ฆฌ์ค์์:
- ์ PID๋ฅผ ์ฌ์ฉํ์ฌ ๋ณ๋์ ๋ง์ดํธ ๋ค์์คํ์ด์ค์ ์ ์ฅ๋ ํ๋ก์ธ์ค ์ค๋ ์ท์ ๋ณต์ํ๋ cru-ns ๋ช ๋ น์ด ์ถ๊ฐ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ด์ PID๊ฐ ์์คํ ์์ ์ด๋ฏธ ์ฌ์ฉ ์ค์ธ ๊ฒฝ์ฐ ๋ค๋ฅธ PID๋ก ์์ํด์ผ ํ ์๋ ์์ต๋๋ค.
- ์ค์ฒฉ๋ ์๋ฅ ํ๋กํ ์ํ์ ์ค๋ ์ท์ ์ ์ฅํ๊ณ ๋ณต์ํ๋ ๊ธฐ๋ฅ์ด ๊ตฌํ๋์์ต๋๋ค.
- nftables๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋คํธ์ํฌ ๋ฆฌ์์ค ์ฐจ๋จ ๋ฐ ์ฐจ๋จ ํด์ ๋ฅผ ๊ตฌํํ์ต๋๋ค.
- ์ฌ์ ์์ฑ๋ veth ์ฅ์น ๋ณต์์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ๊ธฐ์กด ํฌ๋์ ๋ํ ์ปจํ ์ด๋ ๋ณต์ ์ง์์ด ํฅ์๋์์ต๋๋ค.
- RPC ํด๋ผ์ด์ธํธ์ ๊ฒฝ์ฐ PID ์ฌ์ฌ์ฉ์ ๊ฒฐ์ ํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ผ๋ฉฐ pidfd ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ์ฌ ๊ตฌํ๋์์ต๋๋ค.
- Images/ ๋๋ ํฐ๋ฆฌ์ ๋ชจ๋ proto ํ์ผ์ ๋ํ ๋ผ์ด์ ์ค๊ฐ MIT๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru