Bcachefs 1.33.0 ํŒŒ์ผ ์‹œ์Šคํ…œ ์ถœ์‹œ

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

DDoS ๋ณดํ˜ธ, VPS VDS ์„œ๋ฒ„๊ฐ€ ์žˆ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•œ ์•ˆ์ •์ ์ธ ํ˜ธ์ŠคํŒ… ๊ตฌ์ž… ๐Ÿ”ฅ DDoS ๊ณต๊ฒฉ ๋ฐฉ์ง€ ๊ธฐ๋Šฅ์ด ํƒ‘์žฌ๋œ ์•ˆ์ •์ ์ธ ์›น์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ…, VPS ๋ฐ VDS ์„œ๋ฒ„๋ฅผ ๊ตฌ๋งคํ•˜์„ธ์š” | ProHoster