4 minute read

ํšŒ์‚ฌ์—์„œ Kafka ์šฉ๋Ÿ‰ ์ฆ์„ค ํ•  ๋•Œ, xfs ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ์“ฐ๋Š”๋ฐ, ์š” ๋…€์„์˜ ํŠน์ง• ์ค‘ ํ•˜๋‚˜๋กœ ์ €๋„๋ง์ด ๋‚˜์˜ค๋”๋ผ๊ตฌ์š”!! ๊ทธ๋ž˜์„œ ์ด๋ฒˆ์— ํ•œ๋ฒˆ ๋ญ”์ง€ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค

๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ โ€œ์ €๋„โ€์ด๋ผ๋Š” ๋กœ๊ทธ ํŒŒ์ผ์— ๋จผ์ € ๊ธฐ๋กํ•˜๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ฐฉ์‹์ž„.

ํŒŒ์ผ ์“ฐ๊ธฐ๋‚˜ ์ˆ˜์ • ๋„์ค‘์— ์ „์› ๊บผ์ง์ด๋‚˜ ์ปค๋„ ํŒจ๋‹‰ ๋“ฑ์œผ๋กœ ์ธํ•ด ๋””์Šคํฌ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์†์ƒ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ •๋ง๋กœ ๋””์Šคํฌ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์†์ƒ์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด, ํŒŒ์ผ ์ „์ฒด๊ฐ€ ๊ผฌ์ด๊ฒŒ ๋˜๋ฉด์„œ ๋ณต๊ตฌ๊ฐ€ ์•ˆ ๋˜๊ฑฐ๋‚˜, ๋ณต๊ตฌ ํ”„๋กœ๊ทธ๋žจ์„ ์ง์ ‘ ๋Œ๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฐ ์œ„ํ—˜์„ ์™„ํ™” ํ•˜๊ธฐ ์œ„ํ•ด ํŒŒ์ผ ์“ฐ๊ธฐ/์ˆ˜์ •์— ํŠธ๋žœ์žญ์…˜๊ณผ ๊ฐ™์€ ๊ฐœ๋…์„ ๋„์ž…ํ•œ ๊ฒƒ์ด ์ €๋„๋ง ํŒŒ์ผ ์‹œ์Šคํ…œ ์ž…๋‹ˆ๋‹ค.

๊ณผ์ •

  1. ์“ฐ๊ธฐ ์š”์ฒญ์ด ๋ฐœ์ƒ
    • ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋‚ด์šฉ, ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ(inode, ๋ธ”๋ก ํ• ๋‹น ํ…Œ์ด๋ธ”)์„ ๋ฐ”๊ฟ”์•ผ ํ•˜๋Š” ์ƒํ™ฉ
  2. ์‹ค์ œ ๋ณ€๊ฒฝ์„ ํ•˜๊ธฐ ์ „์— ์ €๋„ ์˜์—ญ์— ์ž‘์„ฑ
    • ์ด ๋ธ”๋ก์„ A -> B ์ƒํƒœ๋กœ ๋ฐ”๊พธ๊ฑฐ๋‚˜
    • ํŒŒ์ผ์„ A ์œ„์น˜์—์„œ B ์œ„์น˜๋กœ ์˜ฎ๊ธฐ๊ฑฐ๋‚˜
  3. ์ปค๋ฐ‹
    • ์ €๋„ ์˜์—ญ์— ๊ธฐ๋ก์ด ์„ฑ๊ณต์ ์œผ๋กœ ์ €์žฅ๋œ ํ›„์—์•ผ
    • ์‹ค์ œ ํŒŒ์ผ ์‹œ์Šคํ…œ์ด ๋ฐ์ดํ„ฐ ๋ธ”๋ก๊ณผ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ ์ˆ˜์ •์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  4. ์ข…๋ฃŒ์™€ ์ •๋ฆฌ
    • ๋ณ€๊ฒฝ์ด ์™„๋ฃŒ๋˜๋ฉด, ์ €๋„์—์„œ ํ•ด๋‹น ๊ธฐ๋ก์„ ์ง€์›Œ์ค๋‹ˆ๋‹ค.

์žฅ์ 

๋น ๋ฅธ ๋ณต๊ตฌ๊ฐ€ ๊ฐ€๋Šฅ ํ•ฉ๋‹ˆ๋‹ค! ์“ฐ๊ธฐ/์ˆ˜์ • ์ž‘์—… ๋„์ค‘ ์‹œ์Šคํ…œ์ด ์ฃฝ๋”๋ผ๋„, ์žฌ๋ถ€ํŒ… ๋•Œ ์ €๋„ ์˜์—ญ๋งŒ ํ™•์ธํ•ด, โ€œ์™„๋ฃŒโ€ ์ฒ˜๋ฆฌ ๋˜์ง€ ์•Š์€ ์ž‘์—…๋งŒ ๋กค๋ฐฑ ๋˜๋Š” ์žฌ์ ์šฉ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋‹จ์ 

์„ฑ๋Šฅ ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ๊ฒช์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ์ €๋„์— ํ•œ๋ฒˆ, ์‹ค์ œ ์˜์—ญ์— 2๋ฒˆ์”ฉ ์“ฐ๊ธฐ ๋•Œ๋ฌธ์— ๋””์Šคํฌ์— ์“ฐ๊ธฐ ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

SSD ํ™˜๊ฒฝ์—์„œ๋Š” ๋ฒ„ํ‹ธ๋งŒํ•œ ์„ฑ๋Šฅ ์ €ํ•˜์˜€๊ณ , HDD์—์„  ํฌ๊ฒŒ ์ฒด๊ฐ ๋˜๋Š” ์ •๋„๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

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

๋Œ€ํ‘œ ์˜ˆ์‹œ๋“ค

Linux ๊ณ„์—ด: ext3, ext4, xfs

ํ™•์ธ ๋ฐฉ๋ฒ•์€

$ mount | grep "^/dev"
/dev/nvme0n1p1 /etc/hosts xfs ...
/dev/nvme0n1p1 /dev/etermination-log xfs ...
...

๋˜๋Š” lsblk(list block devices) ๋ช…๋ น์–ด ์‚ฌ์šฉ

$ lsblk -f
NAME          FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
nvme0n1
โ”œโ”€nvme0n1p1   xfs          /     xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx   31.3G    37% /
โ””โ”€nvme0n1p128 vfat   FAT16       xxxx-xxxx                               8.6M    14% /boot/efi

์œ„์˜ ๊ฒฐ๊ณผ์—์„œ efi๋Š” ์‹œ์Šคํ…œ ํŒŒํ‹ฐ์…˜์œผ๋กœ ๋ถ€ํŠธ ๋กœ๋”๊ฐ€ ์žˆ๋Š” ๊ณณ์ž„. vfat ํŒŒ์ผ ์‹œ์Šคํ…œ์€ ์ €๋„๋ง ์ง€์›ํ•˜์ง€ ์•Š์Œ. ๋‹ค๋งŒ ๋ถ€ํŒ…์šฉ ํŒŒํ‹ฐ์…˜์ด๊ธฐ์— ํŒŒ์ผ ๋ณ€๊ฒฝ์ด ๊ฑฐ์˜ ์—†๊ณ , ๋”ฐ๋ผ์„œ ์†์ƒ ์œ„ํ—˜๋„ ์•„์ฃผ ๋‚ฎ์Œ.

xfs์—์„œ๋Š” ์ €๋„์„ โ€œlogโ€๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ, ํŒŒ์ผ์‹œ์Šคํ…œ ์ƒ์„ฑ ์‹œ ํฌ๊ธฐ๊ฐ€ ์ •ํ•ด์ง.

$ sudo xfs_info /
meta-data=/dev/nvme0n1p1         isize=512    agcount=13, agsize=1047168 blks
         =                       sectsz=4096  attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1    bigtime=1 inobtcount=1
data     =                       bsize=4096   blocks=13104379, imaxpct=25
         =                       sunit=128    swidth=128 blks
naming   =version 2              bsize=16384  ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=16384, version=2
         =                       sectsz=4096  sunit=4 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

๋กœ๊ทธ ๋ถ€๋ถ„์€ bsize=4096(๋ธ”๋ก์‚ฌ์ด์ฆˆ 4kb) ๊ทธ๋ฆฌ๊ณ  blocks=16384(๋กœ๊ทธ ๋ธ”๋ก ๊ฐฏ์ˆ˜). ๋”ฐ๋ผ์„œ ๋กœ๊ทธ ์ €๋„ ์ „์ฒด ํฌ๊ธฐ๋Š” 4096 * 16384 = 67mb

์ด ๊ณต๊ฐ„์„ ๊ณ ์ • ํฌ๊ธฐ๋กœ ์‚ฌ์šฉํ•ด ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์˜ ๋ณ€๊ฒฝ์„ ํŠธ๋ž™์žญ์…˜ ๋‹จ์œ„๋กœ ๊ธฐ๋กํ•˜๋Š”๋ฐ ์‚ฌ์šฉ.

Windows: NTFS

macOS: hfs, apfs

์ง€๊ธˆ ์“ฐ๋Š” ๋งฅ๋ถ M2 Air์—์„œ๋Š” apfs ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉ ์ค‘ ์ž…๋‹ˆ๋‹ค. Disk Utility์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ €๋„ ์˜์—ญ์€ ๊ตฌ์ฒด์ ์œผ๋กœ ๋ญ”๊ฐ€?

๋‚ด๊ฐ€ ์ €๋„ ์šฉ๋Ÿ‰์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์„๊นŒ?

ํŒŒ์ผ ์‹œ์Šคํ…œ์— ๋”ฐ๋ผ์„œ ์ €๋„ ์˜์—ญ์˜ ํฌ๊ธฐ๊ฐ€ ๊ณ ์ •์ธ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๊ณ , ๋™์ ์ธ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์• ํ”Œ์˜ apfs์˜ ๊ฒฝ์šฐ, ๋™์  ์˜์—ญ ์ž…๋‹ˆ๋‹ค. ๋Œ€์‹  Copy-on-Write ๋ฐฉ์‹์œผ๋กœ ํŒŒ์ผ์„ ์ƒ์„ฑ/์ˆ˜์ • ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ˆ˜์ •ํ•  ๋ธ”๋ก์— ์ง์ ‘ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ƒˆ๋กœ์šด ๋ธ”๋ก์— ๊ธฐ๋ก ํ•œ ํ›„, ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ ์—…๋ฐ์ดํŠธ๊ฐ€ ์ด๋ค„์ง‘๋‹ˆ๋‹ค.

์ €๋„ ์˜์—ญ์ด ์†์ƒ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋Š”๊ฐ€?

์ •๋ง ์ €๋„๋ง์€ ์žฅ์•  ์•ˆ์ „ํ•œ๊ฐ€?

Categories:

Updated: