Oracle์ Red Hat Enterprise Linux์ ํ์ค ์ปค๋ ํจํค์ง ๋์ Oracle Linux ๋ฐฐํฌํ์์ ์ฌ์ฉํ ์ ์๋๋ก Oracle Linux 9 ๋ฐฐํฌํ๊ณผ Unbreakable Enterprise Kernel 7(UEK R7)์ ์์ ์ ์ธ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ฐํํ์ต๋๋ค. Oracle Linux 9 ๋ฐฐํฌํ์ Red Hat Enterprise Linux 9 ํจํค์ง ๊ธฐ๋ฐ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ ์์ ํ ๋ฐ์ด๋๋ฆฌ์ ํธํ๋ฉ๋๋ค.
x8.6_840 ๋ฐ ARM86(aarch64) ์ํคํ ์ฒ์ฉ์ผ๋ก ์ค๋น๋ 64GB ๋ฐ 64MB ํฌ๊ธฐ์ ์ค์น ISO ์ด๋ฏธ์ง๋ ์ ํ ์์ด ๋ค์ด๋ก๋ํ ์ ์๋๋ก ์ ๊ณต๋ฉ๋๋ค. Oracle Linux 9์์๋ ์ค๋ฅ(์ ์คํ) ๋ฐ ๋ณด์ ๋ฌธ์ ๋ฅผ ์์ ํ๋ ๋ฐ์ด๋๋ฆฌ ํจํค์ง ์ ๋ฐ์ดํธ๋ฅผ ํตํด yum ์ ์ฅ์์ ๋ฌด์ ํ์ผ๋ก ๋ฌด๋ฃ๋ก ์ก์ธ์คํ ์ ์์ต๋๋ค. Application Stream ๋ฐ CodeReady Builder ํจํค์ง ์ธํธ๊ฐ ํฌํจ๋ ๋ณ๋๋ก ์ง์๋๋ ๋ฆฌํฌ์งํ ๋ฆฌ๋ ๋ค์ด๋ก๋ํ ์ค๋น๊ฐ ๋์ด ์์ต๋๋ค.
RHEL์ ์ปค๋ ํจํค์ง(์ปค๋ 5.14 ๊ธฐ๋ฐ) ์ธ์๋ Oracle Linux๋ Linux 7 ์ปค๋์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ ์ฐ์ ์ฉ ์ํํธ์จ์ด ๋ฐ Oracle ํ๋์จ์ด ์์ ์ ์ต์ ํ๋ ์์ฒด Unbreakable Enterprise Kernel 5.15์ ์ ๊ณตํฉ๋๋ค. ๊ฐ๋ณ ํจ์น ๋ถ์์ ํฌํจํ ์ปค๋ ์์ค๋ ๊ณต๊ฐ Oracle Git ์ ์ฅ์์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. Unbreakable Enterprise Kernel์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ค์น๋์ด ํ์ค RHEL ์ปค๋ ํจํค์ง์ ๋์์ผ๋ก ๋ฐฐ์น๋๋ฉฐ DTrace ํตํฉ ๋ฐ ํฅ์๋ Btrfs ์ง์๊ณผ ๊ฐ์ ๋ค์ํ ๊ณ ๊ธ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ถ๊ฐ ์ปค๋ ์ธ์๋ Oracle Linux 9 ๋ฐ RHEL 9 ๋ฆด๋ฆฌ์ค๋ ๊ธฐ๋ฅ๋ฉด์์ ์์ ํ ๋์ผํฉ๋๋ค(๋ณ๊ฒฝ ์ฌํญ ๋ชฉ๋ก์ RHEL9 ๋ฐํ์์ ํ์ธํ ์ ์์ต๋๋ค).
Unbreakable Enterprise Kernel 7์ ์ฃผ์ ํ์ ์ฌํญ:
- Aarch64 ์ํคํ ์ฒ์ ๋ํ ์ง์์ด ํฅ์๋์์ต๋๋ค. 64๋นํธ ARM ์์คํ ์์ ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง์ ๊ธฐ๋ณธ ํฌ๊ธฐ๋ 64KB์์ 4KB๋ก ์ค์ด๋ค์์ผ๋ฉฐ ์ด๋ ARM ์์คํ ์ ์ผ๋ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ ๋ฐ ์์ ๋ถํ์ ๋ ์ ์ผ์นํฉ๋๋ค.
- eBPF ์ปค๋ ํ์ ์์คํ ์ ์ฌ์ฉํ๋๋ก ์ ํ๋ DTrace 2.0 ๋์ ๋๋ฒ๊น ์์คํ ์ ์ ๊ณต์ด ๊ณ์๋์์ต๋๋ค. DTrace 2.0์ ๊ธฐ์กด Linux ์ถ์ ๋๊ตฌ๊ฐ eBPF ์์์ ์๋ํ๋ ๋ฐฉ์๊ณผ ์ ์ฌํ๊ฒ eBPF ์์์ ์คํ๋ฉ๋๋ค.
- Btrfs ํ์ผ ์์คํ ์ ๊ธฐ๋ฅ์ด ํ์ฅ๋์์ต๋๋ค. ๋ ์ด์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ์ ์ฅํ ํ์๊ฐ ์๋ ํด์ ๋ ๋ธ๋ก์ ํ์ํ๊ธฐ ์ํด DISCARD ์์ ์ ๋น๋๊ธฐ ๊ตฌํ์ด Btrfs์ ์ถ๊ฐ๋์์ต๋๋ค. ๋น๋๊ธฐ์ ๊ตฌํ์ ์ฌ์ฉํ๋ฉด ๋๋ผ์ด๋ธ๊ฐ DISCARD๋ฅผ ์๋ฃํ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ์ง ์๊ณ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์ด ์์ ์ ์ํํ ์ ์์ต๋๋ค. ์์๋ ํ์ผ ์์คํ ์์ ๋ฐ์ดํฐ ๋ณต๊ตฌ๋ฅผ ๋จ์ํํ๊ธฐ ์ํ ์๋ก์ด ๋ง์ดํธ ์ต์ ์ถ๊ฐ: ์ผ๋ถ ๋ฃจํธ ํธ๋ฆฌ(extent, uuid, ๋ฐ์ดํฐ ์ฌ๋ฐฐ์น, ์ฅ์น, csum, ์ฌ์ ๊ณต๊ฐ)๊ฐ ์์๋์์์๋ ๋ง์ดํธํ๊ธฐ ์ํ "rescue=ignorebadroots", ๋นํ์ฑํํ๊ธฐ ์ํ "rescue=ignoredatacsums" ๋ฐ์ดํฐ์ ๋ํ ์ฒดํฌ์ฌ๊ณผ "rescue=all"์ ํ์ธํ์ฌ 'ignorebadroots', 'ignoredatacsums' ๋ฐ 'nologreplay' ๋ชจ๋๋ฅผ ๋์์ ํ์ฑํํฉ๋๋ค. fsync() ์์ ๊ณผ ๊ด๋ จ๋ ์ฑ๋ฅ์ด ํฌ๊ฒ ์ต์ ํ๋์์ต๋๋ค. fs-verity(ํ์ผ ์ธ์ฆ ๋ฐ ๋ฌด๊ฒฐ์ฑ ํ์ธ) ๋ฐ ์ฌ์ฉ์ ID ๋งคํ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- XFS๋ ์ด์ค ์บ์ฑ์ ์ ๊ฑฐํ๊ธฐ ์ํด ํ์ด์ง ์บ์๋ฅผ ์ฐํํ์ฌ ์ง์ ํ์ผ ์ก์ธ์ค๋ฅผ ์ํ DAX ์์ ์ ์ง์ํฉ๋๋ค. ์๋ก์ด bigtime ๋ฐ inobtcount ๋ง์ดํธ ์ต์ ์ ํฌํจํ์ฌ 32๋ 2038๋นํธ time_t ๋ฐ์ดํฐ ์ ํ์ ์ค๋ฒํ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ณ๊ฒฝ ์ฌํญ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- OCFS2(Oracle Cluster File System) ํ์ผ ์์คํ ์ด ๊ฐ์ ๋์์ต๋๋ค.
- ์์ญํ๋ ์ ์ฅ ์ฅ์น์ ๋ํ ํ์ ์์ค ์์ ์ ๋จ์ํํ๋ ZoneFS ํ์ผ ์์คํ ์ด ์ถ๊ฐ๋์์ต๋๋ค. ์กด ๋๋ผ์ด๋ธ(Zoned Drive)๋ ํ๋ ์๊ธฐ ๋์คํฌ ๋๋ NVMe SSD์ ์ฅ์น๋ฅผ ์๋ฏธํ๋ฉฐ, ๋ธ๋ก ๋๋ ์นํฐ ๊ทธ๋ฃน์ ๊ตฌ์ฑํ๋ ๊ตฌ์ญ์ผ๋ก ๋๋์ด์ง ์ ์ฅ ๊ณต๊ฐ์ผ๋ก, ๋ฐ์ดํฐ์ ์์ฐจ์ ์ถ๊ฐ๋ง ํ์ฉ๋์ด ์ ์ฒด ๋ธ๋ก ๊ทธ๋ฃน์ ์ ๋ฐ์ดํธํฉ๋๋ค. ZoneFS FS๋ ๋๋ผ์ด๋ธ์ ๊ฐ ์์ญ์ ๋ณ๋์ ํ์ผ๊ณผ ์ฐ๊ฒฐํฉ๋๋ค. ์ด ํ์ผ์ ์นํฐ ๋ฐ ๋ธ๋ก ์์ค์์ ์กฐ์ํ์ง ์๊ณ ์์ ๋ชจ๋๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ด ioctl์ ์ฌ์ฉํ์ฌ ๋ธ๋ก ์ฅ์น์ ์ง์ ์ก์ธ์คํ๋ ๋์ ํ์ผ API๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํฉ๋๋ค.
- VPN WireGuard ํ๋กํ ์ฝ์ ๋ํ ์ง์์ด ์์ ํ๋์์ต๋๋ค.
- eBPF ํ์ ์์คํ ์ ๊ธฐ๋ฅ์ด ํ์ฅ๋์์ต๋๋ค. CO-RE(Compile Once - Run Everywhere) ๋ฉ์ปค๋์ฆ์ด ๊ตฌํ๋์ด ์ปดํ์ผ๋ eBPF ํ๋ก๊ทธ๋จ์ ์ด์์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ eBPF ํ๋ก๊ทธ๋จ์ ์ฝ๋๋ฅผ ํ ๋ฒ๋ง ์ปดํ์ผํ๊ณ ๋ก๋๋ ํ๋ก๊ทธ๋จ์ ์ ์์ํค๋ ํน์ ๋ฒ์ฉ ๋ก๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ์ฌ ์ปค๋ ๋ฐ BPF ์ ํ ํ์). ์ปค๋๊ณผ BPF ํ๋ก๊ทธ๋จ ๊ฐ์ ํธ์ถ์ XNUMX์ผ๋ก ์ ์กํ ๋ ์ค๋ฒํค๋๋ฅผ ์ค์ง์ ์ผ๋ก ์ค์ผ ์ ์๋ "BPF ํธ๋จํ๋ฆฐ" ๋ฉ์ปค๋์ฆ์ ์ถ๊ฐํ์ต๋๋ค. BPF ํ๋ก๊ทธ๋จ์์ ์ปค๋ ๊ธฐ๋ฅ์ ์ง์ ์ก์ธ์คํ๊ณ ํธ๋ค๋ฌ๋ฅผ ์ผ์ ์ค๋จํ๋ ๊ธฐ๋ฅ์ด ์ ๊ณต๋ฉ๋๋ค.
- ์์ ๋ช ๋ น์ ์คํํ ๋ ๋ฐ์ดํฐ๊ฐ ๋ ๊ฐ์ CPU ์บ์ ๋ผ์ธ์ ํต๊ณผํ๋ค๋ ์ฌ์ค๋ก ์ธํด ๋ฉ๋ชจ๋ฆฌ์์ ์ ๋ ฌ๋์ง ์์ ๋ฐ์ดํฐ์ ์ก์ธ์คํ ๋ ๋ฐ์ํ๋ ๋ถํ ์ ๊ธ ๊ฐ์ง๊ธฐ๊ฐ ํตํฉ๋์์ต๋๋ค. ์ปค๋์ ์ฌ๊ฐํ ์ฑ๋ฅ ์ ํ๋ฅผ ์ ๋ฐํ๋ ์ฐจ๋จ์ ์ฆ์ ์๋ณํ๊ณ ๊ฒฝ๊ณ ๋ฅผ ๋ฐํํ๊ฑฐ๋ ์ฐจ๋จ์ ์ ๋ฐํ๋ ์์ฉ ํ๋ก๊ทธ๋จ์ SIGBUS ์ ํธ๋ฅผ ๋ณด๋ผ ์ ์์ต๋๋ค.
- MPTCP(Multipath TCP)๋ ์๋ก ๋ค๋ฅธ IP ์ฃผ์์ ์ฐ๊ฒฐ๋ ์๋ก ๋ค๋ฅธ ๋คํธ์ํฌ ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ฌ๋ฌ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋ผ ๋์์ ํจํท์ ์ ๋ฌํ๋ TCP ์ฐ๊ฒฐ ์์ ์ ๊ตฌ์ฑํ๊ธฐ ์ํ TCP ํ๋กํ ์ฝ์ ํ์ฅ์ธ MPTCP(Multipath TCP)์ ๋ํ ์ง์์ด ์ ๊ณต๋ฉ๋๋ค.
- ์์ ์ค์ผ์ค๋ฌ๋ ๋์ผํ CPU ์ฝ์ด์์ ํจ๊ป ์คํํ ์ ์๋ ํ๋ก์ธ์ค๋ฅผ ์ ์ดํ ์ ์๋ SCHED_CORE ์ค์ผ์ค๋ง ๋ชจ๋๋ฅผ ๊ตฌํํฉ๋๋ค. ๊ฐ ํ๋ก์ธ์ค์๋ ํ๋ก์ธ์ค ๊ฐ์ ์ ๋ขฐ ๋ฒ์(์: ๋์ผํ ์ฌ์ฉ์ ๋๋ ์ปจํ ์ด๋์ ์ํจ)๋ฅผ ์ ์ํ๋ ์ฟ ํค ์๋ณ์๊ฐ ํ ๋น๋ ์ ์์ต๋๋ค. ์ฝ๋ ์คํ์ ๊ตฌ์ฑํ ๋ ์ค์ผ์ค๋ฌ๋ ํ๋์ CPU ์ฝ์ด๊ฐ ๋์ผํ ์์ ์์ ์ฐ๊ฒฐ๋ ํ๋ก์ธ์ค ๊ฐ์๋ง ๊ณต์ ๋๋๋ก ํ ์ ์์ต๋๋ค. ์ด๋ ์ ๋ขฐํ ์ ์๋ ์์ ๊ณผ ์ ๋ขฐํ ์ ์๋ ์์ ์ด ๋์ผํ SMT(ํ์ดํผ ์ค๋ ๋ฉ) ์ค๋ ๋์์ ์คํ๋๋ ๊ฒ์ ๋ฐฉ์งํ์ฌ ์ผ๋ถ Spectre ๊ณต๊ฒฉ์ ์ฐจ๋จํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. .
- cgroup์ ๊ฒฝ์ฐ ์ฌ๋ฉ ๋ฉ๋ชจ๋ฆฌ ์ปจํธ๋กค๋ฌ๊ฐ ๊ตฌํ๋์์ต๋๋ค. ์ด๋ ์ฌ๋ฉ ๊ณ์ ์ ๋ฉ๋ชจ๋ฆฌ ํ์ด์ง ์์ค์์ ์ปค๋ ๊ฐ์ฒด ์์ค์ผ๋ก ์ ์กํ๋ ๋ฐ ์ฃผ๋ชฉํ ๋งํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ณ๋์ ์ฌ๋ฉ ์บ์๋ฅผ ํ ๋นํ๋ ๋์ ๋ค๋ฅธ cgroup์์ ์ฌ๋ฉ ํ์ด์ง๋ฅผ ๊ณต์ ํ ์ ์์ต๋๋ค. ๊ฐ cgroup. ์ ์๋ ์ ๊ทผ ๋ฐฉ์์ ํตํด ์ฌ๋ฉ ์ฌ์ฉ ํจ์จ์ฑ์ ๋์ด๊ณ , ์ฌ๋ฉ์ ์ฌ์ฉ๋๋ ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ 30~45% ์ค์ด๋ฉฐ, ์ปค๋์ ์ ์ฒด ๋ฉ๋ชจ๋ฆฌ ์๋น๋ฅผ ํฌ๊ฒ ์ค์ด๊ณ , ๋ฉ๋ชจ๋ฆฌ ์กฐ๊ฐํ๋ฅผ ์ค์ผ ์ ์์ต๋๋ค.
- ๋๋ฒ๊น ๋ฐ์ดํฐ ์ ๋ฌ์ C ์ ํ, ๊ธฐ๋ฅ ๊ฐ ์ฐ๊ฒฐ ๋ฐ ๋๋ฒ๊น ๊ธฐํธ์ ๋ํ ์ ๋ณด๋ฅผ ์ปดํฉํธํ๊ฒ ์ ์ฅํ๋ CTF(Compact Type Format) ํ์์ผ๋ก ์ ๊ณต๋ฉ๋๋ค.
- DRBD(Distributed Replicated Block Device) ๋ชจ๋ ๋ฐ /dev/raw ์ฅ์น๋ ์ค๋จ๋์์ต๋๋ค(์ง์ ํ์ผ ์ก์ธ์ค๋ฅผ ์ํด O_DIRECT ํ๋๊ทธ ์ฌ์ฉ).
์ถ์ฒ : opennet.ru