Kent Overstreet๋ Bcachefs 1.33.0 ํ์ผ ์์คํ ์ ์ถ์ํ์ต๋๋ค. ์ด๋ฒ ๋ฆด๋ฆฌ์ค์๋ ๋ ๊ฐ์ง ํจํค์ง๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ํ๋๋ ๋์ ์ปค๋ ๋ชจ๋ ์ง์(DKMS) ์์คํ ์ ์ฌ์ฉํ์ฌ ๋น๋๋ ์ปค๋ ๋ชจ๋์ ํฌํจํ๋ bcachefs-kernel-dkms์ด๊ณ , ๋ค๋ฅธ ํ๋๋ ํ์ผ ์์คํ ์์ฑ(mkfs), ๋ง์ดํธ, ๋ณต์ ๋ฐ ๊ฒ์ฆ ๋ช ๋ น์ ๊ตฌํํ๋ ์ฌ์ฉ์ ๊ณต๊ฐ ์ ํธ๋ฆฌํฐ์ธ bcachefs-tools์ ๋๋ค. ์ด ํจํค์ง๋ค์ ํน์ ์ด์์ฒด์ ์ฉ์ผ๋ก ์ปดํ์ผ๋์์ต๋๋ค. Debian, UbuntuFedora, openSUSE, NixOS ๋ฐ Arch LinuxDKMS ๋ชจ๋์ ์ปค๋๊ณผ์ ์ฐ๋์ ์ง์ํฉ๋๋ค. Linux6.16๋ถํฐ ์์ํฉ๋๋ค.
์ ๋ฒ์ ์๋ "์กฐ์ " ๊ธฐ๋ฅ(rebalance_v2)์ด ์ถ๊ฐ๋์๋๋ฐ, ์ด๋ ์ง๋ 2๋ ๋์ ํ์ผ ์์คํ ์ ๋ฐ์ํ ๊ฐ์ฅ ํฐ ๋ณํ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ์ด์ ์ ์ ๊ณต๋์๋ "์ฌ์กฐ์ " ๋ชจ๋์ ๋ฌ๋ฆฌ, "์กฐ์ " ๋ฉ์ปค๋์ฆ์ ๋ฐ์ดํฐ(์: ์ฌ๋ฌ ๋ณต์ฌ๋ณธ์ ์ฌ๋ฌ ๋๋ผ์ด๋ธ์ ๋ณต์ )๋ฟ๋ง ์๋๋ผ ํ์ผ ์์คํ ๋ฉํ๋ฐ์ดํฐ(์: ํ์ ๋๋ผ์ด๋ธ๋ฅผ ์ถ๊ฐํ ํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๋ง์ด๊ทธ๋ ์ด์ )๋ ์ฌ์กฐ์ ํ ์ ์๋๋ก ํฉ๋๋ค. ๋ํ, ์กฐ์ ๊ธฐ๋ฅ์ ์ด์ ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ณต์ฌ ๋ฐ ์์ถ ์์ ๋ฟ๋ง ์๋๋ผ ๋ชจ๋ I/O ์ต์ ์ ์ ์ฉ๋ฉ๋๋ค. ๋ํ, ์ฅ์น ์ต์ ์ด๋ ์ค์ ์ ๋ณ๊ฒฝ ์ฌํญ์ ์๋์ผ๋ก ๋ฐ์ํ๊ณ , ์ฑ๋ฅ์ด ์ ํ๋ ๋ฐ์ดํฐ์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ฆ์ ๋ค์ ๋ณต์ ํฉ๋๋ค.
Reconcile์ ์ฐ์ ์์๊ฐ ๋์ ์์ , ๋์คํฌ ๋๋ผ์ด๋ธ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ต์ ํ, ๊ทธ๋ฆฌ๊ณ ํ์ฌ ์ฌ์ฉํ ์ ์๋ ์ฒ๋ฆฌ ์์ฝ๋ ๋ฐ์ดํฐ(์: ๊ณต๊ฐ ๋ถ์กฑ)์ ๋ํด ๋ณ๋์ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด์ค ๋ณต์ ๋ชจ๋(replicas=2)์์ ๋จ์ผ ๋๋ผ์ด๋ธ์ ํ์ผ ์์คํ ์ ์์ฑํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ด ๊ตฌ์ฑ์์ ๋ ๋ฒ์งธ ๋๋ผ์ด๋ธ๋ฅผ ์ถ๊ฐํ๋ฉด ์ฌ์ฉ์ ์ํธ ์์ฉ ์์ด ์ถ๊ฐ๋ ๋๋ผ์ด๋ธ์ ๋ฐ์ดํฐ๊ฐ ์๋์ผ๋ก ๋ณต์ ๋ฉ๋๋ค.
๊ธฐํ ๋ณ๊ฒฝ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- "reconcile status" ๋ฐ "reconcile wait" ๋ช ๋ น์ด ์ถ๊ฐ๋์์ต๋๋ค. "mount_trusts_udev" ๋ฐ "writeback_timeout" ๋ง์ดํธ ์ต์ ์ด ์ถ๊ฐ๋์์ต๋๋ค. "data rereplicate" ๋ฐ "data job drop_extra_replicas" ๋ช ๋ น์ ๋ ์ด์ ์ง์๋์ง ์์ต๋๋ค.
- ๋ณํฉ ์์ ์ ๋์์ธ btree ๊ตฌ์กฐ์ ๋ชจ๋ ๋ ธ๋๋ฅผ ํ์ธํ๋ "merge_btree_nodes" ๋ณต๊ตฌ ๋ชจ๋๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
- Rust ์ธ์ด๋ก์ ์ ํ์ ์ํด ์ฝ๋๊ฐ ์ค๋น๋์์ต๋๋ค. ์ฝ๋์์ ์ฌ์ฉ๋๋ goto ์ฐ์ฐ์ ๊ฐ์๊ฐ 2500๊ฐ์์ 600๊ฐ๋ก ์ค์์ต๋๋ค. ๊ณต๊ฐ ์ฝ๋ฉ๋ ๋ฒกํฐ๋ C++ ๋ฐ Rust์ ๋์ ๋ฐฐ์ด๊ณผ ์ ์ฌํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ DARRAY() ๋งคํฌ๋ก๋ก ๋์ฒด๋์์ต๋๋ค. ์ค๋ฅ ์ฒ๋ฆฌ๋ Rust์์ ์ฐจ์ฉํ try() ๋งคํฌ๋ก๋ฅผ ์ฌ์ฉํ์ฌ ์ฒ๋ฆฌ๋ฉ๋๋ค.
- ์ด์ "bcachefs fs usage" ๋ช ๋ น์ด ์ ํ๋ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ๋ณด๊ณ ํฉ๋๋ค.
- "bcachefs fs top" ๋ช ๋ น์ผ๋ก ํ์๋๋ ์นด์ดํฐ ์ฒ๋ฆฌ ๋ฐฉ์์ด ๊ฐ์ ๋์์ต๋๋ค. ์ ์นด์ดํฐ ์ถ๊ฐ๊ฐ ๊ฐ์ํ๋์์ผ๋ฉฐ, ์ถ์ ์ ์ printbufs๋ก ๋ณํํ๋ ๊ธฐ๋ฅ์ด ๊ตฌํ๋์์ต๋๋ค.
- ์ค๋ฅ ๋ฉ์์ง์ ํ์ง์ด ๊ฐ์ ๋์์ต๋๋ค. ์ด์ ์ค๋ฅ ์ ํ(์ํํธ์จ์ด ๋๋ ํ๋์จ์ด), ์ค๋ฅ ํด๊ฒฐ ์กฐ์น(์: ๋ณต๊ตฌ ํ๋ก์ธ์ค ์์), ๋ธ๋ก ์ฅ์น์์ ์์ ๋ I/O ์ค๋ฅ ์ฝ๋, ๊ทธ๋ฆฌ๊ณ ๋๋ฝ๋ ์ฅ์น์ ๋ํ ์ ๋ณด๊ฐ ํฌํจ๋ฉ๋๋ค. B-ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ค์บํ ๋ ๋ฌธ์ ๊ฐ ์๋ ๋ ธ๋์ ๋ณต๊ตฌ ๊ฐ๋ฅ ์ฌ๋ถ์ ๋ํ ์ ๋ณด๊ฐ ํ์๋ฉ๋๋ค.
- ๋ก๊ทธ์ ๊ธฐ๋กํ ๋ ๋ค์ํ ์ค๋ฅ ์ ํ์ ์ถ๋ ฅ ๊ฐ๋์ ๋ํ ์ ํ์ ๋ณ๋๋ก ์ ์ํ ์ ์๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. ์ด๋ฌํ ์ ํ์ ํตํด ์๋ง์ ์ํํธ์จ์ด ์ค๋ฅ ๋ฉ์์ง ์์์ ๊ฐ๋ณ ํ๋์จ์ด ๋ฌธ์ ์ ๋ํ ๋ฉ์์ง๊ฐ ๋๋ฝ๋๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
- ๋ชจ๋ ๋ณต๊ตฌ ๋จ๊ณ์ ์งํ๋ฅ ํ์๊ธฐ๊ฐ ์ถ๊ฐ๋์์ต๋๋ค.
Bcachefs ํ๋ก์ ํธ๋ Btrfs์ ZFS์ ๊ณ ๊ธ ๊ธฐ๋ฅ๊ณผ XFS์ ์ฑ๋ฅ, ์์ ์ฑ, ํ์ฅ์ฑ์ ๊ฒฐํฉํ๋ ํ์ผ ์์คํ
์ ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค. Bcachefs๋ ํํฐ์
๋น ์ฌ๋ฌ ์ฅ์น ์ง์, ๋ค์ธต ๋๋ผ์ด๋ธ ๋ ์ด์์(๋น ๋ฅธ SSD ๊ธฐ๋ฐ ์์ฃผ ์ก์ธ์ค๋๋ ๋ฐ์ดํฐ๋ก ๊ตฌ์ฑ๋ ํ์ ๊ณ์ธต๊ณผ ํ๋ ๋๋ผ์ด๋ธ์์ ๋ ์์ฃผ ์ก์ธ์ค๋๋ ๋ฐ์ดํฐ๋ก ๊ตฌ์ฑ๋ ์์ ๊ณ์ธต), ๋ณต์ (RAID 1/10), ์บ์ฑ, ํฌ๋ช
๋ฐ์ดํฐ ์์ถ(LZ4, gzip, ZSTD ๋ชจ๋), ์ํ ์ฌ๋ผ์ด์ค(์ค๋
์ท), ์ฒดํฌ์ฌ์ ์ฌ์ฉํ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฆ, Reed-Solomon ์ค๋ฅ ์ ์ ์ฝ๋ ์ ์ฅ ๊ธฐ๋ฅ(RAID 5/6), ์ํธํ๋ ๋ฐ์ดํฐ ์ ์ฅ(ChaCha20 ๋ฐ Poly1305 ์ฌ์ฉ) ๋ฑ์ ๊ธฐ๋ฅ์ ์ง์ํฉ๋๋ค. ์ฑ๋ฅ ์ธก๋ฉด์์ Bcachefs๋ Btrfs ๋ฐ Copy-on-Write ๋ฉ์ปค๋์ฆ ๊ธฐ๋ฐ ๋ค๋ฅธ ํ์ผ ์์คํ
๋ณด๋ค ์ฑ๋ฅ์ด ๋ฐ์ด๋๋ฉฐ, Ext4 ๋ฐ XFS์ ๊ทผ์ ํ ์๋ ์๋๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์ถ์ฒ : opennet.ru
