NILFS2 - /home์„ ์œ„ํ•œ ๋ฐฉํƒ„ ํŒŒ์ผ ์‹œ์Šคํ…œ

NILFS2 - /home์„ ์œ„ํ•œ ๋ฐฉํƒ„ ํŒŒ์ผ ์‹œ์Šคํ…œ

์•„์‹œ๋‹ค์‹œํ”ผ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋ฐ˜๋“œ์‹œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ตœ๊ทผ์˜ ์ค‘์š”ํ•œ ํŒŒ์ผ์ด ์‹ค์ˆ˜๋กœ ์ง€์›Œ์กŒ๊ฑฐ๋‚˜ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ์—์„œ ํ…์ŠคํŠธ๊ฐ€ ์‹ค์ˆ˜๋กœ ์„ ํƒ๋˜์–ด ์‚ญ์ œ๋œ ๊ฒฝ์šฐ๊ฐ€ ๋ˆ„๊ตฌ๋‚˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ท€ํ•˜๊ฐ€ ํ˜ธ์ŠคํŒ… ์—…์ฒด์ด๊ฑฐ๋‚˜ ์›น์‚ฌ์ดํŠธ ์†Œ์œ ์ž๋ผ๋ฉด ์•„๋งˆ๋„ ์‚ฌ์šฉ์ž ๊ณ„์ •์ด๋‚˜ ์›น์‚ฌ์ดํŠธ๊ฐ€ ํ•ดํ‚น๋‹นํ•œ ์ ์ด ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ์—ฐ๋Œ€์ˆœ์„ ๋ณต์›ํ•˜๊ณ  ๊ณต๊ฒฉ์ž๊ฐ€ ์‚ฌ์šฉํ•œ ์ง„์ž… ๋ฐฉ๋ฒ•๊ณผ ์ทจ์•ฝ์ ์„ ์ฐพ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

NILFS2 ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ 2.6.30๋ถ€ํ„ฐ Linux ์ปค๋„์— ์กด์žฌํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ํŠน์ง•์€ ๋ฒ„์ „ ์ œ์–ด ์‹œ์Šคํ…œ๊ณผ ์œ ์‚ฌํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ธ์ œ๋“ ์ง€ ์‹œ์Šคํ…œ ์ƒํƒœ๋ฅผ ๋กค๋ฐฑํ•˜๊ณ  ์–ผ๋งˆ ์ „์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด Cron ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜ ์Šค๋ƒ…์ƒท์„ ์ฐ๋Š” ๋“ฑ์˜ ์ž‘์—…์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. NILFS2 ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ์ด ๋ชจ๋“  ์ž‘์—…์„ ์ž์ฒด์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฎ์–ด์“ฐ์ง€ ์•Š์œผ๋ฉฐ, ์—ฌ์œ  ๋””์Šคํฌ ๊ณต๊ฐ„์ด ์ถฉ๋ถ„ํ•  ๊ฒฝ์šฐ ํ•ญ์ƒ ๋””์Šคํฌ์˜ ์ƒˆ ์˜์—ญ์— ์”๋‹ˆ๋‹ค. Copy-on-Write ์›์น™์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ค€์ˆ˜ํ•ฉ๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•˜๋ฉด ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ์ƒˆ๋กœ์šด ์Šค๋ƒ…์ƒท์ด ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋ฏ€๋กœ ์ด FS๋ฅผ ํƒ€์ž„๋จธ์‹ ์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ ์ƒํƒœ๋ฅผ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์•ผ๊ธฐ

NILFS2 - /home์„ ์œ„ํ•œ ๋ฐฉํƒ„ ํŒŒ์ผ ์‹œ์Šคํ…œNILFS2๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊นŠ์ด์—์„œ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ณธ ์ „์‹  ์ „ํ™” ์ฃผ์‹ํšŒ์‚ฌ, ์‹ค์ œ๋กœ๋Š” ๊ตญ์˜(์ง€๋ฐฐ์ง€๋ถ„ ๋ณด์œ )์ด์ž ์ผ๋ณธ ์ตœ๋Œ€ ๊ทœ๋ชจ์˜ ํ†ต์‹ ํšŒ์‚ฌ์ž…๋‹ˆ๋‹ค. ๋ณด๋‹ค ๊ตฌ์ฒด์ ์œผ๋กœ, ๋ฆฌ๋”์‹ญ ํ•˜์˜ CyberSpace ์—ฐ๊ตฌ์†Œ์—์„œ๋Š” ์ฝ”๋‹ˆ์‹œ ๋ฅ˜์Šค์ผ€.

์ •ํ™•ํžˆ ๋ฌด์—‡์„ ์œ„ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ๋Š”์ง€๋Š” ์•Œ ์ˆ˜ ์—†์ง€๋งŒ "ํƒ€์ž„๋จธ์‹ " ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ์ด๋Ÿฌํ•œ FS๋Š” ์ •๋ณด ๊ธฐ๊ด€์ด ์ „์ฒด ๊ทธ๋ฆผ์„ ์žฌ์ƒํ•˜๊ธฐ ์œ„ํ•ด ํŒŒํ—ค์น˜๊ณ  ์‹ถ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์ด์ƒ์ ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. SMS, ์ด๋ฉ”์ผ ๋“ฑ....

NILFS2๋Š” ์ž ์žฌ์ ์œผ๋กœ ๋‚ด๋ถ€ ๋ณด์•ˆ ์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ ๋งค์šฐ ๊ท€์ค‘ํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฉ”์ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ญ์ œ๋œ ๋ชจ๋“  ํŽธ์ง€๋ฅผ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‚˜์ค‘์— ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•˜์—ฌ ์œ„์žฅํ•˜๋ ค๊ณ  ์‹œ๋„ํ•  ์ˆ˜ ์žˆ๋Š” ์ง์›์˜ ์ •์ฒด๋ฅผ ๋“œ๋Ÿฌ๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ „์ฒด ํ†ต์‹  ๊ธฐ๋ก์„ ์–ด๋–ป๊ฒŒ ์ถ”์ ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?Linux ์„œ๋ฒ„(๋‚ด๋ถ€ ๋ณด์•ˆ ๋ชฉ์ ์œผ๋กœ NILFS2๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” ๊ณณ)์—์„œ๋Š” ์ด๋ฉ”์ผ์„ ์ €์žฅํ•˜๋Š” ํŒŒ์ผ ๋ฐฉ๋ฒ•์ด ์ด๋ฉ”์ผ ๋ฉ”์‹œ์ง€๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์†Œ์œ„ ํ˜•์‹ ๋ฉ”์ผ ๋””๋ ‰ํ† ๋ฆฌ. ๋„ฃ์–ด๋„ ์ถฉ๋ถ„ํ•ด์š” ํƒ๋ฐฐ ๋ฉ”์ผ ์„œ๋ฒ„ Maildir์—์„œ ๋ฉ”์ผ ์ €์žฅ์†Œ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ํ˜•์‹ ์— ๋ฐ•์Šค ๊ฐœ๋ณ„ ๋ฉ”์‹œ์ง€๋กœ ์‰ฝ๊ฒŒ ๊ตฌ๋ฌธ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€์šฉ๋Ÿ‰ ํ…์ŠคํŠธ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

๋ฉ”์ผ ์„œ๋ฒ„๊ฐ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ NILFS2๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณ€๊ฒฝ์˜ ์ •ํ™•ํ•œ ์‹œ์ ์„ ๋ณต์›ํ•˜๊ณ  ์ด๋Ÿฌํ•œ ์ˆœ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ณต์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๋‹น ์‹œ์ ์— ๊ทธ ์•ˆ์— ๋ฌด์—‡์ด ์žˆ์—ˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ณธ ์ •๋ถ€๊ฐ€ ๋ชจ๋“  ์‚ฌ๋žŒ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ๋งˆ์Œ์„ ๋ฐ”๊พธ์—ˆ๊ฑฐ๋‚˜(Yarovaya ์›์น™์— ๋”ฐ๋ผ) ๊ธฐ์กด HDD์—์„œ NILFS2์˜ ์„ฑ๋Šฅ์ด ๋™๋“ฑ ์ดํ•˜๋กœ ํŒ๋ช…๋˜์—ˆ๊ณ  NILFS2๋Š” GPL ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ์ถœ์‹œ๋˜์—ˆ์œผ๋ฉฐ ๋งค์šฐ ๋น ๋ฅด๊ฒŒ Linux ์ปค๋„์— ๋“ค์–ด๊ฐ”์Šต๋‹ˆ๋‹ค. ์šฐ์ˆ˜ํ•œ ์ผ๋ณธ์–ด๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ์— ๋Œ€ํ•œ ํŠน๋ณ„ํ•œ ๋ถˆ๋งŒ์€ ์—†์—ˆ์œผ๋ฉฐ Linux ์ปค๋„ ๊ฐœ๋ฐœ์ž์—๊ฒŒ๋Š” ํ•ด๋‹น ์ฝ”๋“œ๊ฐ€ ์—†์—ˆ์Šต๋‹ˆ๋‹ค.

NILFS2๋Š” ์–ด๋–ค๊ฐ€์š”?

์‚ฌ์šฉ ๊ด€์ ์—์„œ: ๋ฒ„์ „ ์ œ์–ด ์‹œ์Šคํ…œ์—์„œ SVN. ๊ฐ FS ์ฒดํฌํฌ์ธํŠธ๋Š” ์‚ญ์ œ, ํŒŒ์ผ ๋‚ด์šฉ ๋ณ€๊ฒฝ, ์•ก์„ธ์Šค ๊ถŒํ•œ ๋ณ€๊ฒฝ ๋“ฑ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์„ ๋•Œ๋งˆ๋‹ค ์‚ฌ์šฉ์ž ๋ชจ๋ฅด๊ฒŒ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰๋˜๋Š” ์ปค๋ฐ‹์ž…๋‹ˆ๋‹ค. ๊ฐ ์ปค๋ฐ‹์—๋Š” ์„ ํ˜•์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆซ์ž๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ๊ด€์ ์—์„œ ๋ณด๋ฉด: ์ˆœํ™˜ ๋ฒ„ํผ์ž…๋‹ˆ๋‹ค. ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ˆ„์ ํ•˜์—ฌ ์•ฝ 8MB(2000 * 4096, ์—ฌ๊ธฐ์„œ 2000์€ ๋ธ”๋ก์˜ ์š”์†Œ ์ˆ˜์ด๊ณ  4096์€ ๋ฉ”๋ชจ๋ฆฌ ํŽ˜์ด์ง€ ํฌ๊ธฐ)์— ํ•ด๋‹นํ•˜๋Š” ์ฒญํฌ๋กœ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ์ „์ฒด ๋””์Šคํฌ๋Š” ์ด๋Ÿฌํ•œ ์ฒญํฌ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. ๋…น์Œ์€ ์ˆœ์ฐจ์ ์œผ๋กœ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค. ์—ฌ์œ  ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•ด์ง€๋ฉด ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ์Šค๋ƒ…์ƒท์ด ์‚ญ์ œ๋˜๊ณ  ์ฒญํฌ๊ฐ€ ๋ฎ์–ด์“ฐ์—ฌ์ง‘๋‹ˆ๋‹ค.

๊ธฐ๋ณธ NILFS2 ํ˜œํƒ

  • ๋ฒ„์ „ ๊ด€๋ฆฌ!!!
  • ์˜ค๋ฅ˜ ํ›„ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๋ณต์›ํ•˜๋Š” ์ ˆ์ฐจ๋Š” ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ๋กœ๋“œํ•  ๋•Œ ์˜ฌ๋ฐ”๋ฅธ ์ฒดํฌ์„ฌ์„ ๊ฐ€์ง„ ๋งˆ์ง€๋ง‰ ์ฒญํฌ๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์—ฌ๊ธฐ์— ์Šˆํผ๋ธ”๋ก์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ฑฐ์˜ ์ฆ‰๊ฐ์ ์ธ ์ž‘์—…์ž…๋‹ˆ๋‹ค.
  • ๋…น์Œ์€ ํ•ญ์ƒ ์„ ํ˜•์ ์œผ๋กœ ์ง„ํ–‰๋˜๋ฏ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    • ๋Š๋ฆฐ ๋ฌด์ž‘์œ„ ์“ฐ๊ธฐ๊ฐ€ ์žˆ๋Š” SSD์—์„œ ์‹คํ–‰ํ•  ๋•Œ ์ข‹์€ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • NILFS2๋Š” ์“ฐ๊ธฐ ๊ณฑ์…ˆ ์š”์†Œ๊ฐ€ ๊ฑฐ์˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— SSD ๋ฆฌ์†Œ์Šค๋ฅผ ์ ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค.
      ๋” ์ •ํ™•ํ•˜๊ฒŒ๋Š” 2๋ฅผ ๋„˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.์‚ฌ์‹ค ์ „์ฒด ๋””์Šคํฌ๋ฅผ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋‹ค์‹œ ์“ธ ๋•Œ NILFS2๋Š” ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒˆ๋กœ์šด ์กฐ๊ฐ(์ฒญํฌ)์œผ๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

      ๋””์Šคํฌ์— ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ 10% ์žˆ๋‹ค๋ฉด 10๋ฒˆ์˜ ์ „์ฒด ๋‹ค์‹œ ์“ฐ๊ธฐ๋กœ ์“ฐ๊ธฐ๊ฐ€ 1% ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๋””์Šคํฌ๋ฅผ 50ํšŒ ์™„์ „ํžˆ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๋ฉด ์žฅ์น˜๊ฐ€ 50% ๊ฐ€๋“ ์ฐผ์„ ๋•Œ 1% ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

      ์ตœ๋Œ€ ์“ฐ๊ธฐ ์ด๋“์€ 2์ด๋‹ค. ๋ชจ๋“  ๊ฒƒ์ด ์ˆœ์ฐจ์ ์œผ๋กœ ๊ธฐ๋ก๋œ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•˜๋ฉด ๋งค์šฐ ๋‚ฎ์€ ์ˆ˜์น˜์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ์“ฐ๊ธฐ ์• ๋‹ˆ๋ฉ”์ด์…˜์€ 4096๋ฐ”์ดํŠธ ์„นํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์กด ์กฐ๊ฐํ™”๋œ ํŒŒ์ผ ์‹œ์Šคํ…œ๋ณด๋‹ค ์ ์Šต๋‹ˆ๋‹ค. (์˜๊ฐ๋ฐ›์€ ์ƒ๊ฐ ๋…ผํ‰).

  • ์›๊ฒฉ NILFS2 FS์— ๋Œ€ํ•œ ๋ณต์ œ ๊ตฌํ˜„์˜ ์ž ์žฌ์  ์šฉ์ด์„ฑ

/home์— ๋Œ€ํ•œ NILFS2

Unix ๊ณ„์—ด ์šด์˜ ์ฒด์ œ์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” /home ํด๋”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋žจ์ด ์ด ํด๋”์— ์‚ฌ์šฉ์ž๋ณ„ ์„ค์ •์„ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ๋ˆ„๊ฐ€ ๊ฐ€์žฅ ์ž์ฃผ ์‹ค์ˆ˜๋ฅผ ํ•ฉ๋‹ˆ๊นŒ? ๋”ฐ๋ผ์„œ ๊ทธ๋“ค์ด ๋งํ–ˆ๋“ฏ์ด ํ•˜๋‚˜๋‹˜์€ /home์—์„œ NILFS2๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋ช…๋ นํ•˜์…จ์Šต๋‹ˆ๋‹ค.

๊ฒŒ๋‹ค๊ฐ€ SSD๊ฐ€ ๋„๋ฆฌ ์‚ฌ์šฉ๋จ์— ๋”ฐ๋ผ ์ด์ œ CoW ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•  ๋•Œ ์‹ฌ๊ฐํ•œ ์„ฑ๋Šฅ ์ €ํ•˜์— ๋Œ€ํ•ด ๊ฑฑ์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์˜ˆ, ZFS ๋ฐ BTRFS์—์„œ ์›ํ•˜๋Š” ๋งŒํผ ์ž์ฃผ FS ์Šค๋ƒ…์ƒท์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์†์‹ค๋œ ํŒŒ์ผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์Šค๋ƒ…์ƒท ์‚ฌ์ด์— ๋ฐœ์ƒํ•  ์œ„ํ—˜์ด ํ•ญ์ƒ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์ง„์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๊ด€๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ž˜๋œ ์‚ฌ์ง„์€ ์‚ญ์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. NILFS2์—์„œ๋Š” ์ด ๋ชจ๋“  ๊ฒƒ์ด ๋ง ๊ทธ๋Œ€๋กœ ๋ช‡ ์ดˆ๋งˆ๋‹ค ์ž๋™์œผ๋กœ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

lvcreate๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋…ผ๋ฆฌ ๋ณผ๋ฅจ์„ ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค(nvme ๋ณผ๋ฅจ ๊ทธ๋ฃน, ์”ฌ ํ’€ ์”ฌ). ๋‚˜์ค‘์— ์‰ฝ๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ lvm ๋ณผ๋ฅจ์— ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ๋ฒ„์ „ ๊นŠ์ด๋ฅผ ์œ„ํ•ด NILFS50๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 2%์˜ ์—ฌ์œ  ๋””์Šคํฌ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

lvcreate -V10G -T nvme/thin -n home

NILFS2๋กœ ํฌ๋งทํ–ˆ์Šต๋‹ˆ๋‹ค.

mkfs.nilfs2 -L nvme_home /dev/nvme/home

mkfs.nilfs2 (nilfs-utils 2.1.5)
Start writing file system initial data to the device
      Blocksize:4096  Device:/dev/nvme/home1  Device Size:10737418240
File system initialization succeeded !!

๊ทธ๋Ÿฐ ๋‹ค์Œ ํ˜„์žฌ /home์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ปดํ“จํ„ฐ๋ฅผ ๋ถ€ํŒ…ํ•œ ์งํ›„, ๋ฃจํŠธ ์‚ฌ์šฉ์ž๋กœ ๋‚ด ๊ณ„์ •์— ๋กœ๊ทธ์ธํ•˜๊ธฐ ์ „์— ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์‚ฌ์šฉ์ž๋กœ ๋กœ๊ทธ์ธํ•˜๋ฉด ์ผ๋ถ€ ํ”„๋กœ๊ทธ๋žจ์ด ๋‚ด ์‚ฌ์šฉ์ž์˜ /home/user ํด๋”์— ์žˆ๋Š” ์†Œ์ผ“๊ณผ ํŒŒ์ผ์„ ์—ด์–ด์„œ ๊นจ๋—ํ•œ ๋ณต์‚ฌ๋ณธ์„ ๋งŒ๋“ค๊ธฐ ์–ด๋ ต๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์•„์‹œ๋‹ค์‹œํ”ผ ๋ฃจํŠธ ์‚ฌ์šฉ์ž์˜ ํ™ˆ ํด๋”๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ /root ๊ฒฝ๋กœ์— ์žˆ์œผ๋ฏ€๋กœ /home ํŒŒํ‹ฐ์…˜์—์„œ๋Š” ํŒŒ์ผ์ด ์—ด๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

mkdir /mnt/newhome
mount -t nilfs2 /dev/nvme/home /mnt/newhome
cp -a /home/. /mnt/newhome

๋งˆ์ง€๋ง‰ ์ค„์€ ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”. ัั‚ะฐั‚ัŒัŽ.

๋‹ค์Œ์œผ๋กœ /home์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์ด ๋งˆ์šดํŠธ๋œ /etc/fstab์„ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค.

/dev/disk/by-label/nvme_home /home nilfs2    noatime 0 0

์˜ต์…˜ noatime ๊ฐ ํŒŒ์ผ ์•ก์„ธ์Šค์— ๋”ฐ๋ผ atime์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋„๋ก ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ ์žฌ๋ถ€ํŒ…ํ•ฉ๋‹ˆ๋‹ค.

NILFS2์˜ ์ด๋ฏธ์ง€ ์œ ํ˜•.

์‚ญ์ œ ๋ฉด์—ญ์ด ์—†๋Š” ์ผ๋ฐ˜ ์Šค๋ƒ…์ƒท์„ ์ฒดํฌํฌ์ธํŠธ ๋˜๋Š” ๋ณต๊ตฌ ์ง€์ ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
์ž๋™ ์‚ญ์ œ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธ๋˜๋Š” ์Šค๋ƒ…์ƒท์„ ์Šค๋ƒ…์ƒท์ด๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ ๊ฐ„๋‹จํžˆ ์Šค๋ƒ…์ƒท์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์ฒดํฌํฌ์ธํŠธ ๋ณด๊ธฐ๋Š” lscp ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

์Šค๋ƒ…์ƒท ๋ณด๊ธฐ lscp -s

๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์–ธ์ œ๋“ ์ง€ ์Šค๋ƒ…์ƒท๊ณผ ์ฒดํฌํฌ์ธํŠธ๋ฅผ ์ง์ ‘ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

mkcp [-s] ัƒัั‚ั€ะพะนัั‚ะฒะพ

๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค.

NILFS๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ”์ธ FS ๋ธŒ๋žœ์น˜ ์ž‘์—…๊ณผ ๋™์‹œ์— ์›ํ•˜๋Š” ๋งŒํผ ์ด์ „ ์Šค๋ƒ…์ƒท์„ ๋งˆ์šดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ฝ๊ธฐ ๋ชจ๋“œ์—์„œ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ๊ฒƒ์ด ์ด๋ ‡๊ฒŒ ์ •๋ฆฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. NILFS2๊ฐ€ ๋งŒ๋“œ๋Š” ์ผ๋ฐ˜ ์ฒดํฌํฌ์ธํŠธ๋Š” ์–ธ์ œ๋“ ์ง€ ์ž๋™์œผ๋กœ ์‚ญ์ œ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ(๋””์Šคํฌ ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•˜๊ฑฐ๋‚˜ nilfs_cleanerd ๊ทœ์น™์— ๋”ฐ๋ผ) ์„ค์น˜ํ•˜๊ธฐ ์ „์— ์ฒดํฌํฌ์ธํŠธ๋ฅผ ์Šค๋ƒ…์ƒท์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜ ๋Ÿฌ์‹œ์•„์–ด๋กœ ์Šค๋ƒ…์ƒท์„ ์บก์ฒ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

chcp ss ะฝะพะผะตั€_ั‡ะตะบะฟะพะธะฝั‚ะฐ

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์Šค๋ƒ…์ƒท์„ ๋งˆ์šดํŠธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

mount -t nilfs2 -r -o cp=ะฝะพะผะตั€_ั‡ะตะบะฟะพะธะฝั‚ะฐ /dev/nvme/home /mnt/nilfs/ะฝะพะผะตั€_ั‡ะตะบะฟะพะธะฝั‚ะฐ

๊ทธ๋Ÿฐ ๋‹ค์Œ ๋ณต์›๋œ ํŒŒ์ผ์„ ์Šค๋ƒ…์ƒท์—์„œ /home์œผ๋กœ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ๋‹ค์Œ ๋‚˜์ค‘์— ์ž๋™ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ๊ฐ€ ์˜ค๋ž˜๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋„๋ก ์Šค๋ƒ…์ƒท์—์„œ ์‚ญ์ œํ•  ์ˆ˜ ์—†๋Š” ํ”Œ๋ž˜๊ทธ๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

chcp cp ะฝะพะผะตั€_ั‡ะตะบะฟะพะธะฝั‚ะฐ

NILFS2์šฉ ์œ ํ‹ธ๋ฆฌํ‹ฐ

๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์ด ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์˜ˆ, ๋ฌผ๋ก  ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์ƒ์„ฑํ•˜๊ณ , ์˜จ๋ผ์ธ์œผ๋กœ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ , ์ฑŒ๋ฆฐ์ง€ ํฌ์ธํŠธ ๋ชฉ๋ก์„ ๋ณด๊ณ , ์ƒ์„ฑ ๋ฐ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. nilfs2-utils ํŒจํ‚ค์ง€๋Š” ์ตœ์†Œํ•œ์˜ ์‹ ์‚ฌ ์„ธํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

NTT๊ฐ€ ์ž๊ธˆ์„ ์‚ญ๊ฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ํŒŒ์ผ ๋ณ€๊ฒฝ ๋‚ด์—ญ์„ ํ‘œ์‹œํ•˜๊ฑฐ๋‚˜ ์Šค๋ƒ…์ƒท ๊ฐ„ ์ฐจ์ด๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋น ๋ฅธ ํ•˜์œ„ ์ˆ˜์ค€ ์œ ํ‹ธ๋ฆฌํ‹ฐ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๋‚ด n2u ์œ ํ‹ธ๋ฆฌํ‹ฐ

์ด ๊ณต๋ฐฑ์„ ์ฑ„์šฐ๊ธฐ ์œ„ํ•ด ๋‚˜๋Š” ๊ธ€์„ ์ผ๋‹ค ๊ท€ํ•˜์˜ n2u ์œ ํ‹ธ๋ฆฌํ‹ฐ, ํŠน์ • ํŒŒ์ผ/๋””๋ ‰ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ๋‚ด์—ญ์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

n2u log filename

์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

          CHECKPOINT        DATE     TIME     TYPE          SIZE  MODE
             1787552  2019-11-24 22:08:00    first          7079    cp
             1792659  2019-11-25 23:09:05  changed          7081    cp

์„ ํƒํ•œ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋งค์šฐ ๋น ๋ฅด๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ถ„๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ ๊ฐ„์˜ ์ฐจ์ด์ ์„ ์ฐพ๊ณ , ๋‹ค๋ฅธ ์Šค๋ƒ…์ƒท์˜ ํŒŒ์ผ/๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋งˆ์šดํŠธํ•˜๊ณ  ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.

ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์ฒดํฌํฌ์ธํŠธ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. -cp CP1:CP2 ๋˜๋Š” -cp {YEAR-MM-DD}:{YEAR-MM-DD}.

ํŠน์ • ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋Œ€ํ•œ ์ฒดํฌํฌ์ธํŠธ ๊ฐ„์˜ ์ฐจ์ด์ ๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

n2u diff -r cp1:cp2 filename

์ „์ฒด ๋ณ€๊ฒฝ ์—ฐ๋Œ€์ˆœ์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ํŠน์ • ํŒŒ์ผ/๋””๋ ‰ํ† ๋ฆฌ์˜ ์ฒดํฌํฌ์ธํŠธ ๊ฐ„์˜ ๋ชจ๋“  ์ฐจ์ด์ ์„ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

n2u blame [-r cp1:cp2] filename

์ด ๋ช…๋ น์˜ ๋‚ ์งœ ๊ฐ„๊ฒฉ๋„ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ์™ธ์นจ

ํ•˜๋ธŒ๋ ˆ์—๋Š” ์ „๋ฌธ๊ฐ€๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. NILFS2๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•ด์ฃผ์„ธ์š”. ๋ณต์ œ, ๊ฐœ์ • ๊ฐ„ ๋‚ฎ์€ ์ˆ˜์ค€์˜ ๋น ๋ฅธ ์ฐจ์ด, ์žฌ๋งํฌ ๋ฐ ๊ธฐํƒ€ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜์„ธ์š”!

์ฐธ์กฐ

NILFS ๊ณต์‹ ์›น์‚ฌ์ดํŠธ.

์ €์žฅ์†Œ:
NILFS2.
NILFS2 ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋ฐ ๋ชจ๋“ˆ.

๋‰ด์Šค๋ ˆํ„ฐ:
NILFS2 ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ด๋ฉ”์ผ ๋‰ด์Šค๋ ˆํ„ฐ. linux-nilfs ๊ตฌ๋…์˜ ID์ž…๋‹ˆ๋‹ค.
๋‰ด์Šค๋ ˆํ„ฐ ์•„์นด์ด๋ธŒ.

nilfs_cleanerd ์„ค์ • ๊ฐ€์ด๋“œ.
EXT4, Btrfs, XFS ๋ฐ NILFS2 ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ ๋ฒค์น˜๋งˆํ‚น.

๊ฐ์‚ฌํ•ด์š”:

  • NILFS2 ๊ฐœ๋ฐœ์ž: ์ฝ”๋‹ˆ์‹œ ๋ฅ˜์Šค์ผ€, ์‚ฌํ†  ์ฝ”์ง€, ์นด๋ฏธ๋ฌด๋ผ ๋‚˜๋ฃจํžˆ์ฝ”, ํ‚คํ•˜๋ผ ์„ธ์ด์ง€, ์•„๋งˆ๊ฐ€์ด ์š”์‹œ์ง€, ํžˆํ›„๋ฏธ ํžˆ์‚ฌ์‹œ, ๋ชจ๋ฆฌ์•„์ด ์‚ฌํ† ์‹œ. ๋‹ค๋ฅธ ์ฃผ์š” ๊ธฐ์—ฌ์ž๋Š” Andreas Rohner, Dan McGee, David Arendt, David Smid, dexen deVries, Dmitry Smirnov, Eric Sandeen, Jiro SEKIBA, Matteo Frigo, Hitoshi Mitake, Takashi Iwai, Vyacheslav Dubeyko์ž…๋‹ˆ๋‹ค.
  • ๋ฉ‹์ง„ ์˜ํ™” ์‹œ๋ฆฌ์ฆˆ๋ฅผ ์ œ์ž‘ํ•ด์ฃผ์‹  Amblin Entertainment์™€ Universal Pictures์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. "๋ฏธ๋ž˜๋กœ ๊ท€ํ™˜". ๊ฒŒ์‹œ๊ธ€์˜ ์ฒซ ๋ฒˆ์งธ ์‚ฌ์ง„์€ ์˜ํ™” '๋ฐฑํˆฌ๋”ํ“จ์ฒ˜3'์˜ ์Šคํ‹ธ์ปท์ด๋‹ค.
  • ํšŒ์‚ฌ RUVDS Habrรฉ ๋ธ”๋กœ๊ทธ์— ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ์™€ ์ง€์›์„ ๋ฐ›์œผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

PS ๋ฐœ๊ฒฌ๋œ ์˜ค๋ฅ˜๋Š” ๊ฐœ์ธ ๋ฉ”์‹œ์ง€๋กœ ๋ณด๋‚ด์ฃผ์„ธ์š”. ๋‚˜๋Š” ์ด๊ฒƒ์„ ์œ„ํ•ด ์นด๋ฅด๋งˆ๋ฅผ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค.

๋‹ค์Œ์—์„œ ๊ฐ€์ƒ ๋จธ์‹ ์„ ์ฃผ๋ฌธํ•˜์—ฌ NILFS2๋ฅผ ์‹คํ—˜ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. RUVDS ์•„๋ž˜ ์ฟ ํฐ์œผ๋กœ ๋ชจ๋“  ์‹ ๊ทœ ๊ณ ๊ฐ์—๊ฒŒ๋Š” 3์ผ์˜ ๋ฌด๋ฃŒ ํ‰๊ฐ€ํŒ ๊ธฐ๊ฐ„์ด ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

NILFS2 - /home์„ ์œ„ํ•œ ๋ฐฉํƒ„ ํŒŒ์ผ ์‹œ์Šคํ…œ

์ถœ์ฒ˜ : habr.com

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