SlideShare a Scribd company logo
์ปค๋„์˜ ๊ด€๋ฆฌ, ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์—…๋ฐ์ดํŠธ
(MANAGING, MONITORING AND
UPDATING THE KERNEL)
RED HAT ENTERPRISE LINUX8
Red Hat Enterprise Linux 8 ์—์„œ Linux ์ปค๋„์„ ๊ด€๋ฆฌํ•˜๊ธฐ
์œ„ํ•œ ๊ฐ€์ด๋“œ
Red Hat ๊ณ ๊ฐ ์ปจํ…์ธ  ์„œ๋น„์Šค
๋ฒ•์  ๊ณ ์ง€
์š”์•ฝ
๋ณธ ๋ฌธ์„œ์—์„œ๋Š” Linux ์ปค๋„ ๋ ˆ๋ฒจ์—์„œ ์›Œํฌ ์Šคํ…Œ์ด์…˜์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์‚ฌ์šฉ์ž ๋ฐ
๊ด€๋ฆฌ์ž๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์กฐ์ •์„ ํ†ตํ•ด ์„ฑ๋Šฅ ํ–ฅ์ƒ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐ ์‹œ์Šคํ…œ ์ตœ์ ํ™”๊ฐ€
์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.
Red Hat ๋ฌธ์„œ์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ
์„ค๋ช…์„œ์— ๋Œ€ํ•œ ์˜๊ฒฌ์„ ๋ณด๋‚ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ์„ธ์š”. ๊ทธ๋ ‡๊ฒŒํ•˜๋ ค๋ฉด :
โ— ํŠน์ • ๊ธ€์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์˜๊ฒฌ์„ ๋‚จ๊ฒจํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
1. ๋ฌธ์„œ์˜ ํ‘œ์‹œ๊ฐ€ Multi-page HTML ํ˜•์‹์œผ๋กœ๋˜์–ด ์žˆ๊ณ , ๋ฌธ์„œ์˜ ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ
์— Feedback ๋ฒ„ํŠผ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
2. ๋งˆ์šฐ์Šค ์ปค์„œ์— ๋Œ“๊ธ€์„ ์ถ”๊ฐ€ ํ•  ๋ถ€๋ถ„์„ ๊ฐ•์กฐ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
3. ํ…์ŠคํŠธ ์•„๋ž˜์— ํ‘œ์‹œ๋˜๋Š” Add Feedback ํŒ์—…์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
4. ํ‘œ์‹œ๋˜๋Š” ์ง€์นจ์— ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
โ— ๋ณด๋‹ค ์ƒ์„ธํ•œ ํ”ผ๋“œ๋ฐฑ์„ ์‹ค์‹œํ•˜๋Š” ๊ฒฝ์šฐ๋Š” Bugzilla ์˜ ํ‹ฐ์ผ“์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
1. Bugzilla ์˜ Web ์‚ฌ์ดํŠธ์— ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค.
2. Component ๋กœ Documentation ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
3. Description ํ•„๋“œ์— ๋ฌธ์„œ์˜ ๊ฐœ์„ ์— ๋Œ€ํ•œ ์˜๊ฒฌ์„ ๊ธฐ์ž…ํ•˜์‹ญ์‹œ์˜ค. ๋ฌธ์„œ์˜ ํ•ด๋‹น ๋ถ€๋ถ„
์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค.
4. Submit Bug ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
ํ•œ๊ธ€๋ฒˆ์—ญ์— ๋Œ€ํ•œ ์˜์—ญ, ์˜ค์—ญ์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์€ KR-Trans-FeedBack ์œผ๋กœ ์˜๊ฒฌ์„ ๋ณด๋‚ด์ฃผ์‹ญ์‹œ์˜ค.
์ œ 1 ์žฅ Linux ์ปค๋„ RPM
๋‹ค์Œ ์„น์…˜์—์„œ๋Š” Red Hat ์ด ์ œ๊ณต ๋ฐ ๊ด€๋ฆฌํ•˜๋Š” Linux ์ปค๋„ RPM ํŒจํ‚ค์ง€๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
1.1. RPM ์ด๋ž€?
RPM ํŒจํ‚ค์ง€๋Š” ๋‹ค๋ฅธ ํŒŒ์ผ๊ณผ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ (์‹œ์Šคํ…œ์ด ํ•„์š”๋กœํ•˜๋Š” ํŒŒ์ผ์— ๋Œ€ํ•œ ์ •๋ณด)๊ฐ€ ํฌํ•จ ๋œ
ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
ํŠนํžˆ RPM ํŒจํ‚ค์ง€๋Š” cpio ์•„์นด์ด๋ธŒ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
cpio ์•„์นด์ด๋ธŒ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
โ— ํŒŒ์ผ
โ— RPM ํ—ค๋” (ํŒจํ‚ค์ง€ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ)
rpm ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋Š”์ด ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ข…์†์„ฑ ํŒŒ์ผ์˜ ์„ค์น˜ ์œ„์น˜ ๋ฐ ๊ธฐํƒ€ ์ •๋ณด
๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
RPM ํŒจํ‚ค์ง€์˜ ์œ ํ˜•
RPM ํŒจํ‚ค์ง€์—๋Š” ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ์œ ํ˜• ๋ชจ๋‘ ๋™์ผํ•œ ํŒŒ์ผ ํ˜•์‹๊ณผ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜
์ง€๋งŒ, ๋‚ด์šฉ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋ชฉ์ ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
โ— Source RPM (SRPM)
SRPM ์—๋Š” ์†Œ์Šค ์ฝ”๋“œ์™€ SPEC ํŒŒ์ผ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ฐ”์ด
๋„ˆ๋ฆฌ RPM ์„ ๋นŒ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์ ํ˜€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•„์š”์— ๋”ฐ๋ผ ์†Œ์Šค ์ฝ”๋“œ์— ๋Œ€ํ•œ ํŒจ์น˜๋„ ํฌ
ํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
โ— Binary RPM
๋ฐ”์ด๋„ˆ๋ฆฌ RPM ์€ ์†Œ์Šค ๋ฐ ํŒจ์น˜์—์„œ ๊ตฌ์ถ• ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
1.2 Linux ์ปค๋„ RPM ํŒจํ‚ค์ง€์˜ ๊ฐœ์š”
kernel RPM ์€ ํŒŒ์ผ์„ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ๋ฉ”ํƒ€ ํŒจํ‚ค์ง€์—์„œ ๋‹ค์Œ ํ•˜์œ„ ํŒจํ‚ค์ง€๊ฐ€ ์ œ๋Œ€๋กœ ์„ค์น˜๋˜๋„๋ก
ํ•ฉ๋‹ˆ๋‹ค.
kernel-core - ํ•ต์‹ฌ ๊ธฐ๋Šฅ์— ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ์ปค๋„ ๋ชจ๋“ˆ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์„œ๋ธŒ
ํŒจํ‚ค์ง€๋งŒ์œผ๋กœ ๊ฐ€์ƒํ™” ๋ฐ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ Red Hat Enterprise L ๋กœ inux 8 ์ปค๋„์— ๋น ๋ฅธ
๋ถ€ํŒ… ์‹œ๊ฐ„๊ณผ ์ž‘์€ ๋””์Šคํฌ ํฌ๊ธฐ๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
kernel-modules - ๊ธฐํƒ€ ์ปค๋„ ๋ชจ๋“ˆ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
kernel-modules-extra - ๋“œ๋ฌธ(rare) ํ•˜๋“œ์›จ์–ด์˜ ์ปค๋„ ๋ชจ๋“ˆ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์œ„์˜ ์ž‘์€ kernel ์„œ๋ธŒ ํŒจํ‚ค์ง€๋ฅผ ์ผ๋ถ€ ์ œ๊ณตํ•จ์œผ๋กœ์จ, ํŠนํžˆ ๊ฐ€์ƒ ํ™˜๊ฒฝ ๋ฐ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ ์‹œ
์Šคํ…œ ๊ด€๋ฆฌ์ž์—๊ฒŒ ์œ ์ง€ ๊ด€๋ฆฌ ์˜์—ญ์„ ์ถ•์†Œํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœํ•ฉ๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ์ผ๋ฐ˜์ ์ธ ์ปค๋„ ํŒจํ‚ค์ง€์˜ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
kernel-debug- ์ปค๋„ ์ง„๋‹จ์— ํšจ๊ณผ์ ์ธ ๋””๋ฒ„๊น… ์˜ต์…˜์ด ๋‹ค์ˆ˜ ํฌํ•จ ๋œ ์ปค๋„์ด ํฌํ•จ๋˜์–ด ์žˆ
์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋ฉ๋‹ˆ๋‹ค.
kernel-tools - Linux ์ปค๋„์„ ์กฐ์ž‘ํ•˜๋Š” ํˆด๊ณผ ์ง€์› ๋ฌธ์„œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
kernel-devel- kernel ํŒจํ‚ค์ง€์— ๋ชจ๋“ˆ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์ถฉ๋ถ„ํ•œ ์ปค๋„ ํ—ค๋”์™€ makefiles ์ด ํฌ
ํ•จ๋ฉ๋‹ˆ๋‹ค.
kernel-abi-whitelists- Red Hat Enterprise Linux ์ปค๋„ ABI ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ
์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๊ฐ•ํ™”(enforcement)๋ฅผ ์ง€์›ํ•˜๊ธฐ์œ„ํ•œ ์™ธ๋ถ€ Linux ์ปค๋„ ๋ชจ๋“ˆ ๋ฐ yum ํ”Œ๋Ÿฌ
๊ทธ์ธ์— ํ•„์š”ํ•œ ์ปค๋„ ์‹ฌ๋ณผ์˜ ๋ชฉ๋ก์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
kernel-headers- Linux ์ปค๋„๊ณผ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์ด์˜ ์ธํ„ฐํŽ˜์ด์Šค
๋ฅผ ์ œ๊ณตํ•˜๋Š” C ํ—ค๋” ํŒŒ์ผ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ—ค๋” ํŒŒ์ผ์€ ๋Œ€๋ถ€๋ถ„์˜ ํ‘œ์ค€ ํ”„๋กœ๊ทธ๋žจ์„
๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ตฌ์กฐ์™€ ์ƒ์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
1.3 ์ปค๋„ ํŒจํ‚ค์ง€ ๋‚ด์šฉ๋ณด๊ธฐ
๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” rpm ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ  ์ปค๋„ ํŒจํ‚ค์ง€ ๋ฐ ๊ทธ ์„œ๋ธŒ ํŒจํ‚ค์ง€์˜ ๋‚ด์šฉ์„
ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
์‚ฌ์šฉํ•˜๊ณ ์žˆ๋Š” CPU ์•„ํ‚คํ…์ฒ˜์šฉ kernel, kernel-core, kernel-modules, kernel-modules-extra
RPM ํŒจํ‚ค์ง€ ์ค€๋น„
๋‹จ๊ณ„
โ— kernel ์šฉ ๋ชจ๋“ˆ์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.
$ rpm -qlp <kernel_rpm>
(contains no files)
โ€ฆโ€‹
โ— kernel-core ๋ชจ๋“ˆ์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.
$ rpm -qlp <kernel-core_rpm>
โ€ฆโ€‹
/lib/modules/4.18.0-80.el8.x86_64/kernel/fs/udf/udf.ko.xz
/lib/modules/4.18.0-80.el8.x86_64/kernel/fs/xfs
/lib/modules/4.18.0-80.el8.x86_64/kernel/fs/xfs/xfs.ko.xz
/lib/modules/4.18.0-80.el8.x86_64/kernel/kernel
/lib/modules/4.18.0-80.el8.x86_64/kernel/kernel/trace
/lib/modules/4.18.0-80.el8.x86_64/kernel/kernel/trace/ring_buffer_benchmark.ko.xz
/lib/modules/4.18.0-80.el8.x86_64/kernel/lib
/lib/modules/4.18.0-80.el8.x86_64/kernel/lib/cordic.ko.xz
โ€ฆโ€‹
โ— kernel-modules ๋ชจ๋“ˆ์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.
$ rpm -qlp <kernel-modules_rpm>
โ€ฆโ€‹
/lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/infiniband/hw/mlx4/mlx4_ib.ko.xz
/lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/infiniband/hw/mlx5/mlx5_ib.ko.xz
/lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/infiniband/hw/qedr/qedr.ko.xz
/lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/infiniband/hw/usnic/usnic_verbs.ko.xz
/lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/infiniband/hw/vmw_pvrdma/vmw_pvrdma.ko.xz
โ€ฆโ€‹
โ— kernel-modules-extra ๋ชจ๋“ˆ์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.
$ rpm -qlp <kernel-modules_rpm>
โ€ฆโ€‹
/lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/infiniband/hw/mlx4/mlx4_ib.ko.xz
/lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/infiniband/hw/mlx5/mlx5_ib.ko.xz
/lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/infiniband/hw/qedr/qedr.ko.xz
/lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/infiniband/hw/usnic/usnic_verbs.ko.xz
/lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/infiniband/hw/vmw_pvrdma/vmw_pvrdma.ko.xz
โ€ฆโ€‹
๊ด€๋ จ ์ •๋ณด
โ— ์ด๋ฏธ ์„ค์น˜๋œ kernelRPM (์„œ๋ธŒ ํŒจํ‚ค์ง€๋ฅผ ํฌํ•จ)์—์„œ rpm ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ man ํŽ˜
์ด์ง€์˜ rpm(8)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
โ— RPM ํŒจํ‚ค์ง€ ์˜ ๊ฐœ์š”
์ œ 2 ์žฅ yum ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋„ ์—…๋ฐ์ดํŠธ
๋‹ค์Œ ์„น์…˜์—์„œ๋Š” Red Hat (Red Hat kernel)์„ ์ œ๊ณตํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” Linux ์ปค๋„๊ณผ Red Hat ์ปค๋„
์˜ ์—…๋ฐ์ดํŠธ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ, ์ด ์šด์˜ ์ฒด์ œ์—๋Š” ์ตœ์‹  ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ
์„ฑ๋Šฅ ํ–ฅ์ƒ ํŒจ์น˜๋ฅผ ๋ชจ๋‘ ์ ์šฉ๋˜๋Š” ์ƒˆ๋กœ์šด ํ•˜๋“œ์›จ์–ด์™€์˜ ํ˜ธํ™˜์„ฑ์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค.
2.1 ์ปค๋„์˜ ๊ฐœ์š”
์ปค๋„์€ Linux ์šด์˜ ์ฒด์ œ์˜ ํ•ต์‹ฌ ๋ถ€๋ถ„์œผ๋กœ ์‹œ์Šคํ…œ ์ž์›์„ ๊ด€๋ฆฌํ•˜๊ณ  ํ•˜๋“œ์›จ์–ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋ฐ
์†Œํ”„ํŠธ์›จ์–ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์ด์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Red Hat ์ปค๋„์€ ์—…์ŠคํŠธ๋ฆผ Linux
๋ฉ”์ธ ๋ผ์ธ ์ปค๋„์„ ๊ธฐ๋ฐ˜์œผ๋กœํ•˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ์ปค๋„์ž…๋‹ˆ๋‹ค. Red Hat ์—”์ง€๋‹ˆ์–ด๋Š” ์•ˆ์ •์„ฑ๊ณผ ์ตœ์‹ 
๊ธฐ์ˆ  ๋ฐ ํ•˜๋“œ์›จ์–ด์™€์˜ ํ˜ธํ™˜์„ฑ์— ์ค‘์ ์„๋‘๊ณ  ์ถ”๊ฐ€ ๊ฐœ๋ฐœ ๋ฐ ๊ฐœ์„ ์„ ์‹ค์‹œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
Red Hat ์€ ์ƒˆ๋กœ์šด ์ปค๋„ ๋ฒ„์ „์„ ์ถœ์‹œํ•˜๊ธฐ ์ „์— ์ปค๋„์€ ์—„๊ฒฉํ•œ ํ’ˆ์งˆ ๋ณด์ฆ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•ด์•ผํ•ฉ
๋‹ˆ๋‹ค.
Red Hat ์ปค๋„์€ RPM ํ˜•์‹์œผ๋กœ ํŒจํ‚ค์ง€ํ™”๋˜๊ธฐ ๋•Œ๋ฌธ์— yum ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์— ์˜ํ•œ ์—…๊ทธ๋ ˆ์ด๋“œ
๋ฐ ํ™•์ธ์ด ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.
๊ฒฝ๊ณ 
Red Hat ์˜ํ•ด ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์€ ์ปค๋„์€ Red Hat ์€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค .
2.2. yum ์ด๋ž€?
์ด ์„น์…˜์—์„œ๋Š” yum ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ์˜ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— yum ์ž์„ธํ•œ ๋‚ด์šฉ์€ "๊ธฐ๋ณธ ์‹œ์Šคํ…œ ์„ค์ • ๊ตฌ์„ฑ" ์˜ ๊ด€๋ จ ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
2.3 ์ปค๋„ ์—…๋ฐ์ดํŠธ
๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” yum ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋„์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
๋‹จ๊ณ„
1. ์ปค๋„์„ ์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
# yum update kernel
์ด ๋ช…๋ น์€ ์ปค๋„๊ณผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ๋ชจ๋“  ์ข…์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
2. ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ฐธ๊ณ 
Red Hat Enterprise Linux 7 ์—์„œ Red Hat Enterprise Linux 8 ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒฝ
์šฐ "RHEL 8 ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ" ์˜ ๊ด€๋ จ ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
2.4 ์ปค๋„์˜ ์„ค์น˜
๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” yum ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ์ปค๋„์„ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
๋‹จ๊ณ„
โ— ํŠน์ • ์ปค๋„ ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
# yum install kernel-{version}
๊ด€๋ จ ์ •๋ณด
โ— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปค๋„ ๋ชฉ๋ก์€ "Red Hat Code Browser" ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
โ— ํŠน์ • ์ปค๋„ ๋ฒ„์ „ ์ถœ์‹œ์ผ ๋ชฉ๋ก์€ ์ด ๋ฌธ์„œ ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
์ œ 3 ์žฅ ์ปค๋„ ๋ชจ๋“ˆ ๊ด€๋ฆฌ
๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ์ปค๋„ ๋ชจ๋“ˆ ๊ฐœ์š” ์ปค๋„ ๋ชจ๋“ˆ์˜ ํ‘œ์‹œ ๋ฐฉ๋ฒ•, ์ปค๋„ ๋ชจ๋“ˆ์—์„œ์˜ ๊ธฐ๋ณธ์ ์ธ ๊ด€๋ฆฌ ์ž‘
์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
3.1 ๋ชจ๋“ˆ ์†Œ๊ฐœ
Red Hat Enterprise Linux ์ปค๋„์€ ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ณ ๋„ ์ปค๋„ ๋ชจ๋“ˆ์ด๋ผ๋Š” ์ถ”๊ฐ€ ๊ธฐ๋Šฅ
์œผ๋กœ ํ™•์žฅ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Red Hat Enterprise Linux 8 ์—์„œ ์ปค๋„ ๋ชจ๋“ˆ์€ ์ถ”๊ฐ€ ์ปค๋„ ์ฝ”๋“œ๋กœ ์••
์ถ• ๋œ <KERNEL_MODULE_NAME>.ko.xz ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ปค๋„ ๋ชจ๋“ˆ์— ์˜ํ•ด ์‚ฌ์šฉ ๋œ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
โ— ์ƒˆ๋กœ์šด ํ•˜๋“œ์›จ์–ด์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๋Š” ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„
โ— GFS2 ์™€ NFS ๊ฐ™์€ ํŒŒ์ผ ์‹œ์Šคํ…œ ์ง€์›
โ— ์‹œ์Šคํ…œ ์ฝœ(System Call)
์ตœ์‹  ์‹œ์Šคํ…œ์€ ํ•„์š”์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ์ปค๋„ ๋ชจ๋“ˆ์ด๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ์„œ๋Š” ๋ชจ๋“ˆ์„
์ˆ˜๋™์œผ๋กœ ๋กœ๋“œํ•˜๊ฑฐ๋‚˜ ์–ธ๋กœ๋“œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋“ˆ์€ ์ปค๋„ ์ž์ฒด๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ•„์š”์— ๋”ฐ๋ผ ๊ทธ ๋™์ž‘์„ ์‚ฌ์šฉ์ž ์ •์˜ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ
๋‹ค.
๋„๊ตฌ๋Š” ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ๋ชจ๋“ˆ, ์ปค๋„์— ๋กœ๋“œ ํ•  ์ˆ˜์žˆ๋Š” ๋ชจ๋“ˆ ๋ฐ ๋ชจ๋“ˆ์ด ํ—ˆ์šฉํ•˜๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ํ™•
์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๋Š” ์‹คํ–‰์ค‘์ธ ์ปค๋„ ์ปค๋„ ๋ชจ๋“ˆ ๋กœ๋“œ ๋ฐ ์–ธ๋กœ๋“œ๋ฅผ์œ„ํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณต
ํ•ฉ๋‹ˆ๋‹ค.
3.2 ์ปค๋„ ๋ชจ๋“ˆ ์ข…์†์„ฑ
ํŠน์ • ์ปค๋„ ๋ชจ๋“ˆ์€ ์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ์ปค๋„ ๋ชจ๋“ˆ์— ์˜์กดํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ
๋‹ค. /lib/modules/<KERNEL_VERSION>/modules.dep ํŒŒ์ผ์—๋Š” ๊ฐ ์ปค๋„ ๋ฒ„์ „์— ๋Œ€ํ•œ ์ปค๋„ ๋ชจ๋“ˆ ์ข…์†
์„ฑ์˜ ์ „์ฒด ๋ชฉ๋ก์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ข…์† ํŒŒ์ผ์€ kmod ํŒจํ‚ค์ง€์˜ ์ผ๋ถ€์ธ depmod ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ•ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. kmod ์— ์˜ํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ์˜
๋งŽ์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ๋•Œ ๋ชจ๋“ˆ ์ข…์†์„ฑ์„ ๊ณ ๋ ค ๋•Œ๋ฌธ์— ์ˆ˜๋™ ์œผ๋กœ ์ข…์†์„ฑ์„ ์ถ”์  ํ•  ํ•„์š”๋Š” ๊ฑฐ์˜
์—†์Šต๋‹ˆ๋‹ค.
๊ฒฝ๊ณ 
์ปค๋„ ๋ชจ๋“ˆ์˜ ์ฝ”๋“œ๋Š” ์ปค๋„ ๋ชจ๋“œ์—์„œ ๋ฌด์ œํ•œ(UNRESTRICTED) ๋ชจ๋“œ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ๋ฌธ์—
์–ด๋–ค ๋ชจ๋“ˆ์„๋กœ๋“œํ•˜๊ณ  ์žˆ๋Š”์ง€์ฃผ์˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— /lib/modules/<KERNEL_VERSION>/modules.dep ์ž์„ธํ•œ ๋‚ด์šฉ์€ modules.dep(5)man ํŽ˜์ด์ง€๋ฅผ
์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
โ— depmod ๊ฐœ์š” ๋ฐ ์˜ต์…˜์˜ ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ depmod(8)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
3.3. ํ˜„์žฌ ๋กœ๋“œ ๋œ ์ปค๋„ ๋ชจ๋“ˆ ๋ชฉ๋ก๋ณด๊ธฐ
๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” ํ˜„์žฌ ๋กœ๋“œ ๋œ ์ปค๋„ ๋ชจ๋“ˆ์„ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
โ— kmod ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ๋‹ค.
๋‹จ๊ณ„
โ— ํ˜„์žฌ๋กœ๋“œ ๋œ ์ปค๋„ ๋ชจ๋“ˆ์„ ๋‚˜์—ดํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
$ lsmod
Module Size Used by
fuse 126976 3
uinput 20480 1
xt_CHECKSUM 16384 1
ipt_MASQUERADE 16384 1
xt_conntrack 16384 1
ipt_REJECT 16384 1
nft_counter 16384 16
nf_nat_tftp 16384 0
nf_conntrack_tftp 16384 1 nf_nat_tftp
tun 49152 1
bridge 192512 0
stp 16384 1 bridge
llc 16384 2 bridge,stp
nf_tables_set 32768 5
nft_fib_inet 16384 1
โ€ฆโ€‹
์œ„์˜ ์˜ˆ :
o ์ฒซ ๋ฒˆ์งธ ์—ด์—๋Š” ํ˜„์žฌ๋กœ๋“œ ๋œ ๋ชจ๋“ˆ์˜ ์ด๋ฆ„ ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
o ๋‹ค์Œ ์นผ๋Ÿผ์€ ๊ฐ ๋ชจ๋“ˆ์˜ ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰์„ ํ‚ฌ๋กœ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
o ๋งˆ์ง€๋ง‰ ์นผ๋Ÿผ์€ ์ˆซ์ž์™€ ์„ ํƒ์ ์œผ๋กœ ํŠน์ • ๋ชจ๋“ˆ์— ์˜์กด ํ•˜๋Š” ๋ชจ๋“ˆ ์ด๋ฆ„์„ ํ‘œ์‹œํ•ฉ๋‹ˆ
๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— kmod ์ž์„ธํ•œ ๋‚ด์šฉ์€ /usr/share/doc/kmod/README ํŒŒ์ผ ๋˜๋Š” lsmod (8)man ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐ
ํ•˜์‹ญ์‹œ์˜ค.
3.4 ๋ชจ๋“ˆ ์ •๋ณด๋ณด๊ธฐ
์ปค๋„ ๋ชจ๋“ˆ๋กœ ์ž‘์—… ํ•  ๋•Œ ํ•ด๋‹น ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„์—
์„œ๋Š” ์ปค๋„ ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
โ— kmod ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ์–ด์•ผํ•จ.
๋‹จ๊ณ„
โ— ์ปค๋„ ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
$ modinfo <KERNEL_MODULE_NAME>
For example:
$ modinfo virtio_net
filename: /lib/modules/4.18.0-94.el8.x86_64/kernel/drivers/net/virtio_net.ko.xz
license: GPL
description: Virtio network driver
rhelversion: 8.1
srcversion: 2E9345B281A898A91319773
alias: virtio:d00000001v*
depends: net_failover
intree: Y
name: virtio_net
vermagic: 4.18.0-94.el8.x86_64 SMP mod_unload modversions
โ€ฆโ€‹
parm: napi_weight:int
parm: csum:bool
parm: gso:bool
parm: napi_tx:bool
modinfo ๋ช…๋ น์€ ์ง€์ •ํ•œ ์ปค๋„ ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋กœ๋“œ๋˜์–ด ์žˆ๋Š”์ง€
์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋ชจ๋“ˆ์˜ ์ •๋ณด๋ฅผ ์กฐํšŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. parm ํ•ญ๋ชฉ์€ ์‚ฌ
์šฉ์ž๊ฐ€ ๋ชจ๋“ˆ์— ์„ค์ •ํ•  ์ˆ˜์žˆ๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜์™€ ์˜ˆ์ƒ๋˜๋Š” ๊ฐ’์˜ ์œ ํ˜•์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
์ฐธ๊ณ 
์ปค๋„ ๋ชจ๋“ˆ์˜ ์ด๋ฆ„์„ ์ž…๋ ฅ ํ•  ๋•Œ, .ko.xzํ™•์žฅ์ž๋Š” ์ด๋ฆ„์˜ ๋์— ์ถ”๊ฐ€ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ปค๋„
๋ชจ๋“ˆ ์ด๋ฆ„์—๋Š” ํŒŒ์ผ ํ™•์žฅ๋ช…์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•ด๋‹น ํŒŒ์ผ์—๋Š” ํ™•์žฅ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— modinfo ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ modinfo(8)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
3.5 ์‹œ์Šคํ…œ ๋Ÿฐํƒ€์ž„ ์ปค๋„ ๋ชจ๋“ˆ๋กœ๋“œ
Linux ์ปค๋„์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ์ปค๋„ ๋ชจ๋“ˆ์„๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹จ๊ณ„์—
์„œ๋Š” modprobe ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋„ ๋ชจ๋“ˆ์„ ๊ฐ์ง€ํ•˜๊ณ  ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ์ปค๋„์— ๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์„
์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
โ— root ๊ถŒํ•œ
โ— kmod ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ์Œ.
โ— ํ•ด๋‹น ์ปค๋„ ๋ชจ๋“ˆ์ด๋กœ๋“œ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ๋กœ๋“œ ๋œ ์ปค๋„ ๋ชจ๋“ˆ์„ ๋‚˜์—ดํ•˜์‹ญ์‹œ์˜ค.
๋‹จ๊ณ„
1. ๋กœ๋“œ ํ•  ์ปค๋„ ๋ชจ๋“ˆ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋“ˆ์€ /lib/modules/$(uname -r)/kernel/<SUBSYSTEM>/๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค.
2. ํ•ด๋‹น ์ปค๋„ ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
# modprobe < MODULE_NAME >
์ฐธ๊ณ 
์ปค๋„ ๋ชจ๋“ˆ์˜ ์ด๋ฆ„์„ ์ž…๋ ฅ ํ•  ๋•Œ, .ko.xzํ™•์žฅ์ž๋Š” ์ด๋ฆ„์˜ ๋์— ์ถ”๊ฐ€ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ปค๋„
๋ชจ๋“ˆ ์ด๋ฆ„์—๋Š” ํŒŒ์ผ ํ™•์žฅ๋ช…์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•ด๋‹น ํŒŒ์ผ์—๋Š” ํ™•์žฅ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
3. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๊ด€๋ จ ๋ชจ๋“ˆ์ด๋กœ๋“œ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
$ lsmod | grep < MODULE_NAME >
๋ชจ๋“ˆ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ๋กœ๋“œ ๋œ ๊ฒฝ์šฐ์ด ๋ช…๋ น์€ ๊ด€๋ จ ์ปค๋„ ๋ชจ๋“ˆ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์˜ˆ๋ฅผ ๋‚˜ํƒ€
๋ƒ…๋‹ˆ๋‹ค.
$ lsmod | grep serio_raw
serio_raw 16384 0
์ค‘์š”
์ด ์ ˆ์ฐจ์— ์„ค๋ช… ๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์‹œ์Šคํ…œ์„ ์žฌ์‹œ์ž‘๋Š” ์œ ์ง€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค .
๊ด€๋ จ ์ •๋ณด
โ— modprobe ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ modprobe(8)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
3.6 ์‹œ์Šคํ…œ ๋Ÿฐํƒ€์ž„ ์ปค๋„ ๋ชจ๋“ˆ ์–ธ๋กœ๋“œ
๋•Œ๋กœ๋Š” ์‹คํ–‰์ค‘์ธ ์ปค๋„์—์„œ ํŠน์ • ์ปค๋„ ๋ชจ๋“ˆ์„ ์–ธ๋กœ๋“œ ํ•  ํ•„์š”์„ฑ์„ ๋Š๋ผ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹จ
๊ณ„์—์„œ๋Š” modprobe ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ๋กœ๋“œ ๋œ ์ปค๋„์—์„œ ์‹œ์Šคํ…œ์˜ ์‹คํ–‰์‹œ์— ์ปค๋„ ๋ชจ๋“ˆ์„ ์ฐพ
์•„ ์–ธ๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
โ— root ๊ถŒํ•œ
โ— kmod ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ์Œ.
๋‹จ๊ณ„
1. lsmod ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์–ธ๋กœ๋“œํ•˜๋Š” ์ปค๋„ ๋ชจ๋“ˆ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
์ปค๋„ ๋ชจ๋“ˆ์— ์˜์กด ๊ด€๊ณ„ (dependencies)๋Š” ์ปค๋„ ๋ชจ๋“ˆ์„ ์–ธ๋กœ๋“œํ•˜๊ธฐ ์ „์—์ด ์–ธ๋กœ๋“œํ•ฉ๋‹ˆ
๋‹ค. ์ข…์† ๋ชจ๋“ˆ์˜ ๊ตฌ์ฒด์ ์ธ ๋‚ด์šฉ์€ "ํ˜„์žฌ๋กœ๋“œ ๋œ ์ปค๋„ ๋ชจ๋“ˆ ๋ชฉ๋ก" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
2. ํ•ด๋‹น ์ปค๋„ ๋ชจ๋“ˆ์„ ์–ธ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
# modprobe -r < MODULE_NAME >
์ปค๋„ ๋ชจ๋“ˆ์˜ ์ด๋ฆ„์„ ์ž…๋ ฅ ํ•  ๋•Œ, .ko.xz ํ™•์žฅ์ž๋Š” ์ด๋ฆ„์˜ ๋์— ์ถ”๊ฐ€ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ปค๋„
๋ชจ๋“ˆ ์ด๋ฆ„์—๋Š” ํŒŒ์ผ ํ™•์žฅ๋ช…์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•ด๋‹น ํŒŒ์ผ์˜ ํ™•์žฅ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฒฝ๊ณ 
์‹คํ–‰์ค‘์ธ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ์ปค๋„ ๋ชจ๋“ˆ์„ ์–ธ๋กœ๋“œํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ์‹œ
์Šคํ…œ์ด ๋ถˆ์•ˆ์ •ํ•˜๊ฑฐ๋‚˜ ์ž‘๋™ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
3. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๊ด€๋ จ ๋ชจ๋“ˆ์ด ์–ธ๋กœ๋“œ ๋œ ๊ฒƒ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
$ lsmod | grep < MODULE_NAME >
๋ชจ๋“ˆ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์–ธ๋กœ๋“œ ๋œ ๊ฒฝ์šฐ์ด ๋ช…๋ น์€ ์ถœ๋ ฅ์„ ํ‘œ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ค‘์š”
์ด ์ ˆ์ฐจ๋ฅผ ์™„๋ฃŒํ•˜๋ฉด ์‹œ์Šคํ…œ ์‹œ์ž‘์‹œ ์ž๋™์œผ๋กœ ๋กœ๋“œ๋˜๋„๋ก ์ •์˜ ๋œ ์ปค๋„ ๋ชจ๋“ˆ์€ ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ
์‹œ์ž‘ํ•ด๋„ ์–ธ๋กœ๋“œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค . ์ด ๊ฒฐ๊ณผ๋ฅผ ์ถ”์ ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์‹œ์Šคํ…œ ๋ถ€ํŒ…์‹œ ์ปค๋„ ๋ชจ๋“ˆ์ด ์ž๋™์œผ
๋กœ ๋กœ๋“œ๋˜์ง€ ์•Š๋„๋กํ•˜๋ ค๋ฉด์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
๊ด€๋ จ ์ •๋ณด
โ— modprobe ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ modprobe(8)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
3.7 ์‹œ์Šคํ…œ ๋ถ€ํŒ…์‹œ ์ปค๋„ ๋ชจ๋“ˆ ์ž๋™ ๋กœ๋“œ
๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” ๋ถ€ํŒ… ๊ณผ์ •์—์„œ ์ž๋™์œผ๋กœ ๋กœ๋“œ๋˜๋„๋ก ์ปค๋„ ๋ชจ๋“ˆ์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ
๋‹ค.
์ „์ œ ์กฐ๊ฑด
โ— root ๊ถŒํ•œ
โ— kmod ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ์Œ.
๋‹จ๊ณ„
1. ์‹œ์ž‘ ํ”„๋กœ์„ธ์Šค ์ค‘์—๋กœ๋“œ ์ปค๋„ ๋ชจ๋“ˆ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋“ˆ์€ /lib/modules/$(uname -r)/kernel/<SUBSYSTEM>/๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค.
2. ๋ชจ๋“ˆ ์„ค์ • ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
# echo < MODULE_NAME >> /etc/modules-load.d/ < MODULE_NAME > .conf
์ฐธ๊ณ 
์ปค๋„ ๋ชจ๋“ˆ์˜ ์ด๋ฆ„์„ ์ž…๋ ฅ ํ•  ๋•Œ, .ko.xzํ™•์žฅ์ž๋Š” ์ด๋ฆ„์˜ ๋์— ์ถ”๊ฐ€ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ปค๋„
๋ชจ๋“ˆ ์ด๋ฆ„์—๋Š” ํŒŒ์ผ ํ™•์žฅ๋ช…์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•ด๋‹น ํŒŒ์ผ์—๋Š” ํ™•์žฅ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
3. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๊ด€๋ จ ๋ชจ๋“ˆ์ด๋กœ๋“œ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
$ lsmod | grep < MODULE_NAME >
์œ„์˜ ์˜ˆ์ œ ๋ช…๋ น์€ ์„ฑ๊ณตํ•˜๊ณ  ๊ด€๋ จ ์ปค๋„ ๋ชจ๋“ˆ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
์ค‘์š”
์ด ๋‹จ๊ณ„์—์„œ ์„ค๋ช…ํ•˜๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด๋„ ์ง€์†๋ฉ๋‹ˆ๋‹ค .
๊ด€๋ จ ์ •๋ณด
โ— ์‹œ์Šคํ…œ์˜ ๋ถ€ํŒ… ๊ณผ์ •์—์„œ ์ปค๋„ ๋ชจ๋“ˆ๋กœ๋“œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€
์˜ modules-load.d (5)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
3.8 ์‹œ์Šคํ…œ ๋ถ€ํŒ…์‹œ ์ปค๋„ ๋ชจ๋“ˆ์ด ์ž๋™ ๋กœ๋“œ ๋ฐฉ์ง€
๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” ์‹œ์Šคํ…œ์˜ ๋ถ€ํŒ… ๊ณผ์ •์—์„œ ์ปค๋„ ๋ชจ๋“ˆ์ด ์ž๋™์œผ๋กœ ๋กœ๋“œ๋˜์ง€ ์•Š๋„๋ก ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ
์— ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
โ— root ๊ถŒํ•œ
โ— kmod ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ์Œ.
โ— ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์— ์ง€์ •ํ•œ ์ปค๋„ ๋ชจ๋“ˆ์ด ํ˜„์žฌ์˜ ์‹œ์Šคํ…œ ์„ค์ •์— ์ค‘์š”ํ•˜์ง€ ์•Š์€ ๊ฒƒ์„ ํ™•์ธํ•ฉ๋‹ˆ
๋‹ค.
๋‹จ๊ณ„
1. ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์— ๋“ฑ๋กํ•˜๋Š” ์ปค๋„ ๋ชจ๋“ˆ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
$ lsmod
Module Size Used by
fuse 126976 3
xt_CHECKSUM 16384 1
ipt_MASQUERADE 16384 1
uinput 20480 1
xt_conntrack 16384 1
โ€ฆโ€‹
lsmod ๋ช…๋ น์€ ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ์ปค๋„์—๋กœ๋“œ ๋œ ๋ชจ๋“ˆ ๋ชฉ๋ก์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
โ— ๋˜๋Š” ์ฝ๊ธฐ๋ฅผ ์ €์ง€ํ•˜๊ธฐ ์–ธ๋กœ๋“œ ํ•œ ์ปค๋„ ๋ชจ๋“ˆ์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.
๋ชจ๋“  ์ปค๋„ ๋ชจ๋“ˆ /lib/modules/<KERNEL_VERSION>/kernel/<subsystem>/๋””๋ ‰ํ† ๋ฆฌ์—
์žˆ์Šต๋‹ˆ๋‹ค.
2. ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ์„ค์ • ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
# vim /etc/modprobe.d/blacklist.conf
# Blacklists <KERNEL_MODULE_1>
blacklist <MODULE_NAME_1>
install <MODULE_NAME_1> /bin/false
# Blacklists <KERNEL_MODULE_2>
blacklist <MODULE_NAME_2>
install <MODULE_NAME_2> /bin/false
# Blacklists <KERNEL_MODULE_n>
blacklist <MODULE_NAME_n>
install <MODULE_NAME_n> /bin/false
โ€ฆโ€‹
์ด ์˜ˆ์—์„œ๋Š” vim ํŽธ์ง‘๊ธฐ์—์„œ ํŽธ์ง‘ ํ•œ blacklist.conf ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. blacklist
ํ–‰์€ ์‹œ์Šคํ…œ์˜ ๋ถ€ํŒ… ๊ณผ์ •์—์„œ ๊ด€๋ จ ์ปค๋„ ๋ชจ๋“ˆ์ด ์ž๋™์œผ๋กœ๋กœ๋“œ๋˜์ง€ ์•Š๋„๋ก ์ง€์ •ํ•ฉ๋‹ˆ
๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ blacklist ๋ช…๋ น์€ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์—์—†๋Š” ๋‹ค๋ฅธ ์ปค๋„ ๋ชจ๋“ˆ ์ข…์†์„ฑ์œผ๋กœ ๋ชจ๋“ˆ๋กœ๋“œ๋ฅผ
๋ง‰์„ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ install ํ–‰์—์„œ๋Š” ๋ชจ๋“ˆ ์„ค์น˜ ๋Œ€์‹  /bin/false ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
ํ•ด์‹œ ๊ธฐํ˜ธ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํ–‰์€ ํŒŒ์ผ์ด ๋” ์ฝ๊ธฐ ์‰ฌ๊ฒŒ ๋งŒ๋“œ๋Š” ์ฃผ์„์ž…๋‹ˆ๋‹ค.
์ฐธ๊ณ 
์ปค๋„ ๋ชจ๋“ˆ์˜ ์ด๋ฆ„์„ ์ž…๋ ฅ ํ•  ๋•Œ, .ko.xz ํ™•์žฅ์ž๋Š” ์ด๋ฆ„์˜ ๋์— ์ถ”๊ฐ€ํ•˜์ง€ ๋งˆ์‹ญ์‹œ
์˜ค. ์ปค๋„ ๋ชจ๋“ˆ ์ด๋ฆ„์—๋Š” ํŒŒ์ผ ํ™•์žฅ๋ช…์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•ด๋‹น ํŒŒ์ผ์˜ ํ™•์žฅ์ž๊ฐ€ ์žˆ
์Šต๋‹ˆ๋‹ค.
3. ์žฌ๊ตฌ์„ฑํ•˜๊ธฐ ์ „์— ํ˜„์žฌ ์ดˆ๊ธฐ ramdisk ์ด๋ฏธ์ง€์˜ ๋ฐฑ์—… ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
# cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).bak.$(date +%m-%d-%H%M%S).img
์œ„์˜ ๋ช…๋ น์€ ์ƒˆ๋กœ์šด ๋ฒ„์ „์— ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•ด ๋ฐฑ์—… initramfs
์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
โ— ๋˜๋Š” ์ปค๋„ ๋ชจ๋“ˆ์„ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์— ์ง€์ •ํ•˜๋Š” ์ปค๋„ ๋ฒ„์ „์— ํ•ด๋‹นํ•˜๋Š” ๊ธฐํƒ€ ์ดˆ๊ธฐ
ramdisk ์ด๋ฏธ์ง€์˜ ๋ฐฑ์—… ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
# cp /boot/initramfs-<SOME_VERSION>.img /boot/initramfs-<SOME_VERSION>.img.bak.$(date
+%m-%d-%H%M%S)
4. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ์ดˆ๊ธฐ ramdisk ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
# dracut -f -v
โ— ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ๊ฒƒ๊ณผ ๋‹ค๋ฅธ ์ปค๋„ ๋ฒ„์ „์˜ ์ดˆ๊ธฐ ramdisk ์ด๋ฏธ์ง€๋ฅผ ๊ตฌ์ถ• ํ•  ๊ฒฝ์šฐ
๋Œ€์ƒ initramfs ๊ณผ ์ปค๋„ ๋ฒ„์ „์„ ๋ชจ๋‘ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
# dracut -f -v / boot / initramfs- < TARGET_VERSION > .img 
< CORRESPONDING_TARGET_KERNEL_VERSION >
5. ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
$ reboot
์ค‘์š”
โ— ์ด ๋‹จ๊ณ„์—์„œ ์„ค๋ช…ํ•˜๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด๋„ ์ง€์†๋ฉ๋‹ˆ๋‹ค . ์ฃผ์š” ์ปค๋„ ๋ชจ
๋“ˆ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์— ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์‹œ์Šคํ…œ์ด ๋ถˆ์•ˆ์ • ํ•ด ์ง€๊ฑฐ๋‚˜ ์‹œ์Šคํ…œ์ด ์ž‘
๋™ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— dracut ์œ ํ‹ธ๋ฆฌํ‹ฐ์˜ ์ž์„ธํ•œ ๋‚ด์šฉ์€ dracut(8)man ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
์ œ 4 ์žฅ ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์„ค์ •
์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์‹œ์Šคํ…œ ์‹œ์ž‘์‹œ Red Hat Enterprise Linux ์ปค๋„์˜ ํŠน์ • ์ธก๋ฉด์˜ ๋™์ž‘
์„ ๋ณ€๊ฒฝํ•˜๋Š” ์ˆ˜๋‹จ์˜ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋Š” ์‹œ์Šคํ…œ ์‹œ์ž‘์‹œ์— ์„ค์ •๋˜๋Š” ์˜ต์…˜์„ ์™„์ „ํžˆ ์ œ
์–ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ • ์ปค๋„์˜ ๋™์ž‘์€ ์‹œ์Šคํ…œ ์‹œ์ž‘์‹œ์—๋งŒ ๊ตฌ์„ฑ ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ์ด ๋ณ€๊ฒฝํ•˜๋Š”
๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ๊ด€๋ฆฌ ๊ธฐ์ˆ ์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.
์ค‘์š”
์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ์‹œ์Šคํ…œ์˜ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜๋Š” ์˜ต์…˜์€ ์‹œ์Šคํ…œ์— ์•…์˜ํ–ฅ
์„ ๋ฏธ์น  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์— ๋ฐฐํฌํ•˜๊ธฐ ์ „์— ๋ณ€๊ฒฝ์„ ํ…Œ์ŠคํŠธํ•ด์•ผํ•ฉ
๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์ง€์นจ์€ Red Hat ์ง€์›ํŒ€์— ๋ฌธ์˜ํ•˜์‹ญ์‹œ์˜ค.
4.1 ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์„ค์ •
์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ๋‹ค์Œ ์‹œ์Šคํ…œ ์‹œ์ž‘ ์‹œ๊ฐ„ ์„ค์ •์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
โ— Red Hat Enterprise Linux ์ปค๋„
โ— ์ดˆ๊ธฐ RAM ๋””์Šคํฌ
โ— ์‚ฌ์šฉ์ž ์˜์—ญ ๊ธฐ๋Šฅ
์ปค๋„ ๋ถ€ํŒ… ์‹œ๊ฐ„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์ข…์ข… ๊ธฐ๋ณธ๊ฐ’์„ ๋ฎ์–ด ์“ฐ๊ณ  ํŠน์ • ํ•˜๋“œ์›จ์–ด ์„ค์ •์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ
์šฉ๋ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ GRUB2 ๋ถ€ํŠธ ๋กœ๋”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ์˜ ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ๋ชจ๋“  ์ปค๋„ ๋ถ€
ํŒ… ํ•ญ๋ชฉ์˜ /boot/grub2/grubenv ํŒŒ์ผ์˜ kernelopts ๋ณ€์ˆ˜๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค.
์ฐธ๊ณ 
IBM Z ๋Š” zipl ๋ถ€ํŠธ ๋กœ๋” ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋Œ€์‘ํ•˜๊ณ  ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜
๋Š” ๋ถ€ํŠธ ํ•ญ๋ชฉ ์„ค์ • ํŒŒ์ผ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ kernelopts ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด
์ง€ kernel-command-line(7), bootparam(7)๋ฐ dracut.cmdline (7)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
4.2. grubby ๋ž€?
grubby ๋ถ€ํŠธ ๋กœ๋” ๊ณ ์œ ์˜ ์„ค์ • ํŒŒ์ผ์„ ์กฐ์ž‘ํ•˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ์ž…๋‹ˆ๋‹ค.
grubby ๊ธฐ๋ณธ ๋ถ€ํŒ… ํ•ญ๋ชฉ์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ GRUB2 ๋ฉ”๋‰ด ํ•ญ๋ชฉ์—์„œ ์ธ์ˆ˜ ์ถ”๊ฐ€/์ œ๊ฑฐ์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ
์Šต๋‹ˆ๋‹ค.
์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ grubby(8)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
4.3. ๋ถ€ํŠธ ํ•ญ๋ชฉ์˜ ๊ฐœ์š”
๋ถ€ํŠธ ํ•ญ๋ชฉ(boot entry)์€ ์„ค์ • ํŒŒ์ผ์— ํฌํ•จ ๋œ ํŠน์ • ์ปค๋„ ๋ฒ„์ „์— ๊ด€๋ จ๋œ ์˜ต์…˜์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ
๋‹ค. ์‚ฌ์‹ค, ๋ถ€ํŠธ ํ•ญ๋ชฉ์€ ์‹œ์Šคํ…œ ์ปค๋„์ด ์„ค์น˜๋˜์–ด์žˆ๋Š” ์ˆ˜๋งŒํผ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ€ํŒ… ํ•ญ๋ชฉ์˜ ์„ค์ • ํŒŒ
์ผ /boot/loader/entries/directory ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด๋ฉ๋‹ˆ๋‹ค.
6f9cc9cb7d7845d49698c9537337cedc-4.18.0-5.el8.x86_64.conf
์œ„์˜ ํŒŒ์ผ ์ด๋ฆ„์€ /etc/machine-id ํŒŒ์ผ์— ์ €์žฅ๋œ ์ปดํ“จํ„ฐ ID ์™€ ์ปค๋„ ๋ฒ„์ „์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.
๋ถ€ํŠธ ํ•ญ๋ชฉ์˜ ์„ค์ • ํŒŒ์ผ์€ ์ปค๋„ ๋ฒ„์ „ ์ดˆ๊ธฐ ramdisk ์ด๋ฏธ์ง€ ๋ฐ kernelopts ํ™˜๊ฒฝ ๋ณ€์ˆ˜ (์ปค๋„ ๋ช…๋ น
์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ํฌํ•จ)์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ€ํŒ… ํ•ญ๋ชฉ์˜ ์„ค์ • ๋‚ด์šฉ์€ ๋‹ค์Œ์—์„œ
ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
title Red Hat Enterprise Linux (4.18.0-74.el8.x86_64) 8.0 (Ootpa)
version 4.18.0-74.el8.x86_64
linux /vmlinuz-4.18.0-74.el8.x86_64
initrd /initramfs-4.18.0-74.el8.x86_64.img $tuned_initrd
options $kernelopts $tuned_params
id rhel-20190227183418-4.18.0-74.el8.x86_64
grub_users $grub_users
grub_arg --unrestricted
grub_class kernel
kernelopts ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” /boot/grub2/grubenv ํŒŒ์ผ์—์„œ ์ •์˜๋ฉ๋‹ˆ๋‹ค.
4.4 ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์„ค์ •
๋ณธ ์„น์…˜์—์„œ๋Š” AMD64 ๋ฐ Intel 64 ์•„ํ‚คํ…์ฒ˜ 64 ๋น„ํŠธ ARM ์•„ํ‚คํ…์ฒ˜ ๋ฐ IBM Power Systems
์˜ little-endian ๋ณ€ํ˜•์—์„œ ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
4.4.1. ๋ชจ๋“  ๋ถ€ํŠธ ํ•ญ๋ชฉ์—์„œ ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋ณ€๊ฒฝ
์ด ๋‹จ๊ณ„์—์„œ๋Š” ์‹œ์Šคํ…œ์—์žˆ๋Š” ๋ชจ๋“  ๋ถ€ํŠธ ํ•ญ๋ชฉ์˜ ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค
๋ช…ํ•ฉ๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
โ— ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์˜ ๊ฐœ์š”
๋‹จ๊ณ„
1. vim ํŽธ์ง‘๊ธฐ์—์„œ /etc/default/grub ํŒŒ์ผ์„ ์—ฝ๋‹ˆ ๋‹ค.
# vim /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root
rd.lvm.lv=rhel/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
GRUB_ENABLE_BLSCFG=true
2. GRUB_CMDLINE_LINUX ํ–‰์—์„œ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€, ํŽธ์ง‘ ๋˜๋Š” ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
3. GRUB2 ์„ค์ • ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
# grub2-mkconfig -o /boot/grub2/grub.cfg
4. ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
๊ทธ ๊ฒฐ๊ณผ, ๋ถ€ํŠธ ๋กœ๋”๋ฅผ ๋‹ค์‹œ ์„ค์ • ์ง€์ •๋œ ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
GRUB2 ์„ค์ • ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ "๋ฉ”๋‰ด ํ•ญ๋ชฉ ํŽธ์ง‘" ์„
์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
4.4.2 ํ•˜๋‚˜์˜ ๋ถ€ํŠธ ํ•ญ๋ชฉ์—์„œ ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋ณ€๊ฒฝ
์ด ๋‹จ๊ณ„์—์„œ๋Š” ์‹œ์Šคํ…œ์˜ ๋ถ€ํŠธ ํ•ญ๋ชฉ์˜ ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
โ— ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์˜ ๊ฐœ์š”
โ— grubby(8) man ํŽ˜์ด์ง€
๋‹จ๊ณ„
โ— ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
# grubby --update-kernel = / boot / vmlinuz-$ (uname -r) --args = "< NEW_PARAMETER >"
โ— ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
# grubby --update-kernel = / boot / vmlinuz-$ (uname -r) --remove-args = "< PARAMETER_TO_REMOVE >"
์ฐธ๊ณ 
๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ ์ปค๋„ ๋ถ€ํŒ… ํ•ญ๋ชฉ์— options ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์žˆ๊ณ , ์ด๊ฒƒ์€ kernelopts ๋ณ€์ˆ˜๋กœ ์„ค์ •๋ฉ๋‹ˆ
๋‹ค. ์ด ๋ณ€์ˆ˜๋Š” /boot/grub2/grubenv ์„ค์ • ํŒŒ์ผ์— ์ •์˜๋ฉ๋‹ˆ๋‹ค.
์ค‘์š”
grubby ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ๋ถ€ํŠธ ํ•ญ๋ชฉ์„ ์ˆ˜์ •ํ•˜๋ฉด ์ˆ˜์ • ํ•œ kernelopts ๋‚ด์šฉ์€ ๊ด€๋ จ ์ปค๋„ ๋ถ€
ํŒ… ํ•ญ๋ชฉ์— ํฌํ•จ๋˜์–ด ์—์„œ ์„ค์ • ํ•œ ๊ฐ’์„ ๋ฎ์–ด ์“ฐ๊ฒŒ๋ฉ๋‹ˆ
๋‹ค. /boot/loader/entries/<RELEVANT_KERNEL_BOOT_ENTRY.conf>/boot/grub2/grubenvkernelopts
๊ด€๋ จ ์ •๋ณด
grubby ๋‹ค๋ฅธ ์˜ˆ๋Š” "grubby ๋„๊ตฌ" ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
์ œ 5 ์žฅ ๋Ÿฐํƒ€์ž„์‹œ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์„ค์ •
์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋Š” ๋Ÿฐํƒ€์ž„์‹œ์— Red Hat Enterprise Linux ์ปค๋„์˜ ๋™์ž‘์„ ๋‹ค์ˆ˜ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ
๋‹ค. ๋ณธ ์ ˆ์—์„œ๋Š” sysctl ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ /etc/sysctl.d/๋ฐ /proc/sys/๋””๋ ‰ํ† ๋ฆฌ์˜ ์„ค์ • ํŒŒ์ผ์„ ์ˆ˜
์ •ํ•˜์—ฌ ๋Ÿฐํƒ€์ž„์‹œ์— ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
5.1 ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ž€?
์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜(kernel parameters)๋Š” ์‹œ์Šคํ…œ์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ์กฐ์ •ํ•  ์ˆ˜์žˆ๋Š” ์กฐ์ • ๊ฐ€๋Šฅํ•œ ๊ฐ’
์ž…๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ์ปค๋„์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ๋‹ค์‹œ ์ปดํŒŒ์ผ ํ•  ํ•„์š”๊ฐ€ ์—†์Šต
๋‹ˆ๋‹ค.
๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์— ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
+ * sysctl ๋ช…๋ น * /proc/sys/๋””๋ ‰ํ† ๋ฆฌ์— ๋งˆ์šดํŠธ ๋œ ๊ฐ€์ƒ ํŒŒ์ผ ์‹œ์Šคํ…œ * /etc/sysctl.d/๋””๋ ‰ํ† ๋ฆฌ
์˜ ์„ค์ • ํŒŒ์ผ
์กฐ์ • ๊ฐ€๋Šฅํ•œ ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์ปค๋„ ์„œ๋ธŒ ์‹œ์Šคํ…œ์—์„œ ํด๋ž˜์Šค๋กœ ๋ถ„ํ• ๋ฉ๋‹ˆ๋‹ค. Red Hat Enterprise
Linux ์—๋Š” ๋‹ค์Œ์˜ ์กฐ์ ˆ ๊ฐ€๋Šฅํ•œ ํด๋ž˜์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ‘œ 5.1 sysctl ํด๋ž˜์Šค ํ‘œ
์กฐ์ • ๊ฐ€๋Šฅํ•œ ํด๋ž˜์Šค(Tunable class) ์„œ๋ธŒ์‹œ์Šคํ…œ (Subsystem)
abi(Application Binary Interface) ์‹คํ–‰ ๋„๋ฉ”์ธ ๋ฐ ํŠน์„ฑ (Execution domains and personalities)
* Linux ๋Š” ๊ฐ ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ๋‹ค๋ฅธ ์‹คํ–‰ ๋„๋ฉ”์ธ ๋˜๋Š” ํŠน์„ฑ์„
์ง€์›ํ•จ.
crypto ์•”ํ˜ธํ™” ์ธํ„ฐํŽ˜์ด์Šค(Cryptographic interfaces)
debug ์ปค๋„ ๋””๋ฒ„๊น… ์ธํ„ฐํŽ˜์ด์Šค(Kernel debugging interfaces)
dev ์žฅ์น˜๋ณ„ ์ •๋ณด(Device-specific information)
fs ๊ธ€๋กœ๋ฒŒ ๋ฐ ํŠน์ • ํŒŒ์ผ ์‹œ์Šคํ…œ ์กฐ์ •(Global and specific file
system tunables)
kernel ๊ธ€๋กœ๋ฒŒ ์ปค๋„ ์กฐ์ •(Global kernel tunables)
์กฐ์ • ๊ฐ€๋Šฅํ•œ ํด๋ž˜์Šค(Tunable class) ์„œ๋ธŒ์‹œ์Šคํ…œ (Subsystem)
net ๋„คํŠธ์›Œํฌ ์กฐ์ •(Network tunables)
sunrpc SUN ์›๊ฒฉ ํ”„๋กœ์‹œ์ ธ ํ˜ธ์ถœ(Sun Remote Procedure Call
(NFS))
user ์‚ฌ์šฉ์ž ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค ์ œํ•œ (User Namespace limits)
vm ๋ฉ”๋ชจ๋ฆฌ, ๋ฒ„ํผ ๋ฐ ์บ์‹œ ์กฐ์ • ๋ฐ ๊ด€๋ฆฌ (Tuning and
management of memory, buffers, and cache)
๊ด€๋ จ ์ •๋ณด
โ— sysctl ์ž์„ธํ•œ ๋‚ด์šฉ์€ sysctl(8)man ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
โ— /etc/sysctl.d/์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ sysctl.d(5)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
5.2 ๋Ÿฐํƒ€์ž„์‹œ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์„ค์ •
์ค‘์š”
ํ”„๋กœ๋•์…˜ ์‹œ์Šคํ…œ์—์„œ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋ ค๋ฉด ์‹ ์ค‘ํ•œ ๊ณ„ํš์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ณ„ํš์ด ๊ฒฐ์—ฌ ๋œ
๋ณ€๊ฒฝ์€ ์ปค๋„์ด ๋ถˆ์•ˆ์ • ํ•ด์ง€๊ณ  ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค๋„ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๊ธฐ ์ „
์— ์œ ํšจํ•œ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
5.2.1. sysctl ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ์ž„์‹œ ์„ค์ •
๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” sysctl ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Ÿฐํƒ€์ž„์‹œ์— ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์„ค์ •ํ•˜๋Š”
๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์€ ์กฐ์ • ๊ฐ€๋Šฅํ•œ ๋ณ€์ˆ˜ ๋ชฉ๋ก๋ณด๊ธฐ ๋ฐ ํ•„ํ„ฐ๋ง์— ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
โ— ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ๊ฐœ์š”
โ— root ๊ถŒํ•œ
๋‹จ๊ณ„
1. ๋ชจ๋“  ๋งค๊ฐœ ๋ณ€์ˆ˜์™€ ๊ทธ ๊ฐ’์„ ๋‚˜์—ดํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
# sysctl -a
์ฐธ๊ณ 
# sysctl -a ๋ช…๋ น์€ ๋Ÿฐํƒ€์ž„ ๋ฐ ์‹œ์Šคํ…œ ์‹œ์ž‘์‹œ ์กฐ์ •ํ•  ์ˆ˜์žˆ๋Š” ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ํ‘œ์‹œ
ํ•ฉ๋‹ˆ๋‹ค.
2. ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์„ค์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์˜ˆ์™€ ๊ฐ™์ด ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
# sysctl <TUNABLE_CLASS>.<PARAMETER>=<TARGET_VALUE>
์œ„์˜ ์˜ˆ์ œ ๋ช…๋ น์€ ์‹œ์Šคํ…œ์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ๋งค๊ฐœ ๋ณ€์ˆ˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ณ€๊ฒฝ์€ ์žฌ๋ถ€
ํŒ…์—†์ด ๋ฐ”๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ฐธ๊ณ 
๋ณ€๊ฒฝ์€ ์‹œ์Šคํ…œ ์žฌ๋ถ€ํŒ… ํ›„ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— sysctl ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ sysctl(8)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
โ— ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด sysctl ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ /etc/sysctl.conf ํŒŒ์ผ
์— ๊ฐ’์„ ๊ธฐ๋กํ•˜๊ฑฐ๋‚˜ /etc/sysctl.d/๋””๋ ‰ํ† ๋ฆฌ ์˜ ์„ค์ • ํŒŒ์ผ์— ์ˆ˜๋™์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
5.2.2. sysctl ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ์„ค์ •
๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” sysctl ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…
ํ•ฉ๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
โ— ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ๊ฐœ์š”
โ— root ๊ถŒํ•œ
๋‹จ๊ณ„
1. ๋ชจ๋“  ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋‚˜์—ดํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
# sysctl -a
์ด ๋ช…๋ น์€ ๋Ÿฐํƒ€์ž„์‹œ์— ์„ค์ •ํ•  ์ˆ˜์žˆ๋Š” ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
2. ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ์„ค์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
# sysctl -w <TUNABLE_CLASS>.<PARAMETER>=<TARGET_VALUE> >> /etc/sysctl.conf
์ƒ˜ํ”Œ ๋ช…๋ น์€ ๊ฐ€๋ณ€ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์—ฌ /etc/sysctl.conf ํŒŒ์ผ์— ์”๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜
์˜ ๊ธฐ๋ณธ๊ฐ’์„ ๋ฎ์–ด ์”๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ์€ ์žฌ๋ถ€ํŒ…์—†์ด ์ฆ‰์‹œ ์˜๊ตฌ์ ์œผ๋กœ ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.
์ฐธ๊ณ 
์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด /etc/sysctl.d/๋””๋ ‰ํ† ๋ฆฌ์˜ ์„ค์ • ํŒŒ์ผ์— ์ˆ˜
๋™์œผ๋กœ ๋ณ€๊ฒฝํ•˜์‹ญ์‹œ์˜ค.
๊ด€๋ จ ์ •๋ณด
โ— sysctl ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ sysctl(8)๋„์‹œ sysctl.conf (5)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
โ— ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์— ์˜๊ตฌ์  ์ธ ๋ณ€๊ฒฝ์„์œ„ํ•œ /etc/sysctl.d/๋””๋ ‰ํ† ๋ฆฌ์— ์„ค์ • ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š”
๊ฒƒ์— ๋Œ€ํ•œ ์ •๋ณด๋Š” /etc/sysctl.d/ ์„ค์ • ํŒŒ์ผ์— ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์กฐ์ • ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
5.2.3. /etc/sysctl.d/ ์„ค์ • ํŒŒ์ผ์— ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์กฐ์ •
๋‹ค์Œ ์ ˆ์ฐจ์—์„œ๋Š” /etc/sysctl.d/๋””๋ ‰ํ† ๋ฆฌ์˜ ์„ค์ • ํŒŒ์ผ์„ ์ˆ˜๋™์œผ๋กœ ์ˆ˜์ •ํ•˜์—ฌ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ
์˜๊ตฌ์ ์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
โ— ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ๊ฐœ์š”
โ— root ๊ถŒํ•œ
๋‹จ๊ณ„
1. /etc/sysctl.d/ ์ƒˆ๋กœ์šด ์„ค์ • ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
# vim /etc/sysctl.d/<some_file.conf>
2. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•œ ์ค„๋งˆ๋‹ค ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
<TUNABLE_CLASS>.<PARAMETER>=<TARGET_VALUE>
<TUNABLE_CLASS>.<PARAMETER>=<TARGET_VALUE>
3. ์„ค์ •์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
4. ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
โ— ๋˜ํ•œ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ณ  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
# sysctl -p /etc/sysctl.d/<some_file.conf>
์ด ๋ช…๋ น์€ ์ด์ „์— ๋งŒ๋“  ์„ค์ • ํŒŒ์ผ์—์„œ ๊ฐ’์„ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— sysctl ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ sysctl(8)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
โ— /etc/sysctl.d/์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ sysctl.d(5)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
5.2.4 / proc / sys /์— ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ์ž„์‹œ ์„ค์ •
๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” ๊ฐ€์ƒ ํŒŒ์ผ ์‹œ์Šคํ…œ /proc/sys/๋””๋ ‰ํ† ๋ฆฌ์˜ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ
์ผ์‹œ์ ์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
โ— ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ๊ฐœ์š”
โ— root ๊ถŒํ•œ
๋‹จ๊ณ„
1. ์„ค์ • ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.
# ls -l /proc/sys/<TUNABLE_CLASS>/
๋ช…๋ น์—์„œ ๋ฐ˜ํ™˜ ๋œ ์“ฐ๊ธฐ ๊ฐ€๋Šฅํ•œ ํŒŒ์ผ์€ ์ปค๋„ ์„ค์ •์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ๊ธฐ ์ „์šฉ
๊ถŒํ•œ์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๋Š” ํ˜„์žฌ ์„ค์ •์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
2. ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์— ๋Œ€์ƒ์˜ ๊ฐ’์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.
# echo <TARGET_VALUE> > /proc/sys/<TUNABLE_CLASS>/<PARAMETER>
์ด ๋ช…๋ น์€ ์‹œ์Šคํ…œ์ด ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด ์„ค์ • ๋ณ€๊ฒฝ์ด ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค.
3. ํ•„์š”์— ๋”ฐ๋ผ ์ƒˆ๋กœ ๊ตฌ์„ฑ๋œ ์„ค์ • ํ•œ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
# cat /proc/sys/<TUNABLE_CLASS>/<PARAMETER>
๊ด€๋ จ ์ •๋ณด
์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด sysctl ๋ช…๋ น ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ /etc/sysctl.d/๋””๋ ‰ํ† 
๋ฆฌ ์˜ ์„ค์ • ํŒŒ์ผ์— ์ˆ˜๋™์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
5.3 ๊ฐ€์ƒํ™” ํ™˜๊ฒฝ์—์„œ ์ปค๋„ ํŒจ๋‹‰์˜ ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋น„ํ™œ์„ฑํ™”
Red Hat Enterprise Linux 8 (RHEL 8) ๊ฐ€์ƒํ™” ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ, ๊ฐ€์ƒํ™” ํ™˜๊ฒฝ์€ ์‹œ์Šคํ…œ ์žฅ
์• ๋ฅผ ํ•„์š”๋กœํ•˜์ง€ ์•Š๋Š” ์ž˜๋ชป๋œ ์†Œํ”„ํŠธ ์ž ๊ธˆ(soft lockup)์„ ๋ฐœ์ƒ์‹œํ‚ฌ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ
์— softlockup_panic ๋ฐ nmi_watchdog ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ํ™œ์„ฑํ™”ํ•˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค.
๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ์ด ์กฐ์–ธ์˜ ์ด์œ ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์š”์•ฝํ•˜์—ฌ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
โ— ์†Œํ”„ํŠธ ์ž ๊ธˆ(soft lockup)์˜ ์›์ธ
โ— ์†Œํ”„ํŠธ ์ž ๊ธˆ(soft lockup)์‹œ ์‹œ์Šคํ…œ์˜ ๋™์ž‘์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ์„ค๋ช…
โ— ๊ฐ€์ƒํ™” ํ™˜๊ฒฝ์—์„œ ์†Œํ”„ํŠธ ์ž ๊ธˆ(soft lockup)์ด ์–ด๋–ป๊ฒŒ ๋ฐœ์ƒํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์„ค๋ช…
5.3.1. ์ž ๊ธˆ ๊ธฐ๋Šฅ์ด๋ž€?
์ž ๊ธˆ ๊ธฐ๋Šฅ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ž‘์—…์ด ์ผ์ •ํ•˜์ง€ ์•Š๊ณ  CPU ๊ฐ€ ์ปค๋„ ์˜์—ญ์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ์— ๋ฒ„๊ทธ
์— ์˜ํ•ด ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ์ด ์ž‘์—…์€ ๋‹ค๋ฅธ ์ž‘์—…์ด ๊ทธ ํŠน์ • CPU ์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„
ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ๊ฒฝ๊ณ ๊ฐ€ ์‹œ์Šคํ…œ ์ฝ˜์†”์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š”
์†Œํ”„ํŠธ์›จ์–ด ์ž ๊ธˆ ๋ฐœ์ƒ (soft lockup firing)๋ผ๊ณ ๋„ํ•ฉ๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
์ž ๊ธˆ ๊ธฐ๋Šฅ์— ๊ด€๋ จ๋œ ๊ธฐ์ˆ ์  ์ธ ์ด์œ  ๋กœ๊ทธ ๋ฉ”์‹œ์ง€์˜ ์˜ˆ ๋ฐ ๊ธฐํƒ€ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ธฐ์ˆ  ์ž
๋ฃŒ ๋ฌธ์„œ "CPU ์ž ๊ธˆ ๊ธฐ๋Šฅ" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
5.3.2. ์ปค๋„ ํŒจ๋‹‰์„ ์ œ์–ดํ•˜๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜
์†Œํ”„ํŠธ ๋ก์ด ํƒ์ง€๋˜๋ฉด ์‹œ์Šคํ…œ์˜ ๋™์ž‘์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๋‹ค์Œ์˜ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ
๋‹ค.
softlockup_panic
์ž ๊ธˆ ๊ธฐ๋Šฅ์ด ๊ฒ€์ถœ ๋œ ๋•Œ ์ปค๋„ ํŒจ๋‹‰์„ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์—ฌ๋ถ€๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
ํƒ€์ž… ๊ฐ’ ํšจ๊ณผ
์ •์ˆ˜(Integer) 0 ์†Œํ”„ํŠธ ์ž ๊ธˆ์‹œ ์ปค๋„์ด ํŒจ๋‹‰ ์ƒํƒœ์— ๋น ์ง€์ง€ ์•Š์Œ
์ •์ˆ˜(Integer) 1 ์†Œํ”„ํŠธ ์ž ๊ธˆ์— ๋Œ€ํ•œ ์ปค๋„ ํŒจ๋‹‰
RHEL 8 ์—์„œ๋Š”์ด ๊ฐ’์˜ ๊ธฐ๋ณธ๊ฐ’์€ 0 ์ž…๋‹ˆ๋‹ค.
ํŒจ๋‹‰์„ ๋ฐœ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์‹œ์Šคํ…œ์—์„œ ์ฒ˜์Œ์œผ๋กœ ํ•˜๋“œ ๋ก ์—…์„ ๊ฐ์ง€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰
์€ nmi_watchdog ๋งค๊ฐœ ๋ณ€์ˆ˜๋กœ ์ œ์–ด๋ฉ๋‹ˆ๋‹ค.
nmi_watchdog
์ž ๊ธˆ ๊ฐ์ง€ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ( watchdogs)๊ฐ€ ํ™œ์„ฑํ™” ์—ฌ๋ถ€๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์ •์ˆ˜ํ˜•์ž…๋‹ˆ๋‹ค.
๊ฐ’ ํšจ๊ณผ
0 ์ž ๊ธˆ ๊ฐ์ง€๊ธฐ ๋น„ํ™œ์„ฑํ™”
1 ์ž ๊ธˆ ๊ฐ์ง€๊ธฐ ํ™œ์„ฑํ™”
ํ•˜๋“œ ๋ก ์—… ๊ฒ€์ถœ๊ธฐ(hard lockup detector)๋Š” ๊ฐ CPU ์— ์ธํ„ฐ๋ŸฝํŠธ์— ์‘๋‹ตํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋ชจ๋‹ˆํ„ฐ
๋งํ•ฉ๋‹ˆ๋‹ค.
watchdog_thresh
์›Œ์น˜ ๋… ์‹œ๊ฐ„ ํƒ€์ด๋จธ hrtimer, NMI ์ด๋ฒคํŠธ ๋ฐ ์†Œํ”„ํŠธ/ํ•˜๋“œ ์ž ๊ธˆ ์ž„๊ณ„ ๊ฐ’์˜ ๋นˆ๋„๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
๊ธฐ๋ณธ ์ž„๊ณ„ ๊ฐ’(Default threshold) ์†Œํ”„ํŠธ์›จ์–ด ์ž ๊ธˆ ์ž„๊ณ„ ๊ฐ’(Soft lockup threshold)
10 ์ดˆ 2 * watchdog_thresh
์ด ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ โ€œ0โ€์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ์ž ๊ธˆ ๊ฐ์ง€๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— nmi_watchdog ๊ทธ๋ฆฌ๊ณ  softlockup_panic ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ "Softlockup detector and
hardlockup detector" ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
โ— watchdog_thresh ์ž์„ธํ•œ ๋‚ด์šฉ์€ "Kernel sysctl" ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
5.3.3 ๊ฐ€์ƒํ™” ํ™˜๊ฒฝ์—์„œ ์ž˜๋ชป๋œ ์†Œํ”„ํŠธ์›จ์–ด ์ž ๊ธˆ
"์ž ๊ธˆ ๊ธฐ๋Šฅ์€" ์—์„œ ์„ค๋ช…๋˜๋Š” ๋ฌผ๋ฆฌ์  ํ˜ธ์ŠคํŠธ์—์„œ ์†Œํ”„ํŠธ์›จ์–ด ์ž ๊ธˆ์˜ ๋ฐœ์ƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ปค๋„
๋˜๋Š” ํ•˜๋“œ์›จ์–ด์˜ ๋ฒ„๊ทธ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๊ฐ€์ƒํ™” ํ™˜๊ฒฝ์˜ ๊ฒŒ์ŠคํŠธ ์šด์˜ ์ฒด์ œ์—์„œ ๊ฐ™์€ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜
๋ฉด ์ž˜๋ชป๋œ ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํ˜ธ์ŠคํŠธ์— ๋งŽ์€ ์ž‘์—… ๋ถ€ํ•˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ๋ฉ”๋ชจ๋ฆฌ์™€ ๊ฐ™์€ ํŠน์ • ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๋†’์€ ๊ฒฝํ•ฉ์ด ๋ฐœ์ƒ
ํ•˜๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ€์งœ ์†Œํ”„ํŠธ ๋ฝ์—…์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ๊ฐ€ ๊ฒŒ์ŠคํŠธ CPU ๋ฅผ 20 ์ดˆ ์ด์ƒ ์˜ˆ์•ฝ
ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฒŒ์ŠคํŠธ CPU ๊ฐ€ ํ˜ธ์ŠคํŠธ์—์„œ ๋‹ค์‹œ ์‹คํ–‰๋˜๋„๋ก ์˜ˆ์•ฝํ•˜๋ฉด ์‹œ๊ฐ„
์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์˜ˆ์ •๋œ ํƒ€์ด๋จธ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ํƒ€์ด๋จธ์—๋Š” ์›Œ์น˜ ๋… hrtimer ๋„ ํฌํ•จ๋˜์–ด์žˆ์–ด
๊ฒŒ์ŠคํŠธ CPU ์˜ ์†Œํ”„ํŠธ ๋ฝ์—…์„๋ณด๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฐ€์ƒํ™” ๋œ ํ™˜๊ฒฝ์—์„œ์˜ ์†Œํ”„ํŠธ ๋ฝ์—…์ด ํ—ˆ์œ„ ์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฒŒ์ŠคํŠธ CPU ์—์„œ ์†Œํ”„ํŠธ ๋ฝ์—…์ด๋ณด
๊ณ  ๋  ๋•Œ ์‹œ์Šคํ…œ ํŒจ๋‹‰์„ ์œ ๋ฐœํ•˜๋Š” ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค.
์ค‘์š”
๊ฒŒ์ŠคํŠธ์˜ ์†Œํ”„ํŠธ ์ž ๊ธˆ์„ ์ดํ•ดํ•˜๋ ค๋ฉด ํ˜ธ์ŠคํŠธ๊ฐ€ ๊ฒŒ์ŠคํŠธ๋ฅผ ์ž‘์—…์œผ๋กœ ์˜ˆ์•ฝ(schedule) ํ•œ ๋‹ค์Œ
๊ฒŒ์ŠคํŠธ๊ฐ€ ์ž์ฒด ์ž‘์—…์„ ์˜ˆ์•ฝ(schedule)ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— ์†Œํ”„ํŠธ ๋ก ์—…์˜ ์ •์˜์™€ ๊ทธ ๊ธฐ๋Šฅ์— ๊ด€๋ จ๋œ ๊ธฐ์ˆ ์€ "์ž ๊ธˆ ๊ธฐ๋Šฅ๊ณผ" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
โ— RHEL 8 ๊ฐ€์ƒํ™” ํ™˜๊ฒฝ์˜ ๊ตฌ์„ฑ ์š”์†Œ์™€ ๊ทธ ์ƒํ˜ธ ์ž‘์šฉ์€ "RHEL 8 ๊ฐ€์ƒ ๋จธ์‹  ๊ตฌ์„ฑ ์š”์†Œ ๋ฐ
๊ทธ ์ƒํ˜ธ ์ž‘์šฉ" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
5.4 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์˜ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์กฐ์ •
ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜์žˆ๋Š” ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์„ธํŠธ์—๋Š” ์—ฌ
๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„ ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํšจ์œจ์ ์ธ ์šด์˜์„
๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌ์„ฑํ•˜๋Š” ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
5.4.1 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์˜ ๊ฐœ์š”
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๋Š” ์ผ์ •๋Ÿ‰์˜ ์ฃผ ๋ฉ”๋ชจ๋ฆฌ์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (DB) ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์„ค์น˜๋œ ํ•˜๋“œ
์›จ์–ด ์žฅ์น˜์ž…๋‹ˆ๋‹ค. ์ด DB ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์บ์‹œ ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ๋ฐ˜์ ์œผ๋กœ ์ž‘๊ณ  ๋น„์‹ผ ์ฃผ ๋ฉ”๋ชจ๋ฆฌ
์—์„œ DB ํŒŒ์ผ (database)๋กœ ์“ฐ๋Š” ์ˆ˜๋‹จ์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค๋Š” ๋„คํŠธ์›Œํฌ
์˜ ์—ฌ๋Ÿฌ ํด๋ผ์ด์–ธํŠธ์— ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๋จธ์‹ ์˜ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ์Šคํ† ๋ฆฌ์ง€๊ฐ€ ํ—ˆ์šฉํ•˜๋Š”๋งŒํผ DB ์„œ๋ฒ„
๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Red Hat Enterprise Linux 8 ๋‹ค์Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
โ— Maria DB 10.3
โ— MySQL 8.0
โ— PostgreSQL 10
โ— PostgreSQL 9.6
5.4.2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜
๋‹ค์Œ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„์ค๋‹ˆ๋‹ค.
fs.aio-max-nr
์‹œ์Šคํ…œ์ด ์„œ๋ฒ„์—์„œ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜์žˆ๋Š” ์ตœ๋Œ€ ๋น„๋™๊ธฐ I / O ์ž‘์—… ์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
์ฐธ๊ณ 
fs.aio-max-nr ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋†’์ด๋ฉด aio ํ•œ๋„๋ฅผ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ ์™ธ์—๋Š” ์ถ”๊ฐ€ ๋ณ€๊ฒฝ์ด ์—†์Šต๋‹ˆ๋‹ค.
fs.file-max
์‹œ์Šคํ…œ์ด ๋ชจ๋“  ์ธ์Šคํ„ด์Šค์—์„œ ์ง€์›ํ•˜๋Š” ์ตœ๋Œ€ ํŒŒ์ผ ํ•ธ๋“ค ์ˆ˜ (์ž„์‹œ ํŒŒ์ผ ์ด๋ฆ„ ๋˜๋Š” ํŒŒ์ผ์„ ์—ด
๊ธฐ ์œ„ํ•ด ํ• ๋‹น ๋œ ID)๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
์ปค๋„์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ํŒŒ์ผ ํ•ธ๋“ค์„ ์š”์ฒญํ•  ๋•Œ๋งˆ๋‹ค ํŒŒ์ผ ํ•ธ๋“ค์„ ๋™์ ์œผ๋กœ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ
๋‚˜ ์ปค๋„์€ ์ด๋Ÿฌํ•œ ํŒŒ์ผ ํ•ธ๋“ค์ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ•ด ํ•ด์ œ ๋  ๋•Œ ํ•ด์ œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ปค๋„์€
๋Œ€์‹  ์ด๋Ÿฌํ•œ ํŒŒ์ผ ํ•ธ๋“ค์„ ์žฌํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํ˜„์žฌ ์‚ฌ์šฉ๋˜๋Š” ํŒŒ์ผ ํ•ธ๋“ค ์ˆ˜๊ฐ€ ์ ๋”๋ผ๋„ ์‹œ๊ฐ„
์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ํ• ๋‹น ๋œ ํŒŒ์ผ ํ•ธ๋“ค์˜ ์ด ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
kernel.shmall
์‹œ์Šคํ…œ ์ „์ฒด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ์ด ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€ ์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ์ฃผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ
์‚ฌ์šฉํ•˜๋ ค๋ฉด kernel.shmall ๋งค๊ฐœ ๋ณ€์ˆ˜ ๊ฐ’ ์ด โ‰ค ์ด ์ฃผ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ ์—ฌ์•ผํ•ฉ๋‹ˆ๋‹ค.
kernel.shmmax
Linux ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ€์ƒ ์ฃผ์†Œ ๊ณต๊ฐ„์— ํ• ๋‹น ํ•  ์ˆ˜์žˆ๋Š” ๋‹จ์ผ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์„ธ๊ทธ๋จผํŠธ์˜ ์ตœ๋Œ€ ํฌ
๊ธฐ (๋ฐ”์ดํŠธ)๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
kernel.shmmni
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๊ฐ€ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜์žˆ๋Š” ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์„ธ๊ทธ๋จผํŠธ์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
net.ipv4.ip_local_port_range
ํŠน์ • ํฌํŠธ ๋ฒˆํ˜ธ์—†์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์— ์‹œ์Šคํ…œ์ด ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ํฌ
ํŠธ ๋ฒ”์œ„๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
net.core.rmem_default
TCP (Transmission Control Protocol)๋ฅผ ํ†ตํ•ด ๊ธฐ๋ณธ ์ˆ˜์‹  ์†Œ์ผ“ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
net.core.rmem_max
TCP (Transmission Control Protocol)์— ์˜ํ•œ ์ตœ๋Œ€ ์ˆ˜์‹  ์†Œ์ผ“ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
net.core.wmem_default
TCP (Transmission Control Protocol)์— ์˜ํ•œ ๊ธฐ๋ณธ ์ „์†ก ์†Œ์ผ“ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
net.core.wmem_max
TCP (Transmission Control Protocol)์— ์˜ํ•œ ์ตœ๋Œ€ ์ „์†ก ์†Œ์ผ“ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
vm.dirty_bytes / vm.dirty_ratio
๋”ํ‹ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ write()ํ•จ์ˆ˜์—์„œ ์‹œ์ž‘ํ•˜๋Š” ๋”ํ‹ฐ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋น„์œจ (๋ฐ”
์ดํŠธ ๋‹จ์œ„)์—์„œ ์ž„๊ณ„ ๊ฐ’์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
์ฐธ๊ณ 
ํ•œ ๋ฒˆ์— ์ง€์ •ํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์€, vm.dirty_bytes ๋˜๋Š” vm.dirty_ratio ์˜ ํ•˜๋‚˜ ์ž…๋‹ˆ๋‹ค.
vm.dirty_background_bytes / vm.dirty_background_ratio
์ปค๋„์ด ๋”ํ‹ฐ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋“œ ๋””์Šคํฌ์— ํ™œ์„ฑํ™” ์“ฐ๋ ค๊ณ ํ•˜๋Š” ๋”ํ‹ฐ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋น„์œจ (๋ฐ”์ด
ํŠธ ๋‹จ์œ„)์—์„œ ์ž„๊ณ„ ๊ฐ’์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
์ฐธ๊ณ 
ํ•œ ๋ฒˆ์— ์ง€์ •ํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์€, vm.dirty_background_bytes ๋˜๋Š” vm.dirty_background_ratio ์˜ ํ•˜
๋‚˜ ์ž…๋‹ˆ๋‹ค.
vm.dirty_writeback_centisecs
ํ•˜๋“œ ๋””์Šคํฌ์— ๋”ํ‹ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋กํ•˜๋Š” ์ปค๋„ ์Šค๋ ˆ๋“œ์˜ ์‹œ์ž‘์„ ์ •๊ธฐ์ ์œผ๋กœ ๊ฐ„๊ฒฉ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
์ด ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” 100 ๋ถ„์˜ 1 ์ดˆ ๋‹จ์œ„๋กœ ์ธก์ •๋ฉ๋‹ˆ๋‹ค.
vm.dirty_expire_centisecs
๋”ํ‹ฐ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•˜๋“œ ๋””์Šคํฌ์— ๊ธฐ๋ก ๋  ์ •๋„๋กœ ์˜ค๋ž˜ ๋  ๋•Œ๊นŒ์ง€์˜ ์‹œ๊ฐ„์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
์ด ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” 100 ๋ถ„์˜ 1 ์ดˆ ๋‹จ์œ„๋กœ ์ธก์ •๋ฉ๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— ๋”ํ‹ฐ ๋ฐ์ดํ„ฐ์˜ ๋ผ์ดํŠธ ๋ฐฑ ๊ทธ ๊ธฐ๋Šฅ ๋ฐ ๊ด€๋ จ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์„ค๋ช…์€ "๋”ํ‹ฐ ํŽ˜์ด
์ง€์˜ ๋ผ์ดํŠธ ๋ฐฑ์€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?" ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
์ œ 6 ์žฅ ์ปค๋„ ๋กœ๊น… ์‚ฌ์šฉ
๋กœ๊ทธ ํŒŒ์ผ์€ ์‹œ์Šคํ…œ (์ปค๋„, ์„œ๋น„์Šค ๋ฐ ์‹คํ–‰์ค‘์ธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋“ฑ)์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€๊ฐ€ ํฌํ•จ ๋œ
ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. Red Hat Enterprise Linux ์—์„œ ๋กœ๊น… ์‹œ์Šคํ…œ์€ ๋‚ด์žฅ syslog ํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœํ•ฉ
๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€์ด ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฒคํŠธ๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ๋กœ๊ทธ ํŒŒ์ผ์— ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด
ํŒŒ์ผ์€ ์šด์˜ ์ฒด์ œ์˜ ๊ฐ์‚ฌ ๋ฐ ๋ฌธ์ œ ํ•ด๊ฒฐ์— ๋„์›€์ด๋ฉ๋‹ˆ๋‹ค.
6.1 ์ปค๋„ ๋ง ๋ฒ„ํผ(kernel ring buffer)๋ž€?
์ฝ˜์†”์€ ์‹œ์Šคํ…œ์ด ์‹œ์ž‘๋˜๋Š” ๋™์•ˆ ์‹œ์Šคํ…œ ๋ถ€ํŒ…์‹œ์— ๋Œ€ํ•œ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ๋‹ค์ˆ˜ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ €
์ถœ๋ ฅ ๋œ ๋ฉ”์‹œ์ง€๊ฐ€ ์†์‹ค๋˜์ง€ ์•Š๋„๋ก ์ปค๋„ ๋ง ๋ฒ„ํผ๋ผ๋Š” ๊ฒƒ์ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฒ„ํผ๋Š” ์ปค๋„
์ฝ”๋“œ์˜ printk()ํ•จ์ˆ˜์— ์˜ํ•ด ์ƒ์„ฑ ๋œ ๋ถ€ํŠธ ๋ฉ”์‹œ์ง€ ๋“ฑ ๋ชจ๋“  ๋ฉ”์‹œ์ง€๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ปค๋„
๋ง ๋ฒ„ํผ์—์„œ ๋ฉ”์‹œ์ง€ syslog ์„œ๋น„์Šค ๋“ฑ์˜ ์˜๊ตฌ ์ €์žฅ์†Œ์˜ ๋กœ๊ทธ ํŒŒ์ผ์— ๋กœ๋“œ๋˜์–ด ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
์ƒ๊ธฐ ๋ฒ„ํผ๋Š” ๊ณ ์ • ๋œ ํฌ๊ธฐ์˜ ์ˆœํ™˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ด๋ฉฐ, ์ปค๋„์— ํ•˜๋“œ ์ฝ”๋”ฉ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž
๋Š” dmesg ๋ช…๋ น ๋˜๋Š” /var/log/boot.log ํŒŒ์ผ ํ†ตํ•ด ์ปค๋„ ๋ง ๋ฒ„ํผ์— ์ €์žฅ๋˜์–ด์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ ์ˆ˜
์žˆ์Šต๋‹ˆ๋‹ค. ๋ง ๋ฒ„ํผ๊ฐ€ ๊ฐ€๋“ ์ฐจ๋ฉด ์ƒˆ ๋ฐ์ดํ„ฐ๋Š” ์ด์ „ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฎ์–ด ์”๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— syslog ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ syslog(2)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
โ— dmesg๋กœ ์‹œ์ž‘ ๋กœ๊ทธ ๋ฉ”์‹œ์ง€๋ฅผ ํ™•์ธํ•˜๊ฑฐ๋‚˜ ์ œ์–ดํ•˜๋Š” ๋ฐฉ๋ฒ•์€ man ํŽ˜์ด์ง€์˜ dmesg(1)์„ ์ฐธ
์กฐํ•˜์‹ญ์‹œ์˜ค.
6.2 ๋กœ๊ทธ ์ˆ˜์ค€ ๋ฐ ์ปค๋„ ๋กœ๊น…์— printk ์˜ ์—ญํ• 
์ปค๋„์ด๋ณด๊ณ ํ•˜๋Š” ๊ฐ ๋ฉ”์‹œ์ง€์—๋Š” ๋ฉ”์‹œ์ง€์˜ ์ค‘์š”๋„๋ฅผ ์ •์˜ํ•˜๋Š” ๊ด€๋ จ ๋กœ๊ทธ ์ˆ˜์ค€์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค๋„
๋ง ๋ฒ„ํผ๋Š” "์ปค๋„ ๋ง ๋ฒ„ํผ๋ž€?" ์— ์„ค๋ช… ๋œ๋Œ€๋กœ ๋ชจ๋“  ๋กœ๊ทธ ๋ ˆ๋ฒจ์˜ ์ปค๋„ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„
ํผ์—์„œ ์ฝ˜์†”์— ์ถœ๋ ฅ๋˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ์€ kernel.printk ๋งค๊ฐœ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.
๋กœ๊ทธ ์ˆ˜์ค€ ๊ฐ’์€ ๋‹ค์Œ ์ˆœ์„œ๋กœ ๋ถ„๋ฅ˜๋ฉ๋‹ˆ๋‹ค.
0 โ€” ์ปค๋„ ๋น„์ƒ(emergency). ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
1 โ€” ์ปค๋„ ๊ฒฝ๊ณ (alert). ์ฆ‰์‹œ ์กฐ์น˜๋ฅผ ์ทจํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
2 โ€” ์ปค๋„์˜ ์ƒํƒœ๊ฐ€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
3 โ€” ์ผ๋ฐ˜ ์ปค๋„ ์˜ค๋ฅ˜ ์กฐ๊ฑด.
4 โ€” ์ผ๋ฐ˜์ ์ธ ์ปค๋„ ๊ฒฝ๊ณ  ์กฐ๊ฑด.
5 โ€” ์ •์ƒ์ด์ง€๋งŒ ์ค‘์š”ํ•œ ์ƒํƒœ์˜ ์ปค๋„ ํ†ต์ง€.
6 โ€” ์ปค๋„ ์ •๋ณด ๋ฉ”์‹œ์ง€.
7 โ€” ์ปค๋„ ๋””๋ฒ„๊ทธ ์ˆ˜์ค€ ๋ฉ”์‹œ์ง€.
๊ธฐ๋ณธ์  kernel.printk ์œผ๋กœ RHEL 8 ์—๋Š” ๋‹ค์Œ ๋„ค ๊ฐ€์ง€ ๊ฐ’์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
# sysctl kernel.printk
kernel.printk = 7 4 1 7
๋„ค ๊ฐ€์ง€ ๊ฐ’์€ ๋‹ค์Œ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
1. ๊ฐ’(value). ์ฝ˜์†” ๋กœ๊ทธ ์ˆ˜์ค€. ์ฝ˜์†”์— ์ธ์‡„๋˜๋Š” ๋ฉ”์‹œ์ง€์˜ ์ตœ์ € ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
2. ๊ฐ’(value). ๋ช…์‹œ์ ์ธ ๋กœ๊ทธ ์ˆ˜์ค€์ด ์ฒจ๋ถ€๋˜์ง€ ์•Š์€ ๋ฉ”์‹œ์ง€์˜ ๊ธฐ๋ณธ ๋กœ๊ทธ ์ˆ˜์ค€.
3. ๊ฐ’(value). ์ฝ˜์†” ๋กœ๊ทธ ์ˆ˜์ค€์— ๊ฐ€๋Šฅํ•œ ์ตœ์ € ์ˆ˜์ค€์˜ ๋กœ๊ทธ ์ˆ˜์ค€ ๊ตฌ์„ฑ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
4. ๊ฐ’(value). ๋ถ€ํŒ…์‹œ ์ฝ˜์†” ๋กœ๊ทธ ์ˆ˜์ค€์˜ ๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
์œ„์˜ ๊ฐ ๊ฐ’์€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ์œ„ํ•œ ๋‹ค๋ฅธ ๊ทœ์น™์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
์ฐธ๊ณ 
๊ฐ™์€ ํŠน์ • ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜, quiet ๋˜๋Š” debug ๊ธฐ๋ณธ ๋ณ€๊ฒฝ kernel.printk ๊ฐ’์„.
๊ด€๋ จ ์ •๋ณด
โ— kernel.printk ๋ฐ ๋กœ๊ทธ ์ˆ˜์ค€ ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ ์€ syslog(2)๋งค๋‰ด์–ผ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์‹ญ
์‹œ์˜ค.
์ œ 7 ์žฅ kdump ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ
7.1. kdump ๋ž€?
kdump ํฌ๋ž˜์‹œ ๋คํ”„ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ์ด ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‚˜์ค‘์— ๋ถ„์„ ํ• 
์ˆ˜ ์žˆ๋„๋ก ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‚ด์šฉ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ kdump ์‚ฌ์šฉํ•˜์—ฌ ์žฌ๋ถ€ํŒ…ํ•˜
์ง€ ์•Š๊ณ  kexec ๋‘ ๋ฒˆ์งธ ์ปค๋„ (์บก์ณ ์ปค๋„)๋กœ ๋ถ€ํŒ…ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ถฉ๋Œ ํ•œ ์ปค๋„ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‚ด์šฉ
( crash dump ๋˜๋Š” vmcore ) ์„ ์บก์ฒ˜ํ•˜์—ฌ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ปค๋„์€ ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์˜ˆ์•ฝ ๋œ
๋ถ€๋ถ„์— ์žˆ์Šต๋‹ˆ๋‹ค.
์ค‘์š”
์ปค๋„ ํฌ๋ž˜์‹œ ๋คํ”„๋Š” ์‹œ์Šคํ…œ ์žฅ์• (์‹ฌ๊ฐํ•œ ๋ฒ„๊ทธ)๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ์œ ์ผํ•œ ์ •๋ณด ์ผ
์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฏธ์…˜ ํฌ๋ฆฌํ‹ฐ์ปฌ ํ™˜๊ฒฝ์—์„œ kdump ๋ฅผ ํ™•์‹คํ•˜๊ฒŒ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ
๋‹ค. Red Hat ์€ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๊ฐ€ ์ผ๋ฐ˜ ์ปค๋„ ์—…๋ฐ์ดํŠธ์ฃผ๊ธฐ kexec-tools ๋ฅผ ์ •๊ธฐ์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜
์—ฌ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ƒˆ๋กœ์šด ์ปค๋„ ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์–ด์žˆ๋Š” ๊ฒฝ์šฐ์— ํŠนํžˆ ์ค‘์š”ํ•ฉ๋‹ˆ
๋‹ค.
7.2. kdump ์„ค์น˜
๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ kdump ์„œ๋น„์Šค๋Š” ์ƒˆ๋กœ์šด Red Hat Enterprise Linux ์„ค์น˜์‹œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์น˜๋˜๊ณ 
ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ์•„๋‚˜์ฝ˜๋‹ค ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ํ™”๋ฉด์„ ์ œ๊ณตํ•˜๋Š” kdump ๊ทธ๋ž˜ํ”ฝ ๋˜๋Š” ํ…์ŠคํŠธ ์ธํ„ฐ
ํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€ํ™”์‹ ์„ค์น˜๋ฅผ ์ˆ˜ํ–‰ ํ•  ๋•Œ ๊ตฌ์„ฑ. ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ ํ™”๋ฉด์€ ์ œ๋ชฉ์ด Kdump ์žˆ๊ณ 
๊ธฐ๋ณธ Installation Summary ํ™”๋ฉด ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ œํ•œ๋œ ๊ตฌ์„ฑ ๋งŒ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. kdump ํ™œ์„ฑ
ํ™” ์—ฌ๋ถ€ ์™€ ์˜ˆ์•ฝ๋œ ๋ฉ”๋ชจ๋ฆฌ ์–‘๋งŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค .
์‚ฌ์šฉ์ž ์ •์˜ ํ‚ฅ ์Šคํƒ€ํŠธ ์„ค์น˜์™€ ๊ฐ™์€ ์ผ๋ถ€ ์„ค์น˜ ์˜ต์…˜ kdump ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์น˜ ๋˜๋Š” ํ™œ์„ฑํ™”๋˜์ง€
์•Š์Šต๋‹ˆ๋‹ค . ์‹œ์Šคํ…œ์— ํ•ด๋‹นํ•˜๋Š” ๊ฒฝ์šฐ ์•„๋ž˜ ์ ˆ์ฐจ์— ๋”ฐ๋ผ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค kdump.
์ „์ œ ์กฐ๊ฑด
โ— ํ™œ์„ฑ Red Hat Enterprise Linux ์„œ๋ธŒ์Šคํฌ๋ฆฝ์…˜
โ— ์‹œ์Šคํ…œ์˜ CPU ์•„ํ‚คํ…์ฒ˜ ์šฉ kexec-tools ํŒจํ‚ค์ง€๊ฐ€์žˆ๋Š” ์ €์žฅ์†Œ
โ— kdump ์š”๊ตฌ ์‚ฌํ•ญ ์„ ์ถฉ์กฑ
๋‹จ๊ณ„
1. ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ kdump ์ด ์‹œ์Šคํ…œ์— ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
$ rpm -q kexec-tools
์ด ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ๋‹ค์Œ์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
kexec-tools-2.0.17-11.el8.x86_64
์ด ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ๋Š” ๋‹ค์Œ์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค
package kexec-tools is not installed
2. kdump ๋ฐ ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
# yum install kexec-tools
์ค‘์š”
Red Hat Enterprise Linux 7.4 (kernel-3.10.0-693.el7) ์ดํ›„๋ถ€ํ„ฐ kdump ๋Š” Intel IOMMU ๋“œ๋ผ์ด๋ฒ„๊ฐ€
์ง€์›๋˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „์˜ Red Hat Enterprise Linux 7.3 (ernel-3.10.0-514 [.XYZ] .el7)
๋˜๋Š” ๊ทธ ์ด์ „ ๋ฒ„์ „์—์„œ๋Š” Intel IOMMU ์ง€์›์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด์ œ
ํ•˜์ง€ ์•Š์œผ๋ฉด kdump ์ปค๋„์ด ์‘๋‹ตํ•˜์ง€ ์•Š์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— kdump ๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ ์‚ฌํ•ญ์˜ ์ž์„ธํ•œ ๋‚ด์šฉ์€ "kdump ๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ ์‚ฌํ•ญ" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
7.3 ๋ช…๋ น ์ค„์—์„œ kdump ์„ค์ •
7.3.1 ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ์„ค์ •
kdump ๊ธฐ๋Šฅ์— ์˜ˆ์•ฝ ๋œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์‹œ์Šคํ…œ ์‹œ์ž‘์‹œ์— ํ•ญ์ƒ ์˜ˆ์•ฝ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ์˜ ์–‘์€ ์‹œ์Šค
ํ…œ์˜ GRUB (Grand Unified Bootloader) 2 ์„ค์ •์—์„œ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” ๋ช…๋ น ์ค„์—
์„œ kdump ์˜ˆ์•ฝ ํ•œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์„ค์ • ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
โ— kdump ์š”๊ตฌ ์‚ฌํ•ญ ์„ ์ถฉ์กฑ.
๋‹จ๊ณ„
1. root ๊ถŒํ•œ์œผ๋กœ /etc/default/grub ํŒŒ์ผ์„ ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค.
2. crashkernel= ์˜ต์…˜์„ ์›ํ•˜๋Š” ๊ฐ’์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, 128 MB ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์˜ˆ์•ฝํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
crashkernel=128M
๋˜๋Š” ์„ค์น˜๋˜์–ด์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์–‘์— ๋”ฐ๋ผ ์˜ˆ์•ฝ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ๋ณ€์ˆ˜๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ
๋‹ค. ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์˜ˆ์•ฝ ๊ตฌ๋ฌธ ์ž…๋‹ˆ๋‹ค
crashkernel=<range1>:<size1>,<range2>:<size2>. ๋‹ค์Œ์— ์˜ˆ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
crashkernel=512M-2G:64M,2G-:128M
์œ„์˜ ์˜ˆ์—์„œ๋Š” ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ์˜ ํ•ฉ๊ณ„๊ฐ€ 512 MB ์ด์ƒ 2 GB ๋ฏธ๋งŒ์˜ ๊ฒฝ์šฐ 64 MB ์˜ ๋ฉ”๋ชจ
๋ฆฌ๋ฅผ ์˜ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ€ 2 GB๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” 128 MB๊ฐ€ kdump์šฉ์œผ๋กœ ์˜ˆ์•ฝ
๋ฉ๋‹ˆ๋‹ค.
โ— ์˜ˆ์•ฝ ๋œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์˜คํ”„์…‹.
crashkernel ์˜ˆ์•ฝ ๋งค์šฐ ๋น ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • ๊ณ ์ • ์˜คํ”„์…‹์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์˜ˆ์•ฝํ•ด์•ผ
ํ•˜๋Š” ์‹œ์Šคํ…œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ํŠน๋ณ„ํ•œ ์šฉ๋„์— ์ผ๋ถ€ ๊ณต๊ฐ„์„ ์˜ˆ์•ฝํ•˜๊ณ ์žํ•˜๋Š” ์‹œ์Šคํ…œ
๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜คํ”„์…‹์ด ์„ค์ •๋˜๋ฉด ์˜ˆ์•ฝ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๊ฑฐ๊ธฐ์—์„œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์˜ˆ์•ฝ ๋ฉ”๋ชจ๋ฆฌ
๋ฅผ ์˜คํ”„์…‹ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
crashkernel=128M@16M
์œ„์˜ ์˜ˆ๋Š” kdump ์ด 16 MB (๋ฌผ๋ฆฌ ์ฃผ์†Œ 0x01000000)์—์„œ ์‹œ์ž‘ 128 MB ์˜ ๋ฉ”๋ชจ๋ฆฌ
๋ฅผ ์˜ˆ์•ฝํ•˜๊ณ  ์žˆ์Œ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์˜คํ”„์…‹ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ 0 ์œผ๋กœ ์„ค์ •๋˜์–ด์žˆ๋Š” ๊ฒฝ์šฐ,
๋˜๋Š” ์™„์ „ํžˆ ์ƒ๋žต๋˜๋Š” ๊ฒฝ์šฐ kdump ์ž๋™์œผ๋กœ ์˜ˆ์•ฝ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์˜คํ”„์…‹ํ•ฉ๋‹ˆ๋‹ค. ์œ„์™€ ๊ฐ™
์ด ๋ณ€์ˆ˜ ๋ฉ”๋ชจ๋ฆฌ ์˜ˆ์•ฝ์„ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ์—๋„์ด ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์˜คํ”„์…‹
์€ ํ•ญ์ƒ ๋งˆ์ง€๋ง‰์— ์ง€์ •๋ฉ๋‹ˆ๋‹ค (์˜ˆ : crashkernel=512M-2G:64M,2G-:128 _M@16 _M).
3. ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ GRUB2 ์„ค์ • ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
# grub2-mkconfig -o /boot/grub2/grub.cfg
์ฐธ๊ณ 
kdump ์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ grub2-editenv ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ crashkernel =
<SOME_VALUE> ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ kernelopts ๋ณ€์ˆ˜์— ์ถ”๊ฐ€ํ•˜์—ฌ ๋ชจ๋“  ๋ถ€ํŒ… ํ•ญ๋ชฉ์„ ์—…๋ฐ์ดํŠธํ•˜๋Š”
๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜๋Š” grubby ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•œ ํ•ญ๋ชฉ์˜ ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์—…๋ฐ
์ดํŠธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— crashkernel=์˜ต์…˜์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ •์˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "kdump ๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ ์‚ฌ
ํ•ญ" ์— ์„ค๋ช… ๋œ ์ง€์นจ์— ๋”ฐ๋ผ auto ๊ฐ’์„ ์ง€์ •ํ•˜๋ฉด ์‹œ์Šคํ…œ์˜ ์ด ๋ฉ”๋ชจ๋ฆฌ์— ๋”ฐ๋ผ ์˜ˆ์•ฝ ๋ฉ”๋ชจ
๋ฆฌ์˜ ์ž๋™ ์„ค์ •์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ๋ฉ๋‹ˆ๋‹ค.
โ— ๋ถ€ํŒ… ํ•ญ๋ชฉ, kernelopts, grub2-editenv ๋ฐ grubby ์ž‘์—… ๋ฐฉ๋ฒ•์€ 4 ์žฅ ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€
์ˆ˜ ์„ค์ • ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
7.3.2 kdump ๋Œ€์ƒ ์„ค์ •
์ปค๋„ ์ถฉ๋Œ์ด ์บก์ฒ˜๋˜๋Š” ์ฝ”์–ด ๋คํ”„๊ฐ€ ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์žฅ์น˜์— ์ง์ ‘ ์“ฐ๊ฑฐ
๋‚˜ NFS(Network File System) ๋˜๋Š” SSH(Secure Shell) ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „
์†กํ•  ์ˆ˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋™์‹œ์— ์„ค์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋™์ž‘์€ vmcore ํŒŒ์ผ์„ ๋กœ์ปฌ
ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ /var/pkcs/๋””๋ ‰ํ† ๋ฆฌ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
โ— kdump ์š”๊ตฌ ์‚ฌํ•ญ ์„ ์ถฉ์กฑ.
๋‹จ๊ณ„
์ฝ”์–ด ๋คํ”„๋ฅผ ์ €์žฅํ•  ๋กœ์ปฌ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด root ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด /etc/kdump.conf ์„ค์ •
ํŒŒ์ผ์„ ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค.
1. #path /var/crash ์ค„ ์•ž์— ํ•ด์‹œ ๊ธฐํ˜ธ ( "#")๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
2. ๊ฐ’์„ ๋Œ€์ƒ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์˜ˆ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
path /usr/local/cores
์ค‘์š”
Red Hat Enterprise Linux 8 ์—์„œ ๊ฒฝ๋กœ ์ง€์ •๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ kdump ๋Œ€์ƒ์œผ๋กœ ์ •์˜ ๋œ ๋””
๋ ‰ํ† ๋ฆฌ๊ฐ€ kdump systemd ์„œ๋น„์Šค ์‹œ์ž‘์‹œ์— ์กด์žฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ
์„œ๋น„์Šค๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์ด ๋™์ž‘์€ ์„œ๋น„์Šค ์‹œ์ž‘์‹œ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์—†์œผ๋ฉด ์ž๋™์œผ๋กœ ์ƒ์„ฑ ๋œ
Red hat Enterprise Linux ์˜ ์ด์ „ ๋ฆด๋ฆฌ์Šค์™€๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
๋‹ค๋ฅธ ํŒŒํ‹ฐ์…˜์— ํŒŒ์ผ์„ ์“ฐ๋ ค๋ฉด root ๊ถŒํ•œ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด /etc/kdump.conf ์„ค์ • ํŒŒ์ผ์„ ํŽธ์ง‘ํ•ฉ
๋‹ˆ๋‹ค.
1. ํ•„์š”์— ๋”ฐ๋ผ #ext4 ์ค„ ์•ž์— ํ•ด์‹œ ๊ธฐํ˜ธ ( "#")๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
โ— ์žฅ์น˜ ์ด๋ฆ„ ( #ext4 /dev/vg/lv_kdump ํ–‰)
โ— ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ ˆ์ด๋ธ” ( #ext4 LABEL=/boot ํ–‰)
โ— UUID ( #ext4 UUID=03138356-5e61-4ab3-b58e-27507ac41937 ํ–‰)
2. ํŒŒ์ผ ์‹œ์Šคํ…œ ์œ ํ˜•๊ณผ ์žฅ์น˜ ์ด๋ฆ„, ๋ ˆ์ด๋ธ” UUID ๋ฅผ ์›ํ•˜๋Š” ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์—
์˜ˆ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
ext4 UUID = 03138356-5e61-4ab3-b58e-27507ac41937
์ค‘์š”
LABEL= UUID=๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ €์žฅ ์žฅ์น˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค๋ฉ๋‹ˆ๋‹ค. /dev/sda3 ๋“ฑ์˜ ๋””
์Šคํฌ ์žฅ์น˜ ์ด๋ฆ„์€ ์žฌ๋ถ€ํŒ…์‹œ ์ผ๊ด€์„ฑ์€ ๋ณด์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ค‘์š”
IBM Z ํ•˜๋“œ์›จ์–ด์˜ Direct Access Storage Device (DASD)๋กœ ๋คํ”„ํ•˜๋Š” ๊ฒฝ์šฐ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์ „
์— /etc/dasd.conf ๋คํ”„ ์žฅ์น˜๊ฐ€ ์ œ๋Œ€๋กœ ์ง€์ •๋˜์–ด ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.
๋คํ”„ ์žฅ์น˜์— ์ง์ ‘ ์“ฐ๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
1. #raw /dev/vg/lv_kdump ์ค„ ์•ž์— ํ•ด์‹œ ๊ธฐํ˜ธ ( "#")๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
2. ๊ฐ’์„ ๋Œ€์ƒ ์žฅ์น˜ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์˜ˆ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
raw /dev/sdb1
NFS ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ ์ปดํ“จํ„ฐ์— ๋คํ”„๋ฅผ ์ €์žฅํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค:
1. #nfs my.server.com:/export/tmp ์ค„ ์•ž์— ํ•ด์‹œ ๊ธฐํ˜ธ ( "#")๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
2. ๊ฐ’์„ ์˜ฌ๋ฐ”๋ฅธ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์˜ˆ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
nfs penguin.example.com:/export/cores
SSH ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ ์ปดํ“จํ„ฐ์— ๋คํ”„๋ฅผ ์ €์žฅํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
1. #ssh user@my.server.com ์ค„ ์•ž์— ํ•ด์‹œ ๊ธฐํ˜ธ ( "#")๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
2. ๊ฐ’์„ ์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์œผ๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.
3. SSH ํ‚ค ์„ค์ •์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
โ— #sshkey /root/.ssh/kdump_id_rsa ์ค„ ์•ž์— ํ•ด์‹œ ๊ธฐํ˜ธ ( "#")๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
โ— ๊ฐ’์„ ๋คํ”„ ๋Œ€์ƒ ์„œ๋ฒ„์— ์˜ฌ๋ฐ”๋ฅธ ํ‚ค์˜ ์œ„์น˜๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์˜ˆ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
ssh john@penguin.example.com
sshkey /root/.ssh/mykey
๊ด€๋ จ ์ •๋ณด
โ— ์ง€์›ํ•˜๋Š” ๋คํ”„ ๋Œ€์ƒ๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋คํ”„ ๋Œ€์ƒ ์œ ํ˜•๋ณ„ ๋ชฉ๋ก์€ "์ง€์› kdump ๋คํ”„ ๋Œ€
์ƒ" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
โ— SSH ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ํ‚ค ๊ธฐ๋ฐ˜ ์ธ์ฆ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ Red Hat Enterprise Linux ์˜ "
๊ธฐ๋ณธ ์‹œ์Šคํ…œ ์„ค์ • ๊ตฌ์„ฑ" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
7.3.3 ์ฝ”์–ด ์ฝœ๋ ‰ํ„ฐ ์„ค์ •
kdump ๋Š” core collector ๋กœ ์ง€์ •๋œ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜์—ฌ vmcore ๋ฅผ ์บก์ฒ˜ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์™„๋ฒฝํ•˜๊ฒŒ
์ง€์›ํ•˜๋Š” core collector ๋Š” makedumpfile ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฟ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋ช‡ ๊ฐ€์ง€ ์„ค์ • ๊ฐ€๋Šฅํ•œ ์˜ต์…˜
์ด ์ปฌ๋ ‰์…˜ ํ”„๋กœ์„ธ์Šค์— ์˜ํ–ฅ์„์ค๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ˆ˜์ง‘ ๋œ ๋ฐ์ดํ„ฐ์˜ ๋ฒ”์œ„์™€ ์ƒ์„ฑ ๋œ vmcore ๋ฅผ
์••์ถ•ํ• ์ง€ ์—ฌ๋ถ€ ๋“ฑ์ž…๋‹ˆ๋‹ค.
core collector ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ  ์„ค์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
โ— kdump ์š”๊ตฌ ์‚ฌํ•ญ ์„ ์ถฉ์กฑ.
๋‹จ๊ณ„
1. root ๊ถŒํ•œ์œผ๋กœ, /etc/kdump.conf ์„ค์ • ํŒŒ์ผ์„ ํŽธ์ง‘ํ•˜์—ฌ #core_collector makedumpfile -l
--message-level 1 -d 31 ์ค„ ์•ž์— ํ•ด์‹œ ๊ธฐํ˜ธ ( "#")๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
2. -c ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์˜ˆ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
core_collector makedumpfile -c
์œ„์˜ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด ๋คํ”„ ํŒŒ์ผ์˜ ์••์ถ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
3. -d ๊ฐ’๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์˜ˆ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
core_collector makedumpfile -d 17 -c
์œ„์˜ ๋ช…๋ น์€ ๋คํ”„์—์„œ โ€œ0โ€ ๋ฐ ๋นˆ ํŽ˜์ด์ง€๋ฅผ ๋ชจ๋‘ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’ ์€ ๋น„ํŠธ ๋งˆ์Šคํฌ๋ฅผ ๋‚˜
ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ๋Š” ๊ฐ ๋น„ํŠธ๊ฐ€ ํŠน์ • ์œ ํ˜•์˜ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€์™€ ๊ด€๋ จ๋œ ํ•ด๋‹น ์œ ํ˜•์˜ ํŽ˜์ด
์ง€๊ฐ€ ์ˆ˜์ง‘๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋น„ํŠธ์˜ ์„ค๋ช…์€ "์ง€์›๋˜๋Š” kdump ํ•„ํ„ฐ ์ˆ˜์ค€" ์„
์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
๊ด€๋ จ ์ •๋ณด
โ— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์˜ต์…˜์˜ ์ „์ฒด ๋ชฉ๋ก์€ makedumpfile(8)man ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
7.3.4. kdump ๊ธฐ๋ณธ ์žฅ์•  ์‘๋‹ต ์„ค์ •
๊ธฐ๋ณธ์ ์œผ๋กœ kdump ์ด "kdump ๋Œ€์ƒ ์„ค์ •"์— ์ง€์ •๋œ ์œ„์น˜์—์„œ vmcore ๋คํ”„ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์ง€ ๋ชป
ํ•˜๋ฉด ์‹œ์Šคํ…œ์ด ์žฌ๋ถ€ํŒ…๋˜๊ณ  ํ”„๋กœ์„ธ์Šค์—์„œ ๋คํ”„๊ฐ€ ์†์‹ค๋ฉ๋‹ˆ๋‹ค. ์ด ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ์•„๋ž˜ ์ ˆ์ฐจ
๋ฅผ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค.
์ „์ œ ์กฐ๊ฑด
โ— kdump ์š”๊ตฌ ์‚ฌํ•ญ ์„ ์ถฉ์กฑ.
๋‹จ๊ณ„
1. root ๊ถŒํ•œ์œผ๋กœ, /etc/kdump.conf ์„ค์ • ํŒŒ์ผ #default shell ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ํ•ด์‹œ ๊ธฐํ˜ธ ( "#")
๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
2. "์ง€์›ํ•˜๋Š” ๊ธฐ๋ณธ ์žฅ์•  ์‘๋‹ต" ์˜ ์„ค๋ช…๋Œ€๋กœ ๊ฐ’์„ ์›ํ•˜๋Š” ์•ก์…˜์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์˜ˆ๋ฅผ ๋‚˜
ํƒ€๋ƒ…๋‹ˆ๋‹ค.
default poweroff
7.3.5. kdump ์„œ๋น„์Šค์˜ ํ™œ์„ฑํ™” ๋ฐ ๋น„ํ™œ์„ฑํ™”
์‹œ์Šคํ…œ ์‹œ์ž‘์‹œ kdump ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
โ— kdump ์š”๊ตฌ ์‚ฌํ•ญ ์„ ์ถฉ์กฑํ•˜๊ณ ์žˆ๋‹ค.
โ— ๋ชจ๋“  ์„ค์ • ์ด ํ•„์š”์— ๋”ฐ๋ผ ์„ค์ •๋˜์–ด์žˆ๋‹ค.
๋‹จ๊ณ„
1. kdump ์„œ๋น„์Šค๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
# systemctl enable kdump.service
์ด๋กœ ์ธํ•ด multi-user.target ์„œ๋น„์Šค๊ฐ€ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
2. ํ˜„์žฌ ์„ธ์…˜์—์„œ ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
# systemctl start kdump.service
3. kdump ์„œ๋น„์Šค๋ฅผ ์ค‘์ง€ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
# systemctl stop kdump.service
4. kdump ์„œ๋น„์Šค๋ฅผ ํ•ด์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
# systemctl disable kdump.service
๊ด€๋ จ ์ •๋ณด
โ— systemd ์„ธ๋ถ€ ์ผ๋ฐ˜์ ์ธ ์„œ๋น„์Šค ์„ค์ •์€ Red Hat Enterprise Linux ์˜ " ๊ธฐ๋ณธ ์‹œ์Šคํ…œ ์„ค
์ • "์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
7.4 Web ์ฝ˜์†”์—์„œ kdump ์„ค์ •
๋‹ค์Œ ์„น์…˜์—์„œ๋Š” Red Hat Enterprise Linux ์›น์ฝ˜์†”์„ ํ†ตํ•ด kdump ๋ฅผ ์„ค์ •ํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•
์— ๋Œ€ํ•œ ๊ฐœ์š”๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์›น์ฝ˜์†”์€ Red Hat Enterprise Linux 8 ์˜ ๊ธฐ๋ณธ ์„ค์น˜์— ํฌํ•จ๋˜์–ด ์žˆ
์œผ๋ฉฐ, ์‹œ์Šคํ…œ ์‹œ์ž‘์‹œ kdump ์„œ๋น„์Šค๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™” ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, kdump ์˜ˆ์•ฝ ๋ฉ”
๋ชจ๋ฆฌ๋ฅผ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๋น„ ์••์ถ• ๋˜๋Š” ์••์ถ• ํ˜•์‹์œผ๋กœ vmcore ์˜ ์ €์žฅ ์œ„์น˜๋ฅผ ์„ ํƒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
โ— ์ž์„ธํ•œ ๋‚ด์šฉ์€ "Red Hat Enterprise Linux web console" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
7.4.1. Web ์ฝ˜์†”์—์„œ kdump ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰๊ณผ ๋Œ€์ƒ ์œ„์น˜๋ฅผ ์„ค์ •
๋‹ค์Œ ๋‹จ๊ณ„๋Š” Red Hat Enterprise Linux ์›น์ฝ˜์†” ์ธํ„ฐํŽ˜์ด์Šค์˜ Kernel Dump ํƒญ์„ ์‚ฌ์šฉํ•˜์—ฌ kdump
์ปค๋„ ์šฉ์œผ๋กœ ์˜ˆ์•ฝ ๋œ ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ๋Š” vmcore ๋คํ”„
ํŒŒ์ผ์˜ ๋Œ€์ƒ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์„ค์ •์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
โ— Web ์ฝ˜์†” ์ž‘์—… ๊ฐœ์š”
๋‹จ๊ณ„
1. Kernel Dump ํƒญ์„ ์—ด๊ณ  kdump ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
2. ๋ช…๋ น ์ค„ ์—์„œ kdump ์˜ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
3. Crash dump location ์˜ต์…˜ ์˜†์—์žˆ๋Š” ๋งํฌ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
4. ๋“œ๋กญ ๋‹ค์šด ๋ฉ”๋‰ด์—์„œ Local Filesystems ์˜ต์…˜์„ ์„ ํƒํ•˜๊ณ  ๋คํ”„๋ฅผ ์ €์žฅํ•  ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ง€์ •
ํ•ฉ๋‹ˆ๋‹ค.
๋˜๋Š” ๋“œ๋กญ ๋‹ค์šด์—์„œ Remote over SSH ์˜ต์…˜์„ ์„ ํƒํ•˜๊ณ  SSH ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ
vmcore ์„ ์›๊ฒฉ ์‹œ์Šคํ…œ์œผ๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
Server, ssh key, Directory ์˜ ๊ฐ ํ•„๋“œ์— ์›๊ฒฉ ์ปดํ“จํ„ฐ์˜ ์ฃผ์†Œ, ssh ํ‚ค์˜ ์œ„์น˜ ๋ฐ ๋Œ€
์ƒ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
๋˜๋Š” ๋“œ๋กญ ๋‹ค์šด์—์„œ Remote over NFS ์˜ต์…˜์„ ์„ ํƒํ•˜๊ณ  Mount ํ•„๋“œ์— ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜
์—ฌ NFS ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ vmcore ์„ ์›๊ฒฉ ์ปดํ“จํ„ฐ์— ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ฐธ๊ณ 
Compression ์ฒดํฌ ๋ฐ•์Šค์— ์ฒดํฌ ํ‘œ์‹œ๋ฅผํ•˜๊ณ  vmcore ํŒŒ์ผ์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต
๋‹ˆ๋‹ค.
5. ์ปค๋„ ํฌ๋ž˜์‹œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์„ค์ •์„ ํ…Œ์ŠคํŠธ ํ•˜์‹ญ์‹œ์˜ค.
๊ฒฝ๊ณ 
์ด ๋‹จ๊ณ„์—์„œ๋Š” ์ปค๋„์˜ ์‹คํ–‰์„ ์ค‘๋‹จํ•˜๊ณ  ์‹œ์Šคํ…œ ํฌ๋ž˜์‹œ๋‚˜ ๋ฐ์ดํ„ฐ ์†์‹ค์ด ๋ฐœ์ƒ ํ•  ์ˆ˜ ์žˆ
์Šต๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— ํ˜„์žฌ ์ง€์›๋˜๋Š” kdump ๋Œ€์ƒ์˜ ์ „์ฒด ๋ชฉ๋ก์€ "์ง€์›๋˜๋Š” kdump ๋คํ”„ ๋Œ€์ƒ" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ
์˜ค.
โ— SSH ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ํ‚ค ๊ธฐ๋ฐ˜ ์ธ์ฆ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ Red Hat Enterprise Linux ์˜ "
๊ธฐ๋ณธ ์‹œ์Šคํ…œ ์„ค์ • ๊ตฌ์„ฑ" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
7.5. ์ง€์›ํ•˜๋Š” kdump ์„ค์ • ๋ฐ ๋คํ”„ ๋Œ€์ƒ
7.5.1. kdump ๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ ์‚ฌํ•ญ
์œ„ํ•ด์„œ๋Š” kdump ์ปค๋„ ํฌ๋ž˜์‹œ ๋คํ”„๋ฅผ ์บก์ฒ˜ํ•˜๊ณ  ์ถ”๊ฐ€ ๋ถ„์„์„ ์œ„ํ•ด ์ €์žฅ ํ•  ์ˆ˜ ์žˆ๋„๋ก, ์‹œ์Šคํ…œ ๋ฉ”
๋ชจ๋ฆฌ์˜ ์ผ๋ถ€๊ฐ€ ์˜๊ตฌ์ ์œผ๋กœ ์บก์ฒ˜ ์ปค๋„์— ์˜ˆ์•ฝํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์•ฝ๋˜๋ฉด ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ์˜์ด ๋ถ€๋ถ„์„
๊ธฐ๋ณธ ์ปค๋„์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ ์‚ฌํ•ญ์€ ํŠน์ • ์‹œ์Šคํ…œ ๋งค๊ฐœ ๋ณ€์ˆ˜์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ฃผ์š” ์š”์ธ ์ค‘ ํ•˜๋‚˜๋Š” ์‹œ์Šคํ…œ์˜
ํ•˜๋“œ์›จ์–ด ์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค. ์ •ํ™•ํ•œ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜ (์˜ˆ : x86_64 ๋ผ๊ณ ๋„ํ•˜๋Š” Intel 64 ๋ฐ
AMD64)๋ฅผ ์ฐพ์•„ ํ‘œ์ค€ ์ถœ๋ ฅ์œผ๋กœ ์ธ์‡„ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.
$ uname -m
์•„๋ž˜ ํ‘œ์—๋Š”์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ์ž๋™์œผ๋กœ ์˜ˆ์•ฝํ•˜๊ธฐ์œ„ํ•œ ์ตœ์†Œ ๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ ์‚ฌํ•ญ ๋ชฉ๋ก์ด ํฌ
ํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค kdump. ํฌ๊ธฐ๋Š” ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜ ๋ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ด ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘
๋‹ˆ๋‹ค.
ํ‘œ 7.1. kdump ์— ํ•„์š”ํ•œ ์˜ˆ์•ฝ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ตœ์†Œ๋Ÿ‰
์•„ํ‚คํ…์ฒ˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ตœ์†Œ ์˜ˆ์•ฝ ๋ฉ”๋ชจ๋ฆฌ
AMD64 ๋ฐ Intel 64 ( x86_64)
1GB ~ 64GB 160MB ์˜ RAM.
64GB ~ 1TB 256MB ์˜ RAM
์•„ํ‚คํ…์ฒ˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ตœ์†Œ ์˜ˆ์•ฝ ๋ฉ”๋ชจ๋ฆฌ
1TB ์ด์ƒ 512MB ์˜ RAM
64 ๋น„ํŠธ ARM ์•„ํ‚คํ…์ฒ˜
( arm64)
2GB ์ด์ƒ 512MB ์˜ RAM
IBM Power Systems ( ppc64le)
2GB ~ 4GB 384MB ์˜ RAM.
4GB ~ 16GB 512MB ์˜ RAM
16GB ~ 64GB 1GB ์˜ RAM.
64GB ~ 128GB 2GB ์˜ RAM.
128GB ์ด์ƒ 4GB ์˜ RAM.
IBM Z ( s390x)
4GB ~ 64GB 160MB ์˜ RAM.
64GB ~ 1TB 256MB ์˜ RAM
1TB ์ด์ƒ 512MB ์˜ RAM
๋งŽ์€ ์‹œ์Šคํ…œ์—์„œ kdump ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์–‘์„ ์˜ˆ์ธกํ•˜์—ฌ ์ž๋™์œผ๋กœ ์˜ˆ์•ฝ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋™์ž‘์€
๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ด๋Ÿ‰ ์ด ์ผ์ • ์ด์ƒ์ธ ์‹œ์Šคํ…œ์—์„œ๋งŒ ์ž‘๋™ํ•ฉ
๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‹œ์Šคํ…œ์˜ ์•„ํ‚คํ…์ฒ˜์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
์ค‘์š”
์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ ์ด๋Ÿ‰์— ๊ทผ๊ฑฐ ์˜ˆ์•ฝ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ž๋™ ์„ค์ •์€ ์ตœ์„ ํ˜• ์˜ˆ์ธก์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ํ•„์š”ํ•œ ๋ฉ”
๋ชจ๋ฆฌ๋Š” I/O ์žฅ์น˜ ๋“ฑ์˜ ๋‹ค๋ฅธ ์š”์†Œ์— ๋”ฐ๋ผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ปค๋„
ํŒจ๋‹‰์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋””๋ฒ„๊ทธ ์ปค๋„์ด ์บก์ฒ˜ ์ปค๋„๋กœ ๋ถ€ํŒ… ํ•  ์ˆ˜ ์—†๊ฒŒ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ
์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ํฌ๋ž˜์‹œ ์ปค๋„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ถฉ๋ถ„ํ•œ ํฌ๊ธฐ๋กœํ•ฉ๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— ๋ช…๋ น ์ค„์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์€ "๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ์„ค์ •" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
โ— Web ์ฝ˜์†”์—์„œ ์˜ˆ์•ฝ ๋œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์–‘์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ "Web ์ฝ˜์†”์—์„œ kdump ๋ฉ”๋ชจ๋ฆฌ
์‚ฌ์šฉ๋Ÿ‰๊ณผ ๋Œ€์ƒ ์œ„์น˜๋ฅผ ์„ค์ •" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
โ— Red Hat Enterprise Linux ์˜ ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ  ๊ธฐ๋Šฅ๊ณผ ์ œํ•œ์€ ๊ธฐ์ˆ  ๊ธฐ๋Šฅ๊ณผ ์ œํ•œ ํ‘œ ๋ฅผ ์ฐธ์กฐํ•˜
์‹ญ์‹œ์˜ค.
7.5.2 ๋ฉ”๋ชจ๋ฆฌ ์ž๋™ ์˜ˆ์•ฝ ์ตœ์†Œ ์ž„๊ณ„ ๊ฐ’
์ผ๋ถ€ ์‹œ์Šคํ…œ์—์„œ๋Š” ๋ถ€ํŠธ ๋กœ๋” ์„ค์ • ํŒŒ์ผ์—์„œ crashkernel=auto ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๊ทธ๋ž˜ํ”ฝ
์„ค์ • ์œ ํ‹ธ๋ฆฌํ‹ฐ์—์„œ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ kdump ์šฉ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ž๋™์œผ๋กœ ํ• ๋‹น ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ
๋‚˜์ด ์ž๋™ ์˜ˆ์•ฝ ๊ธฐ๋Šฅํ•˜๋ ค๋ฉด ์ „์ฒด ๋ฉ”๋ชจ๋ฆฌ์˜ ํŠน์ • ์–‘์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”
ํ•œ ์šฉ๋Ÿ‰์€ ์‹œ์Šคํ…œ์˜ ์•„ํ‚คํ…์ฒ˜์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
๋‹ค์Œ ํ‘œ๋Š” ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ์ž„๊ณ„ ๊ฐ’์˜ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ…Œ์ด๋ธ”์˜ ์ง€์ •๋ณด๋‹ค ๋‚ฎ
์€ ๊ฒฝ์šฐ, ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ˆ˜๋™์œผ๋กœ ์˜ˆ์•ฝ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
ํ‘œ 7.2 ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ์˜ˆ์•ฝ ํ•„์š”ํ•œ ์ตœ์†Œ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ
์•„ํ‚คํ…์ฒ˜ ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ
AMD64 ๋ฐ Intel 64
( x86_64)
2GB
IBM Power Systems
( ppc64le)
2GB
IBM Z ( s390x) 4GB
๊ด€๋ จ ์ •๋ณด
โ— ๋ช…๋ น ์ค„์—์„œ ์ด๋Ÿฌํ•œ ์„ค์ •์„ ์ˆ˜๋™์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์€ "๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ์„ค์ •" ์„ ์ฐธ์กฐํ•˜
์‹ญ์‹œ์˜ค.
โ— Web ์ฝ˜์†”์„ ํ†ตํ•ด ์˜ˆ์•ฝ ๋ฉ”๋ชจ๋ฆฌ์˜ ์–‘์„ ์ˆ˜๋™์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์€ "Web ์ฝ˜์†”์—์„œ
kdump ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰๊ณผ ๋Œ€์ƒ ์œ„์น˜๋ฅผ ์„ค์ •" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
7.5.3. ์ง€์›ํ•˜๋Š” kdump ๋คํ”„ ๋Œ€์ƒ
์ปค๋„ ํฌ๋ž˜์‹œ๊ฐ€ ์บก์ฒ˜๋˜๋ฉด vmcore ๋คํ”„ ํŒŒ์ผ์€ ์žฅ์น˜์— ์ง์ ‘ ์“ฐ๊ฑฐ๋‚˜ ๋กœ์ปฌ ํŒŒ์ผ์‹œ์Šคํ…œ์—์„œ ํŒŒ์ผ
๋กœ ์ €์žฅ๋˜๊ฑฐ๋‚˜ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ํ‘œ๋Š” ํ˜„์žฌ ์ง€์› ๋คํ”„ ๋Œ€์ƒ ๋˜๋Š” kdump ๋ช…์‹œ
์ ์œผ๋กœ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋คํ”„ ๋Œ€์ƒ์˜ ์ „์ฒด ๋ชฉ๋ก์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
ํ‘œ 7.3 ์ง€์›ํ•˜๋Š” kdump ๋คํ”„ ๋Œ€์ƒ
ํƒ€์ž… ์ง€์›ํ•˜๋Š” ๋คํ”„ ๋Œ€์ƒ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋คํ”„ ๋Œ€์ƒ
Raw ์žฅ์น˜ ๋กœ์ปฌ์—์„œ ์ฒจ๋ถ€ ๋œ ๋ชจ๋“  raw ๋””์Šคํฌ์™€
ํŒŒํ‹ฐ์…˜
๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ ์ง์ ‘ ์—ฐ๊ฒฐ๋œ ๋””์Šคํฌ ๋“œ๋ผ์ด๋ธŒ, ํ•˜๋“œ์›จ
์–ด RAID ๋…ผ๋ฆฌ ๋“œ๋ผ์ด๋ธŒ LVM ์žฅ
์น˜, mdraid ์–ด๋ ˆ์ด์˜ ext2, ext 3, ext4 ,
๋ฐ xfs ํŒŒ์ผ ์‹œ์Šคํ…œ.
auto ์œ ํ˜• (์ž๋™ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ฐ์ง€) ์„
ํฌํ•จํ•˜์—ฌ ํ‘œ์—์„œ ๋ช…์‹œ์ ์œผ๋กœ ์ž์˜๋˜์ง€
์•Š์€ ๋กœ์ปฌ ํŒŒ์ผ์‹œ์Šคํ…œ.
์›๊ฒฉ ๋””๋ ‰ํ† ๋ฆฌ IPv4 ๋ฅผ ํ†ตํ•œ NFS ๋˜๋Š” SSH ํ”„๋กœํ† ์ฝœ์„
์‚ฌ์šฉํ•˜์—ฌ ์—‘์„ธ์Šค ํ•œ ์›๊ฒฉ ๋””๋ ‰ํ† ๋ฆฌ.
NFS ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ก์„ธ์Šค
ํ•œ rootfs ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ์›๊ฒฉ ๋””๋ ‰ํ† ๋ฆฌ.
iSCSI ํ•˜๋“œ์›จ์–ด ๋ฐ
์†Œํ”„ํŠธ์›จ์–ด ์ด๋‹ˆ์‹œ
์—์ดํ„ฐ๋ฅผ ํ†ตํ•ด ํ”„๋กœ
ํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ก
์„ธ์Šค ํ•œ ์›๊ฒฉ ๋””๋ ‰
ํ† ๋ฆฌ .
be2iscsi ํ•˜๋“œ์›จ์–ด์—์„œ iSCSI ํ”„๋กœํ† ์ฝœ์„
์‚ฌ์šฉํ•˜์—ฌ ์•ก์„ธ์Šคํ•˜๋Š” ์›๊ฒฉ ๋””๋ ‰ํ† ๋ฆฌ.
๋‹ค์ค‘ ๊ฒฝ๋กœ ๊ธฐ๋ฐ˜์˜ ์Šคํ† ๋ฆฌ์ง€
IPv6 ๊ธฐ๋ฐ˜์œผ๋กœ ์•ก์„ธ์Šคํ•˜๋Š” ์›๊ฒฉ ๋””๋ ‰
ํ† ๋ฆฌ
SMB ๋˜๋Š” CIFS ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ก์„ธ์Šคํ•˜๋Š”
์›๊ฒฉ ๋””๋ ‰ํ† ๋ฆฌ.
FCoE( Fibre Channel over Ethernet )
ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ก์„ธ์Šคํ•˜๋Š” ์›๊ฒฉ
๋””๋ ‰ํ† ๋ฆฌ.
๋ฌด์„  ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์•ก์„ธ
์Šคํ•˜๋Š” ์›๊ฒฉ ๋””๋ ‰ํ† ๋ฆฌ
๊ด€๋ จ ์ •๋ณด
โ— ๋ช…๋ น ์ค„์—์„œ ๋Œ€์ƒ ์œ ํ˜•์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ "kdump ๋Œ€์ƒ ์„ค์ •" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
โ— Web ์ฝ˜์†”์—์„œ ๋Œ€์ƒ์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ "Web ์ฝ˜์†”์—์„œ kdump ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰๊ณผ ๋Œ€์ƒ
์œ„์น˜๋ฅผ ์„ค์ •" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
7.5.4. ์ง€์›ํ•˜๋Š” kdump ํ•„ํ„ฐ ์ˆ˜์ค€
๋คํ”„ ํŒŒ์ผ์˜ ํฌ๊ธฐ๋ฅผ ์ถ•์†Œํ•˜๊ธฐ ์œ„ํ•ด kdump ๋Š” makedumpfile ์ฝ”์–ด ์ฝœ๋ ‰ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์••
์ถ•ํ•˜๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ๋ถˆํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ํ‘œ๋Š” makedumpfile์œ ํ‹ธ๋ฆฌํ‹ฐ์—์„œ ํ˜„์žฌ ์ง€
์›ํ•˜๋Š” ํ•„ํ„ฐ ์ˆ˜์ค€์˜ ์ „์ฒด ๋ชฉ๋ก์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
ํ‘œ 7.4 ์ง€์›ํ•˜๋Š” ํ•„ํ„ฐ ์ˆ˜์ค€
์˜ต์…˜ ์„ค๋ช…
1 ์ œ๋กœ ํŽ˜์ด์ง€(zero pages)
2 ์บ์‹œ ํŽ˜์ด์ง€(Cache pages)
4 ์บ์‹œ ์ „์šฉ(Cache private)
8 ์‚ฌ์šฉ์ž ํŽ˜์ด์ง€(User pages)
16 ๋นˆ ํŽ˜์ด์ง€(Free pages)
์ฐธ๊ณ 
makedumpfile ๋ช…๋ น์€ ํˆฌ๋ช…ํ•œ ๋Œ€ํ˜• ํŽ˜์ด์ง€ ๋ฐ hugetlbfs ํŽ˜์ด์ง€์˜ ์‚ญ์ œ์— ๋Œ€์‘ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ
๋‹ค. ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ hugepages User Page ๋ชจ๋‘๋ฅผ ์ƒ๊ฐํ•˜๋Š” -8 ์ˆ˜์ค€์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— ๋ช…๋ น ์ค„์—์„œ ์ฝ”์–ด ์ฝœ๋ ‰ํ„ฐ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ "์ฝ”์–ด ์ฝœ๋ ‰ํ„ฐ ์„ค์ •" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
7.5.5. ์ง€์›ํ•˜๋Š” ๊ธฐ๋ณธ ์žฅ์•  ์‘๋‹ต
๊ธฐ๋ณธ์ ์œผ๋กœ kdump ์ด ์ฝ”์–ด ๋คํ”„๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜์—†๋Š” ๊ฒฝ์šฐ, ์šด์˜ ์ฒด์ œ๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ฝ”
์–ด ๋คํ”„๋ฅผ ์ฃผ ๋Œ€์ƒ์œผ๋กœ ์ €์žฅํ•  ์ˆ˜์—†๋Š” ๊ฒฝ์šฐ kdump ๊ฐ€ ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต
๋‹ˆ๋‹ค. ๋‹ค์Œ ํ‘œ๋Š” ํ˜„์žฌ ์ง€์›๋˜๋Š” ๋ชจ๋“  ๊ธฐ๋ณธ ์ž‘์—… ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.
ํ‘œ 7.5 ์ง€์›ํ•˜๋Š” ๊ธฐ๋ณธ ๋™์ž‘
์˜ต์…˜ ์„ค๋ช…
dump_to_rootfs root ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์ฝ”์–ด ๋คํ”„์˜ ์ €์žฅ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ๋คํ”„ ๋Œ€์ƒ๊ณผ ๋ณ‘์šฉํ•˜๋Š”
๊ฒฝ์šฐ์— ํŠนํžˆ ์œ ์šฉํ•œ ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ๋คํ”„ ๋Œ€์ƒ์— ์—ฐ๊ฒฐํ•  ์ˆ˜์—†๋Š” ๊ฒฝ์šฐ ๋กœ์ปฌ ์ฝ”
์–ด ๋คํ”„๋ฅผ ์ €์žฅํ•˜๋„๋ก kdump ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์€ ๋‚˜์ค‘์— ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
reboot ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”์–ด ๋คํ”„๋Š” ์†์‹ค๋ฉ๋‹ˆ๋‹ค.
halt ์‹œ์Šคํ…œ์„ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”์–ด ๋คํ”„๋Š” ์†์‹ค๋ฉ๋‹ˆ๋‹ค.
์˜ต์…˜ ์„ค๋ช…
poweroff ์‹œ์Šคํ…œ์˜ ์ „์›์„ ๋•๋‹ˆ๋‹ค. ์ฝ”์–ด ๋คํ”„๋Š” ์†์‹ค๋ฉ๋‹ˆ๋‹ค.
shell initramfs ๋‚ด์—์„œ shell ์„ธ์…˜์„ ์‹คํ–‰ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜๋™์œผ๋กœ ์ฝ”์–ด ๋คํ”„๋ฅผ ๊ธฐ๋ก ํ•  ์ˆ˜
์žˆ๋„๋กํ•ฉ๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— ๋ช…๋ น ์ค„์—์„œ ๊ธฐ๋ณธ ์‹คํŒจ ์‘๋‹ต์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ "kdump ๊ธฐ๋ณธ ์žฅ
์•  ์‘๋‹ต ์„ค์ •" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
7.5.6. kdump ํฌ๊ธฐ ์ถ”์ •(Estimating)
kdump ํ™˜๊ฒฝ ๊ณ„ํš ๋ฐ ๊ตฌ์ถ•์‹œ์—๋Š” ๋คํ”„ ํŒŒ์ผ์— ํ•„์š”ํ•œ ๊ณต๊ฐ„์„ ํŒŒ์•…ํ•˜๊ณ  ์ž‘์„ฑํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
makedumpfile --mem-usage ๋ช…๋ น์€ ์ œ์™ธ ๊ฐ€๋Šฅํ•œ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์œ ์šฉํ•œ ๋ณด๊ณ ์„œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ• ๋‹น g
ํ•  ๋คํ”„ ๋ ˆ๋ฒจ์„ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์ด ๋Œ€ํ‘œ์ ์ธ ๋ถ€ํ•˜์—์„œ ์ด ๋ช…๋ น์„ ์‹ค
ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด, makedumpfile --mem-usage ์ด ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ์˜ˆ์ƒ๋˜๋Š” ๊ฐ’๋ณด๋‹ค ์ž‘
์€ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
[root@hostname ~]# makedumpfile --mem-usage /proc/kcore
TYPE PAGES EXCLUDABLE DESCRIPTION
----------------------------------------------------------------------
ZERO 501635 yes Pages filled with zero
CACHE 51657 yes Cache pages
CACHE_PRIVATE 5442 yes Cache pages + private
USER 16301 yes User process pages
FREE 77738211 yes Free pages
KERN_DATA 1333192 no Dumpable kernel data
์ค‘์š”
makedumpfile --mem-usage ๋ช…๋ น์€ ํŽ˜์ด์ง€ ๋‹จ์œ„๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ปค๋„ ํŽ˜์ด์ง€ ํฌ๊ธฐ์— ๋Œ€ํ•ด ์‚ฌ์šฉ
์ค‘์ธ ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Red Hat Enterprise Linux ์ปค๋„์€ AMD64
๋ฐ Intel 64 ์•„ํ‚คํ…์ฒ˜ 4 KB ํฌ๊ธฐ์˜ ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ IBM POWER ์•„ํ‚คํ…์ฒ˜์—๋Š” 64 KB ํฌ๊ธฐ
์˜ ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
7.6. kdump ์„ค์ • ํ…Œ์ŠคํŠธ
๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” ์ปค๋„ ๋คํ”„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰ ์‹œ์Šคํ…œ์ด ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์— ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ์œ ํšจํ•œ
์ง€ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
๊ฒฝ๊ณ 
๋‹ค์Œ ๋ช…๋ น์€ ์ปค๋„ ํฌ๋ž˜์‹œ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹จ๊ณ„์— ๋”ฐ๋ผ ํ™œ์„ฑ ํ”„๋กœ๋•์…˜ ์‹œ์Šคํ…œ์—์„œ ๋ถ€์ฃผ์˜
ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
๋‹จ๊ณ„
1. kdump ๋ฅผ ์‚ฌ์šฉ ํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
2. kdump ์ด ๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
~]# systemctl is-active kdump
Active
3. Linux ์ปค๋„์„ ๊ฐ•์ œ๋กœ ํฌ๋ž˜์‹œ ์‹œํ‚ต๋‹ˆ๋‹ค.
echo 1 > /proc/sys/kernel/sysrq
echo c > /proc/sysrq-trigger
๊ฒฝ๊ณ 
์œ„์˜ ๋ช…๋ น์€ ์ปค๋„์ด ํฌ๋ž˜์‹œ๋ฉ๋‹ˆ๋‹ค. ๋ฆฌ๋ถ€ํŒ…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด /etc/kdump.conf ์—์„œ ์ง€์ • ํ•˜๋Š” ์žฅ์†Œ (๊ธฐ๋ณธ์ ์œผ๋กœ /var/crash/)
์— address-YYYY-MM-DD-HHH:MM:SS/vmcore ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.
์ฐธ๊ณ 
์„ค์ •์˜ ์œ ํšจ์„ฑ์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ ์™ธ์—๋„,์ด ์•ก์…˜์„ ์ด์šฉํ•˜์—ฌ ๋Œ€ํ‘œ์ ์ธ ๋ถ€ํ•˜๊ฐ€ ์‹คํ–‰ ์ค‘์ผ
๋•Œ ํฌ๋ž˜์‹œ ๋คํ”„๊ฐ€ ์™„๋ฃŒํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ๊ธฐ๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
7.7 ์ฝ”์–ด ๋คํ”„ ๋ถ„์„
์‹œ์Šคํ…œ ์ถฉ๋Œ์˜ ์›์ธ์„ ํŒ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์ถฉ๋Œ ๋””๋ฒ„๊ฑฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด GNU ๋””๋ฒ„๊ฑฐ (GDB)์™€ ๋งค์šฐ ์œ 
์‚ฌํ•œ ๋Œ€ํ™”์‹ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . ์ด ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‹คํ–‰์ค‘์ธ Linux ์‹œ์Šคํ…œ
๋ฟ๋งŒ ์•„๋‹ˆ๋ผ kdump, netdump, diskdump ๋˜๋Š” xendump ์— ์˜ํ•ด ์ƒ์„ฑ๋œ ์ฝ”์–ด ๋คํ”„๋ฅผ ๋Œ€ํ™”์‹์œผ๋กœ ๋ถ„
์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” Kdump Helper ๋˜๋Š” Kernel Oops Analyzer ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค .
7.7.1. crash ์œ ํ‹ธ๋ฆฌํ‹ฐ ์„ค์น˜
๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” crash ๋ถ„์„ ๋„๊ตฌ์˜ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
๋‹จ๊ณ„
1. ๊ด€๋ จ baseos ์ €์žฅ์†Œ์™€ appstream ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
# subscription-manager repos --enable baseos repository
# subscription-manager repos --enable appstream repository
2. crash ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
# yum install crash
3. kernel-debuginfo ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
# yum install kernel-debuginfo
ํŒจํ‚ค์ง€๋Š” ์‹คํ–‰์ค‘์ธ ์ปค๋„์— ๋Œ€์‘ํ•˜๊ณ  ๋คํ”„ ๋ถ„์„์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— subscription-manager ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ €์žฅ์†Œ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ "๊ธฐ๋ณธ ์‹œ์Šคํ…œ
์„ค์ • ๊ตฌ์„ฑ" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
7.7.2. crash ์œ ํ‹ธ๋ฆฌํ‹ฐ ์ข…๋ฃŒ
๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” ์‹œ์Šคํ…œ ์ถฉ๋Œ์˜ ์›์ธ์„ ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•ด crash ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•
์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ์ปค๋„์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค ( 4.18.0-5.el8.x86_64 ๋“ฑ).
๋‹จ๊ณ„
1. crash ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ๋‘ ๊ฐ€์ง€ ํ•„์š”ํ•œ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋ช…๋ น์— ์ „๋‹ฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
โ— debug-info (์••์ถ• ํ•ด์ œ ๋œ vmlinuz ์ด๋ฏธ์ง€) (ํŠน์ • kernel-debuginfo ํŒจํ‚ค์ง€์— ํฌํ•จ
๋œ /usr/lib/debug/lib/modules/4.18.0-5.el8.x86_64/vmlinux ๋“ฑ)
โ— ์‹ค์ œ vmcore ํŒŒ์ผ./var/crash/127.0.0.1-2018-10-06-14:05:33/vmcore
๊ทธ ๊ฒฐ๊ณผ crash ๋ช…๋ น ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
# crash /usr/lib/debug/lib/modules/4.18.0-5.el8.x86_64/vmlinux 
var/crash/127.0.0.1-2018-10-06-14:05:33/vmcore
kdump ์—์„œ ์ทจ๋“ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ <kernel> ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ 7.1 crash ์œ ํ‹ธ๋ฆฌํ‹ฐ ์‹คํ–‰
๋‹ค์Œ์˜ ์˜ˆ๋Š” 4.18.0-5.el8.x86_64 ์ปค๋„์„ ์‚ฌ์šฉํ•˜์—ฌ 2018 ๋…„ 10 ์›” 6 ์ผ (14:05 PM)์—
์ƒ์„ฑ ๋œ ์ฝ”์–ด ๋คํ”„ ๋ถ„์„์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
...
WARNING: kernel relocated [202MB]: patching 90160 gdb minimal_symbol values
KERNEL: /usr/lib/debug/lib/modules/4.18.0-5.el8.x86_64/vmlinux
DUMPFILE: /var/crash/127.0.0.1-2018-10-06-14:05:33/vmcore [PARTIAL DUMP]
CPUS: 2
DATE: Sat Oct 6 14:05:16 2018
UPTIME: 01:03:57
LOAD AVERAGE: 0.00, 0.00, 0.00
TASKS: 586
NODENAME: localhost.localdomain
RELEASE: 4.18.0-5.el8.x86_64
VERSION: #1 SMP Wed Aug 29 11:51:55 UTC 2018
MACHINE: x86_64 (2904 Mhz)
MEMORY: 2.9 GB
PANIC: "sysrq: SysRq : Trigger a crash"
PID: 10635
COMMAND: "bash"
TASK: ffff8d6c84271800 [THREAD_INFO: ffff8d6c84271800]
CPU: 1
STATE: TASK_RUNNING (SYSRQ)
crash>
2. ๋Œ€ํ™” ํ˜• ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  crash ์ข…๋ฃŒํ•˜๋ ค๋ฉด crash ๋˜๋Š” q ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ 7.2 crash ์œ ํ‹ธ๋ฆฌํ‹ฐ ์ข…๋ฃŒ
crash> exit
~]#
์ฐธ๊ณ 
crash ๋ช…๋ น์€ ๋ผ์ด๋ธŒ ์‹œ์Šคํ…œ์„ ๋””๋ฒ„๊น…ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ
๋‚˜ ์‹œ์Šคํ…œ์ด ์†์ƒ๋˜์ง€ ์•Š๋„๋ก์ฃผ์˜ํ•˜์‹ญ์‹œ์˜ค.
7.7.3. crash ์œ ํ‹ธ๋ฆฌํ‹ฐ์˜ ๋ฉ”์‹œ์ง€ ๋ฒ„ํผ ์—ญ์ถ”์  ๋ฐ ๊ธฐํƒ€ ํ‘œ์‹œ๊ธฐ์˜ ํ‘œ์‹œ
๋‹ค์Œ ๋‹จ๊ณ„๋Š” crash ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋„ ๋ฉ”์‹œ์ง€ ๋ฒ„ํผ ๋‹ค์‹œ ์ถ”์  ํ”„๋กœ์„ธ์Šค ์ƒํƒœ, ๊ฐ€์ƒ ๋ฉ”
๋ชจ๋ฆฌ ์ •๋ณด ์˜คํ”ˆ ํŒŒ์ผ ๋“ฑ ๋‹ค์–‘ํ•œ ํ‘œ์‹œ๊ธฐ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
๋ฉ”์‹œ์ง€ ๋ฒ„ํผ๋ณด๊ธฐ
์ปค๋„ ๋ฉ”์‹œ์ง€ ๋ฒ„ํผ๋ฅผ ๋ณด๋ ค๋ฉด ๋‹ค์Œ ์˜ˆ์— ํ‘œ์‹œ๋œ๋Œ€๋กœ ๋Œ€ํ™”์‹ ํ”„๋กฌํ”„ํŠธ์—์„œ log ๋ช…๋ น์„ ์‹คํ–‰
ํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ 7.3 ์ปค๋„ ๋ฉ”์‹œ์ง€ ๋ฒ„ํผ๋ณด๊ธฐ
crash> log
... several lines omitted ...
EIP: 0060:[<c068124f>] EFLAGS: 00010096 CPU: 2
EIP is at sysrq_handle_crash+0xf/0x20
EAX: 00000063 EBX: 00000063 ECX: c09e1c8c EDX: 00000000
ESI: c0a09ca0 EDI: 00000286 EBP: 00000000 ESP: ef4dbf24
DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
Process bash (pid: 5591, ti=ef4da000 task=f196d560 task.ti=ef4da000)
Stack:
c068146b c0960891 c0968653 00000003 00000000 00000002 efade5c0 c06814d0
<0> fffffffb c068150f b7776000 f2600c40 c0569ec4 ef4dbf9c 00000002 b7776000
<0> efade5c0 00000002 b7776000 c0569e60 c051de50 ef4dbf9c f196d560 ef4dbfb4
Call Trace:
[<c068146b>] ? __handle_sysrq+0xfb/0x160
[<c06814d0>] ? write_sysrq_trigger+0x0/0x50
[<c068150f>] ? write_sysrq_trigger+0x3f/0x50
[<c0569ec4>] ? proc_reg_write+0x64/0xa0
[<c0569e60>] ? proc_reg_write+0x0/0xa0
[<c051de50>] ? vfs_write+0xa0/0x190
[<c051e8d1>] ? sys_write+0x41/0x70
[<c0409adc>] ? syscall_call+0x7/0xb
Code: a0 c0 01 0f b6 41 03 19 d2 f7 d2 83 e2 03 83 e0 cf c1 e2 04 09 d0 88 41 03 f3 c3 90 c7 05
c8 1b 9e c0 01 00 00 00 0f ae f8 89 f6 <c6> 05 00 00 00 00 01 c3 89 f6 8d bc 27 00 00 00 00 8d 50
d0 83
EIP: [<c068124f>] sysrq_handle_crash+0xf/0x20 SS:ESP 0068:ef4dbf24
CR2: 0000000000000000
๋ช…๋ น ์‚ฌ์šฉ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ help log ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์ฐธ๊ณ 
์ปค๋„ ๋ฉ”์‹œ์ง€ ๋ฒ„ํผ๋Š” ์‹œ์Šคํ…œ ์žฅ์• ์— ๋Œ€ํ•œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ
์ด๊ฒƒ์€ ํ•ญ์ƒ ๋จผ์ € vmcore-dmesg.txt ํŒŒ์ผ๋กœ ๋คํ”„๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์˜ˆ๋ฅผ ๋“ค์–ด, ๋Œ€์ƒ ์œ„์น˜์—
๊ณต๊ฐ„์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— vmcore ์ „์ฒด ํŒŒ์ผ ๊ฐ€์ ธ์˜ค๊ธฐ ์‹œ๋„๊ฐ€ ์‹คํŒจ ํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ
๋กœ vmcore-dmesg.txt ๋Š” /var/pkcs/directory/์žˆ์Šต๋‹ˆ๋‹ค.
7.7.3.1. ์—ญ์ถ”์ ๋ณด๊ธฐ(backtrace)
์ปค๋„ ์Šคํƒ ํŠธ๋ž˜์ด์Šค์„ ํ‘œ์‹œํ•˜๋ ค๋ฉด bt ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ 7.4 ์ปค๋„ ์Šคํƒ ์ถ”์  ํ‘œ์‹œ
crash> bt
PID: 5591 TASK: f196d560 CPU: 2 COMMAND: "bash"
#0 [ef4dbdcc] crash_kexec at c0494922
#1 [ef4dbe20] oops_end at c080e402
#2 [ef4dbe34] no_context at c043089d
#3 [ef4dbe58] bad_area at c0430b26
#4 [ef4dbe6c] do_page_fault at c080fb9b
#5 [ef4dbee4] error_code (via page_fault) at c080d809
EAX: 00000063 EBX: 00000063 ECX: c09e1c8c EDX: 00000000 EBP: 00000000
DS: 007b ESI: c0a09ca0 ES: 007b EDI: 00000286 GS: 00e0
CS: 0060 EIP: c068124f ERR: ffffffff EFLAGS: 00010096
#6 [ef4dbf18] sysrq_handle_crash at c068124f
#7 [ef4dbf24] __handle_sysrq at c0681469
#8 [ef4dbf48] write_sysrq_trigger at c068150a
#9 [ef4dbf54] proc_reg_write at c0569ec2
#10 [ef4dbf74] vfs_write at c051de4e
#11 [ef4dbf94] sys_write at c051e8cc
#12 [ef4dbfb0] system_call at c0409ad5
EAX: ffffffda EBX: 00000001 ECX: b7776000 EDX: 00000002
DS: 007b ESI: 00000002 ES: 007b EDI: b7776000
SS: 007b ESP: bfcb2088 EBP: bfcb20b4 GS: 0033
CS: 0073 EIP: 00edc416 ERR: 00000004 EFLAGS: 00000246
bt <pid>๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ํŠน์ • ํ”„๋กœ์„ธ์Šค์˜ ๋ฐฑ ํŠธ๋ ˆ์ด์Šค๋ฅผ ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ help bt ์‹คํ–‰ํ•˜์—ฌ bt ์‚ฌ์šฉ
์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
7.7.3.2 ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ ํ‘œ์‹œ
์‹œ์Šคํ…œ์˜ ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ๋ฅผ ํ‘œ์‹œํ•˜๋ ค๋ฉด ps ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ 7.5 ์‹œ์Šคํ…œ์˜ ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ ํ‘œ์‹œ
crash> ps
PID PPID CPU TASK ST %MEM VSZ RSS COMM
> 0 0 0 c09dc560 RU 0.0 0 0 [swapper]
> 0 0 1 f7072030 RU 0.0 0 0 [swapper]
0 0 2 f70a3a90 RU 0.0 0 0 [swapper]
> 0 0 3 f70ac560 RU 0.0 0 0 [swapper]
1 0 1 f705ba90 IN 0.0 2828 1424 init
... several lines omitted ...
5566 1 1 f2592560 IN 0.0 12876 784 auditd
5567 1 2 ef427560 IN 0.0 12876 784 auditd
5587 5132 0 f196d030 IN 0.0 11064 3184 sshd
> 5591 5587 2 f196d560 RU 0.0 5084 1648 bash
ps <pid>๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹จ์ผ ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ps ์ž์„ธํ•œ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ help
ps ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
7.7.3.3 ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์ •๋ณด๋ณด๊ธฐ
๊ธฐ๋ณธ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•˜๋ ค๋ฉด ๋Œ€ํ™”์‹ ํ”„๋กฌํ”„ํŠธ์—์„œ vm ๋ช…๋ น์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ 7.6 ํ˜„์žฌ ์ปจํ…์ŠคํŠธ์˜ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์ •๋ณด๋ณด๊ธฐ
crash> vm
PID: 5591 TASK: f196d560 CPU: 2 COMMAND: "bash"
MM PGD RSS TOTAL_VM
f19b5900 ef9c6000 1648k 5084k
VMA START END FLAGS FILE
f1bb0310 242000 260000 8000875 /lib/ld-2.12.so
f26af0b8 260000 261000 8100871 /lib/ld-2.12.so
efbc275c 261000 262000 8100873 /lib/ld-2.12.so
efbc2a18 268000 3ed000 8000075 /lib/libc-2.12.so
efbc23d8 3ed000 3ee000 8000070 /lib/libc-2.12.so
efbc2888 3ee000 3f0000 8100071 /lib/libc-2.12.so
efbc2cd4 3f0000 3f1000 8100073 /lib/libc-2.12.so
efbc243c 3f1000 3f4000 100073
efbc28ec 3f6000 3f9000 8000075 /lib/libdl-2.12.so
efbc2568 3f9000 3fa000 8100071 /lib/libdl-2.12.so
efbc2f2c 3fa000 3fb000 8100073 /lib/libdl-2.12.so
f26af888 7e6000 7fc000 8000075 /lib/libtinfo.so.5.7
f26aff2c 7fc000 7ff000 8100073 /lib/libtinfo.so.5.7
efbc211c d83000 d8f000 8000075 /lib/libnss_files-2.12.so
efbc2504 d8f000 d90000 8100071 /lib/libnss_files-2.12.so
efbc2950 d90000 d91000 8100073 /lib/libnss_files-2.12.so
f26afe00 edc000 edd000 4040075
f1bb0a18 8047000 8118000 8001875 /bin/bash
f1bb01e4 8118000 811d000 8101873 /bin/bash
f1bb0c70 811d000 8122000 100073
f26afae0 9fd9000 9ffa000 100073
... several lines omitted ...
vm <pid>๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ help vm ์‹คํ–‰ํ•˜์—ฌ vm ์‚ฌ์šฉ ๋ฐฉ๋ฒ•
์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
7.7.3.4 ์˜คํ”ˆ ํŒŒ์ผ๋ณด๊ธฐ
์˜คํ”ˆ ํŒŒ์ผ์˜ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•˜๋ ค๋ฉด files ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ 7.7 ํ˜„์žฌ ์ปจํ…์ŠคํŠธ์˜ ์˜คํ”ˆ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ •๋ณด ํ‘œ์‹œ
crash> files
PID: 5591 TASK: f196d560 CPU: 2 COMMAND: "bash"
ROOT: / CWD: /root
FD FILE DENTRY INODE TYPE PATH
0 f734f640 eedc2c6c eecd6048 CHR /pts/0
1 efade5c0 eee14090 f00431d4 REG /proc/sysrq-trigger
2 f734f640 eedc2c6c eecd6048 CHR /pts/0
10 f734f640 eedc2c6c eecd6048 CHR /pts/0
255 f734f640 eedc2c6c eecd6048 CHR /pts/0
files <pid>๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์„ ํƒํ•œ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ์—ด๋ฆฐ ํŒŒ์ผ์„ ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ help files
์‹คํ–‰ํ•˜์—ฌ files ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
7.7.4. Kernel Oops Analyzer ์‚ฌ์šฉ
Kernel Oops Analyzer ๋Š” ์ง€์‹ ๊ธฐ๋ฐ˜์˜ ์•Œ๋ ค์ง„ ๋ฌธ์ œ oops ๋ฉ”์‹œ์ง€๋ฅผ ๋น„๊ตํ•˜์—ฌ ํฌ๋ž˜์‹œ ๋คํ”„๋ฅผ ๋ถ„
์„ํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
โ— Red Hat Labs ์˜ ์ ˆ์ฐจ์— ๋”ฐ๋ผ oops ๋ฉ”์‹œ์ง€๋ฅผ ๋ณดํ˜ธํ•˜๊ณ  Kernel Oops Analyzer ์— ์ž…๋ ฅ
ํ•ฉ๋‹ˆ๋‹ค.
๋‹จ๊ณ„
1. Kernel Oops Analyzer ๋งํฌ๋ฅผ ๋”ฐ๋ผ ๋„๊ตฌ์— ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค.
2. ์ฐพ์•„๋ณด๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ oops ๋ฉ”์‹œ์ง€๋ฅผ ์ฐพ์•„๋ณด์‹ญ์‹œ์˜ค.
3. DETECT ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ makedumpfile ์—์„œ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ธฐ์กด์˜ ์†”๋ฃจ์…˜๊ณผ oops ๋ฉ”
์‹œ์ง€๋ฅผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— kdump.conf (5) - ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์˜ต์…˜์˜ ์ „์ฒด ๋ฌธ์„œ๋ฅผ ํฌํ•จํ•œ/etc/kdump.conf ์„ค์ • ํŒŒ์ผ์˜
man ํŽ˜์ด์ง€๋“ค.
โ— zipl.conf (5) :/etc/zipl.conf ์„ค์ • ํŒŒ์ผ์˜ man ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค.
โ— zipl (8) - IBM System z ์šฉ zipl ๋ถ€ํŠธ ๋กœ๋” ์œ ํ‹ธ๋ฆฌํ‹ฐ man ํŽ˜์ด์ง€.
โ— makedumpfile (8) -makedumpfile ์ฝ”์–ด ์ˆ˜์ง‘๊ฐ€ man ํŽ˜์ด์ง€.
โ— kexec (8) - kexec man ํŽ˜์ด์ง€.
โ— crash (8) - crash ์œ ํ‹ธ๋ฆฌํ‹ฐ man ํŽ˜์ด์ง€.
โ— /usr/share/doc/kexec-tools/kexec-kdump-howto.txt- kdump ์™€ kexec ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ์˜ ๊ฐœ
์š”.
โ— kexec ๋กœ kdump ์„ค์ • ์ž์„ธํ•œ ๋‚ด์šฉ์€ "Red Hat ๊ธฐ์ˆ  ์ž๋ฃŒ ๋ฌธ์„œ" ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
โ— ์ง€์›๋˜๋Š” kdump ๋Œ€์ƒ์˜ ์ž์„ธํ•œ ๋‚ด์šฉ์€ "Red Hat ๊ธฐ์ˆ  ์ž๋ฃŒ ๋ฌธ์„œ" ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
์ œ 8 ์žฅ ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜๋กœ ํŒจ์น˜
Red Hat Enterprise Linux ์ปค๋„์˜ ๋ผ์ด๋ธŒ ํŒจ์น˜ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜
ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ณ  ์‹คํ–‰์ค‘์ธ ์ปค๋„์— ํŒจ์น˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ์†”๋ฃจ์…˜์œผ๋กœ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
โ— ์ค‘์š”ํ•œ ๋ณด์•ˆ ํŒจ์น˜๋ฅผ ์ปค๋„์— ์ฆ‰์‹œ ์ ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
โ— ์žฅ์‹œ๊ฐ„ ์‹คํ–‰๋˜๋Š” ์ž‘์—…์˜ ์™„๋ฃŒ๋˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž ๋กœ๊ทธ ์˜คํ”„ ๋˜๋Š” ์˜ˆ์ •๋œ ๊ฐ€๋™ ์ค‘์ง€ ์‹œ๊ฐ„์„
๊ธฐ๋‹ค๋ฆด ํ•„์š”๊ฐ€ ์—†๋‹ค.
โ— ์‹œ์Šคํ…œ ๊ฐ€๋™ ์‹œ๊ฐ„์„ ๋” ๋งŽ์ด ํ™•๋ณดํ•˜๊ณ  ๋ณด์•ˆ๊ณผ ์•ˆ์ •์„ฑ์„ ์žƒ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ํฌ๋ฆฌํ‹ฐ์ปฌ ๋˜๋Š” ์ค‘์š”ํ•œ CVE ๊ฐ€ ํ•ด๊ฒฐ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹™
๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๋ชฉํ‘œ๋Š” ๋ณด์•ˆ ๊ด€๋ จ ํŒจ์น˜์— ํ•„์š”ํ•œ ์žฌ๋ถ€ํŒ…์„ ์ค„์ด๊ณ  ์™„์ „ํžˆ ์ œ๊ฑฐํ•˜์ง€๋Š” ์•Š๋Š” ๊ฒƒ์ž…
๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ ํŒจ์น˜ ๋ฒ”์œ„์˜ ์ž์„ธํ•œ ๋‚ด์šฉ์€ "RHEL 7 ๋ผ์ด๋ธŒ ์ปค๋„ ํŒจ์น˜ (kpatch)์„ ์ง€์›ํ•˜๊ณ  ์žˆ
์Šต๋‹ˆ๊นŒ?" ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
๊ฒฝ๊ณ 
์ปค๋„์˜ ๋ผ์ด๋ธŒ ํŒจ์น˜์™€ ๋‹ค๋ฅธ ์ปค๋„ ์„œ๋ธŒ ๊ตฌ์„ฑ ์š”์†Œ ์‚ฌ์ด์— ์ผ๋ถ€ ๋น„ ํ˜ธํ™˜์„ฑ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ปค๋„
๋ผ์ด๋ธŒ ํŒจ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— "kpatch ์ œํ•œ" ์„ ์ฃผ์˜ ๊นŠ๊ฒŒ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
8.1. kpatch ์ œํ•œ
kpatch ๊ธฐ๋Šฅ์€ ์ผ๋ฐ˜ ์ปค๋„ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ์—†์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์„ ์‹ ์†ํ•˜๊ฒŒ ๋‹ค์‹œ ์‹œ์ž‘
ํ•  ์ˆ˜์—†๋Š” ๊ฒฝ์šฐ ๋“ฑ ๊ฐ„๋‹จํ•œ ๋ณด์•ˆ ๋ฐ ๋ฒ„๊ทธ ์ˆ˜์ • ์—…๋ฐ์ดํŠธ๋ฅผ ์ ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
ํŒจ์น˜ ์ฝ๊ฑฐ๋‚˜ ์ฝ์€ ํ›„์—๋Š” SystemTap ๋„๊ตฌ ๋˜๋Š” kprobe ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๋Ÿฌํ•œ
ํ”„๋กœ๋ธŒ๊ฐ€ ์ œ๊ฑฐ ๋  ๋•Œ๊นŒ์ง€ ํŒจ์น˜๋ฅผ ์ ์šฉ ํ•  ์ˆ˜ ์—†๊ฒŒ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.
8.2 ํƒ€์‚ฌ ๋ผ์ด๋ธŒ ํŒจ์น˜ ์ง€์›(third-party live patching)
kpatch ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” Red Hat ์ €์žฅ์†Œ ๋ฐฐํฌ ํ•œ RPM ๋ชจ๋“ˆ์„ ํฌํ•จํ•œ Red Hat ์ด ์ง€์›ํ•˜๋Š” ์œ ์ผํ•œ
์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ์ž…๋‹ˆ๋‹ค. Red Hat ์€ Red Hat ์ œ๊ณตํ•˜์ง€ ์•Š์€ ๋ผ์ด๋ธŒ ์ปค๋„ ํŒจ์น˜๋Š” ์ง€
์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ํƒ€์‚ฌ ๋ผ์ด๋ธŒ ํŒจ์น˜์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ง€์›์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ, ๊ทผ๋ณธ ์›์ธ ํ™•์ธ์ด ํ•„์š”ํ•œ
๋ชจ๋“  ์กฐ์‚ฌ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ๋ผ์ด๋ธŒ ํŒจ์น˜ ๋ฒค๋”์™€ ํ•จ๊ป˜ ์‚ฌ๋ก€๋ฅผ ์—ด ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ณต
๊ธ‰์—…์ฒด๊ฐ€ ํ—ˆ์šฉํ•œ ๊ฒฝ์šฐ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ณต๊ธ‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ณต๊ธ‰์—…์ฒด๊ฐ€ Red Hat ์ง€์›ํŒ€์œผ๋กœ ์กฐ์‚ฌ๋ฅผ
ํ™•๋Œ€ํ•˜๊ธฐ ์ „์— ๊ทผ๋ณธ ์›์ธ ๊ฒฐ์ •์— ๋„์›€์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํƒ€์‚ฌ ๋ผ์ด๋ธŒ ํŒจ์น˜๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ, Red Hat ์€ Red Hat ์ด ํ•จ๊ป˜ํ•˜๊ณ  ์ง€์›ํ•˜๋Š” ์†Œํ”„
ํŠธ์›จ์–ด์˜ ๋ณต์ œ๋ฅผ ์š”๊ตฌํ•  ๊ถŒ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, Red Hat ์€ ๋™์ผํ•œ ๋ฌธ
์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋ผ์ด๋ธŒ ํŒจ์น˜๋ฅผ ์ ์šฉํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉ์ž์˜ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์—
์„œ ์œ ์‚ฌํ•œ ์‹œ์Šคํ…œ ๋ฐ ์›Œํฌ๋กœ๋“œ ๋ฐฐํฌ๋ฅผ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.
ํƒ€์‚ฌ ์†Œํ”„ํŠธ์›จ์–ด ์ง€์› ์ •์ฑ…์˜ ์ž์„ธํ•œ ๋‚ด์šฉ์€ "Red Hat ๊ธ€๋กœ๋ฒŒ ์ง€์› ์„œ๋น„์Šค๋Š” ํƒ€์‚ฌ์˜ ์†Œํ”„ํŠธ์›จ
์–ด, ๋“œ๋ผ์ด๋ฒ„, ๊ทธ๋ฆฌ๊ณ  ์ธ์ฆ๋˜์ง€ ์•Š์€ ํ•˜๋“œ์›จ์–ด ๋ฐ ํ•˜์ดํผ ๋ฐ”์ด์ € ๋˜๋Š” ๊ฒŒ์ŠคํŠธ ์šด์˜ ์ฒด์ œ์— ๋Œ€
ํ•ด ์–ด๋–ค ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค ์žˆ์Šต๋‹ˆ๊นŒ? " ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
8.3 ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜์— ์•ก์„ธ์Šค
๋ผ์ด๋ธŒ ์ปค๋„ ํŒจ์น˜ ๊ธฐ๋Šฅ์€ RPM ํŒจํ‚ค์ง€๋กœ ์ œ๊ณต๋˜๋Š” ์ปค๋„ ๋ชจ๋“ˆ ( kmod)๋กœ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.
๋ชจ๋“  ๊ณ ๊ฐ์€ ์ผ๋ฐ˜ ์ฑ„๋„์—์„œ ์ œ๊ณต๋˜๋Š” ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฐ์žฅ
์ง€์› ์„œ๋น„์Šค์— ๊ฐ€์ž…ํ•˜์ง€ ์•Š์€ ๊ณ ๊ฐ์€ ๋‹ค์Œ์˜ ๋งˆ์ด๋„ˆ ๋ฆด๋ฆฌ์ฆˆ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๊ฒŒ๋˜๋ฉด ํ˜„์žฌ์˜ ๋งˆ์ด
๋„ˆ ๋ฆด๋ฆฌ์ฆˆ์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ํŒจ์น˜์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์žƒ๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์Šคํƒ ๋‹ค๋“œ ์„œ๋ธŒ์Šคํฌ๋ฆฝ
์…˜์„ ๊ตฌ๋งค ํ•œ ๊ณ ๊ฐ์€ RHEL 8.3 ์ปค๋„์ด ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ RHEL 8.2 ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜๋งŒ ํ•  ์ˆ˜ ์žˆ
์Šต๋‹ˆ๋‹ค.
8.4 ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜์˜ ๊ตฌ์„ฑ ์š”์†Œ
์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜์˜ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ(kernel patch module)
โ— ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜์˜ ์ „๋‹ฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜
โ— ํŒจ์น˜๊ฐ€ ์ ์šฉ๋œ ์ปค๋„์— ๊ตฌ์ถ• ํ•œ ์ปค๋„ ๋ชจ๋“ˆ.
โ— ํŒจ์น˜ ๋ชจ๋“ˆ์€ ์ปค๋„์— ํ•„์š”ํ•œ ์ˆ˜์ • ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
โ— ํŒจ์น˜ ๋ชจ๋“ˆ์€ kpatch ์ปค๋„ ์„œ๋ธŒ ์‹œ์Šคํ…œ์— ๋“ฑ๋กํ•˜๊ณ  ๋Œ€์ฒด ์›๋ž˜ ๊ธฐ๋Šฅ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ
๋‹ค. ๋˜ํ•œ ๋Œ€์ฒด๋˜๋Š” ๊ธฐ๋Šฅ๊ณผ ์ผ์น˜ํ•˜๋Š” ํฌ์ธํ„ฐ๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์€ RPM ์œผ๋กœ
์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
โ— ๋ช…๋ช… ๊ทœ์น™ kpatch_<kernel version>_<kpatch version>_<kpatch release>์ž…๋‹ˆ๋‹ค. ์ด๋ฆ„
"kernel version"๋ถ€๋ถ„์˜ ๋งˆ์นจํ‘œ์™€ ํ•˜์ดํ”ˆ์„ ๋ฐ‘์ค„๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.
kpatch ์œ ํ‹ธ๋ฆฌํ‹ฐ
ํŒจ์น˜ ๋ชจ๋“ˆ์„ ๊ด€๋ฆฌํ•˜๊ธฐ์œ„ํ•œ ๋ช…๋ น์ค„ ์œ ํ‹ธ๋ฆฌํ‹ฐ.
kpatch ์„œ๋น„์Šค
multiuser.target ์—์„œ ํ•„์š”ํ•œ systemd ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ์ด ๋Œ€์ƒ์€ ์‹œ์Šคํ…œ ๋ถ€ํŒ…์‹œ ์ปค๋„ ํŒจ์น˜๋ฅผ ๋กœ
๋“œํ•ฉ๋‹ˆ๋‹ค.
8.5 ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜์˜ ์ž‘๋™ ๋ฐฉ์‹
kpatch ์ปค๋„ ํŒจ์น˜ ์†”๋ฃจ์…˜์€ livepatch ์ปค๋„ ์„œ๋ธŒ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด ๊ธฐ๋Šฅ์˜ ๋Œ€์ƒ์„ ์ƒˆ๋กœ์šด
๊ธฐ๋Šฅ์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ ์ปค๋„ ํŒจ์น˜๊ฐ€ ์‹œ์Šคํ…œ์— ์ ์šฉ๋˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
1. ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์€ /var/lib/kpatch/๋””๋ ‰ํ† ๋ฆฌ์— ๋ณต์‚ฌํ•˜๊ณ  ๋‹ค์Œ ๋ถ€ํŒ…์‹œ์— systemd ๋ฅผ ํ†ตํ•ด
์ปค๋„์— ๋‹ค์‹œ ์ ์šฉ์œผ๋กœ ๋“ฑ๋ก๋ฉ๋‹ˆ๋‹ค.
2. ์‹คํ–‰์ค‘์ธ ์ปค๋„์— kpatch ๋ชจ๋“ˆ์ด๋กœ๋“œ ๋œ ์ƒˆ๋กœ์šด ์ฝ”๋“œ์˜ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋Š” ํฌ์ธํ„ฐ
๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ftrace ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋“ฑ๋ก๋ฉ๋‹ˆ๋‹ค.
3. ํŒจ์น˜๋˜์—ˆ์„ ๊ธฐ๋Šฅ์— ์ปค๋„์ด ์ ‘๊ทผํ•˜๋ฉด ftrace ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋ฆฌ๋””๋ ‰์…˜๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ์›๋ž˜
์˜ ๊ธฐ๋Šฅ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ํŒจ์น˜ ๋ฒ„์ „์˜ ๊ธฐ๋Šฅ์— ์ปค๋„์„ ์žฌ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆผ 8.1 ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜์˜ ๋™์ž‘ ๋ฐฉ์‹
8.6 ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜ ํ™œ์„ฑํ™”
์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์€ ํŒจ์น˜๋˜๋Š” ์ปค๋„ ๋ฒ„์ „์— ๋”ฐ๋ผ RPM ํŒจํ‚ค์ง€๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๊ฐ RPM ํŒจํ‚ค์ง€๋Š”
์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๋ˆ„์  ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค.
๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ํŠน์ • ์ปค๋„์— ๋Œ€ํ•œ ํ–ฅํ›„ ๋ชจ๋“  ๋ˆ„์  ํŒจ์น˜ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
๊ฒฝ๊ณ 
Red Hat ์€ Red Hat ์ด ์ง€์›ํ•˜๋Š” ์‹œ์Šคํ…œ์— ์ ์šฉ๋œ ํƒ€์‚ฌ ๋ผ์ด๋ธŒ ํŒจ์น˜๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
8.6.1 ๋ผ์ด๋ธŒ ํŒจ์น˜ ์ŠคํŠธ๋ฆผ์— ๋“ฑ๋ก
์ด ๋‹จ๊ณ„์—์„œ๋Š” ํŠน์ • ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ์ง€์ •๋œ ์ปค
๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜ ์ŠคํŠธ๋ฆผ์— ๊ฐ€์ž…ํ•˜์—ฌ ํ–ฅํ›„ ์ปค๋„์— ๋Œ€ํ•œ ๋ˆ„์  ๋ผ์ด๋ธŒ ํŒจ์น˜ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ชจ๋‘ ๋ฐ›์„
์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฒฝ๊ณ 
๋ผ์ด๋ธŒ ํŒจ์น˜๋Š” ๋ˆ„์ ๋˜๋Š” ํ˜•ํƒœ์ด๋ฏ€๋กœ ํŠน์ • ์ปค๋„์— ๋ฐฐ์น˜๋˜๋Š” ๊ฐœ๋ณ„ ํŒจ์น˜๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
โ— root ๊ถŒํ•œ
๋‹จ๊ณ„
1. ํ•„์š”์— ๋”ฐ๋ผ ์ปค๋„ ๋ฒ„์ „์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
# uname -r
4.18.0-94.el8.x86_64
2. ์ปค๋„์˜ ๋ฒ„์ „๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.
# yum search $ (uname -r)
3. ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
# yum install "kpatch-patch = $ (uname -r)"
์œ„์˜ ๋ช…๋ น์€ ํŠน์ • ์ปค๋„์—๋งŒ ์ตœ์‹  ๋ˆ„์  ํŒจ์น˜๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.
ํŒจํ‚ค์ง€ ๋ฒ„์ „์ด 1-1 ์ด์ƒ์ด๋ฉด ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€์— ํŒจ์น˜ ๋ชจ๋“ˆ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด
๊ฒฝ์šฐ ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ๋•Œ ์ปค๋„์— ํŒจ์น˜๊ฐ€ ์ž๋™์œผ๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.
์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์€ ํ–ฅํ›„ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ๋•Œ systemd ์‹œ์Šคํ…œ ๋ฐ ์„œ๋น„์Šค ๊ด€๋ฆฌ์ž์— ์˜ํ•ด๋กœ๋“œ
๋œ /var/lib/kpatch/๋””๋ ‰ํ† ๋ฆฌ์— ์„ค์น˜๋ฉ๋‹ˆ๋‹ค.
์ฐธ๊ณ 
์ง€์ •๋œ ์ปค๋„์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ผ์ด๋ธŒ ํŒจ์น˜๊ฐ€์—†๋Š” ๊ฒฝ์šฐ๋Š” ๋นˆ ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋ฉ
๋‹ˆ๋‹ค. ๋นˆ ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๋Š” kpatch_version-kpatch_release 0-0
(์˜ˆ : kpatch-patch-4_18_0-94-0-0.el8.x86_64.rpm)๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋นˆ RPM ์„ค์น˜ํ•˜
๋ฉด ์‹œ์Šคํ…œ์ด ์ง€์ •๋œ ์ปค๋„์— ๋Œ€ํ•œ ํ–ฅํ›„ ๋ชจ๋“  ๋ผ์ด๋ธŒ ํŒจ์น˜๋ฅผ ๊ตฌ๋…ํ•ฉ๋‹ˆ๋‹ค.
4. ํ•„์š”์— ๋”ฐ๋ผ ์ปค๋„ ํŒจ์น˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
# kpatch list
Loaded patch modules:
kpatch_4_18_0_94_1_1 [enabled]
Installed patch modules:
kpatch_4_18_0_94_1_1 (4.18.0-94.el8.x86_64)
โ€ฆโ€‹
์ด ์ถœ๋ ฅ์€ ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์ด ์ปค๋„์—๋กœ๋“œ๋˜์–ด ์žˆ๋Š”์ง€๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ฆ‰, ์ปค๋„์€ ํ˜„
์žฌ kpatch-patch-4_18_0-94-1-1.el8.x86_64.rpm ํŒจํ‚ค์ง€์˜ ์ตœ์‹  ์ˆ˜์ • ์‚ฌํ•ญ์ด ์ ์šฉ๋˜์–ด ์žˆ์Šต
๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— kpatch ๋ช…๋ น ์ค„ ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ kpatch(1)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ
์˜ค.
โ— Red Hat Enterprise Linux 8 ์†Œํ”„ํŠธ์›จ์–ด ํŒจํ‚ค์ง€์˜ ์ž์„ธํ•œ ๋‚ด์šฉ์€ "๊ธฐ๋ณธ ์‹œ์Šคํ…œ ์„ค์ • ๊ตฌ
์„ฑ" ์˜ ๊ด€๋ จ ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
8.7 ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ ์—…๋ฐ์ดํŠธ
์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์ด ์ œ๊ณต๋˜๋ฉฐ RPM ํŒจํ‚ค์ง€๋ฅผ ํ†ตํ•ด ์ ์šฉ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ˆ„๊ณ„ ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ
์—…๋ฐ์ดํŠธ๋Š” ๋‹ค๋ฅธ RPM ํŒจํ‚ค์ง€์˜ ์—…๋ฐ์ดํŠธ์™€ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
โ— root ๊ถŒํ•œ
โ— "๋ผ์ด๋ธŒ ํŒจ์น˜ ์ŠคํŠธ๋ฆผ์— ๋“ฑ๋ก" ์— ์„ค๋ช… ๋œ๋Œ€๋กœ ์‹œ์Šคํ…œ์ด ๋ผ์ด๋ธŒ ํŒจ์น˜ ์ŠคํŠธ๋ฆผ์— ๋“ฑ๋ก๋˜์–ด
์žˆ์Šต๋‹ˆ๋‹ค.
๋‹จ๊ณ„
1. ํ˜„์žฌ ์ปค๋„์˜ ์ƒˆ ๋ˆ„์  ๋ฒ„์ „์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
# yum update "kpatch-patch = $ (uname -r)"
์œ„์˜ ๋ช…๋ น์€ ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ์ปค๋„์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์—…๋ฐ์ดํŠธ๋ฅผ ์ž๋™์œผ๋กœ ์„ค์น˜ํ•˜๊ณ  ์ ์šฉํ•ฉ
๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์ƒˆ๋กœ ์ถœ์‹œ๋œ ๋ˆ„์  ๋ผ์ด๋ธŒ ํŒจ์น˜๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
โ— ๋˜๋Š” ์„ค์น˜ ํ•œ ๋ชจ๋“  ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.
# yum update "kpatch-patch *"
์ฐธ๊ณ 
์‹œ์Šคํ…œ์ด ๋™์ผํ•œ ์ปค๋„๋กœ ์žฌ๋ถ€ํŒ…๋˜๋ฉด kpatch.service systemd ์„œ๋น„์Šค๋Š” ์ปค๋„์„ ์ž๋™์œผ
๋กœ ๋‹ค์‹œ ํŒจ์น˜๋ฉ๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— ์†Œํ”„ํŠธ์›จ์–ด ํŒจํ‚ค์ง€์˜ ์—…๋ฐ์ดํŠธ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” Red Hat Enterprise Linux 8 ์—
์„œ "๊ธฐ๋ณธ ์‹œ์Šคํ…œ ์„ค์ •์„ ๊ตฌ์„ฑ" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
8.8 ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜ ๋น„ํ™œ์„ฑํ™”
์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๊ฐ€ Red Hat Enterprise Linux ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜ ์†”๋ฃจ์…˜๊ณผ ๊ด€๋ จํ•˜์—ฌ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ
๋ถ€์ •์ ์ธ ์˜ํ–ฅ์„ ๊ฒฝํ—˜ ํ•œ ๊ฒฝ์šฐ, ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋น„ํ™œ์„ฑํ™” ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ๋ผ์ด๋ธŒ
ํŒจ์น˜ ์†”๋ฃจ์…˜์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
์ค‘์š”
ํ˜„์žฌ Red Hat ์€ ์‹œ์Šคํ…œ์˜ ์žฌ๋ถ€ํŒ…์—†์ด ๋ผ์ด๋ธŒ ํŒจ์น˜๋ฅผ ๋˜๋Œ๋ฆด ์ˆ˜๋Š” ๋ฐฉ๋ฒ•์€ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ
๋‹ค. ๋ฌธ์˜ ์‚ฌํ•ญ์ด ์žˆ์œผ์‹œ๋ฉด ์ง€์›ํŒ€์— ๋ฌธ์˜ํ•˜์‹ญ์‹œ์˜ค.
8.8.1 ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€ ์ œ๊ฑฐ
๋‹ค์Œ ๋‹จ๊ณ„๋Š” ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ Red Hat Enterprise Linux ์ปค๋„์˜ ๋ผ์ด๋ธŒ ํŒจ์น˜
์†”๋ฃจ์…˜์„ ํ•ด์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
โ— root ๊ถŒํ•œ
โ— ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ๋‹ค.
๋‹จ๊ณ„
1. ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
# yum list installed | grep kpatch-patch
kpatch-patch-4_18_0-94.x86_64 1-1.el8 @@ commandline
โ€ฆโ€‹
์œ„์˜ ์ถœ๋ ฅ ์˜ˆ๋Š” ์„ค์น˜ ํ•œ ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๋ฅผ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.
2. ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
# yum remove kpatch-patch-4_18_0-94.x86_64
๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๊ฐ€ ์ œ๊ฑฐ๋˜๋ฉด ์ปค๋„์€ ๋‹ค์Œ ์žฌ๋ถ€ํŒ…๊นŒ์ง€ ํŒจ์น˜๋˜์—ˆ์„ ๋‚จ์•„ ์žˆ์ง€๋งŒ ์ปค๋„
ํŒจ์น˜ ๋ชจ๋“ˆ์€ ๋””์Šคํฌ์—์„œ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์žฌ๋ถ€ํŒ… ํ›„์ด ์ผ์น˜ํ•˜๋Š” ์ปค๋„ ํŒจ์น˜๊ฐ€ ์ ์šฉ๋˜์ง€
์•Š์Šต๋‹ˆ๋‹ค.
3. ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
4. ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๊ฐ€ ์‚ญ์ œ ๋œ ๊ฒƒ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
# yum list installed | grep kpatch-patch
ํŒจํ‚ค์ง€๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ œ๊ฑฐ ๋œ ๊ฒฝ์šฐ์ด ๋ช…๋ น์€ ์•„๋ฌด๊ฒƒ๋„ ์ถœ๋ ฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
5. ํ•„์š”์— ๋”ฐ๋ผ ์ปค๋„์˜ ๋ผ์ด๋ธŒ ํŒจ์น˜ ์†”๋ฃจ์…˜์ด ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
# kpatch list
Loaded patch modules:
์ด ์ถœ๋ ฅ ์˜ˆ์ œ์—์„œ๋Š” ํ˜„์žฌ๋กœ๋“œ ๋œ ํŒจ์น˜ ๋ชจ๋“ˆ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ปค๋„์— ํŒจ์น˜๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š
๊ณ , ๋ผ์ด๋ธŒ ํŒจ์น˜ ์†”๋ฃจ์…˜์ด ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— kpatch ๋ช…๋ น ์ค„ ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ kpatch(1)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ
์˜ค.
โ— ์†Œํ”„ํŠธ์›จ์–ด ํŒจํ‚ค์ง€์˜ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ '๊ธฐ๋ณธ ์‹œ์Šคํ…œ ์„ค์ • ๊ตฌ์„ฑ" ์˜ ๊ด€๋ จ ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ
์˜ค.
8.8.2 ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ ์ œ๊ฑฐ
๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” Red Hat Enterprise Linux ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜ ์†”๋ฃจ์…˜์ด ํ›„์† ๋ถ€ํŒ… ์ปค๋„ ํŒจ์น˜
๋ชจ๋“ˆ์„ ์ ์šฉํ•˜์ง€ ์•Š๋„๋กํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
์ „์ œ ์กฐ๊ฑด
โ— root ๊ถŒํ•œ
โ— ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ๋‹ค.
โ— ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์ด ์„ค์น˜๋œ๋กœ๋“œ๋˜์–ด์žˆ๋‹ค.
๋‹จ๊ณ„
1. ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
# kpatch list
Loaded patch modules:
kpatch_4_18_0_94_1_1 [enabled]
Installed patch modules:
kpatch_4_18_0_94_1_1 (4.18.0-94.el8.x86_64)
โ€ฆโ€‹
2. ์„ ํƒํ•œ ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
# kpatch uninstall kpatch_4_18_0_94_1_1
Uninstalling kpatch_4_18_0_94_1_1 (4.18.0-94.el8.x86_64)
โ— ์ œ๊ฑฐ ๋œ ์ปค๋„ ๋ชจ๋“ˆ์ด๋กœ๋“œ๋˜์–ด ์žˆ๋Š”์ง€์— ์ฃผ์˜ํ•˜์‹ญ์‹œ์˜ค.
# kpatch list
Loaded patch modules:
kpatch_4_18_0_94_1_1 [enabled]
Installed patch modules:
<NO_RESULT>
์„ ํƒํ•œ ๋ชจ๋“ˆ์„ ์ œ๊ฑฐํ•˜๋ฉด ๋‹ค์Œ์— ๋‹ค์‹œ ๋ถ€ํŒ… ํ•  ๋•Œ๊นŒ์ง€ ์ปค๋„์ด ํŒจ์น˜๋œ ์ƒํƒœ๋กœ ์œ ์ง€๋˜
์ง€๋งŒ ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์€ ๋””์Šคํฌ์—์„œ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.
3. ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
4. ํ•„์š”ํ•œ ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์ด ์ œ๊ฑฐ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
# kpatch list
Loaded patch modules:
โ€ฆโ€‹
์œ„์˜ ์˜ˆ์ œ ์ถœ๋ ฅ์—๋Š”๋กœ๋“œ๋˜๊ฑฐ๋‚˜ ์„ค์น˜๋œ ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ปค๋„์ด
ํŒจ์น˜๋˜์ง€ ์•Š๊ณ  ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜ ์†”๋ฃจ์…˜์ด ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ด€๋ จ ์ •๋ณด
โ— kpatch ๋ช…๋ น ์ค„ ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ kpatch(1)์„ ์ฐธ์กฐํ•˜์‹ญ
์‹œ์˜ค.
8.8.3. kpatch.service ๋น„ํ™œ์„ฑํ™”
๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” Red Hat Enterprise Linux ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜ ์†”๋ฃจ์…˜์ด ํ›„์† ๋ถ€ํŒ… ์ปค๋„ ํŒจ์น˜
๋ชจ๋“ˆ์„ ์ „์ฒด์ ์œผ๋กœ ์ ์šฉ๋˜์ง€ ์•Š๋„๋กํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
RHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in Korean
RHEL8 Kernel Management Manual in Korean

More Related Content

What's hot

์ปจํ…Œ์ด๋„ˆ ์™€ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ  ๋น„๊ต ๋ฐœํ‘œ ์ž๋ฃŒ
์ปจํ…Œ์ด๋„ˆ ์™€ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ  ๋น„๊ต ๋ฐœํ‘œ ์ž๋ฃŒ์ปจํ…Œ์ด๋„ˆ ์™€ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ  ๋น„๊ต ๋ฐœํ‘œ ์ž๋ฃŒ
์ปจํ…Œ์ด๋„ˆ ์™€ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ  ๋น„๊ต ๋ฐœํ‘œ ์ž๋ฃŒ
Opennaru, inc.
ย 
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]๋ ˆ๋“œํ–‡๊ณ„์—ด๋ฆฌ๋ˆ…์Šค7 ์šด์˜์ž๊ฐ€์ด๋“œ - ๊ธฐ์ดˆํŽธ
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]๋ ˆ๋“œํ–‡๊ณ„์—ด๋ฆฌ๋ˆ…์Šค7 ์šด์˜์ž๊ฐ€์ด๋“œ - ๊ธฐ์ดˆํŽธ[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]๋ ˆ๋“œํ–‡๊ณ„์—ด๋ฆฌ๋ˆ…์Šค7 ์šด์˜์ž๊ฐ€์ด๋“œ - ๊ธฐ์ดˆํŽธ
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]๋ ˆ๋“œํ–‡๊ณ„์—ด๋ฆฌ๋ˆ…์Šค7 ์šด์˜์ž๊ฐ€์ด๋“œ - ๊ธฐ์ดˆํŽธ
Ji-Woong Choi
ย 
Kubernetes & helm ํ™œ์šฉ
Kubernetes & helm ํ™œ์šฉKubernetes & helm ํ™œ์šฉ
Kubernetes & helm ํ™œ์šฉ
SK Telecom
ย 
MSA ์ „๋žต 2: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค, ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•  ๊ฒƒ์ธ๊ฐ€?
MSA ์ „๋žต 2: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค, ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•  ๊ฒƒ์ธ๊ฐ€?MSA ์ „๋žต 2: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค, ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•  ๊ฒƒ์ธ๊ฐ€?
MSA ์ „๋žต 2: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค, ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•  ๊ฒƒ์ธ๊ฐ€?
VMware Tanzu Korea
ย 
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ํ™œ์šฉํ•œ ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์ถ•
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ํ™œ์šฉํ•œ ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์ถ•[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ํ™œ์šฉํ•œ ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์ถ•
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ํ™œ์šฉํ•œ ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์ถ•
Ji-Woong Choi
ย 
Kubernetes Story - Day 1: Build and Manage Containers with Podman
Kubernetes Story - Day 1: Build and Manage Containers with PodmanKubernetes Story - Day 1: Build and Manage Containers with Podman
Kubernetes Story - Day 1: Build and Manage Containers with Podman
Mihai Criveti
ย 
Kubernates vs Openshift: What is the difference and comparison between Opensh...
Kubernates vs Openshift: What is the difference and comparison between Opensh...Kubernates vs Openshift: What is the difference and comparison between Opensh...
Kubernates vs Openshift: What is the difference and comparison between Opensh...
jeetendra mandal
ย 
Crossplane @ Mastering GitOps.pdf
Crossplane @ Mastering GitOps.pdfCrossplane @ Mastering GitOps.pdf
Crossplane @ Mastering GitOps.pdf
QAware GmbH
ย 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
Martin Danielsson
ย 
OpenShift Container Platform 4.12 Release Notes
OpenShift Container Platform 4.12 Release NotesOpenShift Container Platform 4.12 Release Notes
OpenShift Container Platform 4.12 Release Notes
GerryJamisola1
ย 
Common linux ubuntu commands overview
Common linux  ubuntu commands overviewCommon linux  ubuntu commands overview
Common linux ubuntu commands overview
Ameer Sameer
ย 
Backup and Restore VMs Based on KVM
Backup and Restore VMs Based on KVMBackup and Restore VMs Based on KVM
Backup and Restore VMs Based on KVM
ShapeBlue
ย 
A brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsA brief study on Kubernetes and its components
A brief study on Kubernetes and its components
Ramit Surana
ย 
RedHat Virtualization Manager
RedHat Virtualization ManagerRedHat Virtualization Manager
RedHat Virtualization Manager
Raz Tamir
ย 
Kubernetes - Security Journey
Kubernetes - Security JourneyKubernetes - Security Journey
Kubernetes - Security Journey
Jerry Jalava
ย 
KCD Italy 2022 - Application driven infrastructure with Crossplane
KCD Italy 2022 - Application driven infrastructure with CrossplaneKCD Italy 2022 - Application driven infrastructure with Crossplane
KCD Italy 2022 - Application driven infrastructure with Crossplane
sparkfabrik
ย 
ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ๊ธฐ๋ฐ˜ ๊ธฐ์ˆ ๊ณผ ์˜คํ”ˆ์Šคํƒ(Kvm) ๊ธฐ๋ฐ˜ Provisioning
ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ๊ธฐ๋ฐ˜ ๊ธฐ์ˆ ๊ณผ ์˜คํ”ˆ์Šคํƒ(Kvm) ๊ธฐ๋ฐ˜ Provisioning ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ๊ธฐ๋ฐ˜ ๊ธฐ์ˆ ๊ณผ ์˜คํ”ˆ์Šคํƒ(Kvm) ๊ธฐ๋ฐ˜ Provisioning
ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ๊ธฐ๋ฐ˜ ๊ธฐ์ˆ ๊ณผ ์˜คํ”ˆ์Šคํƒ(Kvm) ๊ธฐ๋ฐ˜ Provisioning
Ji-Woong Choi
ย 
RPM (LINUX)
RPM (LINUX)RPM (LINUX)
RPM (LINUX)Raghu nath
ย 
Building Instruqt, a scalable learning platform
Building Instruqt, a scalable learning platformBuilding Instruqt, a scalable learning platform
Building Instruqt, a scalable learning platform
Instruqt
ย 
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Etsuji Nakai
ย 

What's hot (20)

์ปจํ…Œ์ด๋„ˆ ์™€ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ  ๋น„๊ต ๋ฐœํ‘œ ์ž๋ฃŒ
์ปจํ…Œ์ด๋„ˆ ์™€ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ  ๋น„๊ต ๋ฐœํ‘œ ์ž๋ฃŒ์ปจํ…Œ์ด๋„ˆ ์™€ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ  ๋น„๊ต ๋ฐœํ‘œ ์ž๋ฃŒ
์ปจํ…Œ์ด๋„ˆ ์™€ ๊ฐ€์ƒํ™” ๊ธฐ์ˆ  ๋น„๊ต ๋ฐœํ‘œ ์ž๋ฃŒ
ย 
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]๋ ˆ๋“œํ–‡๊ณ„์—ด๋ฆฌ๋ˆ…์Šค7 ์šด์˜์ž๊ฐ€์ด๋“œ - ๊ธฐ์ดˆํŽธ
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]๋ ˆ๋“œํ–‡๊ณ„์—ด๋ฆฌ๋ˆ…์Šค7 ์šด์˜์ž๊ฐ€์ด๋“œ - ๊ธฐ์ดˆํŽธ[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]๋ ˆ๋“œํ–‡๊ณ„์—ด๋ฆฌ๋ˆ…์Šค7 ์šด์˜์ž๊ฐ€์ด๋“œ - ๊ธฐ์ดˆํŽธ
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]๋ ˆ๋“œํ–‡๊ณ„์—ด๋ฆฌ๋ˆ…์Šค7 ์šด์˜์ž๊ฐ€์ด๋“œ - ๊ธฐ์ดˆํŽธ
ย 
Kubernetes & helm ํ™œ์šฉ
Kubernetes & helm ํ™œ์šฉKubernetes & helm ํ™œ์šฉ
Kubernetes & helm ํ™œ์šฉ
ย 
MSA ์ „๋žต 2: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค, ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•  ๊ฒƒ์ธ๊ฐ€?
MSA ์ „๋žต 2: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค, ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•  ๊ฒƒ์ธ๊ฐ€?MSA ์ „๋žต 2: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค, ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•  ๊ฒƒ์ธ๊ฐ€?
MSA ์ „๋žต 2: ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค, ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•  ๊ฒƒ์ธ๊ฐ€?
ย 
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ํ™œ์šฉํ•œ ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์ถ•
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ํ™œ์šฉํ•œ ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์ถ•[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ํ™œ์šฉํ•œ ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์ถ•
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…]์ฟ ๋ฒ„๋„คํ‹ฐ์Šค๋ฅผ ํ™œ์šฉํ•œ ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์ถ•
ย 
Kubernetes Story - Day 1: Build and Manage Containers with Podman
Kubernetes Story - Day 1: Build and Manage Containers with PodmanKubernetes Story - Day 1: Build and Manage Containers with Podman
Kubernetes Story - Day 1: Build and Manage Containers with Podman
ย 
Kubernates vs Openshift: What is the difference and comparison between Opensh...
Kubernates vs Openshift: What is the difference and comparison between Opensh...Kubernates vs Openshift: What is the difference and comparison between Opensh...
Kubernates vs Openshift: What is the difference and comparison between Opensh...
ย 
Crossplane @ Mastering GitOps.pdf
Crossplane @ Mastering GitOps.pdfCrossplane @ Mastering GitOps.pdf
Crossplane @ Mastering GitOps.pdf
ย 
Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
ย 
OpenShift Container Platform 4.12 Release Notes
OpenShift Container Platform 4.12 Release NotesOpenShift Container Platform 4.12 Release Notes
OpenShift Container Platform 4.12 Release Notes
ย 
Common linux ubuntu commands overview
Common linux  ubuntu commands overviewCommon linux  ubuntu commands overview
Common linux ubuntu commands overview
ย 
Backup and Restore VMs Based on KVM
Backup and Restore VMs Based on KVMBackup and Restore VMs Based on KVM
Backup and Restore VMs Based on KVM
ย 
A brief study on Kubernetes and its components
A brief study on Kubernetes and its componentsA brief study on Kubernetes and its components
A brief study on Kubernetes and its components
ย 
RedHat Virtualization Manager
RedHat Virtualization ManagerRedHat Virtualization Manager
RedHat Virtualization Manager
ย 
Kubernetes - Security Journey
Kubernetes - Security JourneyKubernetes - Security Journey
Kubernetes - Security Journey
ย 
KCD Italy 2022 - Application driven infrastructure with Crossplane
KCD Italy 2022 - Application driven infrastructure with CrossplaneKCD Italy 2022 - Application driven infrastructure with Crossplane
KCD Italy 2022 - Application driven infrastructure with Crossplane
ย 
ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ๊ธฐ๋ฐ˜ ๊ธฐ์ˆ ๊ณผ ์˜คํ”ˆ์Šคํƒ(Kvm) ๊ธฐ๋ฐ˜ Provisioning
ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ๊ธฐ๋ฐ˜ ๊ธฐ์ˆ ๊ณผ ์˜คํ”ˆ์Šคํƒ(Kvm) ๊ธฐ๋ฐ˜ Provisioning ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ๊ธฐ๋ฐ˜ ๊ธฐ์ˆ ๊ณผ ์˜คํ”ˆ์Šคํƒ(Kvm) ๊ธฐ๋ฐ˜ Provisioning
ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ… ๊ธฐ๋ฐ˜ ๊ธฐ์ˆ ๊ณผ ์˜คํ”ˆ์Šคํƒ(Kvm) ๊ธฐ๋ฐ˜ Provisioning
ย 
RPM (LINUX)
RPM (LINUX)RPM (LINUX)
RPM (LINUX)
ย 
Building Instruqt, a scalable learning platform
Building Instruqt, a scalable learning platformBuilding Instruqt, a scalable learning platform
Building Instruqt, a scalable learning platform
ย 
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
Architecture Overview: Kubernetes with Red Hat Enterprise Linux 7.1
ย 

Similar to RHEL8 Kernel Management Manual in Korean

Lkda facebook seminar_140419
Lkda facebook seminar_140419Lkda facebook seminar_140419
Lkda facebook seminar_140419sprdd
ย 
Oracle History #8
Oracle History #8Oracle History #8
Oracle History #8
Kyung Sang Jang
ย 
Apache module-201511
Apache module-201511Apache module-201511
Apache module-201511
Eric Ahn
ย 
์œˆ๋„์šฐ ์ปค๋„ ์ต์Šคํ”Œ๋กœ์ž‡
์œˆ๋„์šฐ ์ปค๋„ ์ต์Šคํ”Œ๋กœ์ž‡์œˆ๋„์šฐ ์ปค๋„ ์ต์Šคํ”Œ๋กœ์ž‡
์œˆ๋„์šฐ ์ปค๋„ ์ต์Šคํ”Œ๋กœ์ž‡
Seungyong Lee
ย 
์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋ฅผ ์œ„ํ•œ ๋ฆฌ๋ˆ…์Šค๊ฐ•์˜ 1๊ฐ• 20130203
์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋ฅผ ์œ„ํ•œ ๋ฆฌ๋ˆ…์Šค๊ฐ•์˜ 1๊ฐ• 20130203์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋ฅผ ์œ„ํ•œ ๋ฆฌ๋ˆ…์Šค๊ฐ•์˜ 1๊ฐ• 20130203
์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋ฅผ ์œ„ํ•œ ๋ฆฌ๋ˆ…์Šค๊ฐ•์˜ 1๊ฐ• 20130203
doo rip choi
ย 
Docker & Kubernetes ๊ธฐ์ดˆ - ์ตœ์šฉํ˜ธ
Docker & Kubernetes ๊ธฐ์ดˆ - ์ตœ์šฉํ˜ธDocker & Kubernetes ๊ธฐ์ดˆ - ์ตœ์šฉํ˜ธ
Docker & Kubernetes ๊ธฐ์ดˆ - ์ตœ์šฉํ˜ธ
์šฉํ˜ธ ์ตœ
ย 
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…] RPM ๋งŒ๋“ค๊ธฐ
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…] RPM ๋งŒ๋“ค๊ธฐ[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…] RPM ๋งŒ๋“ค๊ธฐ
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…] RPM ๋งŒ๋“ค๊ธฐ
Ji-Woong Choi
ย 
Kernel 2.6 makefile_๋ถ„์„(์†กํ˜•์ฃผ)
Kernel 2.6 makefile_๋ถ„์„(์†กํ˜•์ฃผ)Kernel 2.6 makefile_๋ถ„์„(์†กํ˜•์ฃผ)
Kernel 2.6 makefile_๋ถ„์„(์†กํ˜•์ฃผ)
iamhjoo (์†กํ˜•์ฃผ)
ย 
Osc4.x installation v1-upload
Osc4.x installation v1-uploadOsc4.x installation v1-upload
Osc4.x installation v1-upload
Dong-Hwa jung
ย 
์•ˆ๋“œ๋กœ์ด๋“œ ํ”Œ๋žซํผ ์„ค๋ช…
์•ˆ๋“œ๋กœ์ด๋“œ ํ”Œ๋žซํผ ์„ค๋ช…์•ˆ๋“œ๋กœ์ด๋“œ ํ”Œ๋žซํผ ์„ค๋ช…
์•ˆ๋“œ๋กœ์ด๋“œ ํ”Œ๋žซํผ ์„ค๋ช…
Peter YoungSik Yun
ย 
Exynos4210 beginnerrev10
Exynos4210 beginnerrev10Exynos4210 beginnerrev10
Exynos4210 beginnerrev10mimul
ย 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd
Park Jonggun
ย 
Yeoman(๋ชจ๋˜์›น ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๊ด€๋ฆฌ๋„๊ตฌ)์„ค์น˜์‚ฌ์šฉ๊ฐ€์ด๋“œ
Yeoman(๋ชจ๋˜์›น ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๊ด€๋ฆฌ๋„๊ตฌ)์„ค์น˜์‚ฌ์šฉ๊ฐ€์ด๋“œYeoman(๋ชจ๋˜์›น ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๊ด€๋ฆฌ๋„๊ตฌ)์„ค์น˜์‚ฌ์šฉ๊ฐ€์ด๋“œ
Yeoman(๋ชจ๋˜์›น ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๊ด€๋ฆฌ๋„๊ตฌ)์„ค์น˜์‚ฌ์šฉ๊ฐ€์ด๋“œ
์ˆ˜์ • ๊น€
ย 
์ด๊ธฐ์ข… ๋ฉ€ํ‹ฐ์ฝ”์–ด ํ”„๋กœ์„ธ์„œ๋ฅผ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฐ ์˜์ƒ์ฒ˜๋ฆฌ ์˜คํ”ˆ์†Œ์Šค
์ด๊ธฐ์ข… ๋ฉ€ํ‹ฐ์ฝ”์–ด ํ”„๋กœ์„ธ์„œ๋ฅผ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฐ ์˜์ƒ์ฒ˜๋ฆฌ ์˜คํ”ˆ์†Œ์Šค์ด๊ธฐ์ข… ๋ฉ€ํ‹ฐ์ฝ”์–ด ํ”„๋กœ์„ธ์„œ๋ฅผ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฐ ์˜์ƒ์ฒ˜๋ฆฌ ์˜คํ”ˆ์†Œ์Šค
์ด๊ธฐ์ข… ๋ฉ€ํ‹ฐ์ฝ”์–ด ํ”„๋กœ์„ธ์„œ๋ฅผ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฐ ์˜์ƒ์ฒ˜๋ฆฌ ์˜คํ”ˆ์†Œ์Šค
Seunghwa Song
ย 
Python packaging
Python packagingPython packaging
Python packagingJi Hun Kim
ย 
Window์—์„œ Rcplex ์„ค์น˜ ๊ฐ€์ด๋“œ
Window์—์„œ Rcplex ์„ค์น˜ ๊ฐ€์ด๋“œWindow์—์„œ Rcplex ์„ค์น˜ ๊ฐ€์ด๋“œ
Window์—์„œ Rcplex ์„ค์น˜ ๊ฐ€์ด๋“œ
Jinwoo Kim
ย 
XECon2015 :: [3-2] ์˜ค์Šนํ›ˆ - XE3 ํ”Œ๋Ÿฌ๊ทธ์ธ ์ œ์ž‘ ์†Œ๊ฐœ
XECon2015 :: [3-2] ์˜ค์Šนํ›ˆ - XE3 ํ”Œ๋Ÿฌ๊ทธ์ธ ์ œ์ž‘ ์†Œ๊ฐœXECon2015 :: [3-2] ์˜ค์Šนํ›ˆ - XE3 ํ”Œ๋Ÿฌ๊ทธ์ธ ์ œ์ž‘ ์†Œ๊ฐœ
XECon2015 :: [3-2] ์˜ค์Šนํ›ˆ - XE3 ํ”Œ๋Ÿฌ๊ทธ์ธ ์ œ์ž‘ ์†Œ๊ฐœ
XpressEngine
ย 
DPDK (Data Plane Development Kit)
DPDK (Data Plane Development Kit) DPDK (Data Plane Development Kit)
DPDK (Data Plane Development Kit) ymtech
ย 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)
Ildoo Kim
ย 

Similar to RHEL8 Kernel Management Manual in Korean (20)

Lkda facebook seminar_140419
Lkda facebook seminar_140419Lkda facebook seminar_140419
Lkda facebook seminar_140419
ย 
Oracle History #8
Oracle History #8Oracle History #8
Oracle History #8
ย 
Apache module-201511
Apache module-201511Apache module-201511
Apache module-201511
ย 
์œˆ๋„์šฐ ์ปค๋„ ์ต์Šคํ”Œ๋กœ์ž‡
์œˆ๋„์šฐ ์ปค๋„ ์ต์Šคํ”Œ๋กœ์ž‡์œˆ๋„์šฐ ์ปค๋„ ์ต์Šคํ”Œ๋กœ์ž‡
์œˆ๋„์šฐ ์ปค๋„ ์ต์Šคํ”Œ๋กœ์ž‡
ย 
Maven
MavenMaven
Maven
ย 
์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋ฅผ ์œ„ํ•œ ๋ฆฌ๋ˆ…์Šค๊ฐ•์˜ 1๊ฐ• 20130203
์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋ฅผ ์œ„ํ•œ ๋ฆฌ๋ˆ…์Šค๊ฐ•์˜ 1๊ฐ• 20130203์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋ฅผ ์œ„ํ•œ ๋ฆฌ๋ˆ…์Šค๊ฐ•์˜ 1๊ฐ• 20130203
์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋ฅผ ์œ„ํ•œ ๋ฆฌ๋ˆ…์Šค๊ฐ•์˜ 1๊ฐ• 20130203
ย 
Docker & Kubernetes ๊ธฐ์ดˆ - ์ตœ์šฉํ˜ธ
Docker & Kubernetes ๊ธฐ์ดˆ - ์ตœ์šฉํ˜ธDocker & Kubernetes ๊ธฐ์ดˆ - ์ตœ์šฉํ˜ธ
Docker & Kubernetes ๊ธฐ์ดˆ - ์ตœ์šฉํ˜ธ
ย 
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…] RPM ๋งŒ๋“ค๊ธฐ
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…] RPM ๋งŒ๋“ค๊ธฐ[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…] RPM ๋งŒ๋“ค๊ธฐ
[์˜คํ”ˆ์†Œ์Šค์ปจ์„คํŒ…] RPM ๋งŒ๋“ค๊ธฐ
ย 
Kernel 2.6 makefile_๋ถ„์„(์†กํ˜•์ฃผ)
Kernel 2.6 makefile_๋ถ„์„(์†กํ˜•์ฃผ)Kernel 2.6 makefile_๋ถ„์„(์†กํ˜•์ฃผ)
Kernel 2.6 makefile_๋ถ„์„(์†กํ˜•์ฃผ)
ย 
Osc4.x installation v1-upload
Osc4.x installation v1-uploadOsc4.x installation v1-upload
Osc4.x installation v1-upload
ย 
์•ˆ๋“œ๋กœ์ด๋“œ ํ”Œ๋žซํผ ์„ค๋ช…
์•ˆ๋“œ๋กœ์ด๋“œ ํ”Œ๋žซํผ ์„ค๋ช…์•ˆ๋“œ๋กœ์ด๋“œ ํ”Œ๋žซํผ ์„ค๋ช…
์•ˆ๋“œ๋กœ์ด๋“œ ํ”Œ๋žซํผ ์„ค๋ช…
ย 
Exynos4210 beginnerrev10
Exynos4210 beginnerrev10Exynos4210 beginnerrev10
Exynos4210 beginnerrev10
ย 
[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd[IoT] MAKE with Open H/W + Node.JS - 3rd
[IoT] MAKE with Open H/W + Node.JS - 3rd
ย 
Yeoman(๋ชจ๋˜์›น ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๊ด€๋ฆฌ๋„๊ตฌ)์„ค์น˜์‚ฌ์šฉ๊ฐ€์ด๋“œ
Yeoman(๋ชจ๋˜์›น ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๊ด€๋ฆฌ๋„๊ตฌ)์„ค์น˜์‚ฌ์šฉ๊ฐ€์ด๋“œYeoman(๋ชจ๋˜์›น ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๊ด€๋ฆฌ๋„๊ตฌ)์„ค์น˜์‚ฌ์šฉ๊ฐ€์ด๋“œ
Yeoman(๋ชจ๋˜์›น ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๊ด€๋ฆฌ๋„๊ตฌ)์„ค์น˜์‚ฌ์šฉ๊ฐ€์ด๋“œ
ย 
์ด๊ธฐ์ข… ๋ฉ€ํ‹ฐ์ฝ”์–ด ํ”„๋กœ์„ธ์„œ๋ฅผ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฐ ์˜์ƒ์ฒ˜๋ฆฌ ์˜คํ”ˆ์†Œ์Šค
์ด๊ธฐ์ข… ๋ฉ€ํ‹ฐ์ฝ”์–ด ํ”„๋กœ์„ธ์„œ๋ฅผ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฐ ์˜์ƒ์ฒ˜๋ฆฌ ์˜คํ”ˆ์†Œ์Šค์ด๊ธฐ์ข… ๋ฉ€ํ‹ฐ์ฝ”์–ด ํ”„๋กœ์„ธ์„œ๋ฅผ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฐ ์˜์ƒ์ฒ˜๋ฆฌ ์˜คํ”ˆ์†Œ์Šค
์ด๊ธฐ์ข… ๋ฉ€ํ‹ฐ์ฝ”์–ด ํ”„๋กœ์„ธ์„œ๋ฅผ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฐ ์˜์ƒ์ฒ˜๋ฆฌ ์˜คํ”ˆ์†Œ์Šค
ย 
Python packaging
Python packagingPython packaging
Python packaging
ย 
Window์—์„œ Rcplex ์„ค์น˜ ๊ฐ€์ด๋“œ
Window์—์„œ Rcplex ์„ค์น˜ ๊ฐ€์ด๋“œWindow์—์„œ Rcplex ์„ค์น˜ ๊ฐ€์ด๋“œ
Window์—์„œ Rcplex ์„ค์น˜ ๊ฐ€์ด๋“œ
ย 
XECon2015 :: [3-2] ์˜ค์Šนํ›ˆ - XE3 ํ”Œ๋Ÿฌ๊ทธ์ธ ์ œ์ž‘ ์†Œ๊ฐœ
XECon2015 :: [3-2] ์˜ค์Šนํ›ˆ - XE3 ํ”Œ๋Ÿฌ๊ทธ์ธ ์ œ์ž‘ ์†Œ๊ฐœXECon2015 :: [3-2] ์˜ค์Šนํ›ˆ - XE3 ํ”Œ๋Ÿฌ๊ทธ์ธ ์ œ์ž‘ ์†Œ๊ฐœ
XECon2015 :: [3-2] ์˜ค์Šนํ›ˆ - XE3 ํ”Œ๋Ÿฌ๊ทธ์ธ ์ œ์ž‘ ์†Œ๊ฐœ
ย 
DPDK (Data Plane Development Kit)
DPDK (Data Plane Development Kit) DPDK (Data Plane Development Kit)
DPDK (Data Plane Development Kit)
ย 
[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)[17.01.19] docker introduction (Korean Version)
[17.01.19] docker introduction (Korean Version)
ย 

RHEL8 Kernel Management Manual in Korean

  • 1. ์ปค๋„์˜ ๊ด€๋ฆฌ, ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์—…๋ฐ์ดํŠธ (MANAGING, MONITORING AND UPDATING THE KERNEL) RED HAT ENTERPRISE LINUX8 Red Hat Enterprise Linux 8 ์—์„œ Linux ์ปค๋„์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€์ด๋“œ Red Hat ๊ณ ๊ฐ ์ปจํ…์ธ  ์„œ๋น„์Šค ๋ฒ•์  ๊ณ ์ง€ ์š”์•ฝ ๋ณธ ๋ฌธ์„œ์—์„œ๋Š” Linux ์ปค๋„ ๋ ˆ๋ฒจ์—์„œ ์›Œํฌ ์Šคํ…Œ์ด์…˜์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์‚ฌ์šฉ์ž ๋ฐ ๊ด€๋ฆฌ์ž๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์กฐ์ •์„ ํ†ตํ•ด ์„ฑ๋Šฅ ํ–ฅ์ƒ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐ ์‹œ์Šคํ…œ ์ตœ์ ํ™”๊ฐ€ ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.
  • 2. Red Hat ๋ฌธ์„œ์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ ์„ค๋ช…์„œ์— ๋Œ€ํ•œ ์˜๊ฒฌ์„ ๋ณด๋‚ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋” ๋‚˜์€ ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ์„ธ์š”. ๊ทธ๋ ‡๊ฒŒํ•˜๋ ค๋ฉด : โ— ํŠน์ • ๊ธ€์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์˜๊ฒฌ์„ ๋‚จ๊ฒจํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. 1. ๋ฌธ์„œ์˜ ํ‘œ์‹œ๊ฐ€ Multi-page HTML ํ˜•์‹์œผ๋กœ๋˜์–ด ์žˆ๊ณ , ๋ฌธ์„œ์˜ ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ ์— Feedback ๋ฒ„ํŠผ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. 2. ๋งˆ์šฐ์Šค ์ปค์„œ์— ๋Œ“๊ธ€์„ ์ถ”๊ฐ€ ํ•  ๋ถ€๋ถ„์„ ๊ฐ•์กฐ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. 3. ํ…์ŠคํŠธ ์•„๋ž˜์— ํ‘œ์‹œ๋˜๋Š” Add Feedback ํŒ์—…์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. 4. ํ‘œ์‹œ๋˜๋Š” ์ง€์นจ์— ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. โ— ๋ณด๋‹ค ์ƒ์„ธํ•œ ํ”ผ๋“œ๋ฐฑ์„ ์‹ค์‹œํ•˜๋Š” ๊ฒฝ์šฐ๋Š” Bugzilla ์˜ ํ‹ฐ์ผ“์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. 1. Bugzilla ์˜ Web ์‚ฌ์ดํŠธ์— ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค. 2. Component ๋กœ Documentation ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. 3. Description ํ•„๋“œ์— ๋ฌธ์„œ์˜ ๊ฐœ์„ ์— ๋Œ€ํ•œ ์˜๊ฒฌ์„ ๊ธฐ์ž…ํ•˜์‹ญ์‹œ์˜ค. ๋ฌธ์„œ์˜ ํ•ด๋‹น ๋ถ€๋ถ„ ์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค. 4. Submit Bug ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ํ•œ๊ธ€๋ฒˆ์—ญ์— ๋Œ€ํ•œ ์˜์—ญ, ์˜ค์—ญ์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์€ KR-Trans-FeedBack ์œผ๋กœ ์˜๊ฒฌ์„ ๋ณด๋‚ด์ฃผ์‹ญ์‹œ์˜ค.
  • 3. ์ œ 1 ์žฅ Linux ์ปค๋„ RPM ๋‹ค์Œ ์„น์…˜์—์„œ๋Š” Red Hat ์ด ์ œ๊ณต ๋ฐ ๊ด€๋ฆฌํ•˜๋Š” Linux ์ปค๋„ RPM ํŒจํ‚ค์ง€๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. 1.1. RPM ์ด๋ž€? RPM ํŒจํ‚ค์ง€๋Š” ๋‹ค๋ฅธ ํŒŒ์ผ๊ณผ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ (์‹œ์Šคํ…œ์ด ํ•„์š”๋กœํ•˜๋Š” ํŒŒ์ผ์— ๋Œ€ํ•œ ์ •๋ณด)๊ฐ€ ํฌํ•จ ๋œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ RPM ํŒจํ‚ค์ง€๋Š” cpio ์•„์นด์ด๋ธŒ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. cpio ์•„์นด์ด๋ธŒ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. โ— ํŒŒ์ผ โ— RPM ํ—ค๋” (ํŒจํ‚ค์ง€ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ) rpm ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋Š”์ด ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ข…์†์„ฑ ํŒŒ์ผ์˜ ์„ค์น˜ ์œ„์น˜ ๋ฐ ๊ธฐํƒ€ ์ •๋ณด ๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. RPM ํŒจํ‚ค์ง€์˜ ์œ ํ˜• RPM ํŒจํ‚ค์ง€์—๋Š” ๋‘ ๊ฐ€์ง€ ์œ ํ˜•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ์œ ํ˜• ๋ชจ๋‘ ๋™์ผํ•œ ํŒŒ์ผ ํ˜•์‹๊ณผ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜ ์ง€๋งŒ, ๋‚ด์šฉ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋ชฉ์ ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. โ— Source RPM (SRPM) SRPM ์—๋Š” ์†Œ์Šค ์ฝ”๋“œ์™€ SPEC ํŒŒ์ผ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ฐ”์ด ๋„ˆ๋ฆฌ RPM ์„ ๋นŒ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์ ํ˜€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•„์š”์— ๋”ฐ๋ผ ์†Œ์Šค ์ฝ”๋“œ์— ๋Œ€ํ•œ ํŒจ์น˜๋„ ํฌ ํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. โ— Binary RPM ๋ฐ”์ด๋„ˆ๋ฆฌ RPM ์€ ์†Œ์Šค ๋ฐ ํŒจ์น˜์—์„œ ๊ตฌ์ถ• ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. 1.2 Linux ์ปค๋„ RPM ํŒจํ‚ค์ง€์˜ ๊ฐœ์š” kernel RPM ์€ ํŒŒ์ผ์„ ํฌํ•จํ•˜์ง€ ์•Š๋Š” ๋ฉ”ํƒ€ ํŒจํ‚ค์ง€์—์„œ ๋‹ค์Œ ํ•˜์œ„ ํŒจํ‚ค์ง€๊ฐ€ ์ œ๋Œ€๋กœ ์„ค์น˜๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • 4. kernel-core - ํ•ต์‹ฌ ๊ธฐ๋Šฅ์— ํ•„์š”ํ•œ ์ตœ์†Œํ•œ์˜ ์ปค๋„ ๋ชจ๋“ˆ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์„œ๋ธŒ ํŒจํ‚ค์ง€๋งŒ์œผ๋กœ ๊ฐ€์ƒํ™” ๋ฐ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ Red Hat Enterprise L ๋กœ inux 8 ์ปค๋„์— ๋น ๋ฅธ ๋ถ€ํŒ… ์‹œ๊ฐ„๊ณผ ์ž‘์€ ๋””์Šคํฌ ํฌ๊ธฐ๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. kernel-modules - ๊ธฐํƒ€ ์ปค๋„ ๋ชจ๋“ˆ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. kernel-modules-extra - ๋“œ๋ฌธ(rare) ํ•˜๋“œ์›จ์–ด์˜ ์ปค๋„ ๋ชจ๋“ˆ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์œ„์˜ ์ž‘์€ kernel ์„œ๋ธŒ ํŒจํ‚ค์ง€๋ฅผ ์ผ๋ถ€ ์ œ๊ณตํ•จ์œผ๋กœ์จ, ํŠนํžˆ ๊ฐ€์ƒ ํ™˜๊ฒฝ ๋ฐ ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ์—์„œ ์‹œ ์Šคํ…œ ๊ด€๋ฆฌ์ž์—๊ฒŒ ์œ ์ง€ ๊ด€๋ฆฌ ์˜์—ญ์„ ์ถ•์†Œํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ผ๋ฐ˜์ ์ธ ์ปค๋„ ํŒจํ‚ค์ง€์˜ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. kernel-debug- ์ปค๋„ ์ง„๋‹จ์— ํšจ๊ณผ์ ์ธ ๋””๋ฒ„๊น… ์˜ต์…˜์ด ๋‹ค์ˆ˜ ํฌํ•จ ๋œ ์ปค๋„์ด ํฌํ•จ๋˜์–ด ์žˆ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋ฉ๋‹ˆ๋‹ค. kernel-tools - Linux ์ปค๋„์„ ์กฐ์ž‘ํ•˜๋Š” ํˆด๊ณผ ์ง€์› ๋ฌธ์„œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. kernel-devel- kernel ํŒจํ‚ค์ง€์— ๋ชจ๋“ˆ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์ถฉ๋ถ„ํ•œ ์ปค๋„ ํ—ค๋”์™€ makefiles ์ด ํฌ ํ•จ๋ฉ๋‹ˆ๋‹ค. kernel-abi-whitelists- Red Hat Enterprise Linux ์ปค๋„ ABI ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๊ฐ•ํ™”(enforcement)๋ฅผ ์ง€์›ํ•˜๊ธฐ์œ„ํ•œ ์™ธ๋ถ€ Linux ์ปค๋„ ๋ชจ๋“ˆ ๋ฐ yum ํ”Œ๋Ÿฌ ๊ทธ์ธ์— ํ•„์š”ํ•œ ์ปค๋„ ์‹ฌ๋ณผ์˜ ๋ชฉ๋ก์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. kernel-headers- Linux ์ปค๋„๊ณผ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์ด์˜ ์ธํ„ฐํŽ˜์ด์Šค ๋ฅผ ์ œ๊ณตํ•˜๋Š” C ํ—ค๋” ํŒŒ์ผ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ—ค๋” ํŒŒ์ผ์€ ๋Œ€๋ถ€๋ถ„์˜ ํ‘œ์ค€ ํ”„๋กœ๊ทธ๋žจ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ตฌ์กฐ์™€ ์ƒ์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. 1.3 ์ปค๋„ ํŒจํ‚ค์ง€ ๋‚ด์šฉ๋ณด๊ธฐ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” rpm ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ  ์ปค๋„ ํŒจํ‚ค์ง€ ๋ฐ ๊ทธ ์„œ๋ธŒ ํŒจํ‚ค์ง€์˜ ๋‚ด์šฉ์„ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ „์ œ ์กฐ๊ฑด ์‚ฌ์šฉํ•˜๊ณ ์žˆ๋Š” CPU ์•„ํ‚คํ…์ฒ˜์šฉ kernel, kernel-core, kernel-modules, kernel-modules-extra RPM ํŒจํ‚ค์ง€ ์ค€๋น„
  • 5. ๋‹จ๊ณ„ โ— kernel ์šฉ ๋ชจ๋“ˆ์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค. $ rpm -qlp <kernel_rpm> (contains no files) โ€ฆโ€‹ โ— kernel-core ๋ชจ๋“ˆ์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค. $ rpm -qlp <kernel-core_rpm> โ€ฆโ€‹ /lib/modules/4.18.0-80.el8.x86_64/kernel/fs/udf/udf.ko.xz /lib/modules/4.18.0-80.el8.x86_64/kernel/fs/xfs /lib/modules/4.18.0-80.el8.x86_64/kernel/fs/xfs/xfs.ko.xz /lib/modules/4.18.0-80.el8.x86_64/kernel/kernel /lib/modules/4.18.0-80.el8.x86_64/kernel/kernel/trace /lib/modules/4.18.0-80.el8.x86_64/kernel/kernel/trace/ring_buffer_benchmark.ko.xz /lib/modules/4.18.0-80.el8.x86_64/kernel/lib /lib/modules/4.18.0-80.el8.x86_64/kernel/lib/cordic.ko.xz โ€ฆโ€‹ โ— kernel-modules ๋ชจ๋“ˆ์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค. $ rpm -qlp <kernel-modules_rpm> โ€ฆโ€‹ /lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/infiniband/hw/mlx4/mlx4_ib.ko.xz /lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/infiniband/hw/mlx5/mlx5_ib.ko.xz /lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/infiniband/hw/qedr/qedr.ko.xz /lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/infiniband/hw/usnic/usnic_verbs.ko.xz /lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/infiniband/hw/vmw_pvrdma/vmw_pvrdma.ko.xz โ€ฆโ€‹ โ— kernel-modules-extra ๋ชจ๋“ˆ์„ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค. $ rpm -qlp <kernel-modules_rpm> โ€ฆโ€‹ /lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/infiniband/hw/mlx4/mlx4_ib.ko.xz /lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/infiniband/hw/mlx5/mlx5_ib.ko.xz /lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/infiniband/hw/qedr/qedr.ko.xz /lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/infiniband/hw/usnic/usnic_verbs.ko.xz /lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/infiniband/hw/vmw_pvrdma/vmw_pvrdma.ko.xz โ€ฆโ€‹ ๊ด€๋ จ ์ •๋ณด
  • 6. โ— ์ด๋ฏธ ์„ค์น˜๋œ kernelRPM (์„œ๋ธŒ ํŒจํ‚ค์ง€๋ฅผ ํฌํ•จ)์—์„œ rpm ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ man ํŽ˜ ์ด์ง€์˜ rpm(8)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. โ— RPM ํŒจํ‚ค์ง€ ์˜ ๊ฐœ์š”
  • 7. ์ œ 2 ์žฅ yum ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋„ ์—…๋ฐ์ดํŠธ ๋‹ค์Œ ์„น์…˜์—์„œ๋Š” Red Hat (Red Hat kernel)์„ ์ œ๊ณตํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” Linux ์ปค๋„๊ณผ Red Hat ์ปค๋„ ์˜ ์—…๋ฐ์ดํŠธ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ, ์ด ์šด์˜ ์ฒด์ œ์—๋Š” ์ตœ์‹  ๋ฒ„๊ทธ ์ˆ˜์ • ๋ฐ ์„ฑ๋Šฅ ํ–ฅ์ƒ ํŒจ์น˜๋ฅผ ๋ชจ๋‘ ์ ์šฉ๋˜๋Š” ์ƒˆ๋กœ์šด ํ•˜๋“œ์›จ์–ด์™€์˜ ํ˜ธํ™˜์„ฑ์ด ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค. 2.1 ์ปค๋„์˜ ๊ฐœ์š” ์ปค๋„์€ Linux ์šด์˜ ์ฒด์ œ์˜ ํ•ต์‹ฌ ๋ถ€๋ถ„์œผ๋กœ ์‹œ์Šคํ…œ ์ž์›์„ ๊ด€๋ฆฌํ•˜๊ณ  ํ•˜๋“œ์›จ์–ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋ฐ ์†Œํ”„ํŠธ์›จ์–ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์ด์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Red Hat ์ปค๋„์€ ์—…์ŠคํŠธ๋ฆผ Linux ๋ฉ”์ธ ๋ผ์ธ ์ปค๋„์„ ๊ธฐ๋ฐ˜์œผ๋กœํ•˜๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ์ปค๋„์ž…๋‹ˆ๋‹ค. Red Hat ์—”์ง€๋‹ˆ์–ด๋Š” ์•ˆ์ •์„ฑ๊ณผ ์ตœ์‹  ๊ธฐ์ˆ  ๋ฐ ํ•˜๋“œ์›จ์–ด์™€์˜ ํ˜ธํ™˜์„ฑ์— ์ค‘์ ์„๋‘๊ณ  ์ถ”๊ฐ€ ๊ฐœ๋ฐœ ๋ฐ ๊ฐœ์„ ์„ ์‹ค์‹œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Red Hat ์€ ์ƒˆ๋กœ์šด ์ปค๋„ ๋ฒ„์ „์„ ์ถœ์‹œํ•˜๊ธฐ ์ „์— ์ปค๋„์€ ์—„๊ฒฉํ•œ ํ’ˆ์งˆ ๋ณด์ฆ ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ•ด์•ผํ•ฉ ๋‹ˆ๋‹ค. Red Hat ์ปค๋„์€ RPM ํ˜•์‹์œผ๋กœ ํŒจํ‚ค์ง€ํ™”๋˜๊ธฐ ๋•Œ๋ฌธ์— yum ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์— ์˜ํ•œ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฐ ํ™•์ธ์ด ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ๊ณ  Red Hat ์˜ํ•ด ์ปดํŒŒ์ผ๋˜์ง€ ์•Š์€ ์ปค๋„์€ Red Hat ์€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค . 2.2. yum ์ด๋ž€? ์ด ์„น์…˜์—์„œ๋Š” yum ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž ์˜ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ จ ์ •๋ณด โ— yum ์ž์„ธํ•œ ๋‚ด์šฉ์€ "๊ธฐ๋ณธ ์‹œ์Šคํ…œ ์„ค์ • ๊ตฌ์„ฑ" ์˜ ๊ด€๋ จ ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 2.3 ์ปค๋„ ์—…๋ฐ์ดํŠธ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” yum ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋„์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ๊ณ„
  • 8. 1. ์ปค๋„์„ ์—…๋ฐ์ดํŠธํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. # yum update kernel ์ด ๋ช…๋ น์€ ์ปค๋„๊ณผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ๋ชจ๋“  ์ข…์†์„ฑ์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. 2. ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ  Red Hat Enterprise Linux 7 ์—์„œ Red Hat Enterprise Linux 8 ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒฝ ์šฐ "RHEL 8 ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ" ์˜ ๊ด€๋ จ ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 2.4 ์ปค๋„์˜ ์„ค์น˜ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” yum ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ์ปค๋„์„ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ๊ณ„ โ— ํŠน์ • ์ปค๋„ ๋ฒ„์ „์„ ์„ค์น˜ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. # yum install kernel-{version} ๊ด€๋ จ ์ •๋ณด โ— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปค๋„ ๋ชฉ๋ก์€ "Red Hat Code Browser" ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. โ— ํŠน์ • ์ปค๋„ ๋ฒ„์ „ ์ถœ์‹œ์ผ ๋ชฉ๋ก์€ ์ด ๋ฌธ์„œ ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
  • 9. ์ œ 3 ์žฅ ์ปค๋„ ๋ชจ๋“ˆ ๊ด€๋ฆฌ ๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ์ปค๋„ ๋ชจ๋“ˆ ๊ฐœ์š” ์ปค๋„ ๋ชจ๋“ˆ์˜ ํ‘œ์‹œ ๋ฐฉ๋ฒ•, ์ปค๋„ ๋ชจ๋“ˆ์—์„œ์˜ ๊ธฐ๋ณธ์ ์ธ ๊ด€๋ฆฌ ์ž‘ ์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. 3.1 ๋ชจ๋“ˆ ์†Œ๊ฐœ Red Hat Enterprise Linux ์ปค๋„์€ ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ณ ๋„ ์ปค๋„ ๋ชจ๋“ˆ์ด๋ผ๋Š” ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ์œผ๋กœ ํ™•์žฅ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Red Hat Enterprise Linux 8 ์—์„œ ์ปค๋„ ๋ชจ๋“ˆ์€ ์ถ”๊ฐ€ ์ปค๋„ ์ฝ”๋“œ๋กœ ์•• ์ถ• ๋œ <KERNEL_MODULE_NAME>.ko.xz ์˜ค๋ธŒ์ ํŠธ ํŒŒ์ผ์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค๋„ ๋ชจ๋“ˆ์— ์˜ํ•ด ์‚ฌ์šฉ ๋œ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. โ— ์ƒˆ๋กœ์šด ํ•˜๋“œ์›จ์–ด์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๋Š” ์žฅ์น˜ ๋“œ๋ผ์ด๋ฒ„ โ— GFS2 ์™€ NFS ๊ฐ™์€ ํŒŒ์ผ ์‹œ์Šคํ…œ ์ง€์› โ— ์‹œ์Šคํ…œ ์ฝœ(System Call) ์ตœ์‹  ์‹œ์Šคํ…œ์€ ํ•„์š”์— ๋”ฐ๋ผ ์ž๋™์œผ๋กœ ์ปค๋„ ๋ชจ๋“ˆ์ด๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ์„œ๋Š” ๋ชจ๋“ˆ์„ ์ˆ˜๋™์œผ๋กœ ๋กœ๋“œํ•˜๊ฑฐ๋‚˜ ์–ธ๋กœ๋“œํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์€ ์ปค๋„ ์ž์ฒด๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ•„์š”์— ๋”ฐ๋ผ ๊ทธ ๋™์ž‘์„ ์‚ฌ์šฉ์ž ์ •์˜ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ ๋‹ค. ๋„๊ตฌ๋Š” ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ๋ชจ๋“ˆ, ์ปค๋„์— ๋กœ๋“œ ํ•  ์ˆ˜์žˆ๋Š” ๋ชจ๋“ˆ ๋ฐ ๋ชจ๋“ˆ์ด ํ—ˆ์šฉํ•˜๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ํ™• ์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๋Š” ์‹คํ–‰์ค‘์ธ ์ปค๋„ ์ปค๋„ ๋ชจ๋“ˆ ๋กœ๋“œ ๋ฐ ์–ธ๋กœ๋“œ๋ฅผ์œ„ํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณต ํ•ฉ๋‹ˆ๋‹ค. 3.2 ์ปค๋„ ๋ชจ๋“ˆ ์ข…์†์„ฑ ํŠน์ • ์ปค๋„ ๋ชจ๋“ˆ์€ ์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ์ปค๋„ ๋ชจ๋“ˆ์— ์˜์กดํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ ๋‹ค. /lib/modules/<KERNEL_VERSION>/modules.dep ํŒŒ์ผ์—๋Š” ๊ฐ ์ปค๋„ ๋ฒ„์ „์— ๋Œ€ํ•œ ์ปค๋„ ๋ชจ๋“ˆ ์ข…์† ์„ฑ์˜ ์ „์ฒด ๋ชฉ๋ก์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ข…์† ํŒŒ์ผ์€ kmod ํŒจํ‚ค์ง€์˜ ์ผ๋ถ€์ธ depmod ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ•ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. kmod ์— ์˜ํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ์˜ ๋งŽ์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ ํ•  ๋•Œ ๋ชจ๋“ˆ ์ข…์†์„ฑ์„ ๊ณ ๋ ค ๋•Œ๋ฌธ์— ์ˆ˜๋™ ์œผ๋กœ ์ข…์†์„ฑ์„ ์ถ”์  ํ•  ํ•„์š”๋Š” ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.
  • 10. ๊ฒฝ๊ณ  ์ปค๋„ ๋ชจ๋“ˆ์˜ ์ฝ”๋“œ๋Š” ์ปค๋„ ๋ชจ๋“œ์—์„œ ๋ฌด์ œํ•œ(UNRESTRICTED) ๋ชจ๋“œ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ๋ฌธ์— ์–ด๋–ค ๋ชจ๋“ˆ์„๋กœ๋“œํ•˜๊ณ  ์žˆ๋Š”์ง€์ฃผ์˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ จ ์ •๋ณด โ— /lib/modules/<KERNEL_VERSION>/modules.dep ์ž์„ธํ•œ ๋‚ด์šฉ์€ modules.dep(5)man ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. โ— depmod ๊ฐœ์š” ๋ฐ ์˜ต์…˜์˜ ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ depmod(8)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 3.3. ํ˜„์žฌ ๋กœ๋“œ ๋œ ์ปค๋„ ๋ชจ๋“ˆ ๋ชฉ๋ก๋ณด๊ธฐ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” ํ˜„์žฌ ๋กœ๋“œ ๋œ ์ปค๋„ ๋ชจ๋“ˆ์„ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ „์ œ ์กฐ๊ฑด โ— kmod ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ๋‹ค. ๋‹จ๊ณ„ โ— ํ˜„์žฌ๋กœ๋“œ ๋œ ์ปค๋„ ๋ชจ๋“ˆ์„ ๋‚˜์—ดํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. $ lsmod Module Size Used by fuse 126976 3 uinput 20480 1 xt_CHECKSUM 16384 1 ipt_MASQUERADE 16384 1 xt_conntrack 16384 1 ipt_REJECT 16384 1 nft_counter 16384 16 nf_nat_tftp 16384 0 nf_conntrack_tftp 16384 1 nf_nat_tftp tun 49152 1 bridge 192512 0 stp 16384 1 bridge llc 16384 2 bridge,stp nf_tables_set 32768 5 nft_fib_inet 16384 1 โ€ฆโ€‹
  • 11. ์œ„์˜ ์˜ˆ : o ์ฒซ ๋ฒˆ์งธ ์—ด์—๋Š” ํ˜„์žฌ๋กœ๋“œ ๋œ ๋ชจ๋“ˆ์˜ ์ด๋ฆ„ ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. o ๋‹ค์Œ ์นผ๋Ÿผ์€ ๊ฐ ๋ชจ๋“ˆ์˜ ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰์„ ํ‚ฌ๋กœ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. o ๋งˆ์ง€๋ง‰ ์นผ๋Ÿผ์€ ์ˆซ์ž์™€ ์„ ํƒ์ ์œผ๋กœ ํŠน์ • ๋ชจ๋“ˆ์— ์˜์กด ํ•˜๋Š” ๋ชจ๋“ˆ ์ด๋ฆ„์„ ํ‘œ์‹œํ•ฉ๋‹ˆ ๋‹ค. ๊ด€๋ จ ์ •๋ณด โ— kmod ์ž์„ธํ•œ ๋‚ด์šฉ์€ /usr/share/doc/kmod/README ํŒŒ์ผ ๋˜๋Š” lsmod (8)man ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐ ํ•˜์‹ญ์‹œ์˜ค. 3.4 ๋ชจ๋“ˆ ์ •๋ณด๋ณด๊ธฐ ์ปค๋„ ๋ชจ๋“ˆ๋กœ ์ž‘์—… ํ•  ๋•Œ ํ•ด๋‹น ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„์— ์„œ๋Š” ์ปค๋„ ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ „์ œ ์กฐ๊ฑด โ— kmod ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ์–ด์•ผํ•จ. ๋‹จ๊ณ„ โ— ์ปค๋„ ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. $ modinfo <KERNEL_MODULE_NAME> For example: $ modinfo virtio_net filename: /lib/modules/4.18.0-94.el8.x86_64/kernel/drivers/net/virtio_net.ko.xz license: GPL description: Virtio network driver rhelversion: 8.1 srcversion: 2E9345B281A898A91319773 alias: virtio:d00000001v* depends: net_failover intree: Y name: virtio_net vermagic: 4.18.0-94.el8.x86_64 SMP mod_unload modversions โ€ฆโ€‹ parm: napi_weight:int parm: csum:bool parm: gso:bool
  • 12. parm: napi_tx:bool modinfo ๋ช…๋ น์€ ์ง€์ •ํ•œ ์ปค๋„ ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋กœ๋“œ๋˜์–ด ์žˆ๋Š”์ง€ ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋ชจ๋“ˆ์˜ ์ •๋ณด๋ฅผ ์กฐํšŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. parm ํ•ญ๋ชฉ์€ ์‚ฌ ์šฉ์ž๊ฐ€ ๋ชจ๋“ˆ์— ์„ค์ •ํ•  ์ˆ˜์žˆ๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜์™€ ์˜ˆ์ƒ๋˜๋Š” ๊ฐ’์˜ ์œ ํ˜•์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ฐธ๊ณ  ์ปค๋„ ๋ชจ๋“ˆ์˜ ์ด๋ฆ„์„ ์ž…๋ ฅ ํ•  ๋•Œ, .ko.xzํ™•์žฅ์ž๋Š” ์ด๋ฆ„์˜ ๋์— ์ถ”๊ฐ€ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ปค๋„ ๋ชจ๋“ˆ ์ด๋ฆ„์—๋Š” ํŒŒ์ผ ํ™•์žฅ๋ช…์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•ด๋‹น ํŒŒ์ผ์—๋Š” ํ™•์žฅ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ จ ์ •๋ณด โ— modinfo ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ modinfo(8)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 3.5 ์‹œ์Šคํ…œ ๋Ÿฐํƒ€์ž„ ์ปค๋„ ๋ชจ๋“ˆ๋กœ๋“œ Linux ์ปค๋„์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ์ปค๋„ ๋ชจ๋“ˆ์„๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹จ๊ณ„์— ์„œ๋Š” modprobe ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋„ ๋ชจ๋“ˆ์„ ๊ฐ์ง€ํ•˜๊ณ  ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ์ปค๋„์— ๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ „์ œ ์กฐ๊ฑด โ— root ๊ถŒํ•œ โ— kmod ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ์Œ. โ— ํ•ด๋‹น ์ปค๋„ ๋ชจ๋“ˆ์ด๋กœ๋“œ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ๋กœ๋“œ ๋œ ์ปค๋„ ๋ชจ๋“ˆ์„ ๋‚˜์—ดํ•˜์‹ญ์‹œ์˜ค. ๋‹จ๊ณ„ 1. ๋กœ๋“œ ํ•  ์ปค๋„ ๋ชจ๋“ˆ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์€ /lib/modules/$(uname -r)/kernel/<SUBSYSTEM>/๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค. 2. ํ•ด๋‹น ์ปค๋„ ๋ชจ๋“ˆ์„ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. # modprobe < MODULE_NAME >
  • 13. ์ฐธ๊ณ  ์ปค๋„ ๋ชจ๋“ˆ์˜ ์ด๋ฆ„์„ ์ž…๋ ฅ ํ•  ๋•Œ, .ko.xzํ™•์žฅ์ž๋Š” ์ด๋ฆ„์˜ ๋์— ์ถ”๊ฐ€ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ปค๋„ ๋ชจ๋“ˆ ์ด๋ฆ„์—๋Š” ํŒŒ์ผ ํ™•์žฅ๋ช…์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•ด๋‹น ํŒŒ์ผ์—๋Š” ํ™•์žฅ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 3. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๊ด€๋ จ ๋ชจ๋“ˆ์ด๋กœ๋“œ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. $ lsmod | grep < MODULE_NAME > ๋ชจ๋“ˆ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ๋กœ๋“œ ๋œ ๊ฒฝ์šฐ์ด ๋ช…๋ น์€ ๊ด€๋ จ ์ปค๋„ ๋ชจ๋“ˆ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์˜ˆ๋ฅผ ๋‚˜ํƒ€ ๋ƒ…๋‹ˆ๋‹ค. $ lsmod | grep serio_raw serio_raw 16384 0 ์ค‘์š” ์ด ์ ˆ์ฐจ์— ์„ค๋ช… ๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์‹œ์Šคํ…œ์„ ์žฌ์‹œ์ž‘๋Š” ์œ ์ง€๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค . ๊ด€๋ จ ์ •๋ณด โ— modprobe ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ modprobe(8)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 3.6 ์‹œ์Šคํ…œ ๋Ÿฐํƒ€์ž„ ์ปค๋„ ๋ชจ๋“ˆ ์–ธ๋กœ๋“œ ๋•Œ๋กœ๋Š” ์‹คํ–‰์ค‘์ธ ์ปค๋„์—์„œ ํŠน์ • ์ปค๋„ ๋ชจ๋“ˆ์„ ์–ธ๋กœ๋“œ ํ•  ํ•„์š”์„ฑ์„ ๋Š๋ผ๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹จ ๊ณ„์—์„œ๋Š” modprobe ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ๋กœ๋“œ ๋œ ์ปค๋„์—์„œ ์‹œ์Šคํ…œ์˜ ์‹คํ–‰์‹œ์— ์ปค๋„ ๋ชจ๋“ˆ์„ ์ฐพ ์•„ ์–ธ๋กœ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ „์ œ ์กฐ๊ฑด โ— root ๊ถŒํ•œ โ— kmod ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ์Œ.
  • 14. ๋‹จ๊ณ„ 1. lsmod ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์–ธ๋กœ๋“œํ•˜๋Š” ์ปค๋„ ๋ชจ๋“ˆ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ์ปค๋„ ๋ชจ๋“ˆ์— ์˜์กด ๊ด€๊ณ„ (dependencies)๋Š” ์ปค๋„ ๋ชจ๋“ˆ์„ ์–ธ๋กœ๋“œํ•˜๊ธฐ ์ „์—์ด ์–ธ๋กœ๋“œํ•ฉ๋‹ˆ ๋‹ค. ์ข…์† ๋ชจ๋“ˆ์˜ ๊ตฌ์ฒด์ ์ธ ๋‚ด์šฉ์€ "ํ˜„์žฌ๋กœ๋“œ ๋œ ์ปค๋„ ๋ชจ๋“ˆ ๋ชฉ๋ก" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 2. ํ•ด๋‹น ์ปค๋„ ๋ชจ๋“ˆ์„ ์–ธ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. # modprobe -r < MODULE_NAME > ์ปค๋„ ๋ชจ๋“ˆ์˜ ์ด๋ฆ„์„ ์ž…๋ ฅ ํ•  ๋•Œ, .ko.xz ํ™•์žฅ์ž๋Š” ์ด๋ฆ„์˜ ๋์— ์ถ”๊ฐ€ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ปค๋„ ๋ชจ๋“ˆ ์ด๋ฆ„์—๋Š” ํŒŒ์ผ ํ™•์žฅ๋ช…์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•ด๋‹น ํŒŒ์ผ์˜ ํ™•์žฅ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฝ๊ณ  ์‹คํ–‰์ค‘์ธ ์‹œ์Šคํ…œ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ์ปค๋„ ๋ชจ๋“ˆ์„ ์–ธ๋กœ๋“œํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ์‹œ ์Šคํ…œ์ด ๋ถˆ์•ˆ์ •ํ•˜๊ฑฐ๋‚˜ ์ž‘๋™ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 3. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๊ด€๋ จ ๋ชจ๋“ˆ์ด ์–ธ๋กœ๋“œ ๋œ ๊ฒƒ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. $ lsmod | grep < MODULE_NAME > ๋ชจ๋“ˆ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์–ธ๋กœ๋“œ ๋œ ๊ฒฝ์šฐ์ด ๋ช…๋ น์€ ์ถœ๋ ฅ์„ ํ‘œ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ค‘์š” ์ด ์ ˆ์ฐจ๋ฅผ ์™„๋ฃŒํ•˜๋ฉด ์‹œ์Šคํ…œ ์‹œ์ž‘์‹œ ์ž๋™์œผ๋กœ ๋กœ๋“œ๋˜๋„๋ก ์ •์˜ ๋œ ์ปค๋„ ๋ชจ๋“ˆ์€ ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด๋„ ์–ธ๋กœ๋“œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค . ์ด ๊ฒฐ๊ณผ๋ฅผ ์ถ”์ ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์‹œ์Šคํ…œ ๋ถ€ํŒ…์‹œ ์ปค๋„ ๋ชจ๋“ˆ์ด ์ž๋™์œผ ๋กœ ๋กœ๋“œ๋˜์ง€ ์•Š๋„๋กํ•˜๋ ค๋ฉด์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ๊ด€๋ จ ์ •๋ณด โ— modprobe ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ modprobe(8)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
  • 15. 3.7 ์‹œ์Šคํ…œ ๋ถ€ํŒ…์‹œ ์ปค๋„ ๋ชจ๋“ˆ ์ž๋™ ๋กœ๋“œ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” ๋ถ€ํŒ… ๊ณผ์ •์—์„œ ์ž๋™์œผ๋กœ ๋กœ๋“œ๋˜๋„๋ก ์ปค๋„ ๋ชจ๋“ˆ์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ ๋‹ค. ์ „์ œ ์กฐ๊ฑด โ— root ๊ถŒํ•œ โ— kmod ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ์Œ. ๋‹จ๊ณ„ 1. ์‹œ์ž‘ ํ”„๋กœ์„ธ์Šค ์ค‘์—๋กœ๋“œ ์ปค๋„ ๋ชจ๋“ˆ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์€ /lib/modules/$(uname -r)/kernel/<SUBSYSTEM>/๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค. 2. ๋ชจ๋“ˆ ์„ค์ • ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. # echo < MODULE_NAME >> /etc/modules-load.d/ < MODULE_NAME > .conf ์ฐธ๊ณ  ์ปค๋„ ๋ชจ๋“ˆ์˜ ์ด๋ฆ„์„ ์ž…๋ ฅ ํ•  ๋•Œ, .ko.xzํ™•์žฅ์ž๋Š” ์ด๋ฆ„์˜ ๋์— ์ถ”๊ฐ€ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ปค๋„ ๋ชจ๋“ˆ ์ด๋ฆ„์—๋Š” ํŒŒ์ผ ํ™•์žฅ๋ช…์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•ด๋‹น ํŒŒ์ผ์—๋Š” ํ™•์žฅ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. 3. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๊ด€๋ จ ๋ชจ๋“ˆ์ด๋กœ๋“œ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. $ lsmod | grep < MODULE_NAME > ์œ„์˜ ์˜ˆ์ œ ๋ช…๋ น์€ ์„ฑ๊ณตํ•˜๊ณ  ๊ด€๋ จ ์ปค๋„ ๋ชจ๋“ˆ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ค‘์š” ์ด ๋‹จ๊ณ„์—์„œ ์„ค๋ช…ํ•˜๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด๋„ ์ง€์†๋ฉ๋‹ˆ๋‹ค . ๊ด€๋ จ ์ •๋ณด
  • 16. โ— ์‹œ์Šคํ…œ์˜ ๋ถ€ํŒ… ๊ณผ์ •์—์„œ ์ปค๋„ ๋ชจ๋“ˆ๋กœ๋“œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€ ์˜ modules-load.d (5)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 3.8 ์‹œ์Šคํ…œ ๋ถ€ํŒ…์‹œ ์ปค๋„ ๋ชจ๋“ˆ์ด ์ž๋™ ๋กœ๋“œ ๋ฐฉ์ง€ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” ์‹œ์Šคํ…œ์˜ ๋ถ€ํŒ… ๊ณผ์ •์—์„œ ์ปค๋„ ๋ชจ๋“ˆ์ด ์ž๋™์œผ๋กœ ๋กœ๋“œ๋˜์ง€ ์•Š๋„๋ก ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ์— ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ „์ œ ์กฐ๊ฑด โ— root ๊ถŒํ•œ โ— kmod ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ์Œ. โ— ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์— ์ง€์ •ํ•œ ์ปค๋„ ๋ชจ๋“ˆ์ด ํ˜„์žฌ์˜ ์‹œ์Šคํ…œ ์„ค์ •์— ์ค‘์š”ํ•˜์ง€ ์•Š์€ ๊ฒƒ์„ ํ™•์ธํ•ฉ๋‹ˆ ๋‹ค. ๋‹จ๊ณ„ 1. ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์— ๋“ฑ๋กํ•˜๋Š” ์ปค๋„ ๋ชจ๋“ˆ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. $ lsmod Module Size Used by fuse 126976 3 xt_CHECKSUM 16384 1 ipt_MASQUERADE 16384 1 uinput 20480 1 xt_conntrack 16384 1 โ€ฆโ€‹ lsmod ๋ช…๋ น์€ ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ์ปค๋„์—๋กœ๋“œ ๋œ ๋ชจ๋“ˆ ๋ชฉ๋ก์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. โ— ๋˜๋Š” ์ฝ๊ธฐ๋ฅผ ์ €์ง€ํ•˜๊ธฐ ์–ธ๋กœ๋“œ ํ•œ ์ปค๋„ ๋ชจ๋“ˆ์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ปค๋„ ๋ชจ๋“ˆ /lib/modules/<KERNEL_VERSION>/kernel/<subsystem>/๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ์Šต๋‹ˆ๋‹ค. 2. ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ์„ค์ • ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. # vim /etc/modprobe.d/blacklist.conf # Blacklists <KERNEL_MODULE_1> blacklist <MODULE_NAME_1> install <MODULE_NAME_1> /bin/false
  • 17. # Blacklists <KERNEL_MODULE_2> blacklist <MODULE_NAME_2> install <MODULE_NAME_2> /bin/false # Blacklists <KERNEL_MODULE_n> blacklist <MODULE_NAME_n> install <MODULE_NAME_n> /bin/false โ€ฆโ€‹ ์ด ์˜ˆ์—์„œ๋Š” vim ํŽธ์ง‘๊ธฐ์—์„œ ํŽธ์ง‘ ํ•œ blacklist.conf ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. blacklist ํ–‰์€ ์‹œ์Šคํ…œ์˜ ๋ถ€ํŒ… ๊ณผ์ •์—์„œ ๊ด€๋ จ ์ปค๋„ ๋ชจ๋“ˆ์ด ์ž๋™์œผ๋กœ๋กœ๋“œ๋˜์ง€ ์•Š๋„๋ก ์ง€์ •ํ•ฉ๋‹ˆ ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ blacklist ๋ช…๋ น์€ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์—์—†๋Š” ๋‹ค๋ฅธ ์ปค๋„ ๋ชจ๋“ˆ ์ข…์†์„ฑ์œผ๋กœ ๋ชจ๋“ˆ๋กœ๋“œ๋ฅผ ๋ง‰์„ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ install ํ–‰์—์„œ๋Š” ๋ชจ๋“ˆ ์„ค์น˜ ๋Œ€์‹  /bin/false ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ํ•ด์‹œ ๊ธฐํ˜ธ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํ–‰์€ ํŒŒ์ผ์ด ๋” ์ฝ๊ธฐ ์‰ฌ๊ฒŒ ๋งŒ๋“œ๋Š” ์ฃผ์„์ž…๋‹ˆ๋‹ค. ์ฐธ๊ณ  ์ปค๋„ ๋ชจ๋“ˆ์˜ ์ด๋ฆ„์„ ์ž…๋ ฅ ํ•  ๋•Œ, .ko.xz ํ™•์žฅ์ž๋Š” ์ด๋ฆ„์˜ ๋์— ์ถ”๊ฐ€ํ•˜์ง€ ๋งˆ์‹ญ์‹œ ์˜ค. ์ปค๋„ ๋ชจ๋“ˆ ์ด๋ฆ„์—๋Š” ํŒŒ์ผ ํ™•์žฅ๋ช…์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•ด๋‹น ํŒŒ์ผ์˜ ํ™•์žฅ์ž๊ฐ€ ์žˆ ์Šต๋‹ˆ๋‹ค. 3. ์žฌ๊ตฌ์„ฑํ•˜๊ธฐ ์ „์— ํ˜„์žฌ ์ดˆ๊ธฐ ramdisk ์ด๋ฏธ์ง€์˜ ๋ฐฑ์—… ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. # cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).bak.$(date +%m-%d-%H%M%S).img ์œ„์˜ ๋ช…๋ น์€ ์ƒˆ๋กœ์šด ๋ฒ„์ „์— ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•ด ๋ฐฑ์—… initramfs ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. โ— ๋˜๋Š” ์ปค๋„ ๋ชจ๋“ˆ์„ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์— ์ง€์ •ํ•˜๋Š” ์ปค๋„ ๋ฒ„์ „์— ํ•ด๋‹นํ•˜๋Š” ๊ธฐํƒ€ ์ดˆ๊ธฐ ramdisk ์ด๋ฏธ์ง€์˜ ๋ฐฑ์—… ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. # cp /boot/initramfs-<SOME_VERSION>.img /boot/initramfs-<SOME_VERSION>.img.bak.$(date +%m-%d-%H%M%S) 4. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ์ดˆ๊ธฐ ramdisk ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. # dracut -f -v โ— ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ๊ฒƒ๊ณผ ๋‹ค๋ฅธ ์ปค๋„ ๋ฒ„์ „์˜ ์ดˆ๊ธฐ ramdisk ์ด๋ฏธ์ง€๋ฅผ ๊ตฌ์ถ• ํ•  ๊ฒฝ์šฐ ๋Œ€์ƒ initramfs ๊ณผ ์ปค๋„ ๋ฒ„์ „์„ ๋ชจ๋‘ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  • 18. # dracut -f -v / boot / initramfs- < TARGET_VERSION > .img < CORRESPONDING_TARGET_KERNEL_VERSION > 5. ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. $ reboot ์ค‘์š” โ— ์ด ๋‹จ๊ณ„์—์„œ ์„ค๋ช…ํ•˜๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด๋„ ์ง€์†๋ฉ๋‹ˆ๋‹ค . ์ฃผ์š” ์ปค๋„ ๋ชจ ๋“ˆ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ์— ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์‹œ์Šคํ…œ์ด ๋ถˆ์•ˆ์ • ํ•ด ์ง€๊ฑฐ๋‚˜ ์‹œ์Šคํ…œ์ด ์ž‘ ๋™ํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ จ ์ •๋ณด โ— dracut ์œ ํ‹ธ๋ฆฌํ‹ฐ์˜ ์ž์„ธํ•œ ๋‚ด์šฉ์€ dracut(8)man ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
  • 19. ์ œ 4 ์žฅ ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์„ค์ • ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์‹œ์Šคํ…œ ์‹œ์ž‘์‹œ Red Hat Enterprise Linux ์ปค๋„์˜ ํŠน์ • ์ธก๋ฉด์˜ ๋™์ž‘ ์„ ๋ณ€๊ฒฝํ•˜๋Š” ์ˆ˜๋‹จ์˜ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋Š” ์‹œ์Šคํ…œ ์‹œ์ž‘์‹œ์— ์„ค์ •๋˜๋Š” ์˜ต์…˜์„ ์™„์ „ํžˆ ์ œ ์–ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŠน์ • ์ปค๋„์˜ ๋™์ž‘์€ ์‹œ์Šคํ…œ ์‹œ์ž‘์‹œ์—๋งŒ ๊ตฌ์„ฑ ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ์ด ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ๊ด€๋ฆฌ ๊ธฐ์ˆ ์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. ์ค‘์š” ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ์‹œ์Šคํ…œ์˜ ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜๋Š” ์˜ต์…˜์€ ์‹œ์Šคํ…œ์— ์•…์˜ํ–ฅ ์„ ๋ฏธ์น  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์— ๋ฐฐํฌํ•˜๊ธฐ ์ „์— ๋ณ€๊ฒฝ์„ ํ…Œ์ŠคํŠธํ•ด์•ผํ•ฉ ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์ง€์นจ์€ Red Hat ์ง€์›ํŒ€์— ๋ฌธ์˜ํ•˜์‹ญ์‹œ์˜ค. 4.1 ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์„ค์ • ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ๋‹ค์Œ ์‹œ์Šคํ…œ ์‹œ์ž‘ ์‹œ๊ฐ„ ์„ค์ •์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. โ— Red Hat Enterprise Linux ์ปค๋„ โ— ์ดˆ๊ธฐ RAM ๋””์Šคํฌ โ— ์‚ฌ์šฉ์ž ์˜์—ญ ๊ธฐ๋Šฅ ์ปค๋„ ๋ถ€ํŒ… ์‹œ๊ฐ„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์ข…์ข… ๊ธฐ๋ณธ๊ฐ’์„ ๋ฎ์–ด ์“ฐ๊ณ  ํŠน์ • ํ•˜๋“œ์›จ์–ด ์„ค์ •์„ ์„ค์ •ํ•˜๋Š” ๋ฐ ์‚ฌ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ GRUB2 ๋ถ€ํŠธ ๋กœ๋”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ์˜ ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ๋ชจ๋“  ์ปค๋„ ๋ถ€ ํŒ… ํ•ญ๋ชฉ์˜ /boot/grub2/grubenv ํŒŒ์ผ์˜ kernelopts ๋ณ€์ˆ˜๋กœ ์ •์˜๋ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ  IBM Z ๋Š” zipl ๋ถ€ํŠธ ๋กœ๋” ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— ๋Œ€์‘ํ•˜๊ณ  ์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋Š” ๋ถ€ํŠธ ํ•ญ๋ชฉ ์„ค์ • ํŒŒ์ผ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ kernelopts ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ด€๋ จ ์ •๋ณด โ— ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด ์ง€ kernel-command-line(7), bootparam(7)๋ฐ dracut.cmdline (7)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
  • 20. 4.2. grubby ๋ž€? grubby ๋ถ€ํŠธ ๋กœ๋” ๊ณ ์œ ์˜ ์„ค์ • ํŒŒ์ผ์„ ์กฐ์ž‘ํ•˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ์ž…๋‹ˆ๋‹ค. grubby ๊ธฐ๋ณธ ๋ถ€ํŒ… ํ•ญ๋ชฉ์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ GRUB2 ๋ฉ”๋‰ด ํ•ญ๋ชฉ์—์„œ ์ธ์ˆ˜ ์ถ”๊ฐ€/์ œ๊ฑฐ์—๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ grubby(8)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 4.3. ๋ถ€ํŠธ ํ•ญ๋ชฉ์˜ ๊ฐœ์š” ๋ถ€ํŠธ ํ•ญ๋ชฉ(boot entry)์€ ์„ค์ • ํŒŒ์ผ์— ํฌํ•จ ๋œ ํŠน์ • ์ปค๋„ ๋ฒ„์ „์— ๊ด€๋ จ๋œ ์˜ต์…˜์˜ ์ง‘ํ•ฉ์ž…๋‹ˆ ๋‹ค. ์‚ฌ์‹ค, ๋ถ€ํŠธ ํ•ญ๋ชฉ์€ ์‹œ์Šคํ…œ ์ปค๋„์ด ์„ค์น˜๋˜์–ด์žˆ๋Š” ์ˆ˜๋งŒํผ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ€ํŒ… ํ•ญ๋ชฉ์˜ ์„ค์ • ํŒŒ ์ผ /boot/loader/entries/directory ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด๋ฉ๋‹ˆ๋‹ค. 6f9cc9cb7d7845d49698c9537337cedc-4.18.0-5.el8.x86_64.conf ์œ„์˜ ํŒŒ์ผ ์ด๋ฆ„์€ /etc/machine-id ํŒŒ์ผ์— ์ €์žฅ๋œ ์ปดํ“จํ„ฐ ID ์™€ ์ปค๋„ ๋ฒ„์ „์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋ถ€ํŠธ ํ•ญ๋ชฉ์˜ ์„ค์ • ํŒŒ์ผ์€ ์ปค๋„ ๋ฒ„์ „ ์ดˆ๊ธฐ ramdisk ์ด๋ฏธ์ง€ ๋ฐ kernelopts ํ™˜๊ฒฝ ๋ณ€์ˆ˜ (์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ํฌํ•จ)์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ถ€ํŒ… ํ•ญ๋ชฉ์˜ ์„ค์ • ๋‚ด์šฉ์€ ๋‹ค์Œ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. title Red Hat Enterprise Linux (4.18.0-74.el8.x86_64) 8.0 (Ootpa) version 4.18.0-74.el8.x86_64 linux /vmlinuz-4.18.0-74.el8.x86_64 initrd /initramfs-4.18.0-74.el8.x86_64.img $tuned_initrd options $kernelopts $tuned_params id rhel-20190227183418-4.18.0-74.el8.x86_64 grub_users $grub_users grub_arg --unrestricted grub_class kernel kernelopts ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” /boot/grub2/grubenv ํŒŒ์ผ์—์„œ ์ •์˜๋ฉ๋‹ˆ๋‹ค. 4.4 ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์„ค์ •
  • 21. ๋ณธ ์„น์…˜์—์„œ๋Š” AMD64 ๋ฐ Intel 64 ์•„ํ‚คํ…์ฒ˜ 64 ๋น„ํŠธ ARM ์•„ํ‚คํ…์ฒ˜ ๋ฐ IBM Power Systems ์˜ little-endian ๋ณ€ํ˜•์—์„œ ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. 4.4.1. ๋ชจ๋“  ๋ถ€ํŠธ ํ•ญ๋ชฉ์—์„œ ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋ณ€๊ฒฝ ์ด ๋‹จ๊ณ„์—์„œ๋Š” ์‹œ์Šคํ…œ์—์žˆ๋Š” ๋ชจ๋“  ๋ถ€ํŠธ ํ•ญ๋ชฉ์˜ ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค ๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ „์ œ ์กฐ๊ฑด โ— ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์˜ ๊ฐœ์š” ๋‹จ๊ณ„ 1. vim ํŽธ์ง‘๊ธฐ์—์„œ /etc/default/grub ํŒŒ์ผ์„ ์—ฝ๋‹ˆ ๋‹ค. # vim /etc/default/grub GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet" GRUB_DISABLE_RECOVERY="true" GRUB_ENABLE_BLSCFG=true 2. GRUB_CMDLINE_LINUX ํ–‰์—์„œ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€, ํŽธ์ง‘ ๋˜๋Š” ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. 3. GRUB2 ์„ค์ • ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. # grub2-mkconfig -o /boot/grub2/grub.cfg 4. ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ, ๋ถ€ํŠธ ๋กœ๋”๋ฅผ ๋‹ค์‹œ ์„ค์ • ์ง€์ •๋œ ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ด€๋ จ ์ •๋ณด
  • 22. GRUB2 ์„ค์ • ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ "๋ฉ”๋‰ด ํ•ญ๋ชฉ ํŽธ์ง‘" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 4.4.2 ํ•˜๋‚˜์˜ ๋ถ€ํŠธ ํ•ญ๋ชฉ์—์„œ ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋ณ€๊ฒฝ ์ด ๋‹จ๊ณ„์—์„œ๋Š” ์‹œ์Šคํ…œ์˜ ๋ถ€ํŠธ ํ•ญ๋ชฉ์˜ ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ „์ œ ์กฐ๊ฑด โ— ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์˜ ๊ฐœ์š” โ— grubby(8) man ํŽ˜์ด์ง€ ๋‹จ๊ณ„ โ— ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. # grubby --update-kernel = / boot / vmlinuz-$ (uname -r) --args = "< NEW_PARAMETER >" โ— ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. # grubby --update-kernel = / boot / vmlinuz-$ (uname -r) --remove-args = "< PARAMETER_TO_REMOVE >" ์ฐธ๊ณ  ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ ์ปค๋„ ๋ถ€ํŒ… ํ•ญ๋ชฉ์— options ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์žˆ๊ณ , ์ด๊ฒƒ์€ kernelopts ๋ณ€์ˆ˜๋กœ ์„ค์ •๋ฉ๋‹ˆ ๋‹ค. ์ด ๋ณ€์ˆ˜๋Š” /boot/grub2/grubenv ์„ค์ • ํŒŒ์ผ์— ์ •์˜๋ฉ๋‹ˆ๋‹ค. ์ค‘์š” grubby ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ๋ถ€ํŠธ ํ•ญ๋ชฉ์„ ์ˆ˜์ •ํ•˜๋ฉด ์ˆ˜์ • ํ•œ kernelopts ๋‚ด์šฉ์€ ๊ด€๋ จ ์ปค๋„ ๋ถ€ ํŒ… ํ•ญ๋ชฉ์— ํฌํ•จ๋˜์–ด ์—์„œ ์„ค์ • ํ•œ ๊ฐ’์„ ๋ฎ์–ด ์“ฐ๊ฒŒ๋ฉ๋‹ˆ ๋‹ค. /boot/loader/entries/<RELEVANT_KERNEL_BOOT_ENTRY.conf>/boot/grub2/grubenvkernelopts ๊ด€๋ จ ์ •๋ณด grubby ๋‹ค๋ฅธ ์˜ˆ๋Š” "grubby ๋„๊ตฌ" ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
  • 23. ์ œ 5 ์žฅ ๋Ÿฐํƒ€์ž„์‹œ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์„ค์ • ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋Š” ๋Ÿฐํƒ€์ž„์‹œ์— Red Hat Enterprise Linux ์ปค๋„์˜ ๋™์ž‘์„ ๋‹ค์ˆ˜ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ ๋‹ค. ๋ณธ ์ ˆ์—์„œ๋Š” sysctl ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ /etc/sysctl.d/๋ฐ /proc/sys/๋””๋ ‰ํ† ๋ฆฌ์˜ ์„ค์ • ํŒŒ์ผ์„ ์ˆ˜ ์ •ํ•˜์—ฌ ๋Ÿฐํƒ€์ž„์‹œ์— ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. 5.1 ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ž€? ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜(kernel parameters)๋Š” ์‹œ์Šคํ…œ์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ์กฐ์ •ํ•  ์ˆ˜์žˆ๋Š” ์กฐ์ • ๊ฐ€๋Šฅํ•œ ๊ฐ’ ์ž…๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ์ปค๋„์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ๋‹ค์‹œ ์ปดํŒŒ์ผ ํ•  ํ•„์š”๊ฐ€ ์—†์Šต ๋‹ˆ๋‹ค. ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์— ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + * sysctl ๋ช…๋ น * /proc/sys/๋””๋ ‰ํ† ๋ฆฌ์— ๋งˆ์šดํŠธ ๋œ ๊ฐ€์ƒ ํŒŒ์ผ ์‹œ์Šคํ…œ * /etc/sysctl.d/๋””๋ ‰ํ† ๋ฆฌ ์˜ ์„ค์ • ํŒŒ์ผ ์กฐ์ • ๊ฐ€๋Šฅํ•œ ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์ปค๋„ ์„œ๋ธŒ ์‹œ์Šคํ…œ์—์„œ ํด๋ž˜์Šค๋กœ ๋ถ„ํ• ๋ฉ๋‹ˆ๋‹ค. Red Hat Enterprise Linux ์—๋Š” ๋‹ค์Œ์˜ ์กฐ์ ˆ ๊ฐ€๋Šฅํ•œ ํด๋ž˜์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํ‘œ 5.1 sysctl ํด๋ž˜์Šค ํ‘œ ์กฐ์ • ๊ฐ€๋Šฅํ•œ ํด๋ž˜์Šค(Tunable class) ์„œ๋ธŒ์‹œ์Šคํ…œ (Subsystem) abi(Application Binary Interface) ์‹คํ–‰ ๋„๋ฉ”์ธ ๋ฐ ํŠน์„ฑ (Execution domains and personalities) * Linux ๋Š” ๊ฐ ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ๋‹ค๋ฅธ ์‹คํ–‰ ๋„๋ฉ”์ธ ๋˜๋Š” ํŠน์„ฑ์„ ์ง€์›ํ•จ. crypto ์•”ํ˜ธํ™” ์ธํ„ฐํŽ˜์ด์Šค(Cryptographic interfaces) debug ์ปค๋„ ๋””๋ฒ„๊น… ์ธํ„ฐํŽ˜์ด์Šค(Kernel debugging interfaces) dev ์žฅ์น˜๋ณ„ ์ •๋ณด(Device-specific information) fs ๊ธ€๋กœ๋ฒŒ ๋ฐ ํŠน์ • ํŒŒ์ผ ์‹œ์Šคํ…œ ์กฐ์ •(Global and specific file system tunables) kernel ๊ธ€๋กœ๋ฒŒ ์ปค๋„ ์กฐ์ •(Global kernel tunables)
  • 24. ์กฐ์ • ๊ฐ€๋Šฅํ•œ ํด๋ž˜์Šค(Tunable class) ์„œ๋ธŒ์‹œ์Šคํ…œ (Subsystem) net ๋„คํŠธ์›Œํฌ ์กฐ์ •(Network tunables) sunrpc SUN ์›๊ฒฉ ํ”„๋กœ์‹œ์ ธ ํ˜ธ์ถœ(Sun Remote Procedure Call (NFS)) user ์‚ฌ์šฉ์ž ๋„ค์ž„ ์ŠคํŽ˜์ด์Šค ์ œํ•œ (User Namespace limits) vm ๋ฉ”๋ชจ๋ฆฌ, ๋ฒ„ํผ ๋ฐ ์บ์‹œ ์กฐ์ • ๋ฐ ๊ด€๋ฆฌ (Tuning and management of memory, buffers, and cache) ๊ด€๋ จ ์ •๋ณด โ— sysctl ์ž์„ธํ•œ ๋‚ด์šฉ์€ sysctl(8)man ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. โ— /etc/sysctl.d/์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ sysctl.d(5)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 5.2 ๋Ÿฐํƒ€์ž„์‹œ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์„ค์ • ์ค‘์š” ํ”„๋กœ๋•์…˜ ์‹œ์Šคํ…œ์—์„œ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋ ค๋ฉด ์‹ ์ค‘ํ•œ ๊ณ„ํš์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ณ„ํš์ด ๊ฒฐ์—ฌ ๋œ ๋ณ€๊ฒฝ์€ ์ปค๋„์ด ๋ถˆ์•ˆ์ • ํ•ด์ง€๊ณ  ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค๋„ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๊ธฐ ์ „ ์— ์œ ํšจํ•œ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. 5.2.1. sysctl ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ์ž„์‹œ ์„ค์ • ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” sysctl ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Ÿฐํƒ€์ž„์‹œ์— ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์€ ์กฐ์ • ๊ฐ€๋Šฅํ•œ ๋ณ€์ˆ˜ ๋ชฉ๋ก๋ณด๊ธฐ ๋ฐ ํ•„ํ„ฐ๋ง์— ํŽธ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ „์ œ ์กฐ๊ฑด โ— ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ๊ฐœ์š” โ— root ๊ถŒํ•œ
  • 25. ๋‹จ๊ณ„ 1. ๋ชจ๋“  ๋งค๊ฐœ ๋ณ€์ˆ˜์™€ ๊ทธ ๊ฐ’์„ ๋‚˜์—ดํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. # sysctl -a ์ฐธ๊ณ  # sysctl -a ๋ช…๋ น์€ ๋Ÿฐํƒ€์ž„ ๋ฐ ์‹œ์Šคํ…œ ์‹œ์ž‘์‹œ ์กฐ์ •ํ•  ์ˆ˜์žˆ๋Š” ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ํ‘œ์‹œ ํ•ฉ๋‹ˆ๋‹ค. 2. ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์„ค์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์˜ˆ์™€ ๊ฐ™์ด ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. # sysctl <TUNABLE_CLASS>.<PARAMETER>=<TARGET_VALUE> ์œ„์˜ ์˜ˆ์ œ ๋ช…๋ น์€ ์‹œ์Šคํ…œ์ด ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ๋งค๊ฐœ ๋ณ€์ˆ˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ณ€๊ฒฝ์€ ์žฌ๋ถ€ ํŒ…์—†์ด ๋ฐ”๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ  ๋ณ€๊ฒฝ์€ ์‹œ์Šคํ…œ ์žฌ๋ถ€ํŒ… ํ›„ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค. ๊ด€๋ จ ์ •๋ณด โ— sysctl ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ sysctl(8)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. โ— ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด sysctl ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ /etc/sysctl.conf ํŒŒ์ผ ์— ๊ฐ’์„ ๊ธฐ๋กํ•˜๊ฑฐ๋‚˜ /etc/sysctl.d/๋””๋ ‰ํ† ๋ฆฌ ์˜ ์„ค์ • ํŒŒ์ผ์— ์ˆ˜๋™์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. 5.2.2. sysctl ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ์„ค์ • ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” sysctl ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช… ํ•ฉ๋‹ˆ๋‹ค. ์ „์ œ ์กฐ๊ฑด โ— ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ๊ฐœ์š”
  • 26. โ— root ๊ถŒํ•œ ๋‹จ๊ณ„ 1. ๋ชจ๋“  ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋‚˜์—ดํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. # sysctl -a ์ด ๋ช…๋ น์€ ๋Ÿฐํƒ€์ž„์‹œ์— ์„ค์ •ํ•  ์ˆ˜์žˆ๋Š” ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. 2. ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ์„ค์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. # sysctl -w <TUNABLE_CLASS>.<PARAMETER>=<TARGET_VALUE> >> /etc/sysctl.conf ์ƒ˜ํ”Œ ๋ช…๋ น์€ ๊ฐ€๋ณ€ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์—ฌ /etc/sysctl.conf ํŒŒ์ผ์— ์”๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์˜ ๊ธฐ๋ณธ๊ฐ’์„ ๋ฎ์–ด ์”๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ์€ ์žฌ๋ถ€ํŒ…์—†์ด ์ฆ‰์‹œ ์˜๊ตฌ์ ์œผ๋กœ ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ  ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด /etc/sysctl.d/๋””๋ ‰ํ† ๋ฆฌ์˜ ์„ค์ • ํŒŒ์ผ์— ์ˆ˜ ๋™์œผ๋กœ ๋ณ€๊ฒฝํ•˜์‹ญ์‹œ์˜ค. ๊ด€๋ จ ์ •๋ณด โ— sysctl ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ sysctl(8)๋„์‹œ sysctl.conf (5)๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. โ— ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์— ์˜๊ตฌ์  ์ธ ๋ณ€๊ฒฝ์„์œ„ํ•œ /etc/sysctl.d/๋””๋ ‰ํ† ๋ฆฌ์— ์„ค์ • ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์ •๋ณด๋Š” /etc/sysctl.d/ ์„ค์ • ํŒŒ์ผ์— ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์กฐ์ • ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 5.2.3. /etc/sysctl.d/ ์„ค์ • ํŒŒ์ผ์— ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์กฐ์ • ๋‹ค์Œ ์ ˆ์ฐจ์—์„œ๋Š” /etc/sysctl.d/๋””๋ ‰ํ† ๋ฆฌ์˜ ์„ค์ • ํŒŒ์ผ์„ ์ˆ˜๋™์œผ๋กœ ์ˆ˜์ •ํ•˜์—ฌ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ „์ œ ์กฐ๊ฑด
  • 27. โ— ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ๊ฐœ์š” โ— root ๊ถŒํ•œ ๋‹จ๊ณ„ 1. /etc/sysctl.d/ ์ƒˆ๋กœ์šด ์„ค์ • ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. # vim /etc/sysctl.d/<some_file.conf> 2. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•œ ์ค„๋งˆ๋‹ค ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. <TUNABLE_CLASS>.<PARAMETER>=<TARGET_VALUE> <TUNABLE_CLASS>.<PARAMETER>=<TARGET_VALUE> 3. ์„ค์ •์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. 4. ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์—ฌ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. โ— ๋˜ํ•œ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ณ  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. # sysctl -p /etc/sysctl.d/<some_file.conf> ์ด ๋ช…๋ น์€ ์ด์ „์— ๋งŒ๋“  ์„ค์ • ํŒŒ์ผ์—์„œ ๊ฐ’์„ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ จ ์ •๋ณด โ— sysctl ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ sysctl(8)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. โ— /etc/sysctl.d/์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ sysctl.d(5)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 5.2.4 / proc / sys /์— ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ์ž„์‹œ ์„ค์ • ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” ๊ฐ€์ƒ ํŒŒ์ผ ์‹œ์Šคํ…œ /proc/sys/๋””๋ ‰ํ† ๋ฆฌ์˜ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
  • 28. ์ „์ œ ์กฐ๊ฑด โ— ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ๊ฐœ์š” โ— root ๊ถŒํ•œ ๋‹จ๊ณ„ 1. ์„ค์ • ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. # ls -l /proc/sys/<TUNABLE_CLASS>/ ๋ช…๋ น์—์„œ ๋ฐ˜ํ™˜ ๋œ ์“ฐ๊ธฐ ๊ฐ€๋Šฅํ•œ ํŒŒ์ผ์€ ์ปค๋„ ์„ค์ •์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ๊ธฐ ์ „์šฉ ๊ถŒํ•œ์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๋Š” ํ˜„์žฌ ์„ค์ •์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. 2. ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์— ๋Œ€์ƒ์˜ ๊ฐ’์„ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. # echo <TARGET_VALUE> > /proc/sys/<TUNABLE_CLASS>/<PARAMETER> ์ด ๋ช…๋ น์€ ์‹œ์Šคํ…œ์ด ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด ์„ค์ • ๋ณ€๊ฒฝ์ด ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. 3. ํ•„์š”์— ๋”ฐ๋ผ ์ƒˆ๋กœ ๊ตฌ์„ฑ๋œ ์„ค์ • ํ•œ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. # cat /proc/sys/<TUNABLE_CLASS>/<PARAMETER> ๊ด€๋ จ ์ •๋ณด ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด sysctl ๋ช…๋ น ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ /etc/sysctl.d/๋””๋ ‰ํ†  ๋ฆฌ ์˜ ์„ค์ • ํŒŒ์ผ์— ์ˆ˜๋™์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. 5.3 ๊ฐ€์ƒํ™” ํ™˜๊ฒฝ์—์„œ ์ปค๋„ ํŒจ๋‹‰์˜ ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋น„ํ™œ์„ฑํ™” Red Hat Enterprise Linux 8 (RHEL 8) ๊ฐ€์ƒํ™” ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ, ๊ฐ€์ƒํ™” ํ™˜๊ฒฝ์€ ์‹œ์Šคํ…œ ์žฅ ์• ๋ฅผ ํ•„์š”๋กœํ•˜์ง€ ์•Š๋Š” ์ž˜๋ชป๋œ ์†Œํ”„ํŠธ ์ž ๊ธˆ(soft lockup)์„ ๋ฐœ์ƒ์‹œํ‚ฌ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ ์— softlockup_panic ๋ฐ nmi_watchdog ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ํ™œ์„ฑํ™”ํ•˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค.
  • 29. ๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ์ด ์กฐ์–ธ์˜ ์ด์œ ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์š”์•ฝํ•˜์—ฌ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. โ— ์†Œํ”„ํŠธ ์ž ๊ธˆ(soft lockup)์˜ ์›์ธ โ— ์†Œํ”„ํŠธ ์ž ๊ธˆ(soft lockup)์‹œ ์‹œ์Šคํ…œ์˜ ๋™์ž‘์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ์„ค๋ช… โ— ๊ฐ€์ƒํ™” ํ™˜๊ฒฝ์—์„œ ์†Œํ”„ํŠธ ์ž ๊ธˆ(soft lockup)์ด ์–ด๋–ป๊ฒŒ ๋ฐœ์ƒํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ์„ค๋ช… 5.3.1. ์ž ๊ธˆ ๊ธฐ๋Šฅ์ด๋ž€? ์ž ๊ธˆ ๊ธฐ๋Šฅ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ž‘์—…์ด ์ผ์ •ํ•˜์ง€ ์•Š๊ณ  CPU ๊ฐ€ ์ปค๋„ ์˜์—ญ์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ์— ๋ฒ„๊ทธ ์— ์˜ํ•ด ๋ฐœ์ƒํ•˜๋Š” ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ์ด ์ž‘์—…์€ ๋‹ค๋ฅธ ์ž‘์—…์ด ๊ทธ ํŠน์ • CPU ์—์„œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ๊ฒฝ๊ณ ๊ฐ€ ์‹œ์Šคํ…œ ์ฝ˜์†”์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์ž ๊ธˆ ๋ฐœ์ƒ (soft lockup firing)๋ผ๊ณ ๋„ํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ จ ์ •๋ณด ์ž ๊ธˆ ๊ธฐ๋Šฅ์— ๊ด€๋ จ๋œ ๊ธฐ์ˆ ์  ์ธ ์ด์œ  ๋กœ๊ทธ ๋ฉ”์‹œ์ง€์˜ ์˜ˆ ๋ฐ ๊ธฐํƒ€ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ธฐ์ˆ  ์ž ๋ฃŒ ๋ฌธ์„œ "CPU ์ž ๊ธˆ ๊ธฐ๋Šฅ" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 5.3.2. ์ปค๋„ ํŒจ๋‹‰์„ ์ œ์–ดํ•˜๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜ ์†Œํ”„ํŠธ ๋ก์ด ํƒ์ง€๋˜๋ฉด ์‹œ์Šคํ…œ์˜ ๋™์ž‘์„ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๋‹ค์Œ์˜ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ ๋‹ค. softlockup_panic ์ž ๊ธˆ ๊ธฐ๋Šฅ์ด ๊ฒ€์ถœ ๋œ ๋•Œ ์ปค๋„ ํŒจ๋‹‰์„ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์—ฌ๋ถ€๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ํƒ€์ž… ๊ฐ’ ํšจ๊ณผ ์ •์ˆ˜(Integer) 0 ์†Œํ”„ํŠธ ์ž ๊ธˆ์‹œ ์ปค๋„์ด ํŒจ๋‹‰ ์ƒํƒœ์— ๋น ์ง€์ง€ ์•Š์Œ ์ •์ˆ˜(Integer) 1 ์†Œํ”„ํŠธ ์ž ๊ธˆ์— ๋Œ€ํ•œ ์ปค๋„ ํŒจ๋‹‰ RHEL 8 ์—์„œ๋Š”์ด ๊ฐ’์˜ ๊ธฐ๋ณธ๊ฐ’์€ 0 ์ž…๋‹ˆ๋‹ค.
  • 30. ํŒจ๋‹‰์„ ๋ฐœ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์‹œ์Šคํ…œ์—์„œ ์ฒ˜์Œ์œผ๋กœ ํ•˜๋“œ ๋ก ์—…์„ ๊ฐ์ง€ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰ ์€ nmi_watchdog ๋งค๊ฐœ ๋ณ€์ˆ˜๋กœ ์ œ์–ด๋ฉ๋‹ˆ๋‹ค. nmi_watchdog ์ž ๊ธˆ ๊ฐ์ง€ ๋ฉ”์ปค๋‹ˆ์ฆ˜ ( watchdogs)๊ฐ€ ํ™œ์„ฑํ™” ์—ฌ๋ถ€๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์ •์ˆ˜ํ˜•์ž…๋‹ˆ๋‹ค. ๊ฐ’ ํšจ๊ณผ 0 ์ž ๊ธˆ ๊ฐ์ง€๊ธฐ ๋น„ํ™œ์„ฑํ™” 1 ์ž ๊ธˆ ๊ฐ์ง€๊ธฐ ํ™œ์„ฑํ™” ํ•˜๋“œ ๋ก ์—… ๊ฒ€์ถœ๊ธฐ(hard lockup detector)๋Š” ๊ฐ CPU ์— ์ธํ„ฐ๋ŸฝํŠธ์— ์‘๋‹ตํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋ชจ๋‹ˆํ„ฐ ๋งํ•ฉ๋‹ˆ๋‹ค. watchdog_thresh ์›Œ์น˜ ๋… ์‹œ๊ฐ„ ํƒ€์ด๋จธ hrtimer, NMI ์ด๋ฒคํŠธ ๋ฐ ์†Œํ”„ํŠธ/ํ•˜๋“œ ์ž ๊ธˆ ์ž„๊ณ„ ๊ฐ’์˜ ๋นˆ๋„๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ์ž„๊ณ„ ๊ฐ’(Default threshold) ์†Œํ”„ํŠธ์›จ์–ด ์ž ๊ธˆ ์ž„๊ณ„ ๊ฐ’(Soft lockup threshold) 10 ์ดˆ 2 * watchdog_thresh ์ด ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ โ€œ0โ€์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ์ž ๊ธˆ ๊ฐ์ง€๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ จ ์ •๋ณด โ— nmi_watchdog ๊ทธ๋ฆฌ๊ณ  softlockup_panic ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ "Softlockup detector and hardlockup detector" ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. โ— watchdog_thresh ์ž์„ธํ•œ ๋‚ด์šฉ์€ "Kernel sysctl" ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 5.3.3 ๊ฐ€์ƒํ™” ํ™˜๊ฒฝ์—์„œ ์ž˜๋ชป๋œ ์†Œํ”„ํŠธ์›จ์–ด ์ž ๊ธˆ "์ž ๊ธˆ ๊ธฐ๋Šฅ์€" ์—์„œ ์„ค๋ช…๋˜๋Š” ๋ฌผ๋ฆฌ์  ํ˜ธ์ŠคํŠธ์—์„œ ์†Œํ”„ํŠธ์›จ์–ด ์ž ๊ธˆ์˜ ๋ฐœ์ƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ปค๋„ ๋˜๋Š” ํ•˜๋“œ์›จ์–ด์˜ ๋ฒ„๊ทธ๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๊ฐ€์ƒํ™” ํ™˜๊ฒฝ์˜ ๊ฒŒ์ŠคํŠธ ์šด์˜ ์ฒด์ œ์—์„œ ๊ฐ™์€ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•˜ ๋ฉด ์ž˜๋ชป๋œ ๊ฒฝ๊ณ ๊ฐ€ ํ‘œ์‹œ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ์— ๋งŽ์€ ์ž‘์—… ๋ถ€ํ•˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ๋ฉ”๋ชจ๋ฆฌ์™€ ๊ฐ™์€ ํŠน์ • ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๋†’์€ ๊ฒฝํ•ฉ์ด ๋ฐœ์ƒ ํ•˜๋ฉด ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ€์งœ ์†Œํ”„ํŠธ ๋ฝ์—…์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ๊ฐ€ ๊ฒŒ์ŠคํŠธ CPU ๋ฅผ 20 ์ดˆ ์ด์ƒ ์˜ˆ์•ฝ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฒŒ์ŠคํŠธ CPU ๊ฐ€ ํ˜ธ์ŠคํŠธ์—์„œ ๋‹ค์‹œ ์‹คํ–‰๋˜๋„๋ก ์˜ˆ์•ฝํ•˜๋ฉด ์‹œ๊ฐ„
  • 31. ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์˜ˆ์ •๋œ ํƒ€์ด๋จธ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ํƒ€์ด๋จธ์—๋Š” ์›Œ์น˜ ๋… hrtimer ๋„ ํฌํ•จ๋˜์–ด์žˆ์–ด ๊ฒŒ์ŠคํŠธ CPU ์˜ ์†Œํ”„ํŠธ ๋ฝ์—…์„๋ณด๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ƒํ™” ๋œ ํ™˜๊ฒฝ์—์„œ์˜ ์†Œํ”„ํŠธ ๋ฝ์—…์ด ํ—ˆ์œ„ ์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๊ฒŒ์ŠคํŠธ CPU ์—์„œ ์†Œํ”„ํŠธ ๋ฝ์—…์ด๋ณด ๊ณ  ๋  ๋•Œ ์‹œ์Šคํ…œ ํŒจ๋‹‰์„ ์œ ๋ฐœํ•˜๋Š” ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค. ์ค‘์š” ๊ฒŒ์ŠคํŠธ์˜ ์†Œํ”„ํŠธ ์ž ๊ธˆ์„ ์ดํ•ดํ•˜๋ ค๋ฉด ํ˜ธ์ŠคํŠธ๊ฐ€ ๊ฒŒ์ŠคํŠธ๋ฅผ ์ž‘์—…์œผ๋กœ ์˜ˆ์•ฝ(schedule) ํ•œ ๋‹ค์Œ ๊ฒŒ์ŠคํŠธ๊ฐ€ ์ž์ฒด ์ž‘์—…์„ ์˜ˆ์•ฝ(schedule)ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ จ ์ •๋ณด โ— ์†Œํ”„ํŠธ ๋ก ์—…์˜ ์ •์˜์™€ ๊ทธ ๊ธฐ๋Šฅ์— ๊ด€๋ จ๋œ ๊ธฐ์ˆ ์€ "์ž ๊ธˆ ๊ธฐ๋Šฅ๊ณผ" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. โ— RHEL 8 ๊ฐ€์ƒํ™” ํ™˜๊ฒฝ์˜ ๊ตฌ์„ฑ ์š”์†Œ์™€ ๊ทธ ์ƒํ˜ธ ์ž‘์šฉ์€ "RHEL 8 ๊ฐ€์ƒ ๋จธ์‹  ๊ตฌ์„ฑ ์š”์†Œ ๋ฐ ๊ทธ ์ƒํ˜ธ ์ž‘์šฉ" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 5.4 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์˜ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์กฐ์ • ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜์žˆ๋Š” ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜ ์„ธํŠธ์—๋Š” ์—ฌ ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„ ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํšจ์œจ์ ์ธ ์šด์˜์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌ์„ฑํ•˜๋Š” ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. 5.4.1 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์˜ ๊ฐœ์š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๋Š” ์ผ์ •๋Ÿ‰์˜ ์ฃผ ๋ฉ”๋ชจ๋ฆฌ์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (DB) ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์„ค์น˜๋œ ํ•˜๋“œ ์›จ์–ด ์žฅ์น˜์ž…๋‹ˆ๋‹ค. ์ด DB ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์บ์‹œ ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ๋ฐ˜์ ์œผ๋กœ ์ž‘๊ณ  ๋น„์‹ผ ์ฃผ ๋ฉ”๋ชจ๋ฆฌ ์—์„œ DB ํŒŒ์ผ (database)๋กœ ์“ฐ๋Š” ์ˆ˜๋‹จ์œผ๋กœ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„œ๋น„์Šค๋Š” ๋„คํŠธ์›Œํฌ ์˜ ์—ฌ๋Ÿฌ ํด๋ผ์ด์–ธํŠธ์— ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๋จธ์‹ ์˜ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ ์Šคํ† ๋ฆฌ์ง€๊ฐ€ ํ—ˆ์šฉํ•˜๋Š”๋งŒํผ DB ์„œ๋ฒ„ ๊ฐ€ ์กด์žฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Red Hat Enterprise Linux 8 ๋‹ค์Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. โ— Maria DB 10.3 โ— MySQL 8.0
  • 32. โ— PostgreSQL 10 โ— PostgreSQL 9.6 5.4.2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋‹ค์Œ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„์ค๋‹ˆ๋‹ค. fs.aio-max-nr ์‹œ์Šคํ…œ์ด ์„œ๋ฒ„์—์„œ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜์žˆ๋Š” ์ตœ๋Œ€ ๋น„๋™๊ธฐ I / O ์ž‘์—… ์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ  fs.aio-max-nr ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋†’์ด๋ฉด aio ํ•œ๋„๋ฅผ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ ์™ธ์—๋Š” ์ถ”๊ฐ€ ๋ณ€๊ฒฝ์ด ์—†์Šต๋‹ˆ๋‹ค. fs.file-max ์‹œ์Šคํ…œ์ด ๋ชจ๋“  ์ธ์Šคํ„ด์Šค์—์„œ ์ง€์›ํ•˜๋Š” ์ตœ๋Œ€ ํŒŒ์ผ ํ•ธ๋“ค ์ˆ˜ (์ž„์‹œ ํŒŒ์ผ ์ด๋ฆ„ ๋˜๋Š” ํŒŒ์ผ์„ ์—ด ๊ธฐ ์œ„ํ•ด ํ• ๋‹น ๋œ ID)๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ปค๋„์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ํŒŒ์ผ ํ•ธ๋“ค์„ ์š”์ฒญํ•  ๋•Œ๋งˆ๋‹ค ํŒŒ์ผ ํ•ธ๋“ค์„ ๋™์ ์œผ๋กœ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ ๋‚˜ ์ปค๋„์€ ์ด๋Ÿฌํ•œ ํŒŒ์ผ ํ•ธ๋“ค์ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์— ์˜ํ•ด ํ•ด์ œ ๋  ๋•Œ ํ•ด์ œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ปค๋„์€ ๋Œ€์‹  ์ด๋Ÿฌํ•œ ํŒŒ์ผ ํ•ธ๋“ค์„ ์žฌํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ํ˜„์žฌ ์‚ฌ์šฉ๋˜๋Š” ํŒŒ์ผ ํ•ธ๋“ค ์ˆ˜๊ฐ€ ์ ๋”๋ผ๋„ ์‹œ๊ฐ„ ์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ํ• ๋‹น ๋œ ํŒŒ์ผ ํ•ธ๋“ค์˜ ์ด ์ˆ˜๊ฐ€ ์ฆ๊ฐ€ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. kernel.shmall ์‹œ์Šคํ…œ ์ „์ฒด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ์ด ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€ ์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ์ฃผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด kernel.shmall ๋งค๊ฐœ ๋ณ€์ˆ˜ ๊ฐ’ ์ด โ‰ค ์ด ์ฃผ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ ์—ฌ์•ผํ•ฉ๋‹ˆ๋‹ค. kernel.shmmax Linux ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ€์ƒ ์ฃผ์†Œ ๊ณต๊ฐ„์— ํ• ๋‹น ํ•  ์ˆ˜์žˆ๋Š” ๋‹จ์ผ ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์„ธ๊ทธ๋จผํŠธ์˜ ์ตœ๋Œ€ ํฌ ๊ธฐ (๋ฐ”์ดํŠธ)๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. kernel.shmmni ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๊ฐ€ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜์žˆ๋Š” ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ ์„ธ๊ทธ๋จผํŠธ์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. net.ipv4.ip_local_port_range ํŠน์ • ํฌํŠธ ๋ฒˆํ˜ธ์—†์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์— ์‹œ์Šคํ…œ์ด ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ํฌ ํŠธ ๋ฒ”์œ„๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
  • 33. net.core.rmem_default TCP (Transmission Control Protocol)๋ฅผ ํ†ตํ•ด ๊ธฐ๋ณธ ์ˆ˜์‹  ์†Œ์ผ“ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. net.core.rmem_max TCP (Transmission Control Protocol)์— ์˜ํ•œ ์ตœ๋Œ€ ์ˆ˜์‹  ์†Œ์ผ“ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. net.core.wmem_default TCP (Transmission Control Protocol)์— ์˜ํ•œ ๊ธฐ๋ณธ ์ „์†ก ์†Œ์ผ“ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. net.core.wmem_max TCP (Transmission Control Protocol)์— ์˜ํ•œ ์ตœ๋Œ€ ์ „์†ก ์†Œ์ผ“ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. vm.dirty_bytes / vm.dirty_ratio ๋”ํ‹ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ write()ํ•จ์ˆ˜์—์„œ ์‹œ์ž‘ํ•˜๋Š” ๋”ํ‹ฐ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ๋น„์œจ (๋ฐ” ์ดํŠธ ๋‹จ์œ„)์—์„œ ์ž„๊ณ„ ๊ฐ’์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ  ํ•œ ๋ฒˆ์— ์ง€์ •ํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์€, vm.dirty_bytes ๋˜๋Š” vm.dirty_ratio ์˜ ํ•˜๋‚˜ ์ž…๋‹ˆ๋‹ค. vm.dirty_background_bytes / vm.dirty_background_ratio ์ปค๋„์ด ๋”ํ‹ฐ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋“œ ๋””์Šคํฌ์— ํ™œ์„ฑํ™” ์“ฐ๋ ค๊ณ ํ•˜๋Š” ๋”ํ‹ฐ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋น„์œจ (๋ฐ”์ด ํŠธ ๋‹จ์œ„)์—์„œ ์ž„๊ณ„ ๊ฐ’์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ  ํ•œ ๋ฒˆ์— ์ง€์ •ํ•  ์ˆ˜์žˆ๋Š” ๊ฒƒ์€, vm.dirty_background_bytes ๋˜๋Š” vm.dirty_background_ratio ์˜ ํ•˜ ๋‚˜ ์ž…๋‹ˆ๋‹ค. vm.dirty_writeback_centisecs ํ•˜๋“œ ๋””์Šคํฌ์— ๋”ํ‹ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋กํ•˜๋Š” ์ปค๋„ ์Šค๋ ˆ๋“œ์˜ ์‹œ์ž‘์„ ์ •๊ธฐ์ ์œผ๋กœ ๊ฐ„๊ฒฉ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” 100 ๋ถ„์˜ 1 ์ดˆ ๋‹จ์œ„๋กœ ์ธก์ •๋ฉ๋‹ˆ๋‹ค.
  • 34. vm.dirty_expire_centisecs ๋”ํ‹ฐ ๋ฐ์ดํ„ฐ๊ฐ€ ํ•˜๋“œ ๋””์Šคํฌ์— ๊ธฐ๋ก ๋  ์ •๋„๋กœ ์˜ค๋ž˜ ๋  ๋•Œ๊นŒ์ง€์˜ ์‹œ๊ฐ„์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” 100 ๋ถ„์˜ 1 ์ดˆ ๋‹จ์œ„๋กœ ์ธก์ •๋ฉ๋‹ˆ๋‹ค. ๊ด€๋ จ ์ •๋ณด โ— ๋”ํ‹ฐ ๋ฐ์ดํ„ฐ์˜ ๋ผ์ดํŠธ ๋ฐฑ ๊ทธ ๊ธฐ๋Šฅ ๋ฐ ๊ด€๋ จ ์ปค๋„ ๋งค๊ฐœ ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์„ค๋ช…์€ "๋”ํ‹ฐ ํŽ˜์ด ์ง€์˜ ๋ผ์ดํŠธ ๋ฐฑ์€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?" ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
  • 35. ์ œ 6 ์žฅ ์ปค๋„ ๋กœ๊น… ์‚ฌ์šฉ ๋กœ๊ทธ ํŒŒ์ผ์€ ์‹œ์Šคํ…œ (์ปค๋„, ์„œ๋น„์Šค ๋ฐ ์‹คํ–‰์ค‘์ธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋“ฑ)์— ๋Œ€ํ•œ ๋ฉ”์‹œ์ง€๊ฐ€ ํฌํ•จ ๋œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. Red Hat Enterprise Linux ์—์„œ ๋กœ๊น… ์‹œ์Šคํ…œ์€ ๋‚ด์žฅ syslog ํ”„๋กœํ† ์ฝœ์„ ๊ธฐ๋ฐ˜์œผ๋กœํ•ฉ ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€์ด ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฒคํŠธ๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ๋กœ๊ทธ ํŒŒ์ผ์— ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์€ ์šด์˜ ์ฒด์ œ์˜ ๊ฐ์‚ฌ ๋ฐ ๋ฌธ์ œ ํ•ด๊ฒฐ์— ๋„์›€์ด๋ฉ๋‹ˆ๋‹ค. 6.1 ์ปค๋„ ๋ง ๋ฒ„ํผ(kernel ring buffer)๋ž€? ์ฝ˜์†”์€ ์‹œ์Šคํ…œ์ด ์‹œ์ž‘๋˜๋Š” ๋™์•ˆ ์‹œ์Šคํ…œ ๋ถ€ํŒ…์‹œ์— ๋Œ€ํ•œ ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ๋‹ค์ˆ˜ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ์ถœ๋ ฅ ๋œ ๋ฉ”์‹œ์ง€๊ฐ€ ์†์‹ค๋˜์ง€ ์•Š๋„๋ก ์ปค๋„ ๋ง ๋ฒ„ํผ๋ผ๋Š” ๊ฒƒ์ด ์‚ฌ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฒ„ํผ๋Š” ์ปค๋„ ์ฝ”๋“œ์˜ printk()ํ•จ์ˆ˜์— ์˜ํ•ด ์ƒ์„ฑ ๋œ ๋ถ€ํŠธ ๋ฉ”์‹œ์ง€ ๋“ฑ ๋ชจ๋“  ๋ฉ”์‹œ์ง€๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ปค๋„ ๋ง ๋ฒ„ํผ์—์„œ ๋ฉ”์‹œ์ง€ syslog ์„œ๋น„์Šค ๋“ฑ์˜ ์˜๊ตฌ ์ €์žฅ์†Œ์˜ ๋กœ๊ทธ ํŒŒ์ผ์— ๋กœ๋“œ๋˜์–ด ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ƒ๊ธฐ ๋ฒ„ํผ๋Š” ๊ณ ์ • ๋œ ํฌ๊ธฐ์˜ ์ˆœํ™˜ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์ด๋ฉฐ, ์ปค๋„์— ํ•˜๋“œ ์ฝ”๋”ฉ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ๋Š” dmesg ๋ช…๋ น ๋˜๋Š” /var/log/boot.log ํŒŒ์ผ ํ†ตํ•ด ์ปค๋„ ๋ง ๋ฒ„ํผ์— ์ €์žฅ๋˜์–ด์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ง ๋ฒ„ํผ๊ฐ€ ๊ฐ€๋“ ์ฐจ๋ฉด ์ƒˆ ๋ฐ์ดํ„ฐ๋Š” ์ด์ „ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฎ์–ด ์”๋‹ˆ๋‹ค. ๊ด€๋ จ ์ •๋ณด โ— syslog ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ syslog(2)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. โ— dmesg๋กœ ์‹œ์ž‘ ๋กœ๊ทธ ๋ฉ”์‹œ์ง€๋ฅผ ํ™•์ธํ•˜๊ฑฐ๋‚˜ ์ œ์–ดํ•˜๋Š” ๋ฐฉ๋ฒ•์€ man ํŽ˜์ด์ง€์˜ dmesg(1)์„ ์ฐธ ์กฐํ•˜์‹ญ์‹œ์˜ค. 6.2 ๋กœ๊ทธ ์ˆ˜์ค€ ๋ฐ ์ปค๋„ ๋กœ๊น…์— printk ์˜ ์—ญํ•  ์ปค๋„์ด๋ณด๊ณ ํ•˜๋Š” ๊ฐ ๋ฉ”์‹œ์ง€์—๋Š” ๋ฉ”์‹œ์ง€์˜ ์ค‘์š”๋„๋ฅผ ์ •์˜ํ•˜๋Š” ๊ด€๋ จ ๋กœ๊ทธ ์ˆ˜์ค€์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ปค๋„ ๋ง ๋ฒ„ํผ๋Š” "์ปค๋„ ๋ง ๋ฒ„ํผ๋ž€?" ์— ์„ค๋ช… ๋œ๋Œ€๋กœ ๋ชจ๋“  ๋กœ๊ทธ ๋ ˆ๋ฒจ์˜ ์ปค๋„ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์ง‘ํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„ ํผ์—์„œ ์ฝ˜์†”์— ์ถœ๋ ฅ๋˜๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ์€ kernel.printk ๋งค๊ฐœ ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ๋กœ๊ทธ ์ˆ˜์ค€ ๊ฐ’์€ ๋‹ค์Œ ์ˆœ์„œ๋กœ ๋ถ„๋ฅ˜๋ฉ๋‹ˆ๋‹ค. 0 โ€” ์ปค๋„ ๋น„์ƒ(emergency). ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. 1 โ€” ์ปค๋„ ๊ฒฝ๊ณ (alert). ์ฆ‰์‹œ ์กฐ์น˜๋ฅผ ์ทจํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
  • 36. 2 โ€” ์ปค๋„์˜ ์ƒํƒœ๊ฐ€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. 3 โ€” ์ผ๋ฐ˜ ์ปค๋„ ์˜ค๋ฅ˜ ์กฐ๊ฑด. 4 โ€” ์ผ๋ฐ˜์ ์ธ ์ปค๋„ ๊ฒฝ๊ณ  ์กฐ๊ฑด. 5 โ€” ์ •์ƒ์ด์ง€๋งŒ ์ค‘์š”ํ•œ ์ƒํƒœ์˜ ์ปค๋„ ํ†ต์ง€. 6 โ€” ์ปค๋„ ์ •๋ณด ๋ฉ”์‹œ์ง€. 7 โ€” ์ปค๋„ ๋””๋ฒ„๊ทธ ์ˆ˜์ค€ ๋ฉ”์‹œ์ง€. ๊ธฐ๋ณธ์  kernel.printk ์œผ๋กœ RHEL 8 ์—๋Š” ๋‹ค์Œ ๋„ค ๊ฐ€์ง€ ๊ฐ’์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. # sysctl kernel.printk kernel.printk = 7 4 1 7 ๋„ค ๊ฐ€์ง€ ๊ฐ’์€ ๋‹ค์Œ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. 1. ๊ฐ’(value). ์ฝ˜์†” ๋กœ๊ทธ ์ˆ˜์ค€. ์ฝ˜์†”์— ์ธ์‡„๋˜๋Š” ๋ฉ”์‹œ์ง€์˜ ์ตœ์ € ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. 2. ๊ฐ’(value). ๋ช…์‹œ์ ์ธ ๋กœ๊ทธ ์ˆ˜์ค€์ด ์ฒจ๋ถ€๋˜์ง€ ์•Š์€ ๋ฉ”์‹œ์ง€์˜ ๊ธฐ๋ณธ ๋กœ๊ทธ ์ˆ˜์ค€. 3. ๊ฐ’(value). ์ฝ˜์†” ๋กœ๊ทธ ์ˆ˜์ค€์— ๊ฐ€๋Šฅํ•œ ์ตœ์ € ์ˆ˜์ค€์˜ ๋กœ๊ทธ ์ˆ˜์ค€ ๊ตฌ์„ฑ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. 4. ๊ฐ’(value). ๋ถ€ํŒ…์‹œ ์ฝ˜์†” ๋กœ๊ทธ ์ˆ˜์ค€์˜ ๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์œ„์˜ ๊ฐ ๊ฐ’์€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ์œ„ํ•œ ๋‹ค๋ฅธ ๊ทœ์น™์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ  ๊ฐ™์€ ํŠน์ • ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜, quiet ๋˜๋Š” debug ๊ธฐ๋ณธ ๋ณ€๊ฒฝ kernel.printk ๊ฐ’์„. ๊ด€๋ จ ์ •๋ณด โ— kernel.printk ๋ฐ ๋กœ๊ทธ ์ˆ˜์ค€ ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ ์€ syslog(2)๋งค๋‰ด์–ผ ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์‹ญ ์‹œ์˜ค.
  • 37. ์ œ 7 ์žฅ kdump ์„ค์น˜ ๋ฐ ๊ตฌ์„ฑ 7.1. kdump ๋ž€? kdump ํฌ๋ž˜์‹œ ๋คํ”„ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ์ด ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‚˜์ค‘์— ๋ถ„์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‚ด์šฉ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ ํ˜ธ์ถœ์„ kdump ์‚ฌ์šฉํ•˜์—ฌ ์žฌ๋ถ€ํŒ…ํ•˜ ์ง€ ์•Š๊ณ  kexec ๋‘ ๋ฒˆ์งธ ์ปค๋„ (์บก์ณ ์ปค๋„)๋กœ ๋ถ€ํŒ…ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์ถฉ๋Œ ํ•œ ์ปค๋„ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋‚ด์šฉ ( crash dump ๋˜๋Š” vmcore ) ์„ ์บก์ฒ˜ํ•˜์—ฌ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ปค๋„์€ ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์˜ˆ์•ฝ ๋œ ๋ถ€๋ถ„์— ์žˆ์Šต๋‹ˆ๋‹ค. ์ค‘์š” ์ปค๋„ ํฌ๋ž˜์‹œ ๋คํ”„๋Š” ์‹œ์Šคํ…œ ์žฅ์• (์‹ฌ๊ฐํ•œ ๋ฒ„๊ทธ)๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๋Š” ์œ ์ผํ•œ ์ •๋ณด ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฏธ์…˜ ํฌ๋ฆฌํ‹ฐ์ปฌ ํ™˜๊ฒฝ์—์„œ kdump ๋ฅผ ํ™•์‹คํ•˜๊ฒŒ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ ๋‹ค. Red Hat ์€ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๊ฐ€ ์ผ๋ฐ˜ ์ปค๋„ ์—…๋ฐ์ดํŠธ์ฃผ๊ธฐ kexec-tools ๋ฅผ ์ •๊ธฐ์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜ ์—ฌ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ƒˆ๋กœ์šด ์ปค๋„ ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์–ด์žˆ๋Š” ๊ฒฝ์šฐ์— ํŠนํžˆ ์ค‘์š”ํ•ฉ๋‹ˆ ๋‹ค. 7.2. kdump ์„ค์น˜ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ kdump ์„œ๋น„์Šค๋Š” ์ƒˆ๋กœ์šด Red Hat Enterprise Linux ์„ค์น˜์‹œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์น˜๋˜๊ณ  ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. ์•„๋‚˜์ฝ˜๋‹ค ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ํ™”๋ฉด์„ ์ œ๊ณตํ•˜๋Š” kdump ๊ทธ๋ž˜ํ”ฝ ๋˜๋Š” ํ…์ŠคํŠธ ์ธํ„ฐ ํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€ํ™”์‹ ์„ค์น˜๋ฅผ ์ˆ˜ํ–‰ ํ•  ๋•Œ ๊ตฌ์„ฑ. ์„ค์น˜ ํ”„๋กœ๊ทธ๋žจ ํ™”๋ฉด์€ ์ œ๋ชฉ์ด Kdump ์žˆ๊ณ  ๊ธฐ๋ณธ Installation Summary ํ™”๋ฉด ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ œํ•œ๋œ ๊ตฌ์„ฑ ๋งŒ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. kdump ํ™œ์„ฑ ํ™” ์—ฌ๋ถ€ ์™€ ์˜ˆ์•ฝ๋œ ๋ฉ”๋ชจ๋ฆฌ ์–‘๋งŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค .
  • 38. ์‚ฌ์šฉ์ž ์ •์˜ ํ‚ฅ ์Šคํƒ€ํŠธ ์„ค์น˜์™€ ๊ฐ™์€ ์ผ๋ถ€ ์„ค์น˜ ์˜ต์…˜ kdump ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ค์น˜ ๋˜๋Š” ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค . ์‹œ์Šคํ…œ์— ํ•ด๋‹นํ•˜๋Š” ๊ฒฝ์šฐ ์•„๋ž˜ ์ ˆ์ฐจ์— ๋”ฐ๋ผ ์„ค์น˜ํ•˜์‹ญ์‹œ์˜ค kdump. ์ „์ œ ์กฐ๊ฑด โ— ํ™œ์„ฑ Red Hat Enterprise Linux ์„œ๋ธŒ์Šคํฌ๋ฆฝ์…˜ โ— ์‹œ์Šคํ…œ์˜ CPU ์•„ํ‚คํ…์ฒ˜ ์šฉ kexec-tools ํŒจํ‚ค์ง€๊ฐ€์žˆ๋Š” ์ €์žฅ์†Œ โ— kdump ์š”๊ตฌ ์‚ฌํ•ญ ์„ ์ถฉ์กฑ ๋‹จ๊ณ„ 1. ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ kdump ์ด ์‹œ์Šคํ…œ์— ์„ค์น˜๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. $ rpm -q kexec-tools ์ด ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ๋‹ค์Œ์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. kexec-tools-2.0.17-11.el8.x86_64 ์ด ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ๋Š” ๋‹ค์Œ์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค package kexec-tools is not installed 2. kdump ๋ฐ ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. # yum install kexec-tools ์ค‘์š” Red Hat Enterprise Linux 7.4 (kernel-3.10.0-693.el7) ์ดํ›„๋ถ€ํ„ฐ kdump ๋Š” Intel IOMMU ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์ง€์›๋˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „์˜ Red Hat Enterprise Linux 7.3 (ernel-3.10.0-514 [.XYZ] .el7) ๋˜๋Š” ๊ทธ ์ด์ „ ๋ฒ„์ „์—์„œ๋Š” Intel IOMMU ์ง€์›์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด์ œ ํ•˜์ง€ ์•Š์œผ๋ฉด kdump ์ปค๋„์ด ์‘๋‹ตํ•˜์ง€ ์•Š์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.
  • 39. ๊ด€๋ จ ์ •๋ณด โ— kdump ๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ ์‚ฌํ•ญ์˜ ์ž์„ธํ•œ ๋‚ด์šฉ์€ "kdump ๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ ์‚ฌํ•ญ" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 7.3 ๋ช…๋ น ์ค„์—์„œ kdump ์„ค์ • 7.3.1 ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ์„ค์ • kdump ๊ธฐ๋Šฅ์— ์˜ˆ์•ฝ ๋œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์‹œ์Šคํ…œ ์‹œ์ž‘์‹œ์— ํ•ญ์ƒ ์˜ˆ์•ฝ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ์˜ ์–‘์€ ์‹œ์Šค ํ…œ์˜ GRUB (Grand Unified Bootloader) 2 ์„ค์ •์—์„œ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” ๋ช…๋ น ์ค„์— ์„œ kdump ์˜ˆ์•ฝ ํ•œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์„ค์ • ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ „์ œ ์กฐ๊ฑด โ— kdump ์š”๊ตฌ ์‚ฌํ•ญ ์„ ์ถฉ์กฑ. ๋‹จ๊ณ„ 1. root ๊ถŒํ•œ์œผ๋กœ /etc/default/grub ํŒŒ์ผ์„ ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค. 2. crashkernel= ์˜ต์…˜์„ ์›ํ•˜๋Š” ๊ฐ’์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 128 MB ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์˜ˆ์•ฝํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. crashkernel=128M ๋˜๋Š” ์„ค์น˜๋˜์–ด์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์–‘์— ๋”ฐ๋ผ ์˜ˆ์•ฝ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ๋ณ€์ˆ˜๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ ๋‹ค. ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์˜ˆ์•ฝ ๊ตฌ๋ฌธ ์ž…๋‹ˆ๋‹ค crashkernel=<range1>:<size1>,<range2>:<size2>. ๋‹ค์Œ์— ์˜ˆ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. crashkernel=512M-2G:64M,2G-:128M
  • 40. ์œ„์˜ ์˜ˆ์—์„œ๋Š” ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ์˜ ํ•ฉ๊ณ„๊ฐ€ 512 MB ์ด์ƒ 2 GB ๋ฏธ๋งŒ์˜ ๊ฒฝ์šฐ 64 MB ์˜ ๋ฉ”๋ชจ ๋ฆฌ๋ฅผ ์˜ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๊ฐ€ 2 GB๋ฅผ ์ดˆ๊ณผํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” 128 MB๊ฐ€ kdump์šฉ์œผ๋กœ ์˜ˆ์•ฝ ๋ฉ๋‹ˆ๋‹ค. โ— ์˜ˆ์•ฝ ๋œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์˜คํ”„์…‹. crashkernel ์˜ˆ์•ฝ ๋งค์šฐ ๋น ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • ๊ณ ์ • ์˜คํ”„์…‹์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์˜ˆ์•ฝํ•ด์•ผ ํ•˜๋Š” ์‹œ์Šคํ…œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ํŠน๋ณ„ํ•œ ์šฉ๋„์— ์ผ๋ถ€ ๊ณต๊ฐ„์„ ์˜ˆ์•ฝํ•˜๊ณ ์žํ•˜๋Š” ์‹œ์Šคํ…œ ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜คํ”„์…‹์ด ์„ค์ •๋˜๋ฉด ์˜ˆ์•ฝ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๊ฑฐ๊ธฐ์—์„œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ์˜ˆ์•ฝ ๋ฉ”๋ชจ๋ฆฌ ๋ฅผ ์˜คํ”„์…‹ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. crashkernel=128M@16M ์œ„์˜ ์˜ˆ๋Š” kdump ์ด 16 MB (๋ฌผ๋ฆฌ ์ฃผ์†Œ 0x01000000)์—์„œ ์‹œ์ž‘ 128 MB ์˜ ๋ฉ”๋ชจ๋ฆฌ ๋ฅผ ์˜ˆ์•ฝํ•˜๊ณ  ์žˆ์Œ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์˜คํ”„์…‹ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ 0 ์œผ๋กœ ์„ค์ •๋˜์–ด์žˆ๋Š” ๊ฒฝ์šฐ, ๋˜๋Š” ์™„์ „ํžˆ ์ƒ๋žต๋˜๋Š” ๊ฒฝ์šฐ kdump ์ž๋™์œผ๋กœ ์˜ˆ์•ฝ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์˜คํ”„์…‹ํ•ฉ๋‹ˆ๋‹ค. ์œ„์™€ ๊ฐ™ ์ด ๋ณ€์ˆ˜ ๋ฉ”๋ชจ๋ฆฌ ์˜ˆ์•ฝ์„ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ์—๋„์ด ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์˜คํ”„์…‹ ์€ ํ•ญ์ƒ ๋งˆ์ง€๋ง‰์— ์ง€์ •๋ฉ๋‹ˆ๋‹ค (์˜ˆ : crashkernel=512M-2G:64M,2G-:128 _M@16 _M). 3. ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ GRUB2 ์„ค์ • ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. # grub2-mkconfig -o /boot/grub2/grub.cfg ์ฐธ๊ณ  kdump ์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์€ grub2-editenv ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ crashkernel = <SOME_VALUE> ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ kernelopts ๋ณ€์ˆ˜์— ์ถ”๊ฐ€ํ•˜์—ฌ ๋ชจ๋“  ๋ถ€ํŒ… ํ•ญ๋ชฉ์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜๋Š” grubby ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•œ ํ•ญ๋ชฉ์˜ ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์—…๋ฐ ์ดํŠธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ จ ์ •๋ณด โ— crashkernel=์˜ต์…˜์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ •์˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "kdump ๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ ์‚ฌ ํ•ญ" ์— ์„ค๋ช… ๋œ ์ง€์นจ์— ๋”ฐ๋ผ auto ๊ฐ’์„ ์ง€์ •ํ•˜๋ฉด ์‹œ์Šคํ…œ์˜ ์ด ๋ฉ”๋ชจ๋ฆฌ์— ๋”ฐ๋ผ ์˜ˆ์•ฝ ๋ฉ”๋ชจ ๋ฆฌ์˜ ์ž๋™ ์„ค์ •์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ๋ฉ๋‹ˆ๋‹ค. โ— ๋ถ€ํŒ… ํ•ญ๋ชฉ, kernelopts, grub2-editenv ๋ฐ grubby ์ž‘์—… ๋ฐฉ๋ฒ•์€ 4 ์žฅ ์ปค๋„ ๋ช…๋ น ์ค„ ๋งค๊ฐœ ๋ณ€ ์ˆ˜ ์„ค์ • ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
  • 41. 7.3.2 kdump ๋Œ€์ƒ ์„ค์ • ์ปค๋„ ์ถฉ๋Œ์ด ์บก์ฒ˜๋˜๋Š” ์ฝ”์–ด ๋คํ”„๊ฐ€ ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ํŒŒ์ผ๋กœ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ์žฅ์น˜์— ์ง์ ‘ ์“ฐ๊ฑฐ ๋‚˜ NFS(Network File System) ๋˜๋Š” SSH(Secure Shell) ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „ ์†กํ•  ์ˆ˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋™์‹œ์— ์„ค์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋™์ž‘์€ vmcore ํŒŒ์ผ์„ ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ /var/pkcs/๋””๋ ‰ํ† ๋ฆฌ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ์ „์ œ ์กฐ๊ฑด โ— kdump ์š”๊ตฌ ์‚ฌํ•ญ ์„ ์ถฉ์กฑ. ๋‹จ๊ณ„ ์ฝ”์–ด ๋คํ”„๋ฅผ ์ €์žฅํ•  ๋กœ์ปฌ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด root ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด /etc/kdump.conf ์„ค์ • ํŒŒ์ผ์„ ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค. 1. #path /var/crash ์ค„ ์•ž์— ํ•ด์‹œ ๊ธฐํ˜ธ ( "#")๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. 2. ๊ฐ’์„ ๋Œ€์ƒ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์˜ˆ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. path /usr/local/cores ์ค‘์š” Red Hat Enterprise Linux 8 ์—์„œ ๊ฒฝ๋กœ ์ง€์ •๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ kdump ๋Œ€์ƒ์œผ๋กœ ์ •์˜ ๋œ ๋”” ๋ ‰ํ† ๋ฆฌ๊ฐ€ kdump systemd ์„œ๋น„์Šค ์‹œ์ž‘์‹œ์— ์กด์žฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์„œ๋น„์Šค๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. ์ด ๋™์ž‘์€ ์„œ๋น„์Šค ์‹œ์ž‘์‹œ ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์—†์œผ๋ฉด ์ž๋™์œผ๋กœ ์ƒ์„ฑ ๋œ Red hat Enterprise Linux ์˜ ์ด์ „ ๋ฆด๋ฆฌ์Šค์™€๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํŒŒํ‹ฐ์…˜์— ํŒŒ์ผ์„ ์“ฐ๋ ค๋ฉด root ๊ถŒํ•œ์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด /etc/kdump.conf ์„ค์ • ํŒŒ์ผ์„ ํŽธ์ง‘ํ•ฉ ๋‹ˆ๋‹ค. 1. ํ•„์š”์— ๋”ฐ๋ผ #ext4 ์ค„ ์•ž์— ํ•ด์‹œ ๊ธฐํ˜ธ ( "#")๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. โ— ์žฅ์น˜ ์ด๋ฆ„ ( #ext4 /dev/vg/lv_kdump ํ–‰) โ— ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ ˆ์ด๋ธ” ( #ext4 LABEL=/boot ํ–‰) โ— UUID ( #ext4 UUID=03138356-5e61-4ab3-b58e-27507ac41937 ํ–‰)
  • 42. 2. ํŒŒ์ผ ์‹œ์Šคํ…œ ์œ ํ˜•๊ณผ ์žฅ์น˜ ์ด๋ฆ„, ๋ ˆ์ด๋ธ” UUID ๋ฅผ ์›ํ•˜๋Š” ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์˜ˆ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ext4 UUID = 03138356-5e61-4ab3-b58e-27507ac41937 ์ค‘์š” LABEL= UUID=๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ €์žฅ ์žฅ์น˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค๋ฉ๋‹ˆ๋‹ค. /dev/sda3 ๋“ฑ์˜ ๋”” ์Šคํฌ ์žฅ์น˜ ์ด๋ฆ„์€ ์žฌ๋ถ€ํŒ…์‹œ ์ผ๊ด€์„ฑ์€ ๋ณด์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ค‘์š” IBM Z ํ•˜๋“œ์›จ์–ด์˜ Direct Access Storage Device (DASD)๋กœ ๋คํ”„ํ•˜๋Š” ๊ฒฝ์šฐ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์ „ ์— /etc/dasd.conf ๋คํ”„ ์žฅ์น˜๊ฐ€ ์ œ๋Œ€๋กœ ์ง€์ •๋˜์–ด ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋คํ”„ ์žฅ์น˜์— ์ง์ ‘ ์“ฐ๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. 1. #raw /dev/vg/lv_kdump ์ค„ ์•ž์— ํ•ด์‹œ ๊ธฐํ˜ธ ( "#")๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. 2. ๊ฐ’์„ ๋Œ€์ƒ ์žฅ์น˜ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์˜ˆ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. raw /dev/sdb1 NFS ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ ์ปดํ“จํ„ฐ์— ๋คํ”„๋ฅผ ์ €์žฅํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค: 1. #nfs my.server.com:/export/tmp ์ค„ ์•ž์— ํ•ด์‹œ ๊ธฐํ˜ธ ( "#")๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. 2. ๊ฐ’์„ ์˜ฌ๋ฐ”๋ฅธ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์˜ˆ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. nfs penguin.example.com:/export/cores SSH ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ ์ปดํ“จํ„ฐ์— ๋คํ”„๋ฅผ ์ €์žฅํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. 1. #ssh user@my.server.com ์ค„ ์•ž์— ํ•ด์‹œ ๊ธฐํ˜ธ ( "#")๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. 2. ๊ฐ’์„ ์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์œผ๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.
  • 43. 3. SSH ํ‚ค ์„ค์ •์— ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. โ— #sshkey /root/.ssh/kdump_id_rsa ์ค„ ์•ž์— ํ•ด์‹œ ๊ธฐํ˜ธ ( "#")๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. โ— ๊ฐ’์„ ๋คํ”„ ๋Œ€์ƒ ์„œ๋ฒ„์— ์˜ฌ๋ฐ”๋ฅธ ํ‚ค์˜ ์œ„์น˜๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์˜ˆ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ssh john@penguin.example.com sshkey /root/.ssh/mykey ๊ด€๋ จ ์ •๋ณด โ— ์ง€์›ํ•˜๋Š” ๋คํ”„ ๋Œ€์ƒ๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋คํ”„ ๋Œ€์ƒ ์œ ํ˜•๋ณ„ ๋ชฉ๋ก์€ "์ง€์› kdump ๋คํ”„ ๋Œ€ ์ƒ" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. โ— SSH ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ํ‚ค ๊ธฐ๋ฐ˜ ์ธ์ฆ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ Red Hat Enterprise Linux ์˜ " ๊ธฐ๋ณธ ์‹œ์Šคํ…œ ์„ค์ • ๊ตฌ์„ฑ" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 7.3.3 ์ฝ”์–ด ์ฝœ๋ ‰ํ„ฐ ์„ค์ • kdump ๋Š” core collector ๋กœ ์ง€์ •๋œ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜์—ฌ vmcore ๋ฅผ ์บก์ฒ˜ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•˜๋Š” core collector ๋Š” makedumpfile ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฟ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋ช‡ ๊ฐ€์ง€ ์„ค์ • ๊ฐ€๋Šฅํ•œ ์˜ต์…˜ ์ด ์ปฌ๋ ‰์…˜ ํ”„๋กœ์„ธ์Šค์— ์˜ํ–ฅ์„์ค๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ˆ˜์ง‘ ๋œ ๋ฐ์ดํ„ฐ์˜ ๋ฒ”์œ„์™€ ์ƒ์„ฑ ๋œ vmcore ๋ฅผ ์••์ถ•ํ• ์ง€ ์—ฌ๋ถ€ ๋“ฑ์ž…๋‹ˆ๋‹ค. core collector ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ  ์„ค์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ „์ œ ์กฐ๊ฑด โ— kdump ์š”๊ตฌ ์‚ฌํ•ญ ์„ ์ถฉ์กฑ. ๋‹จ๊ณ„ 1. root ๊ถŒํ•œ์œผ๋กœ, /etc/kdump.conf ์„ค์ • ํŒŒ์ผ์„ ํŽธ์ง‘ํ•˜์—ฌ #core_collector makedumpfile -l --message-level 1 -d 31 ์ค„ ์•ž์— ํ•ด์‹œ ๊ธฐํ˜ธ ( "#")๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. 2. -c ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์˜ˆ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • 44. core_collector makedumpfile -c ์œ„์˜ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด ๋คํ”„ ํŒŒ์ผ์˜ ์••์ถ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 3. -d ๊ฐ’๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์˜ˆ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. core_collector makedumpfile -d 17 -c ์œ„์˜ ๋ช…๋ น์€ ๋คํ”„์—์„œ โ€œ0โ€ ๋ฐ ๋นˆ ํŽ˜์ด์ง€๋ฅผ ๋ชจ๋‘ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’ ์€ ๋น„ํŠธ ๋งˆ์Šคํฌ๋ฅผ ๋‚˜ ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ๋Š” ๊ฐ ๋น„ํŠธ๊ฐ€ ํŠน์ • ์œ ํ˜•์˜ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€์™€ ๊ด€๋ จ๋œ ํ•ด๋‹น ์œ ํ˜•์˜ ํŽ˜์ด ์ง€๊ฐ€ ์ˆ˜์ง‘๋˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋น„ํŠธ์˜ ์„ค๋ช…์€ "์ง€์›๋˜๋Š” kdump ํ•„ํ„ฐ ์ˆ˜์ค€" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ๊ด€๋ จ ์ •๋ณด โ— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์˜ต์…˜์˜ ์ „์ฒด ๋ชฉ๋ก์€ makedumpfile(8)man ํŽ˜์ด์ง€๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 7.3.4. kdump ๊ธฐ๋ณธ ์žฅ์•  ์‘๋‹ต ์„ค์ • ๊ธฐ๋ณธ์ ์œผ๋กœ kdump ์ด "kdump ๋Œ€์ƒ ์„ค์ •"์— ์ง€์ •๋œ ์œ„์น˜์—์„œ vmcore ๋คํ”„ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜์ง€ ๋ชป ํ•˜๋ฉด ์‹œ์Šคํ…œ์ด ์žฌ๋ถ€ํŒ…๋˜๊ณ  ํ”„๋กœ์„ธ์Šค์—์„œ ๋คํ”„๊ฐ€ ์†์‹ค๋ฉ๋‹ˆ๋‹ค. ์ด ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ์•„๋ž˜ ์ ˆ์ฐจ ๋ฅผ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค. ์ „์ œ ์กฐ๊ฑด โ— kdump ์š”๊ตฌ ์‚ฌํ•ญ ์„ ์ถฉ์กฑ. ๋‹จ๊ณ„ 1. root ๊ถŒํ•œ์œผ๋กœ, /etc/kdump.conf ์„ค์ • ํŒŒ์ผ #default shell ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ํ•ด์‹œ ๊ธฐํ˜ธ ( "#") ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. 2. "์ง€์›ํ•˜๋Š” ๊ธฐ๋ณธ ์žฅ์•  ์‘๋‹ต" ์˜ ์„ค๋ช…๋Œ€๋กœ ๊ฐ’์„ ์›ํ•˜๋Š” ์•ก์…˜์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ๋‹ค์Œ์— ์˜ˆ๋ฅผ ๋‚˜ ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • 45. default poweroff 7.3.5. kdump ์„œ๋น„์Šค์˜ ํ™œ์„ฑํ™” ๋ฐ ๋น„ํ™œ์„ฑํ™” ์‹œ์Šคํ…œ ์‹œ์ž‘์‹œ kdump ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ „์ œ ์กฐ๊ฑด โ— kdump ์š”๊ตฌ ์‚ฌํ•ญ ์„ ์ถฉ์กฑํ•˜๊ณ ์žˆ๋‹ค. โ— ๋ชจ๋“  ์„ค์ • ์ด ํ•„์š”์— ๋”ฐ๋ผ ์„ค์ •๋˜์–ด์žˆ๋‹ค. ๋‹จ๊ณ„ 1. kdump ์„œ๋น„์Šค๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. # systemctl enable kdump.service ์ด๋กœ ์ธํ•ด multi-user.target ์„œ๋น„์Šค๊ฐ€ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. 2. ํ˜„์žฌ ์„ธ์…˜์—์„œ ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. # systemctl start kdump.service 3. kdump ์„œ๋น„์Šค๋ฅผ ์ค‘์ง€ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. # systemctl stop kdump.service 4. kdump ์„œ๋น„์Šค๋ฅผ ํ•ด์ œํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. # systemctl disable kdump.service
  • 46. ๊ด€๋ จ ์ •๋ณด โ— systemd ์„ธ๋ถ€ ์ผ๋ฐ˜์ ์ธ ์„œ๋น„์Šค ์„ค์ •์€ Red Hat Enterprise Linux ์˜ " ๊ธฐ๋ณธ ์‹œ์Šคํ…œ ์„ค ์ • "์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 7.4 Web ์ฝ˜์†”์—์„œ kdump ์„ค์ • ๋‹ค์Œ ์„น์…˜์—์„œ๋Š” Red Hat Enterprise Linux ์›น์ฝ˜์†”์„ ํ†ตํ•ด kdump ๋ฅผ ์„ค์ •ํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐฉ๋ฒ• ์— ๋Œ€ํ•œ ๊ฐœ์š”๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์›น์ฝ˜์†”์€ Red Hat Enterprise Linux 8 ์˜ ๊ธฐ๋ณธ ์„ค์น˜์— ํฌํ•จ๋˜์–ด ์žˆ ์œผ๋ฉฐ, ์‹œ์Šคํ…œ ์‹œ์ž‘์‹œ kdump ์„œ๋น„์Šค๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™” ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, kdump ์˜ˆ์•ฝ ๋ฉ” ๋ชจ๋ฆฌ๋ฅผ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ๋น„ ์••์ถ• ๋˜๋Š” ์••์ถ• ํ˜•์‹์œผ๋กœ vmcore ์˜ ์ €์žฅ ์œ„์น˜๋ฅผ ์„ ํƒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ „์ œ ์กฐ๊ฑด โ— ์ž์„ธํ•œ ๋‚ด์šฉ์€ "Red Hat Enterprise Linux web console" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 7.4.1. Web ์ฝ˜์†”์—์„œ kdump ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰๊ณผ ๋Œ€์ƒ ์œ„์น˜๋ฅผ ์„ค์ • ๋‹ค์Œ ๋‹จ๊ณ„๋Š” Red Hat Enterprise Linux ์›น์ฝ˜์†” ์ธํ„ฐํŽ˜์ด์Šค์˜ Kernel Dump ํƒญ์„ ์‚ฌ์šฉํ•˜์—ฌ kdump ์ปค๋„ ์šฉ์œผ๋กœ ์˜ˆ์•ฝ ๋œ ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‹จ๊ณ„์—์„œ๋Š” vmcore ๋คํ”„ ํŒŒ์ผ์˜ ๋Œ€์ƒ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์„ค์ •์„ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ „์ œ ์กฐ๊ฑด โ— Web ์ฝ˜์†” ์ž‘์—… ๊ฐœ์š” ๋‹จ๊ณ„ 1. Kernel Dump ํƒญ์„ ์—ด๊ณ  kdump ์„œ๋น„์Šค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. 2. ๋ช…๋ น ์ค„ ์—์„œ kdump ์˜ ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. 3. Crash dump location ์˜ต์…˜ ์˜†์—์žˆ๋Š” ๋งํฌ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  • 47. 4. ๋“œ๋กญ ๋‹ค์šด ๋ฉ”๋‰ด์—์„œ Local Filesystems ์˜ต์…˜์„ ์„ ํƒํ•˜๊ณ  ๋คํ”„๋ฅผ ์ €์žฅํ•  ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ง€์ • ํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” ๋“œ๋กญ ๋‹ค์šด์—์„œ Remote over SSH ์˜ต์…˜์„ ์„ ํƒํ•˜๊ณ  SSH ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ vmcore ์„ ์›๊ฒฉ ์‹œ์Šคํ…œ์œผ๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. Server, ssh key, Directory ์˜ ๊ฐ ํ•„๋“œ์— ์›๊ฒฉ ์ปดํ“จํ„ฐ์˜ ์ฃผ์†Œ, ssh ํ‚ค์˜ ์œ„์น˜ ๋ฐ ๋Œ€ ์ƒ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” ๋“œ๋กญ ๋‹ค์šด์—์„œ Remote over NFS ์˜ต์…˜์„ ์„ ํƒํ•˜๊ณ  Mount ํ•„๋“œ์— ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜ ์—ฌ NFS ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ vmcore ์„ ์›๊ฒฉ ์ปดํ“จํ„ฐ์— ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฐธ๊ณ  Compression ์ฒดํฌ ๋ฐ•์Šค์— ์ฒดํฌ ํ‘œ์‹œ๋ฅผํ•˜๊ณ  vmcore ํŒŒ์ผ์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต ๋‹ˆ๋‹ค. 5. ์ปค๋„ ํฌ๋ž˜์‹œ๋ฅผ ์ด์šฉํ•˜์—ฌ ์„ค์ •์„ ํ…Œ์ŠคํŠธ ํ•˜์‹ญ์‹œ์˜ค. ๊ฒฝ๊ณ  ์ด ๋‹จ๊ณ„์—์„œ๋Š” ์ปค๋„์˜ ์‹คํ–‰์„ ์ค‘๋‹จํ•˜๊ณ  ์‹œ์Šคํ…œ ํฌ๋ž˜์‹œ๋‚˜ ๋ฐ์ดํ„ฐ ์†์‹ค์ด ๋ฐœ์ƒ ํ•  ์ˆ˜ ์žˆ ์Šต๋‹ˆ๋‹ค.
  • 48. ๊ด€๋ จ ์ •๋ณด โ— ํ˜„์žฌ ์ง€์›๋˜๋Š” kdump ๋Œ€์ƒ์˜ ์ „์ฒด ๋ชฉ๋ก์€ "์ง€์›๋˜๋Š” kdump ๋คํ”„ ๋Œ€์ƒ" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ ์˜ค. โ— SSH ์„œ๋ฒ„๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ํ‚ค ๊ธฐ๋ฐ˜ ์ธ์ฆ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ Red Hat Enterprise Linux ์˜ " ๊ธฐ๋ณธ ์‹œ์Šคํ…œ ์„ค์ • ๊ตฌ์„ฑ" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 7.5. ์ง€์›ํ•˜๋Š” kdump ์„ค์ • ๋ฐ ๋คํ”„ ๋Œ€์ƒ 7.5.1. kdump ๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ ์‚ฌํ•ญ ์œ„ํ•ด์„œ๋Š” kdump ์ปค๋„ ํฌ๋ž˜์‹œ ๋คํ”„๋ฅผ ์บก์ฒ˜ํ•˜๊ณ  ์ถ”๊ฐ€ ๋ถ„์„์„ ์œ„ํ•ด ์ €์žฅ ํ•  ์ˆ˜ ์žˆ๋„๋ก, ์‹œ์Šคํ…œ ๋ฉ” ๋ชจ๋ฆฌ์˜ ์ผ๋ถ€๊ฐ€ ์˜๊ตฌ์ ์œผ๋กœ ์บก์ฒ˜ ์ปค๋„์— ์˜ˆ์•ฝํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์•ฝ๋˜๋ฉด ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ์˜์ด ๋ถ€๋ถ„์„ ๊ธฐ๋ณธ ์ปค๋„์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ ์‚ฌํ•ญ์€ ํŠน์ • ์‹œ์Šคํ…œ ๋งค๊ฐœ ๋ณ€์ˆ˜์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ฃผ์š” ์š”์ธ ์ค‘ ํ•˜๋‚˜๋Š” ์‹œ์Šคํ…œ์˜ ํ•˜๋“œ์›จ์–ด ์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค. ์ •ํ™•ํ•œ ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜ (์˜ˆ : x86_64 ๋ผ๊ณ ๋„ํ•˜๋Š” Intel 64 ๋ฐ AMD64)๋ฅผ ์ฐพ์•„ ํ‘œ์ค€ ์ถœ๋ ฅ์œผ๋กœ ์ธ์‡„ํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. $ uname -m ์•„๋ž˜ ํ‘œ์—๋Š”์— ๋Œ€ํ•œ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ๋ฅผ ์ž๋™์œผ๋กœ ์˜ˆ์•ฝํ•˜๊ธฐ์œ„ํ•œ ์ตœ์†Œ ๋ฉ”๋ชจ๋ฆฌ ์š”๊ตฌ ์‚ฌํ•ญ ๋ชฉ๋ก์ด ํฌ ํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค kdump. ํฌ๊ธฐ๋Š” ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜ ๋ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ด ์‹ค์ œ ๋ฉ”๋ชจ๋ฆฌ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘ ๋‹ˆ๋‹ค. ํ‘œ 7.1. kdump ์— ํ•„์š”ํ•œ ์˜ˆ์•ฝ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ตœ์†Œ๋Ÿ‰ ์•„ํ‚คํ…์ฒ˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ตœ์†Œ ์˜ˆ์•ฝ ๋ฉ”๋ชจ๋ฆฌ AMD64 ๋ฐ Intel 64 ( x86_64) 1GB ~ 64GB 160MB ์˜ RAM. 64GB ~ 1TB 256MB ์˜ RAM
  • 49. ์•„ํ‚คํ…์ฒ˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ตœ์†Œ ์˜ˆ์•ฝ ๋ฉ”๋ชจ๋ฆฌ 1TB ์ด์ƒ 512MB ์˜ RAM 64 ๋น„ํŠธ ARM ์•„ํ‚คํ…์ฒ˜ ( arm64) 2GB ์ด์ƒ 512MB ์˜ RAM IBM Power Systems ( ppc64le) 2GB ~ 4GB 384MB ์˜ RAM. 4GB ~ 16GB 512MB ์˜ RAM 16GB ~ 64GB 1GB ์˜ RAM. 64GB ~ 128GB 2GB ์˜ RAM. 128GB ์ด์ƒ 4GB ์˜ RAM. IBM Z ( s390x) 4GB ~ 64GB 160MB ์˜ RAM. 64GB ~ 1TB 256MB ์˜ RAM 1TB ์ด์ƒ 512MB ์˜ RAM ๋งŽ์€ ์‹œ์Šคํ…œ์—์„œ kdump ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์–‘์„ ์˜ˆ์ธกํ•˜์—ฌ ์ž๋™์œผ๋กœ ์˜ˆ์•ฝ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋™์ž‘์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์ง€๋งŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ด๋Ÿ‰ ์ด ์ผ์ • ์ด์ƒ์ธ ์‹œ์Šคํ…œ์—์„œ๋งŒ ์ž‘๋™ํ•ฉ ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์‹œ์Šคํ…œ์˜ ์•„ํ‚คํ…์ฒ˜์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ค‘์š” ์‹œ์Šคํ…œ ๋ฉ”๋ชจ๋ฆฌ ์ด๋Ÿ‰์— ๊ทผ๊ฑฐ ์˜ˆ์•ฝ ๋ฉ”๋ชจ๋ฆฌ์˜ ์ž๋™ ์„ค์ •์€ ์ตœ์„ ํ˜• ์˜ˆ์ธก์ž…๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ํ•„์š”ํ•œ ๋ฉ” ๋ชจ๋ฆฌ๋Š” I/O ์žฅ์น˜ ๋“ฑ์˜ ๋‹ค๋ฅธ ์š”์†Œ์— ๋”ฐ๋ผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ปค๋„ ํŒจ๋‹‰์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋””๋ฒ„๊ทธ ์ปค๋„์ด ์บก์ฒ˜ ์ปค๋„๋กœ ๋ถ€ํŒ… ํ•  ์ˆ˜ ์—†๊ฒŒ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ํฌ๋ž˜์‹œ ์ปค๋„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ถฉ๋ถ„ํ•œ ํฌ๊ธฐ๋กœํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ จ ์ •๋ณด โ— ๋ช…๋ น ์ค„์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์€ "๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ์„ค์ •" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. โ— Web ์ฝ˜์†”์—์„œ ์˜ˆ์•ฝ ๋œ ๋ฉ”๋ชจ๋ฆฌ์˜ ์–‘์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ "Web ์ฝ˜์†”์—์„œ kdump ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰๊ณผ ๋Œ€์ƒ ์œ„์น˜๋ฅผ ์„ค์ •" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
  • 50. โ— Red Hat Enterprise Linux ์˜ ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ  ๊ธฐ๋Šฅ๊ณผ ์ œํ•œ์€ ๊ธฐ์ˆ  ๊ธฐ๋Šฅ๊ณผ ์ œํ•œ ํ‘œ ๋ฅผ ์ฐธ์กฐํ•˜ ์‹ญ์‹œ์˜ค. 7.5.2 ๋ฉ”๋ชจ๋ฆฌ ์ž๋™ ์˜ˆ์•ฝ ์ตœ์†Œ ์ž„๊ณ„ ๊ฐ’ ์ผ๋ถ€ ์‹œ์Šคํ…œ์—์„œ๋Š” ๋ถ€ํŠธ ๋กœ๋” ์„ค์ • ํŒŒ์ผ์—์„œ crashkernel=auto ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๊ทธ๋ž˜ํ”ฝ ์„ค์ • ์œ ํ‹ธ๋ฆฌํ‹ฐ์—์„œ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ kdump ์šฉ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ž๋™์œผ๋กœ ํ• ๋‹น ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ ๋‚˜์ด ์ž๋™ ์˜ˆ์•ฝ ๊ธฐ๋Šฅํ•˜๋ ค๋ฉด ์ „์ฒด ๋ฉ”๋ชจ๋ฆฌ์˜ ํŠน์ • ์–‘์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ํ•„์š” ํ•œ ์šฉ๋Ÿ‰์€ ์‹œ์Šคํ…œ์˜ ์•„ํ‚คํ…์ฒ˜์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋‹ค์Œ ํ‘œ๋Š” ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น ์ž„๊ณ„ ๊ฐ’์˜ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ…Œ์ด๋ธ”์˜ ์ง€์ •๋ณด๋‹ค ๋‚ฎ ์€ ๊ฒฝ์šฐ, ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ˆ˜๋™์œผ๋กœ ์˜ˆ์•ฝ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ํ‘œ 7.2 ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ์˜ˆ์•ฝ ํ•„์š”ํ•œ ์ตœ์†Œ ๋ฉ”๋ชจ๋ฆฌ ํฌ๊ธฐ ์•„ํ‚คํ…์ฒ˜ ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ AMD64 ๋ฐ Intel 64 ( x86_64) 2GB IBM Power Systems ( ppc64le) 2GB IBM Z ( s390x) 4GB ๊ด€๋ จ ์ •๋ณด โ— ๋ช…๋ น ์ค„์—์„œ ์ด๋Ÿฌํ•œ ์„ค์ •์„ ์ˆ˜๋™์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์€ "๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰ ์„ค์ •" ์„ ์ฐธ์กฐํ•˜ ์‹ญ์‹œ์˜ค. โ— Web ์ฝ˜์†”์„ ํ†ตํ•ด ์˜ˆ์•ฝ ๋ฉ”๋ชจ๋ฆฌ์˜ ์–‘์„ ์ˆ˜๋™์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์€ "Web ์ฝ˜์†”์—์„œ kdump ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰๊ณผ ๋Œ€์ƒ ์œ„์น˜๋ฅผ ์„ค์ •" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 7.5.3. ์ง€์›ํ•˜๋Š” kdump ๋คํ”„ ๋Œ€์ƒ ์ปค๋„ ํฌ๋ž˜์‹œ๊ฐ€ ์บก์ฒ˜๋˜๋ฉด vmcore ๋คํ”„ ํŒŒ์ผ์€ ์žฅ์น˜์— ์ง์ ‘ ์“ฐ๊ฑฐ๋‚˜ ๋กœ์ปฌ ํŒŒ์ผ์‹œ์Šคํ…œ์—์„œ ํŒŒ์ผ ๋กœ ์ €์žฅ๋˜๊ฑฐ๋‚˜ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ํ‘œ๋Š” ํ˜„์žฌ ์ง€์› ๋คํ”„ ๋Œ€์ƒ ๋˜๋Š” kdump ๋ช…์‹œ ์ ์œผ๋กœ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋คํ”„ ๋Œ€์ƒ์˜ ์ „์ฒด ๋ชฉ๋ก์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
  • 51. ํ‘œ 7.3 ์ง€์›ํ•˜๋Š” kdump ๋คํ”„ ๋Œ€์ƒ ํƒ€์ž… ์ง€์›ํ•˜๋Š” ๋คํ”„ ๋Œ€์ƒ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋คํ”„ ๋Œ€์ƒ Raw ์žฅ์น˜ ๋กœ์ปฌ์—์„œ ์ฒจ๋ถ€ ๋œ ๋ชจ๋“  raw ๋””์Šคํฌ์™€ ํŒŒํ‹ฐ์…˜ ๋กœ์ปฌ ํŒŒ์ผ ์‹œ์Šคํ…œ ์ง์ ‘ ์—ฐ๊ฒฐ๋œ ๋””์Šคํฌ ๋“œ๋ผ์ด๋ธŒ, ํ•˜๋“œ์›จ ์–ด RAID ๋…ผ๋ฆฌ ๋“œ๋ผ์ด๋ธŒ LVM ์žฅ ์น˜, mdraid ์–ด๋ ˆ์ด์˜ ext2, ext 3, ext4 , ๋ฐ xfs ํŒŒ์ผ ์‹œ์Šคํ…œ. auto ์œ ํ˜• (์ž๋™ ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ฐ์ง€) ์„ ํฌํ•จํ•˜์—ฌ ํ‘œ์—์„œ ๋ช…์‹œ์ ์œผ๋กœ ์ž์˜๋˜์ง€ ์•Š์€ ๋กœ์ปฌ ํŒŒ์ผ์‹œ์Šคํ…œ. ์›๊ฒฉ ๋””๋ ‰ํ† ๋ฆฌ IPv4 ๋ฅผ ํ†ตํ•œ NFS ๋˜๋Š” SSH ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์—‘์„ธ์Šค ํ•œ ์›๊ฒฉ ๋””๋ ‰ํ† ๋ฆฌ. NFS ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ก์„ธ์Šค ํ•œ rootfs ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ์›๊ฒฉ ๋””๋ ‰ํ† ๋ฆฌ. iSCSI ํ•˜๋“œ์›จ์–ด ๋ฐ ์†Œํ”„ํŠธ์›จ์–ด ์ด๋‹ˆ์‹œ ์—์ดํ„ฐ๋ฅผ ํ†ตํ•ด ํ”„๋กœ ํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ก ์„ธ์Šค ํ•œ ์›๊ฒฉ ๋””๋ ‰ ํ† ๋ฆฌ . be2iscsi ํ•˜๋“œ์›จ์–ด์—์„œ iSCSI ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ก์„ธ์Šคํ•˜๋Š” ์›๊ฒฉ ๋””๋ ‰ํ† ๋ฆฌ. ๋‹ค์ค‘ ๊ฒฝ๋กœ ๊ธฐ๋ฐ˜์˜ ์Šคํ† ๋ฆฌ์ง€ IPv6 ๊ธฐ๋ฐ˜์œผ๋กœ ์•ก์„ธ์Šคํ•˜๋Š” ์›๊ฒฉ ๋””๋ ‰ ํ† ๋ฆฌ SMB ๋˜๋Š” CIFS ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์•ก์„ธ์Šคํ•˜๋Š” ์›๊ฒฉ ๋””๋ ‰ํ† ๋ฆฌ. FCoE( Fibre Channel over Ethernet ) ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ก์„ธ์Šคํ•˜๋Š” ์›๊ฒฉ ๋””๋ ‰ํ† ๋ฆฌ. ๋ฌด์„  ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•ด ์•ก์„ธ ์Šคํ•˜๋Š” ์›๊ฒฉ ๋””๋ ‰ํ† ๋ฆฌ ๊ด€๋ จ ์ •๋ณด โ— ๋ช…๋ น ์ค„์—์„œ ๋Œ€์ƒ ์œ ํ˜•์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ "kdump ๋Œ€์ƒ ์„ค์ •" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. โ— Web ์ฝ˜์†”์—์„œ ๋Œ€์ƒ์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ "Web ์ฝ˜์†”์—์„œ kdump ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰๊ณผ ๋Œ€์ƒ ์œ„์น˜๋ฅผ ์„ค์ •" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 7.5.4. ์ง€์›ํ•˜๋Š” kdump ํ•„ํ„ฐ ์ˆ˜์ค€ ๋คํ”„ ํŒŒ์ผ์˜ ํฌ๊ธฐ๋ฅผ ์ถ•์†Œํ•˜๊ธฐ ์œ„ํ•ด kdump ๋Š” makedumpfile ์ฝ”์–ด ์ฝœ๋ ‰ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์•• ์ถ•ํ•˜๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ๋ถˆํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ํ‘œ๋Š” makedumpfile์œ ํ‹ธ๋ฆฌํ‹ฐ์—์„œ ํ˜„์žฌ ์ง€ ์›ํ•˜๋Š” ํ•„ํ„ฐ ์ˆ˜์ค€์˜ ์ „์ฒด ๋ชฉ๋ก์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
  • 52. ํ‘œ 7.4 ์ง€์›ํ•˜๋Š” ํ•„ํ„ฐ ์ˆ˜์ค€ ์˜ต์…˜ ์„ค๋ช… 1 ์ œ๋กœ ํŽ˜์ด์ง€(zero pages) 2 ์บ์‹œ ํŽ˜์ด์ง€(Cache pages) 4 ์บ์‹œ ์ „์šฉ(Cache private) 8 ์‚ฌ์šฉ์ž ํŽ˜์ด์ง€(User pages) 16 ๋นˆ ํŽ˜์ด์ง€(Free pages) ์ฐธ๊ณ  makedumpfile ๋ช…๋ น์€ ํˆฌ๋ช…ํ•œ ๋Œ€ํ˜• ํŽ˜์ด์ง€ ๋ฐ hugetlbfs ํŽ˜์ด์ง€์˜ ์‚ญ์ œ์— ๋Œ€์‘ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ ๋‹ค. ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ hugepages User Page ๋ชจ๋‘๋ฅผ ์ƒ๊ฐํ•˜๋Š” -8 ์ˆ˜์ค€์„ ์‚ฌ์šฉํ•˜์—ฌ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ จ ์ •๋ณด โ— ๋ช…๋ น ์ค„์—์„œ ์ฝ”์–ด ์ฝœ๋ ‰ํ„ฐ๋ฅผ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ "์ฝ”์–ด ์ฝœ๋ ‰ํ„ฐ ์„ค์ •" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 7.5.5. ์ง€์›ํ•˜๋Š” ๊ธฐ๋ณธ ์žฅ์•  ์‘๋‹ต ๊ธฐ๋ณธ์ ์œผ๋กœ kdump ์ด ์ฝ”์–ด ๋คํ”„๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜์—†๋Š” ๊ฒฝ์šฐ, ์šด์˜ ์ฒด์ œ๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ฝ” ์–ด ๋คํ”„๋ฅผ ์ฃผ ๋Œ€์ƒ์œผ๋กœ ์ €์žฅํ•  ์ˆ˜์—†๋Š” ๊ฒฝ์šฐ kdump ๊ฐ€ ๋‹ค๋ฅธ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต ๋‹ˆ๋‹ค. ๋‹ค์Œ ํ‘œ๋Š” ํ˜„์žฌ ์ง€์›๋˜๋Š” ๋ชจ๋“  ๊ธฐ๋ณธ ์ž‘์—… ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ํ‘œ 7.5 ์ง€์›ํ•˜๋Š” ๊ธฐ๋ณธ ๋™์ž‘ ์˜ต์…˜ ์„ค๋ช… dump_to_rootfs root ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์ฝ”์–ด ๋คํ”„์˜ ์ €์žฅ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ๋คํ”„ ๋Œ€์ƒ๊ณผ ๋ณ‘์šฉํ•˜๋Š” ๊ฒฝ์šฐ์— ํŠนํžˆ ์œ ์šฉํ•œ ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ๋คํ”„ ๋Œ€์ƒ์— ์—ฐ๊ฒฐํ•  ์ˆ˜์—†๋Š” ๊ฒฝ์šฐ ๋กœ์ปฌ ์ฝ” ์–ด ๋คํ”„๋ฅผ ์ €์žฅํ•˜๋„๋ก kdump ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์€ ๋‚˜์ค‘์— ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. reboot ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”์–ด ๋คํ”„๋Š” ์†์‹ค๋ฉ๋‹ˆ๋‹ค. halt ์‹œ์Šคํ…œ์„ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”์–ด ๋คํ”„๋Š” ์†์‹ค๋ฉ๋‹ˆ๋‹ค.
  • 53. ์˜ต์…˜ ์„ค๋ช… poweroff ์‹œ์Šคํ…œ์˜ ์ „์›์„ ๋•๋‹ˆ๋‹ค. ์ฝ”์–ด ๋คํ”„๋Š” ์†์‹ค๋ฉ๋‹ˆ๋‹ค. shell initramfs ๋‚ด์—์„œ shell ์„ธ์…˜์„ ์‹คํ–‰ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜๋™์œผ๋กœ ์ฝ”์–ด ๋คํ”„๋ฅผ ๊ธฐ๋ก ํ•  ์ˆ˜ ์žˆ๋„๋กํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ จ ์ •๋ณด โ— ๋ช…๋ น ์ค„์—์„œ ๊ธฐ๋ณธ ์‹คํŒจ ์‘๋‹ต์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ "kdump ๊ธฐ๋ณธ ์žฅ ์•  ์‘๋‹ต ์„ค์ •" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 7.5.6. kdump ํฌ๊ธฐ ์ถ”์ •(Estimating) kdump ํ™˜๊ฒฝ ๊ณ„ํš ๋ฐ ๊ตฌ์ถ•์‹œ์—๋Š” ๋คํ”„ ํŒŒ์ผ์— ํ•„์š”ํ•œ ๊ณต๊ฐ„์„ ํŒŒ์•…ํ•˜๊ณ  ์ž‘์„ฑํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. makedumpfile --mem-usage ๋ช…๋ น์€ ์ œ์™ธ ๊ฐ€๋Šฅํ•œ ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ์œ ์šฉํ•œ ๋ณด๊ณ ์„œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ• ๋‹น g ํ•  ๋คํ”„ ๋ ˆ๋ฒจ์„ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์ด ๋Œ€ํ‘œ์ ์ธ ๋ถ€ํ•˜์—์„œ ์ด ๋ช…๋ น์„ ์‹ค ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด, makedumpfile --mem-usage ์ด ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์—์„œ ์˜ˆ์ƒ๋˜๋Š” ๊ฐ’๋ณด๋‹ค ์ž‘ ์€ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. [root@hostname ~]# makedumpfile --mem-usage /proc/kcore TYPE PAGES EXCLUDABLE DESCRIPTION ---------------------------------------------------------------------- ZERO 501635 yes Pages filled with zero CACHE 51657 yes Cache pages CACHE_PRIVATE 5442 yes Cache pages + private USER 16301 yes User process pages FREE 77738211 yes Free pages KERN_DATA 1333192 no Dumpable kernel data ์ค‘์š” makedumpfile --mem-usage ๋ช…๋ น์€ ํŽ˜์ด์ง€ ๋‹จ์œ„๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ปค๋„ ํŽ˜์ด์ง€ ํฌ๊ธฐ์— ๋Œ€ํ•ด ์‚ฌ์šฉ ์ค‘์ธ ๋ฉ”๋ชจ๋ฆฌ์˜ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Red Hat Enterprise Linux ์ปค๋„์€ AMD64 ๋ฐ Intel 64 ์•„ํ‚คํ…์ฒ˜ 4 KB ํฌ๊ธฐ์˜ ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ IBM POWER ์•„ํ‚คํ…์ฒ˜์—๋Š” 64 KB ํฌ๊ธฐ ์˜ ํŽ˜์ด์ง€๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • 54. 7.6. kdump ์„ค์ • ํ…Œ์ŠคํŠธ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” ์ปค๋„ ๋คํ”„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰ ์‹œ์Šคํ…œ์ด ํ”„๋กœ๋•์…˜ ํ™˜๊ฒฝ์— ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ์œ ํšจํ•œ ์ง€ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ๊ณ  ๋‹ค์Œ ๋ช…๋ น์€ ์ปค๋„ ํฌ๋ž˜์‹œ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹จ๊ณ„์— ๋”ฐ๋ผ ํ™œ์„ฑ ํ”„๋กœ๋•์…˜ ์‹œ์Šคํ…œ์—์„œ ๋ถ€์ฃผ์˜ ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ๋‹จ๊ณ„ 1. kdump ๋ฅผ ์‚ฌ์šฉ ํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. 2. kdump ์ด ๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ~]# systemctl is-active kdump Active 3. Linux ์ปค๋„์„ ๊ฐ•์ œ๋กœ ํฌ๋ž˜์‹œ ์‹œํ‚ต๋‹ˆ๋‹ค. echo 1 > /proc/sys/kernel/sysrq echo c > /proc/sysrq-trigger ๊ฒฝ๊ณ  ์œ„์˜ ๋ช…๋ น์€ ์ปค๋„์ด ํฌ๋ž˜์‹œ๋ฉ๋‹ˆ๋‹ค. ๋ฆฌ๋ถ€ํŒ…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋ฉด /etc/kdump.conf ์—์„œ ์ง€์ • ํ•˜๋Š” ์žฅ์†Œ (๊ธฐ๋ณธ์ ์œผ๋กœ /var/crash/) ์— address-YYYY-MM-DD-HHH:MM:SS/vmcore ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ  ์„ค์ •์˜ ์œ ํšจ์„ฑ์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ ์™ธ์—๋„,์ด ์•ก์…˜์„ ์ด์šฉํ•˜์—ฌ ๋Œ€ํ‘œ์ ์ธ ๋ถ€ํ•˜๊ฐ€ ์‹คํ–‰ ์ค‘์ผ ๋•Œ ํฌ๋ž˜์‹œ ๋คํ”„๊ฐ€ ์™„๋ฃŒํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ๊ธฐ๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • 55. 7.7 ์ฝ”์–ด ๋คํ”„ ๋ถ„์„ ์‹œ์Šคํ…œ ์ถฉ๋Œ์˜ ์›์ธ์„ ํŒ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์ถฉ๋Œ ๋””๋ฒ„๊ฑฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด GNU ๋””๋ฒ„๊ฑฐ (GDB)์™€ ๋งค์šฐ ์œ  ์‚ฌํ•œ ๋Œ€ํ™”์‹ ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ œ๊ณต ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . ์ด ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‹คํ–‰์ค‘์ธ Linux ์‹œ์Šคํ…œ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ kdump, netdump, diskdump ๋˜๋Š” xendump ์— ์˜ํ•ด ์ƒ์„ฑ๋œ ์ฝ”์–ด ๋คํ”„๋ฅผ ๋Œ€ํ™”์‹์œผ๋กœ ๋ถ„ ์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜๋Š” Kdump Helper ๋˜๋Š” Kernel Oops Analyzer ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . 7.7.1. crash ์œ ํ‹ธ๋ฆฌํ‹ฐ ์„ค์น˜ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” crash ๋ถ„์„ ๋„๊ตฌ์˜ ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ๊ณ„ 1. ๊ด€๋ จ baseos ์ €์žฅ์†Œ์™€ appstream ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. # subscription-manager repos --enable baseos repository # subscription-manager repos --enable appstream repository 2. crash ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. # yum install crash 3. kernel-debuginfo ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. # yum install kernel-debuginfo ํŒจํ‚ค์ง€๋Š” ์‹คํ–‰์ค‘์ธ ์ปค๋„์— ๋Œ€์‘ํ•˜๊ณ  ๋คํ”„ ๋ถ„์„์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ จ ์ •๋ณด โ— subscription-manager ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ €์žฅ์†Œ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ "๊ธฐ๋ณธ ์‹œ์Šคํ…œ ์„ค์ • ๊ตฌ์„ฑ" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 7.7.2. crash ์œ ํ‹ธ๋ฆฌํ‹ฐ ์ข…๋ฃŒ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” ์‹œ์Šคํ…œ ์ถฉ๋Œ์˜ ์›์ธ์„ ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•ด crash ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ• ์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
  • 56. ์ „์ œ ์กฐ๊ฑด ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ์ปค๋„์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค ( 4.18.0-5.el8.x86_64 ๋“ฑ). ๋‹จ๊ณ„ 1. crash ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ๋‘ ๊ฐ€์ง€ ํ•„์š”ํ•œ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋ช…๋ น์— ์ „๋‹ฌํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. โ— debug-info (์••์ถ• ํ•ด์ œ ๋œ vmlinuz ์ด๋ฏธ์ง€) (ํŠน์ • kernel-debuginfo ํŒจํ‚ค์ง€์— ํฌํ•จ ๋œ /usr/lib/debug/lib/modules/4.18.0-5.el8.x86_64/vmlinux ๋“ฑ) โ— ์‹ค์ œ vmcore ํŒŒ์ผ./var/crash/127.0.0.1-2018-10-06-14:05:33/vmcore ๊ทธ ๊ฒฐ๊ณผ crash ๋ช…๋ น ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. # crash /usr/lib/debug/lib/modules/4.18.0-5.el8.x86_64/vmlinux var/crash/127.0.0.1-2018-10-06-14:05:33/vmcore kdump ์—์„œ ์ทจ๋“ํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ <kernel> ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ 7.1 crash ์œ ํ‹ธ๋ฆฌํ‹ฐ ์‹คํ–‰ ๋‹ค์Œ์˜ ์˜ˆ๋Š” 4.18.0-5.el8.x86_64 ์ปค๋„์„ ์‚ฌ์šฉํ•˜์—ฌ 2018 ๋…„ 10 ์›” 6 ์ผ (14:05 PM)์— ์ƒ์„ฑ ๋œ ์ฝ”์–ด ๋คํ”„ ๋ถ„์„์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ... WARNING: kernel relocated [202MB]: patching 90160 gdb minimal_symbol values KERNEL: /usr/lib/debug/lib/modules/4.18.0-5.el8.x86_64/vmlinux DUMPFILE: /var/crash/127.0.0.1-2018-10-06-14:05:33/vmcore [PARTIAL DUMP] CPUS: 2 DATE: Sat Oct 6 14:05:16 2018 UPTIME: 01:03:57 LOAD AVERAGE: 0.00, 0.00, 0.00 TASKS: 586 NODENAME: localhost.localdomain RELEASE: 4.18.0-5.el8.x86_64 VERSION: #1 SMP Wed Aug 29 11:51:55 UTC 2018 MACHINE: x86_64 (2904 Mhz) MEMORY: 2.9 GB PANIC: "sysrq: SysRq : Trigger a crash" PID: 10635 COMMAND: "bash" TASK: ffff8d6c84271800 [THREAD_INFO: ffff8d6c84271800]
  • 57. CPU: 1 STATE: TASK_RUNNING (SYSRQ) crash> 2. ๋Œ€ํ™” ํ˜• ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ข…๋ฃŒํ•˜๊ณ  crash ์ข…๋ฃŒํ•˜๋ ค๋ฉด crash ๋˜๋Š” q ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ 7.2 crash ์œ ํ‹ธ๋ฆฌํ‹ฐ ์ข…๋ฃŒ crash> exit ~]# ์ฐธ๊ณ  crash ๋ช…๋ น์€ ๋ผ์ด๋ธŒ ์‹œ์Šคํ…œ์„ ๋””๋ฒ„๊น…ํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ ๋‚˜ ์‹œ์Šคํ…œ์ด ์†์ƒ๋˜์ง€ ์•Š๋„๋ก์ฃผ์˜ํ•˜์‹ญ์‹œ์˜ค. 7.7.3. crash ์œ ํ‹ธ๋ฆฌํ‹ฐ์˜ ๋ฉ”์‹œ์ง€ ๋ฒ„ํผ ์—ญ์ถ”์  ๋ฐ ๊ธฐํƒ€ ํ‘œ์‹œ๊ธฐ์˜ ํ‘œ์‹œ ๋‹ค์Œ ๋‹จ๊ณ„๋Š” crash ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋„ ๋ฉ”์‹œ์ง€ ๋ฒ„ํผ ๋‹ค์‹œ ์ถ”์  ํ”„๋กœ์„ธ์Šค ์ƒํƒœ, ๊ฐ€์ƒ ๋ฉ” ๋ชจ๋ฆฌ ์ •๋ณด ์˜คํ”ˆ ํŒŒ์ผ ๋“ฑ ๋‹ค์–‘ํ•œ ํ‘œ์‹œ๊ธฐ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€ ๋ฒ„ํผ๋ณด๊ธฐ ์ปค๋„ ๋ฉ”์‹œ์ง€ ๋ฒ„ํผ๋ฅผ ๋ณด๋ ค๋ฉด ๋‹ค์Œ ์˜ˆ์— ํ‘œ์‹œ๋œ๋Œ€๋กœ ๋Œ€ํ™”์‹ ํ”„๋กฌํ”„ํŠธ์—์„œ log ๋ช…๋ น์„ ์‹คํ–‰ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ 7.3 ์ปค๋„ ๋ฉ”์‹œ์ง€ ๋ฒ„ํผ๋ณด๊ธฐ crash> log ... several lines omitted ... EIP: 0060:[<c068124f>] EFLAGS: 00010096 CPU: 2 EIP is at sysrq_handle_crash+0xf/0x20 EAX: 00000063 EBX: 00000063 ECX: c09e1c8c EDX: 00000000 ESI: c0a09ca0 EDI: 00000286 EBP: 00000000 ESP: ef4dbf24 DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 Process bash (pid: 5591, ti=ef4da000 task=f196d560 task.ti=ef4da000) Stack: c068146b c0960891 c0968653 00000003 00000000 00000002 efade5c0 c06814d0 <0> fffffffb c068150f b7776000 f2600c40 c0569ec4 ef4dbf9c 00000002 b7776000 <0> efade5c0 00000002 b7776000 c0569e60 c051de50 ef4dbf9c f196d560 ef4dbfb4 Call Trace:
  • 58. [<c068146b>] ? __handle_sysrq+0xfb/0x160 [<c06814d0>] ? write_sysrq_trigger+0x0/0x50 [<c068150f>] ? write_sysrq_trigger+0x3f/0x50 [<c0569ec4>] ? proc_reg_write+0x64/0xa0 [<c0569e60>] ? proc_reg_write+0x0/0xa0 [<c051de50>] ? vfs_write+0xa0/0x190 [<c051e8d1>] ? sys_write+0x41/0x70 [<c0409adc>] ? syscall_call+0x7/0xb Code: a0 c0 01 0f b6 41 03 19 d2 f7 d2 83 e2 03 83 e0 cf c1 e2 04 09 d0 88 41 03 f3 c3 90 c7 05 c8 1b 9e c0 01 00 00 00 0f ae f8 89 f6 <c6> 05 00 00 00 00 01 c3 89 f6 8d bc 27 00 00 00 00 8d 50 d0 83 EIP: [<c068124f>] sysrq_handle_crash+0xf/0x20 SS:ESP 0068:ef4dbf24 CR2: 0000000000000000 ๋ช…๋ น ์‚ฌ์šฉ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ help log ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ  ์ปค๋„ ๋ฉ”์‹œ์ง€ ๋ฒ„ํผ๋Š” ์‹œ์Šคํ…œ ์žฅ์• ์— ๋Œ€ํ•œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๊ฒƒ์€ ํ•ญ์ƒ ๋จผ์ € vmcore-dmesg.txt ํŒŒ์ผ๋กœ ๋คํ”„๋ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์˜ˆ๋ฅผ ๋“ค์–ด, ๋Œ€์ƒ ์œ„์น˜์— ๊ณต๊ฐ„์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— vmcore ์ „์ฒด ํŒŒ์ผ ๊ฐ€์ ธ์˜ค๊ธฐ ์‹œ๋„๊ฐ€ ์‹คํŒจ ํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ ๋กœ vmcore-dmesg.txt ๋Š” /var/pkcs/directory/์žˆ์Šต๋‹ˆ๋‹ค. 7.7.3.1. ์—ญ์ถ”์ ๋ณด๊ธฐ(backtrace) ์ปค๋„ ์Šคํƒ ํŠธ๋ž˜์ด์Šค์„ ํ‘œ์‹œํ•˜๋ ค๋ฉด bt ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ 7.4 ์ปค๋„ ์Šคํƒ ์ถ”์  ํ‘œ์‹œ crash> bt PID: 5591 TASK: f196d560 CPU: 2 COMMAND: "bash" #0 [ef4dbdcc] crash_kexec at c0494922 #1 [ef4dbe20] oops_end at c080e402 #2 [ef4dbe34] no_context at c043089d #3 [ef4dbe58] bad_area at c0430b26 #4 [ef4dbe6c] do_page_fault at c080fb9b #5 [ef4dbee4] error_code (via page_fault) at c080d809 EAX: 00000063 EBX: 00000063 ECX: c09e1c8c EDX: 00000000 EBP: 00000000 DS: 007b ESI: c0a09ca0 ES: 007b EDI: 00000286 GS: 00e0 CS: 0060 EIP: c068124f ERR: ffffffff EFLAGS: 00010096 #6 [ef4dbf18] sysrq_handle_crash at c068124f #7 [ef4dbf24] __handle_sysrq at c0681469 #8 [ef4dbf48] write_sysrq_trigger at c068150a #9 [ef4dbf54] proc_reg_write at c0569ec2 #10 [ef4dbf74] vfs_write at c051de4e #11 [ef4dbf94] sys_write at c051e8cc #12 [ef4dbfb0] system_call at c0409ad5 EAX: ffffffda EBX: 00000001 ECX: b7776000 EDX: 00000002 DS: 007b ESI: 00000002 ES: 007b EDI: b7776000 SS: 007b ESP: bfcb2088 EBP: bfcb20b4 GS: 0033 CS: 0073 EIP: 00edc416 ERR: 00000004 EFLAGS: 00000246
  • 59. bt <pid>๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ํŠน์ • ํ”„๋กœ์„ธ์Šค์˜ ๋ฐฑ ํŠธ๋ ˆ์ด์Šค๋ฅผ ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ help bt ์‹คํ–‰ํ•˜์—ฌ bt ์‚ฌ์šฉ ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. 7.7.3.2 ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ ํ‘œ์‹œ ์‹œ์Šคํ…œ์˜ ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ๋ฅผ ํ‘œ์‹œํ•˜๋ ค๋ฉด ps ๋ช…๋ น์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ 7.5 ์‹œ์Šคํ…œ์˜ ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ ํ‘œ์‹œ crash> ps PID PPID CPU TASK ST %MEM VSZ RSS COMM > 0 0 0 c09dc560 RU 0.0 0 0 [swapper] > 0 0 1 f7072030 RU 0.0 0 0 [swapper] 0 0 2 f70a3a90 RU 0.0 0 0 [swapper] > 0 0 3 f70ac560 RU 0.0 0 0 [swapper] 1 0 1 f705ba90 IN 0.0 2828 1424 init ... several lines omitted ... 5566 1 1 f2592560 IN 0.0 12876 784 auditd 5567 1 2 ef427560 IN 0.0 12876 784 auditd 5587 5132 0 f196d030 IN 0.0 11064 3184 sshd > 5591 5587 2 f196d560 RU 0.0 5084 1648 bash ps <pid>๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹จ์ผ ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ps ์ž์„ธํ•œ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ help ps ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 7.7.3.3 ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์ •๋ณด๋ณด๊ธฐ ๊ธฐ๋ณธ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•˜๋ ค๋ฉด ๋Œ€ํ™”์‹ ํ”„๋กฌํ”„ํŠธ์—์„œ vm ๋ช…๋ น์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ 7.6 ํ˜„์žฌ ์ปจํ…์ŠคํŠธ์˜ ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ ์ •๋ณด๋ณด๊ธฐ crash> vm PID: 5591 TASK: f196d560 CPU: 2 COMMAND: "bash" MM PGD RSS TOTAL_VM f19b5900 ef9c6000 1648k 5084k VMA START END FLAGS FILE f1bb0310 242000 260000 8000875 /lib/ld-2.12.so f26af0b8 260000 261000 8100871 /lib/ld-2.12.so efbc275c 261000 262000 8100873 /lib/ld-2.12.so efbc2a18 268000 3ed000 8000075 /lib/libc-2.12.so efbc23d8 3ed000 3ee000 8000070 /lib/libc-2.12.so efbc2888 3ee000 3f0000 8100071 /lib/libc-2.12.so efbc2cd4 3f0000 3f1000 8100073 /lib/libc-2.12.so efbc243c 3f1000 3f4000 100073 efbc28ec 3f6000 3f9000 8000075 /lib/libdl-2.12.so
  • 60. efbc2568 3f9000 3fa000 8100071 /lib/libdl-2.12.so efbc2f2c 3fa000 3fb000 8100073 /lib/libdl-2.12.so f26af888 7e6000 7fc000 8000075 /lib/libtinfo.so.5.7 f26aff2c 7fc000 7ff000 8100073 /lib/libtinfo.so.5.7 efbc211c d83000 d8f000 8000075 /lib/libnss_files-2.12.so efbc2504 d8f000 d90000 8100071 /lib/libnss_files-2.12.so efbc2950 d90000 d91000 8100073 /lib/libnss_files-2.12.so f26afe00 edc000 edd000 4040075 f1bb0a18 8047000 8118000 8001875 /bin/bash f1bb01e4 8118000 811d000 8101873 /bin/bash f1bb0c70 811d000 8122000 100073 f26afae0 9fd9000 9ffa000 100073 ... several lines omitted ... vm <pid>๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ help vm ์‹คํ–‰ํ•˜์—ฌ vm ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. 7.7.3.4 ์˜คํ”ˆ ํŒŒ์ผ๋ณด๊ธฐ ์˜คํ”ˆ ํŒŒ์ผ์˜ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•˜๋ ค๋ฉด files ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ 7.7 ํ˜„์žฌ ์ปจํ…์ŠคํŠธ์˜ ์˜คํ”ˆ ํŒŒ์ผ์— ๋Œ€ํ•œ ์ •๋ณด ํ‘œ์‹œ crash> files PID: 5591 TASK: f196d560 CPU: 2 COMMAND: "bash" ROOT: / CWD: /root FD FILE DENTRY INODE TYPE PATH 0 f734f640 eedc2c6c eecd6048 CHR /pts/0 1 efade5c0 eee14090 f00431d4 REG /proc/sysrq-trigger 2 f734f640 eedc2c6c eecd6048 CHR /pts/0 10 f734f640 eedc2c6c eecd6048 CHR /pts/0 255 f734f640 eedc2c6c eecd6048 CHR /pts/0 files <pid>๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์„ ํƒํ•œ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค์— ์˜ํ•ด ์—ด๋ฆฐ ํŒŒ์ผ์„ ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ help files ์‹คํ–‰ํ•˜์—ฌ files ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. 7.7.4. Kernel Oops Analyzer ์‚ฌ์šฉ Kernel Oops Analyzer ๋Š” ์ง€์‹ ๊ธฐ๋ฐ˜์˜ ์•Œ๋ ค์ง„ ๋ฌธ์ œ oops ๋ฉ”์‹œ์ง€๋ฅผ ๋น„๊ตํ•˜์—ฌ ํฌ๋ž˜์‹œ ๋คํ”„๋ฅผ ๋ถ„ ์„ํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ „์ œ ์กฐ๊ฑด โ— Red Hat Labs ์˜ ์ ˆ์ฐจ์— ๋”ฐ๋ผ oops ๋ฉ”์‹œ์ง€๋ฅผ ๋ณดํ˜ธํ•˜๊ณ  Kernel Oops Analyzer ์— ์ž…๋ ฅ ํ•ฉ๋‹ˆ๋‹ค.
  • 61. ๋‹จ๊ณ„ 1. Kernel Oops Analyzer ๋งํฌ๋ฅผ ๋”ฐ๋ผ ๋„๊ตฌ์— ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค. 2. ์ฐพ์•„๋ณด๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ oops ๋ฉ”์‹œ์ง€๋ฅผ ์ฐพ์•„๋ณด์‹ญ์‹œ์˜ค. 3. DETECT ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ makedumpfile ์—์„œ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ธฐ์กด์˜ ์†”๋ฃจ์…˜๊ณผ oops ๋ฉ” ์‹œ์ง€๋ฅผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ๊ด€๋ จ ์ •๋ณด โ— kdump.conf (5) - ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์˜ต์…˜์˜ ์ „์ฒด ๋ฌธ์„œ๋ฅผ ํฌํ•จํ•œ/etc/kdump.conf ์„ค์ • ํŒŒ์ผ์˜ man ํŽ˜์ด์ง€๋“ค. โ— zipl.conf (5) :/etc/zipl.conf ์„ค์ • ํŒŒ์ผ์˜ man ํŽ˜์ด์ง€์ž…๋‹ˆ๋‹ค. โ— zipl (8) - IBM System z ์šฉ zipl ๋ถ€ํŠธ ๋กœ๋” ์œ ํ‹ธ๋ฆฌํ‹ฐ man ํŽ˜์ด์ง€. โ— makedumpfile (8) -makedumpfile ์ฝ”์–ด ์ˆ˜์ง‘๊ฐ€ man ํŽ˜์ด์ง€. โ— kexec (8) - kexec man ํŽ˜์ด์ง€. โ— crash (8) - crash ์œ ํ‹ธ๋ฆฌํ‹ฐ man ํŽ˜์ด์ง€. โ— /usr/share/doc/kexec-tools/kexec-kdump-howto.txt- kdump ์™€ kexec ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ์˜ ๊ฐœ ์š”. โ— kexec ๋กœ kdump ์„ค์ • ์ž์„ธํ•œ ๋‚ด์šฉ์€ "Red Hat ๊ธฐ์ˆ  ์ž๋ฃŒ ๋ฌธ์„œ" ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. โ— ์ง€์›๋˜๋Š” kdump ๋Œ€์ƒ์˜ ์ž์„ธํ•œ ๋‚ด์šฉ์€ "Red Hat ๊ธฐ์ˆ  ์ž๋ฃŒ ๋ฌธ์„œ" ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.
  • 62. ์ œ 8 ์žฅ ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜๋กœ ํŒจ์น˜ Red Hat Enterprise Linux ์ปค๋„์˜ ๋ผ์ด๋ธŒ ํŒจ์น˜ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ณ  ์‹คํ–‰์ค‘์ธ ์ปค๋„์— ํŒจ์น˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์†”๋ฃจ์…˜์œผ๋กœ ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋Š” ๋‹ค์Œ์„ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. โ— ์ค‘์š”ํ•œ ๋ณด์•ˆ ํŒจ์น˜๋ฅผ ์ปค๋„์— ์ฆ‰์‹œ ์ ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. โ— ์žฅ์‹œ๊ฐ„ ์‹คํ–‰๋˜๋Š” ์ž‘์—…์˜ ์™„๋ฃŒ๋˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž ๋กœ๊ทธ ์˜คํ”„ ๋˜๋Š” ์˜ˆ์ •๋œ ๊ฐ€๋™ ์ค‘์ง€ ์‹œ๊ฐ„์„ ๊ธฐ๋‹ค๋ฆด ํ•„์š”๊ฐ€ ์—†๋‹ค. โ— ์‹œ์Šคํ…œ ๊ฐ€๋™ ์‹œ๊ฐ„์„ ๋” ๋งŽ์ด ํ™•๋ณดํ•˜๊ณ  ๋ณด์•ˆ๊ณผ ์•ˆ์ •์„ฑ์„ ์žƒ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ํฌ๋ฆฌํ‹ฐ์ปฌ ๋˜๋Š” ์ค‘์š”ํ•œ CVE ๊ฐ€ ํ•ด๊ฒฐ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹™ ๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ ๋ชฉํ‘œ๋Š” ๋ณด์•ˆ ๊ด€๋ จ ํŒจ์น˜์— ํ•„์š”ํ•œ ์žฌ๋ถ€ํŒ…์„ ์ค„์ด๊ณ  ์™„์ „ํžˆ ์ œ๊ฑฐํ•˜์ง€๋Š” ์•Š๋Š” ๊ฒƒ์ž… ๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ ํŒจ์น˜ ๋ฒ”์œ„์˜ ์ž์„ธํ•œ ๋‚ด์šฉ์€ "RHEL 7 ๋ผ์ด๋ธŒ ์ปค๋„ ํŒจ์น˜ (kpatch)์„ ์ง€์›ํ•˜๊ณ  ์žˆ ์Šต๋‹ˆ๊นŒ?" ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ๊ฒฝ๊ณ  ์ปค๋„์˜ ๋ผ์ด๋ธŒ ํŒจ์น˜์™€ ๋‹ค๋ฅธ ์ปค๋„ ์„œ๋ธŒ ๊ตฌ์„ฑ ์š”์†Œ ์‚ฌ์ด์— ์ผ๋ถ€ ๋น„ ํ˜ธํ™˜์„ฑ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— "kpatch ์ œํ•œ" ์„ ์ฃผ์˜ ๊นŠ๊ฒŒ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. 8.1. kpatch ์ œํ•œ kpatch ๊ธฐ๋Šฅ์€ ์ผ๋ฐ˜ ์ปค๋„ ์—…๊ทธ๋ ˆ์ด๋“œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ์—†์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์„ ์‹ ์†ํ•˜๊ฒŒ ๋‹ค์‹œ ์‹œ์ž‘ ํ•  ์ˆ˜์—†๋Š” ๊ฒฝ์šฐ ๋“ฑ ๊ฐ„๋‹จํ•œ ๋ณด์•ˆ ๋ฐ ๋ฒ„๊ทธ ์ˆ˜์ • ์—…๋ฐ์ดํŠธ๋ฅผ ์ ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํŒจ์น˜ ์ฝ๊ฑฐ๋‚˜ ์ฝ์€ ํ›„์—๋Š” SystemTap ๋„๊ตฌ ๋˜๋Š” kprobe ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ด๋Ÿฌํ•œ ํ”„๋กœ๋ธŒ๊ฐ€ ์ œ๊ฑฐ ๋  ๋•Œ๊นŒ์ง€ ํŒจ์น˜๋ฅผ ์ ์šฉ ํ•  ์ˆ˜ ์—†๊ฒŒ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. 8.2 ํƒ€์‚ฌ ๋ผ์ด๋ธŒ ํŒจ์น˜ ์ง€์›(third-party live patching) kpatch ์œ ํ‹ธ๋ฆฌํ‹ฐ๋Š” Red Hat ์ €์žฅ์†Œ ๋ฐฐํฌ ํ•œ RPM ๋ชจ๋“ˆ์„ ํฌํ•จํ•œ Red Hat ์ด ์ง€์›ํ•˜๋Š” ์œ ์ผํ•œ ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜ ์œ ํ‹ธ๋ฆฌํ‹ฐ์ž…๋‹ˆ๋‹ค. Red Hat ์€ Red Hat ์ œ๊ณตํ•˜์ง€ ์•Š์€ ๋ผ์ด๋ธŒ ์ปค๋„ ํŒจ์น˜๋Š” ์ง€ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • 63. ํƒ€์‚ฌ ๋ผ์ด๋ธŒ ํŒจ์น˜์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•œ ์ง€์›์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ, ๊ทผ๋ณธ ์›์ธ ํ™•์ธ์ด ํ•„์š”ํ•œ ๋ชจ๋“  ์กฐ์‚ฌ์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ๋ผ์ด๋ธŒ ํŒจ์น˜ ๋ฒค๋”์™€ ํ•จ๊ป˜ ์‚ฌ๋ก€๋ฅผ ์—ด ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ณต ๊ธ‰์—…์ฒด๊ฐ€ ํ—ˆ์šฉํ•œ ๊ฒฝ์šฐ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ณต๊ธ‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ณต๊ธ‰์—…์ฒด๊ฐ€ Red Hat ์ง€์›ํŒ€์œผ๋กœ ์กฐ์‚ฌ๋ฅผ ํ™•๋Œ€ํ•˜๊ธฐ ์ „์— ๊ทผ๋ณธ ์›์ธ ๊ฒฐ์ •์— ๋„์›€์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํƒ€์‚ฌ ๋ผ์ด๋ธŒ ํŒจ์น˜๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ, Red Hat ์€ Red Hat ์ด ํ•จ๊ป˜ํ•˜๊ณ  ์ง€์›ํ•˜๋Š” ์†Œํ”„ ํŠธ์›จ์–ด์˜ ๋ณต์ œ๋ฅผ ์š”๊ตฌํ•  ๊ถŒ๋ฆฌ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ, Red Hat ์€ ๋™์ผํ•œ ๋ฌธ ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋ผ์ด๋ธŒ ํŒจ์น˜๋ฅผ ์ ์šฉํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉ์ž์˜ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์— ์„œ ์œ ์‚ฌํ•œ ์‹œ์Šคํ…œ ๋ฐ ์›Œํฌ๋กœ๋“œ ๋ฐฐํฌ๋ฅผ ๊ตฌํ•ฉ๋‹ˆ๋‹ค. ํƒ€์‚ฌ ์†Œํ”„ํŠธ์›จ์–ด ์ง€์› ์ •์ฑ…์˜ ์ž์„ธํ•œ ๋‚ด์šฉ์€ "Red Hat ๊ธ€๋กœ๋ฒŒ ์ง€์› ์„œ๋น„์Šค๋Š” ํƒ€์‚ฌ์˜ ์†Œํ”„ํŠธ์›จ ์–ด, ๋“œ๋ผ์ด๋ฒ„, ๊ทธ๋ฆฌ๊ณ  ์ธ์ฆ๋˜์ง€ ์•Š์€ ํ•˜๋“œ์›จ์–ด ๋ฐ ํ•˜์ดํผ ๋ฐ”์ด์ € ๋˜๋Š” ๊ฒŒ์ŠคํŠธ ์šด์˜ ์ฒด์ œ์— ๋Œ€ ํ•ด ์–ด๋–ค ์ง€์›์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค ์žˆ์Šต๋‹ˆ๊นŒ? " ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 8.3 ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜์— ์•ก์„ธ์Šค ๋ผ์ด๋ธŒ ์ปค๋„ ํŒจ์น˜ ๊ธฐ๋Šฅ์€ RPM ํŒจํ‚ค์ง€๋กœ ์ œ๊ณต๋˜๋Š” ์ปค๋„ ๋ชจ๋“ˆ ( kmod)๋กœ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ณ ๊ฐ์€ ์ผ๋ฐ˜ ์ฑ„๋„์—์„œ ์ œ๊ณต๋˜๋Š” ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜์— ์•ก์„ธ์Šค ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์—ฐ์žฅ ์ง€์› ์„œ๋น„์Šค์— ๊ฐ€์ž…ํ•˜์ง€ ์•Š์€ ๊ณ ๊ฐ์€ ๋‹ค์Œ์˜ ๋งˆ์ด๋„ˆ ๋ฆด๋ฆฌ์ฆˆ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜์žˆ๊ฒŒ๋˜๋ฉด ํ˜„์žฌ์˜ ๋งˆ์ด ๋„ˆ ๋ฆด๋ฆฌ์ฆˆ์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ํŒจ์น˜์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์žƒ๊ฒŒ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์Šคํƒ ๋‹ค๋“œ ์„œ๋ธŒ์Šคํฌ๋ฆฝ ์…˜์„ ๊ตฌ๋งค ํ•œ ๊ณ ๊ฐ์€ RHEL 8.3 ์ปค๋„์ด ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ RHEL 8.2 ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜๋งŒ ํ•  ์ˆ˜ ์žˆ ์Šต๋‹ˆ๋‹ค. 8.4 ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜์˜ ๊ตฌ์„ฑ ์š”์†Œ ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜์˜ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ(kernel patch module) โ— ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜์˜ ์ „๋‹ฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜ โ— ํŒจ์น˜๊ฐ€ ์ ์šฉ๋œ ์ปค๋„์— ๊ตฌ์ถ• ํ•œ ์ปค๋„ ๋ชจ๋“ˆ. โ— ํŒจ์น˜ ๋ชจ๋“ˆ์€ ์ปค๋„์— ํ•„์š”ํ•œ ์ˆ˜์ • ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. โ— ํŒจ์น˜ ๋ชจ๋“ˆ์€ kpatch ์ปค๋„ ์„œ๋ธŒ ์‹œ์Šคํ…œ์— ๋“ฑ๋กํ•˜๊ณ  ๋Œ€์ฒด ์›๋ž˜ ๊ธฐ๋Šฅ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ ๋‹ค. ๋˜ํ•œ ๋Œ€์ฒด๋˜๋Š” ๊ธฐ๋Šฅ๊ณผ ์ผ์น˜ํ•˜๋Š” ํฌ์ธํ„ฐ๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์€ RPM ์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.
  • 64. โ— ๋ช…๋ช… ๊ทœ์น™ kpatch_<kernel version>_<kpatch version>_<kpatch release>์ž…๋‹ˆ๋‹ค. ์ด๋ฆ„ "kernel version"๋ถ€๋ถ„์˜ ๋งˆ์นจํ‘œ์™€ ํ•˜์ดํ”ˆ์„ ๋ฐ‘์ค„๋กœ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค. kpatch ์œ ํ‹ธ๋ฆฌํ‹ฐ ํŒจ์น˜ ๋ชจ๋“ˆ์„ ๊ด€๋ฆฌํ•˜๊ธฐ์œ„ํ•œ ๋ช…๋ น์ค„ ์œ ํ‹ธ๋ฆฌํ‹ฐ. kpatch ์„œ๋น„์Šค multiuser.target ์—์„œ ํ•„์š”ํ•œ systemd ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค. ์ด ๋Œ€์ƒ์€ ์‹œ์Šคํ…œ ๋ถ€ํŒ…์‹œ ์ปค๋„ ํŒจ์น˜๋ฅผ ๋กœ ๋“œํ•ฉ๋‹ˆ๋‹ค. 8.5 ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜์˜ ์ž‘๋™ ๋ฐฉ์‹ kpatch ์ปค๋„ ํŒจ์น˜ ์†”๋ฃจ์…˜์€ livepatch ์ปค๋„ ์„œ๋ธŒ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด ๊ธฐ๋Šฅ์˜ ๋Œ€์ƒ์„ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์œผ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ ์ปค๋„ ํŒจ์น˜๊ฐ€ ์‹œ์Šคํ…œ์— ์ ์šฉ๋˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ผ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. 1. ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์€ /var/lib/kpatch/๋””๋ ‰ํ† ๋ฆฌ์— ๋ณต์‚ฌํ•˜๊ณ  ๋‹ค์Œ ๋ถ€ํŒ…์‹œ์— systemd ๋ฅผ ํ†ตํ•ด ์ปค๋„์— ๋‹ค์‹œ ์ ์šฉ์œผ๋กœ ๋“ฑ๋ก๋ฉ๋‹ˆ๋‹ค. 2. ์‹คํ–‰์ค‘์ธ ์ปค๋„์— kpatch ๋ชจ๋“ˆ์ด๋กœ๋“œ ๋œ ์ƒˆ๋กœ์šด ์ฝ”๋“œ์˜ ๋ฉ”๋ชจ๋ฆฌ ์œ„์น˜๋ฅผ ์ง€์ •ํ•˜๋Š” ํฌ์ธํ„ฐ ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ftrace ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋“ฑ๋ก๋ฉ๋‹ˆ๋‹ค. 3. ํŒจ์น˜๋˜์—ˆ์„ ๊ธฐ๋Šฅ์— ์ปค๋„์ด ์ ‘๊ทผํ•˜๋ฉด ftrace ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋ฆฌ๋””๋ ‰์…˜๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ์›๋ž˜ ์˜ ๊ธฐ๋Šฅ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ํŒจ์น˜ ๋ฒ„์ „์˜ ๊ธฐ๋Šฅ์— ์ปค๋„์„ ์žฌ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆผ 8.1 ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜์˜ ๋™์ž‘ ๋ฐฉ์‹
  • 65. 8.6 ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜ ํ™œ์„ฑํ™” ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์€ ํŒจ์น˜๋˜๋Š” ์ปค๋„ ๋ฒ„์ „์— ๋”ฐ๋ผ RPM ํŒจํ‚ค์ง€๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. ๊ฐ RPM ํŒจํ‚ค์ง€๋Š” ์‹œ๊ฐ„์ด ์ง€๋‚จ์— ๋”ฐ๋ผ ๋ˆ„์  ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ํŠน์ • ์ปค๋„์— ๋Œ€ํ•œ ํ–ฅํ›„ ๋ชจ๋“  ๋ˆ„์  ํŒจ์น˜ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฝ๊ณ  Red Hat ์€ Red Hat ์ด ์ง€์›ํ•˜๋Š” ์‹œ์Šคํ…œ์— ์ ์šฉ๋œ ํƒ€์‚ฌ ๋ผ์ด๋ธŒ ํŒจ์น˜๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 8.6.1 ๋ผ์ด๋ธŒ ํŒจ์น˜ ์ŠคํŠธ๋ฆผ์— ๋“ฑ๋ก ์ด ๋‹จ๊ณ„์—์„œ๋Š” ํŠน์ • ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ์ง€์ •๋œ ์ปค ๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜ ์ŠคํŠธ๋ฆผ์— ๊ฐ€์ž…ํ•˜์—ฌ ํ–ฅํ›„ ์ปค๋„์— ๋Œ€ํ•œ ๋ˆ„์  ๋ผ์ด๋ธŒ ํŒจ์น˜ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ชจ๋‘ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฝ๊ณ  ๋ผ์ด๋ธŒ ํŒจ์น˜๋Š” ๋ˆ„์ ๋˜๋Š” ํ˜•ํƒœ์ด๋ฏ€๋กœ ํŠน์ • ์ปค๋„์— ๋ฐฐ์น˜๋˜๋Š” ๊ฐœ๋ณ„ ํŒจ์น˜๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ „์ œ ์กฐ๊ฑด โ— root ๊ถŒํ•œ ๋‹จ๊ณ„ 1. ํ•„์š”์— ๋”ฐ๋ผ ์ปค๋„ ๋ฒ„์ „์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. # uname -r 4.18.0-94.el8.x86_64 2. ์ปค๋„์˜ ๋ฒ„์ „๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. # yum search $ (uname -r) 3. ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. # yum install "kpatch-patch = $ (uname -r)"
  • 66. ์œ„์˜ ๋ช…๋ น์€ ํŠน์ • ์ปค๋„์—๋งŒ ์ตœ์‹  ๋ˆ„์  ํŒจ์น˜๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€ ๋ฒ„์ „์ด 1-1 ์ด์ƒ์ด๋ฉด ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€์— ํŒจ์น˜ ๋ชจ๋“ˆ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ๋•Œ ์ปค๋„์— ํŒจ์น˜๊ฐ€ ์ž๋™์œผ๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์€ ํ–ฅํ›„ ๋‹ค์‹œ ์‹œ์ž‘ํ•  ๋•Œ systemd ์‹œ์Šคํ…œ ๋ฐ ์„œ๋น„์Šค ๊ด€๋ฆฌ์ž์— ์˜ํ•ด๋กœ๋“œ ๋œ /var/lib/kpatch/๋””๋ ‰ํ† ๋ฆฌ์— ์„ค์น˜๋ฉ๋‹ˆ๋‹ค. ์ฐธ๊ณ  ์ง€์ •๋œ ์ปค๋„์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ผ์ด๋ธŒ ํŒจ์น˜๊ฐ€์—†๋Š” ๊ฒฝ์šฐ๋Š” ๋นˆ ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋ฉ ๋‹ˆ๋‹ค. ๋นˆ ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๋Š” kpatch_version-kpatch_release 0-0 (์˜ˆ : kpatch-patch-4_18_0-94-0-0.el8.x86_64.rpm)๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋นˆ RPM ์„ค์น˜ํ•˜ ๋ฉด ์‹œ์Šคํ…œ์ด ์ง€์ •๋œ ์ปค๋„์— ๋Œ€ํ•œ ํ–ฅํ›„ ๋ชจ๋“  ๋ผ์ด๋ธŒ ํŒจ์น˜๋ฅผ ๊ตฌ๋…ํ•ฉ๋‹ˆ๋‹ค. 4. ํ•„์š”์— ๋”ฐ๋ผ ์ปค๋„ ํŒจ์น˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. # kpatch list Loaded patch modules: kpatch_4_18_0_94_1_1 [enabled] Installed patch modules: kpatch_4_18_0_94_1_1 (4.18.0-94.el8.x86_64) โ€ฆโ€‹ ์ด ์ถœ๋ ฅ์€ ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์ด ์ปค๋„์—๋กœ๋“œ๋˜์–ด ์žˆ๋Š”์ง€๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ฆ‰, ์ปค๋„์€ ํ˜„ ์žฌ kpatch-patch-4_18_0-94-1-1.el8.x86_64.rpm ํŒจํ‚ค์ง€์˜ ์ตœ์‹  ์ˆ˜์ • ์‚ฌํ•ญ์ด ์ ์šฉ๋˜์–ด ์žˆ์Šต ๋‹ˆ๋‹ค. ๊ด€๋ จ ์ •๋ณด โ— kpatch ๋ช…๋ น ์ค„ ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ kpatch(1)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ ์˜ค. โ— Red Hat Enterprise Linux 8 ์†Œํ”„ํŠธ์›จ์–ด ํŒจํ‚ค์ง€์˜ ์ž์„ธํ•œ ๋‚ด์šฉ์€ "๊ธฐ๋ณธ ์‹œ์Šคํ…œ ์„ค์ • ๊ตฌ ์„ฑ" ์˜ ๊ด€๋ จ ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 8.7 ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ ์—…๋ฐ์ดํŠธ ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์ด ์ œ๊ณต๋˜๋ฉฐ RPM ํŒจํ‚ค์ง€๋ฅผ ํ†ตํ•ด ์ ์šฉ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ˆ„๊ณ„ ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ ์—…๋ฐ์ดํŠธ๋Š” ๋‹ค๋ฅธ RPM ํŒจํ‚ค์ง€์˜ ์—…๋ฐ์ดํŠธ์™€ ๋น„์Šทํ•ฉ๋‹ˆ๋‹ค.
  • 67. ์ „์ œ ์กฐ๊ฑด โ— root ๊ถŒํ•œ โ— "๋ผ์ด๋ธŒ ํŒจ์น˜ ์ŠคํŠธ๋ฆผ์— ๋“ฑ๋ก" ์— ์„ค๋ช… ๋œ๋Œ€๋กœ ์‹œ์Šคํ…œ์ด ๋ผ์ด๋ธŒ ํŒจ์น˜ ์ŠคํŠธ๋ฆผ์— ๋“ฑ๋ก๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ๊ณ„ 1. ํ˜„์žฌ ์ปค๋„์˜ ์ƒˆ ๋ˆ„์  ๋ฒ„์ „์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. # yum update "kpatch-patch = $ (uname -r)" ์œ„์˜ ๋ช…๋ น์€ ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ์ปค๋„์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์—…๋ฐ์ดํŠธ๋ฅผ ์ž๋™์œผ๋กœ ์„ค์น˜ํ•˜๊ณ  ์ ์šฉํ•ฉ ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์ƒˆ๋กœ ์ถœ์‹œ๋œ ๋ˆ„์  ๋ผ์ด๋ธŒ ํŒจ์น˜๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. โ— ๋˜๋Š” ์„ค์น˜ ํ•œ ๋ชจ๋“  ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. # yum update "kpatch-patch *" ์ฐธ๊ณ  ์‹œ์Šคํ…œ์ด ๋™์ผํ•œ ์ปค๋„๋กœ ์žฌ๋ถ€ํŒ…๋˜๋ฉด kpatch.service systemd ์„œ๋น„์Šค๋Š” ์ปค๋„์„ ์ž๋™์œผ ๋กœ ๋‹ค์‹œ ํŒจ์น˜๋ฉ๋‹ˆ๋‹ค. ๊ด€๋ จ ์ •๋ณด โ— ์†Œํ”„ํŠธ์›จ์–ด ํŒจํ‚ค์ง€์˜ ์—…๋ฐ์ดํŠธ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” Red Hat Enterprise Linux 8 ์— ์„œ "๊ธฐ๋ณธ ์‹œ์Šคํ…œ ์„ค์ •์„ ๊ตฌ์„ฑ" ์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. 8.8 ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜ ๋น„ํ™œ์„ฑํ™” ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๊ฐ€ Red Hat Enterprise Linux ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜ ์†”๋ฃจ์…˜๊ณผ ๊ด€๋ จํ•˜์—ฌ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ถ€์ •์ ์ธ ์˜ํ–ฅ์„ ๊ฒฝํ—˜ ํ•œ ๊ฒฝ์šฐ, ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋น„ํ™œ์„ฑํ™” ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ๋ผ์ด๋ธŒ ํŒจ์น˜ ์†”๋ฃจ์…˜์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
  • 68. ์ค‘์š” ํ˜„์žฌ Red Hat ์€ ์‹œ์Šคํ…œ์˜ ์žฌ๋ถ€ํŒ…์—†์ด ๋ผ์ด๋ธŒ ํŒจ์น˜๋ฅผ ๋˜๋Œ๋ฆด ์ˆ˜๋Š” ๋ฐฉ๋ฒ•์€ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ ๋‹ค. ๋ฌธ์˜ ์‚ฌํ•ญ์ด ์žˆ์œผ์‹œ๋ฉด ์ง€์›ํŒ€์— ๋ฌธ์˜ํ•˜์‹ญ์‹œ์˜ค. 8.8.1 ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€ ์ œ๊ฑฐ ๋‹ค์Œ ๋‹จ๊ณ„๋Š” ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ฑฐํ•˜์—ฌ Red Hat Enterprise Linux ์ปค๋„์˜ ๋ผ์ด๋ธŒ ํŒจ์น˜ ์†”๋ฃจ์…˜์„ ํ•ด์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ „์ œ ์กฐ๊ฑด โ— root ๊ถŒํ•œ โ— ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ๋‹ค. ๋‹จ๊ณ„ 1. ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. # yum list installed | grep kpatch-patch kpatch-patch-4_18_0-94.x86_64 1-1.el8 @@ commandline โ€ฆโ€‹ ์œ„์˜ ์ถœ๋ ฅ ์˜ˆ๋Š” ์„ค์น˜ ํ•œ ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๋ฅผ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค. 2. ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. # yum remove kpatch-patch-4_18_0-94.x86_64 ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๊ฐ€ ์ œ๊ฑฐ๋˜๋ฉด ์ปค๋„์€ ๋‹ค์Œ ์žฌ๋ถ€ํŒ…๊นŒ์ง€ ํŒจ์น˜๋˜์—ˆ์„ ๋‚จ์•„ ์žˆ์ง€๋งŒ ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์€ ๋””์Šคํฌ์—์„œ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์žฌ๋ถ€ํŒ… ํ›„์ด ์ผ์น˜ํ•˜๋Š” ์ปค๋„ ํŒจ์น˜๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 3. ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. 4. ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๊ฐ€ ์‚ญ์ œ ๋œ ๊ฒƒ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. # yum list installed | grep kpatch-patch
  • 69. ํŒจํ‚ค์ง€๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์ œ๊ฑฐ ๋œ ๊ฒฝ์šฐ์ด ๋ช…๋ น์€ ์•„๋ฌด๊ฒƒ๋„ ์ถœ๋ ฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. 5. ํ•„์š”์— ๋”ฐ๋ผ ์ปค๋„์˜ ๋ผ์ด๋ธŒ ํŒจ์น˜ ์†”๋ฃจ์…˜์ด ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. # kpatch list Loaded patch modules: ์ด ์ถœ๋ ฅ ์˜ˆ์ œ์—์„œ๋Š” ํ˜„์žฌ๋กœ๋“œ ๋œ ํŒจ์น˜ ๋ชจ๋“ˆ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ปค๋„์— ํŒจ์น˜๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š ๊ณ , ๋ผ์ด๋ธŒ ํŒจ์น˜ ์†”๋ฃจ์…˜์ด ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์€ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ จ ์ •๋ณด โ— kpatch ๋ช…๋ น ์ค„ ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ kpatch(1)์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ ์˜ค. โ— ์†Œํ”„ํŠธ์›จ์–ด ํŒจํ‚ค์ง€์˜ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€ '๊ธฐ๋ณธ ์‹œ์Šคํ…œ ์„ค์ • ๊ตฌ์„ฑ" ์˜ ๊ด€๋ จ ์„น์…˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ ์˜ค. 8.8.2 ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ ์ œ๊ฑฐ ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” Red Hat Enterprise Linux ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜ ์†”๋ฃจ์…˜์ด ํ›„์† ๋ถ€ํŒ… ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์„ ์ ์šฉํ•˜์ง€ ์•Š๋„๋กํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ „์ œ ์กฐ๊ฑด โ— root ๊ถŒํ•œ โ— ๋ผ์ด๋ธŒ ํŒจ์น˜ ํŒจํ‚ค์ง€๊ฐ€ ์„ค์น˜๋˜์–ด์žˆ๋‹ค. โ— ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์ด ์„ค์น˜๋œ๋กœ๋“œ๋˜์–ด์žˆ๋‹ค. ๋‹จ๊ณ„ 1. ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. # kpatch list Loaded patch modules: kpatch_4_18_0_94_1_1 [enabled] Installed patch modules: kpatch_4_18_0_94_1_1 (4.18.0-94.el8.x86_64) โ€ฆโ€‹
  • 70. 2. ์„ ํƒํ•œ ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. # kpatch uninstall kpatch_4_18_0_94_1_1 Uninstalling kpatch_4_18_0_94_1_1 (4.18.0-94.el8.x86_64) โ— ์ œ๊ฑฐ ๋œ ์ปค๋„ ๋ชจ๋“ˆ์ด๋กœ๋“œ๋˜์–ด ์žˆ๋Š”์ง€์— ์ฃผ์˜ํ•˜์‹ญ์‹œ์˜ค. # kpatch list Loaded patch modules: kpatch_4_18_0_94_1_1 [enabled] Installed patch modules: <NO_RESULT> ์„ ํƒํ•œ ๋ชจ๋“ˆ์„ ์ œ๊ฑฐํ•˜๋ฉด ๋‹ค์Œ์— ๋‹ค์‹œ ๋ถ€ํŒ… ํ•  ๋•Œ๊นŒ์ง€ ์ปค๋„์ด ํŒจ์น˜๋œ ์ƒํƒœ๋กœ ์œ ์ง€๋˜ ์ง€๋งŒ ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์€ ๋””์Šคํฌ์—์„œ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. 3. ์‹œ์Šคํ…œ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. 4. ํ•„์š”ํ•œ ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์ด ์ œ๊ฑฐ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. # kpatch list Loaded patch modules: โ€ฆโ€‹ ์œ„์˜ ์˜ˆ์ œ ์ถœ๋ ฅ์—๋Š”๋กœ๋“œ๋˜๊ฑฐ๋‚˜ ์„ค์น˜๋œ ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ปค๋„์ด ํŒจ์น˜๋˜์ง€ ์•Š๊ณ  ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜ ์†”๋ฃจ์…˜์ด ํ™œ์„ฑํ™”๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ด€๋ จ ์ •๋ณด โ— kpatch ๋ช…๋ น ์ค„ ์œ ํ‹ธ๋ฆฌํ‹ฐ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ man ํŽ˜์ด์ง€์˜ kpatch(1)์„ ์ฐธ์กฐํ•˜์‹ญ ์‹œ์˜ค. 8.8.3. kpatch.service ๋น„ํ™œ์„ฑํ™” ๋‹ค์Œ ๋‹จ๊ณ„์—์„œ๋Š” Red Hat Enterprise Linux ์ปค๋„ ๋ผ์ด๋ธŒ ํŒจ์น˜ ์†”๋ฃจ์…˜์ด ํ›„์† ๋ถ€ํŒ… ์ปค๋„ ํŒจ์น˜ ๋ชจ๋“ˆ์„ ์ „์ฒด์ ์œผ๋กœ ์ ์šฉ๋˜์ง€ ์•Š๋„๋กํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.