Journal File System
ํ์ฌ์์ Kafka ์ฉ๋ ์ฆ์ค ํ ๋, xfs
ํ์ผ ์์คํ
์ ์ฐ๋๋ฐ, ์ ๋
์์ ํน์ง ์ค ํ๋๋ก ์ ๋๋ง์ด ๋์ค๋๋ผ๊ตฌ์!! ๊ทธ๋์ ์ด๋ฒ์ ํ๋ฒ ๋ญ์ง ์์๋ณด๋ ค๊ณ ํฉ๋๋ค
๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ๋ณ๊ฒฝ ๋ด์ฉ์ โ์ ๋โ์ด๋ผ๋ ๋ก๊ทธ ํ์ผ์ ๋จผ์ ๊ธฐ๋กํ๋ ํ์ผ ์์คํ ๋ฐฉ์์.
ํ์ผ ์ฐ๊ธฐ๋ ์์ ๋์ค์ ์ ์ ๊บผ์ง์ด๋ ์ปค๋ ํจ๋ ๋ฑ์ผ๋ก ์ธํด ๋์คํฌ์ ๋ฉํ๋ฐ์ดํฐ ์์์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ง์ฝ ์ ๋ง๋ก ๋์คํฌ์ ๋ฉํ๋ฐ์ดํฐ ์์์ด ๋ฐ์ํ๊ฒ ๋๋ค๋ฉด, ํ์ผ ์ ์ฒด๊ฐ ๊ผฌ์ด๊ฒ ๋๋ฉด์ ๋ณต๊ตฌ๊ฐ ์ ๋๊ฑฐ๋, ๋ณต๊ตฌ ํ๋ก๊ทธ๋จ์ ์ง์ ๋๋ ค์ผ ํฉ๋๋ค.
์ด๋ฐ ์ํ์ ์ํ ํ๊ธฐ ์ํด ํ์ผ ์ฐ๊ธฐ/์์ ์ ํธ๋์ญ์ ๊ณผ ๊ฐ์ ๊ฐ๋ ์ ๋์ ํ ๊ฒ์ด ์ ๋๋ง ํ์ผ ์์คํ ์ ๋๋ค.
๊ณผ์
- ์ฐ๊ธฐ ์์ฒญ์ด ๋ฐ์
- ํ์ผ์ด๋ ๋๋ ํ ๋ฆฌ์ ๋ด์ฉ, ๋ฉํ๋ฐ์ดํฐ(inode, ๋ธ๋ก ํ ๋น ํ ์ด๋ธ)์ ๋ฐ๊ฟ์ผ ํ๋ ์ํฉ
- ์ค์ ๋ณ๊ฒฝ์ ํ๊ธฐ ์ ์ ์ ๋ ์์ญ์ ์์ฑ
- ์ด ๋ธ๋ก์ A -> B ์ํ๋ก ๋ฐ๊พธ๊ฑฐ๋
- ํ์ผ์ A ์์น์์ B ์์น๋ก ์ฎ๊ธฐ๊ฑฐ๋
- ์ปค๋ฐ
- ์ ๋ ์์ญ์ ๊ธฐ๋ก์ด ์ฑ๊ณต์ ์ผ๋ก ์ ์ฅ๋ ํ์์ผ
- ์ค์ ํ์ผ ์์คํ ์ด ๋ฐ์ดํฐ ๋ธ๋ก๊ณผ ๋ฉํ ๋ฐ์ดํฐ ์์ ์ ์์ํฉ๋๋ค.
- ์ข
๋ฃ์ ์ ๋ฆฌ
- ๋ณ๊ฒฝ์ด ์๋ฃ๋๋ฉด, ์ ๋์์ ํด๋น ๊ธฐ๋ก์ ์ง์์ค๋๋ค.
์ฅ์
๋น ๋ฅธ ๋ณต๊ตฌ๊ฐ ๊ฐ๋ฅ ํฉ๋๋ค! ์ฐ๊ธฐ/์์ ์์ ๋์ค ์์คํ ์ด ์ฃฝ๋๋ผ๋, ์ฌ๋ถํ ๋ ์ ๋ ์์ญ๋ง ํ์ธํด, โ์๋ฃโ ์ฒ๋ฆฌ ๋์ง ์์ ์์ ๋ง ๋กค๋ฐฑ ๋๋ ์ฌ์ ์ฉ ํ๋ฉด ๋ฉ๋๋ค.
๋จ์
์ฑ๋ฅ ์ค๋ฒํค๋๋ฅผ ๊ฒช์ด์ผ ํฉ๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ ๋์ ํ๋ฒ, ์ค์ ์์ญ์ 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 ๋ฐฉ์์ผ๋ก ํ์ผ์ ์์ฑ/์์ ํฉ๋๋ค. ์ฆ, ์์ ํ ๋ธ๋ก์ ์ง์ ์ ๊ทผํ๋ ๊ฒ์ด ์๋๋ผ ์๋ก์ด ๋ธ๋ก์ ๊ธฐ๋ก ํ ํ, ๋ฉํ ๋ฐ์ดํฐ ์
๋ฐ์ดํธ๊ฐ ์ด๋ค์ง๋๋ค.
์ ๋ ์์ญ์ด ์์๋๋ ๊ฒฝ์ฐ๋ ์๋๊ฐ?