Bcachef๋ฅผ Linux ์ปค๋„๋กœ ์Šน๊ฒฉ

Linux ์ปค๋„์˜ ์ผ๋ถ€์ธ BCache SSD ๋ธ”๋ก ์žฅ์น˜ ์บ์‹ฑ ์‹œ์Šคํ…œ์˜ ์ €์ž์ธ Kent Overstreet๋Š” LSFMM 2023 ์ปจํผ๋Ÿฐ์Šค(Linux Storage, Filesystem, Memory Management) ์—ฐ์„ค์—์„œ Bcachefs ํŒŒ์ผ ์‹œ์Šคํ…œ ํ™๋ณด ์ž‘์—… ๊ฒฐ๊ณผ๋ฅผ ์š”์•ฝํ–ˆ์Šต๋‹ˆ๋‹ค. & BPF Summit)์—์„œ Linux ์ปค๋„์˜ ์ฃผ์š” ๊ตฌ์„ฑ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•˜๊ณ  ์ด FS์˜ ์ถ”๊ฐ€ ๊ฐœ๋ฐœ ๊ณ„ํš์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. 10์›”์— Bcachefs FS๋ฅผ ๊ตฌํ˜„ํ•œ ์—…๋ฐ์ดํŠธ๋œ ํŒจ์น˜ ์„ธํŠธ๊ฐ€ Linux ์ปค๋„์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์— ๊ฒ€ํ†  ๋ฐ ํฌํ•จ๋˜๋„๋ก ์ œ์•ˆ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. FS Bcachefs๋Š” ์•ฝ 2020๋…„ ๋™์•ˆ ๊ฐœ๋ฐœํ•ด ์™”์Šต๋‹ˆ๋‹ค. ์ฝ”์–ด์— ํฌํ•จ๋˜๊ธฐ ์ „์— Bcachefs์˜ ๊ตฌํ˜„์„ ๊ฒ€ํ† ํ•  ์ค€๋น„๊ฐ€ XNUMX๋…„ ๋ง์— ๋ฐœํ‘œ๋˜์—ˆ์œผ๋ฉฐ ํ˜„์žฌ ํŒจ์น˜ ๋ฒ„์ „์€ ์ด์ „ ๊ฒ€ํ†  ์ค‘์— ์‹๋ณ„๋œ ์˜๊ฒฌ๊ณผ ๋‹จ์ ์„ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค.

Bcachefs ๊ฐœ๋ฐœ ๋ชฉํ‘œ๋Š” ์„ฑ๋Šฅ, ์•ˆ์ •์„ฑ ๋ฐ ํ™•์žฅ์„ฑ ๋ฉด์—์„œ XFS ์ˆ˜์ค€์— ๋„๋‹ฌํ•˜๋Š” ๋™์‹œ์— Btrfs ๋ฐ ZFS ๊ณ ์œ ์˜ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ(์˜ˆ: ํŒŒํ‹ฐ์…˜์— ์—ฌ๋Ÿฌ ์žฅ์น˜ ํฌํ•จ, ๋‹ค์ค‘ ๊ณ„์ธต ์Šคํ† ๋ฆฌ์ง€ ๋ ˆ์ด์•„์›ƒ, ๋ณต์ œ(RAID 1/10), ์บ์‹ฑ, ํˆฌ๋ช…ํ•œ ๋ฐ์ดํ„ฐ ์••์ถ•(LZ4, gzip ๋ฐ ZSTD ๋ชจ๋“œ), ์ƒํƒœ ์Šฌ๋ผ์ด์Šค(์Šค๋ƒ…์ƒท), ์ฒดํฌ์„ฌ์— ์˜ํ•œ ๋ฌด๊ฒฐ์„ฑ ํ™•์ธ, Reed-Solomon ์˜ค๋ฅ˜ ์ˆ˜์ • ์ฝ”๋“œ ์ €์žฅ ๊ธฐ๋Šฅ(RAID 5/6), ์•”ํ˜ธํ™”๋œ ์ •๋ณด ์ €์žฅ(ChaCha20 ๋ฐ Poly1305) ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค). ์„ฑ๋Šฅ ๋ฉด์—์„œ Bcachefs๋Š” Copy-on-Write ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” Btrfs ๋ฐ ๊ธฐํƒ€ ํŒŒ์ผ ์‹œ์Šคํ…œ๋ณด๋‹ค ์•ž์„œ ์žˆ์œผ๋ฉฐ Ext4 ๋ฐ XFS์— ๊ฐ€๊นŒ์šด ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

Bcachefs ๊ฐœ๋ฐœ์˜ ์ตœ์‹  ์„ฑ๊ณผ ์ค‘ ์“ฐ๊ธฐ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์Šค๋ƒ…์ƒท ๊ตฌํ˜„์˜ ์•ˆ์ •ํ™”๊ฐ€ ์ฃผ๋ชฉ๋ฉ๋‹ˆ๋‹ค. Btrfs์™€ ๋น„๊ตํ•  ๋•Œ Bcachefs์˜ ์Šค๋ƒ…์ƒท์€ ์ด์ œ ํ™•์žฅ์„ฑ์ด ํ›จ์”ฌ ๋›ฐ์–ด๋‚˜๊ณ  Btrfs ๊ณ ์œ ์˜ ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์Šค๋ƒ…์ƒท ์ž‘์—…์€ MySQL ๋ฐฑ์—…์„ ๊ตฌ์„ฑํ•  ๋•Œ ํ…Œ์ŠคํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Bcachefs๋Š” ๋˜ํ•œ ํ™•์žฅ์„ฑ์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋งŽ์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒŒ์ผ ์‹œ์Šคํ…œ์€ 100TB ์Šคํ† ๋ฆฌ์ง€์—์„œ ํ…Œ์ŠคํŠธ์—์„œ ์ข‹์€ ์„ฑ๋Šฅ์„ ๋ณด์˜€๊ณ  Bcachefs๋Š” ๊ฐ€๊นŒ์šด ์žฅ๋ž˜์— 1PB ์Šคํ† ๋ฆฌ์ง€์—์„œ ๊ตฌํ˜„๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค. "๊ธฐ๋ก ์ค‘ ๋ณต์‚ฌ"(nocow) ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด nocow ๋ชจ๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋ฆ„ ๋™์•ˆ ๊ทธ๋“ค์€ ์˜ค๋ฅ˜ ์ˆ˜์ • ์ฝ”๋“œ ๋ฐ RAIDZ๋ฅผ ์•ˆ์ •์ ์ธ ์ƒํƒœ๋กœ ๊ตฌํ˜„ํ•˜๊ณ  fsck ์œ ํ‹ธ๋ฆฌํ‹ฐ๋กœ ํŒŒ์ผ ์‹œ์Šคํ…œ์„ ๋ณต์› ๋ฐ ํ™•์ธํ•  ๋•Œ ๋†’์€ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.

ํ–ฅํ›„ ๊ณ„ํš ์ค‘ Bcachefs ๊ฐœ๋ฐœ์— Rust ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์š•๊ตฌ๊ฐ€ ์–ธ๊ธ‰๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. Bcachefs์˜ ์ €์ž์— ๋”ฐ๋ฅด๋ฉด ๊ทธ๋Š” ์ฝ”๋“œ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ฝ”๋”ฉํ•˜๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜๋ฉฐ ๋” ๋‚˜์€ ์˜ต์…˜์ด ์žˆ์„ ๋•Œ C๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋ฏธ์นœ ์ง“์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. Rust๋Š” ์ผ๋ถ€ ์‚ฌ์šฉ์ž ๊ณต๊ฐ„ ์œ ํ‹ธ๋ฆฌํ‹ฐ ๊ตฌํ˜„์— Bcachefs์— ์ด๋ฏธ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒŒ๋‹ค๊ฐ€ ์ด ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋””๋ฒ„๊น… ์‹œ๊ฐ„์ด ํฌ๊ฒŒ ์ ˆ์•ฝ๋˜๊ธฐ ๋•Œ๋ฌธ์— Rust์—์„œ Bcachef๋ฅผ ์ ์ง„์ ์œผ๋กœ ์™„์ „ํžˆ ๋‹ค์‹œ ์ž‘์„ฑํ•œ๋‹ค๋Š” ์•„์ด๋””์–ด๊ฐ€ ๋ถ€ํ™”๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Bcachef๋ฅผ Linux ์ปค๋„์˜ ์ฃผ๋ฅ˜๋กœ ์ด๋™ํ•˜๋Š” ๊ฒฝ์šฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์˜ ํฌ๊ธฐ(2500๊ฐœ์˜ ํŒจ์น˜ ๋ฐ ์•ฝ 90๋งŒ ์ค„์˜ ์ฝ”๋“œ)๋กœ ์ธํ•ด ์ฑ„ํƒ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ง€์—ฐ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋Š” ๊ฒ€ํ† ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๊ฒ€ํ†  ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ์ผ๋ถ€ ๊ฐœ๋ฐœ์ž๋Š” ํŒจ์น˜ ์‹œ๋ฆฌ์ฆˆ๋ฅผ ๋” ์ž‘๊ณ  ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ถ„๋ฆฌ๋œ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋ˆŒ ๊ฒƒ์„ ์ œ์•ˆํ–ˆ์Šต๋‹ˆ๋‹ค. ํ† ๋ก  ์ค‘์— ์ผ๋ถ€ ์ฐธ๊ฐ€์ž๋Š” ํ•œ ๊ฐœ๋ฐœ์ž์— ์˜ํ•œ ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ๊ณผ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ์ฝ”๋“œ๊ฐ€ ์œ ์ง€ ๊ด€๋ฆฌ๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋‚จ์„ ์ˆ˜ ์žˆ๋Š” ์œ„ํ—˜์— ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์˜€์Šต๋‹ˆ๋‹ค(XNUMX๋ช…์˜ Red Hat ์ง์›์ด ํ”„๋กœ์ ํŠธ์— ๊ด€์‹ฌ์ด ์žˆ์ง€๋งŒ ๊ทธ๋“ค์˜ ์ž‘์—…์€ ์—ฌ์ „ํžˆ ์ œํ•œ๋œ ๋ฒ„๊ทธ ์ˆ˜์ •).

Bcachefs๋Š” ๋น ๋ฅธ SSD ๋“œ๋ผ์ด๋ธŒ(๋ฆด๋ฆฌ์Šค 3.10 ์ดํ›„ ์ปค๋„์— ํฌํ•จ๋จ)์˜ ๋Š๋ฆฐ ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ์— ๋Œ€ํ•œ ์บ์‹œ ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•ด ์„ค๊ณ„๋œ Bcache ๋ธ”๋ก ์žฅ์น˜ ๊ฐœ๋ฐœ์—์„œ ์ด๋ฏธ ํ…Œ์ŠคํŠธ๋œ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Bcachefs๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฎ์–ด์“ฐ์ง€ ์•Š๋Š” COW(Copy-on-Write) ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ์ƒํƒœ๊ฐ€ ์ƒˆ ์œ„์น˜์— ๊ธฐ๋ก๋œ ํ›„ ํ˜„์žฌ ์ƒํƒœ ํ‘œ์‹œ๊ธฐ๊ฐ€ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค.

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

์ถœ์ฒ˜ : opennet.ru

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