ะะตะฝั ะะฒะตััััะธั (Kent Overstreet) ะพะฟัะฑะปะธะบะพะฒะฐะป ะฒัะฟััะบ ัะฐะนะปะพะฒะพะน ัะธััะตะผั Bcachefs 1.38.6 ะธ ะพะฑััะฒะธะป ะพะฑ ะพัะธัะธะฐะปัะฝะพะผ ัะฝััะธะธ ั ะฟัะพะตะบัะฐ ะผะตัะบะธ ัะบัะฟะตัะธะผะตะฝัะฐะปัะฝะพะน ัะฐะทัะฐะฑะพัะบะธ. ะะพัะปะตะดะฝะตะต ะฒัะตะผั ัะธัะปะพ ะฟะพัััะฟะฐััะธั ัะพะพะฑัะตะฝะธะน ะพ ะฟัะพะฑะปะตะผะฐั ัะพะบัะฐัะธะปะพัั, ะฐ ะฒััะฒะปัะตะผัะต ะพัะธะฑะบะธ ััะฐะปะธ ะผะตะฝะตะต ัะตัััะทะฝัะผะธ ะธ ะทะฐะผััะปะพะฒะฐััะผะธ.
ะัะฟััะบ ะพั ะฒะฐััะฒะฐะตั ะดะฒะฐ ะฟะฐะบะตัะฐ: bcachefs-kernel-dkms ั ะผะพะดัะปะตะผ ัะดัะฐ, ัะพะฑะธัะฐะตะผัะผ ะฟัะธ ะฟะพะผะพัะธ ัะธััะตะผั DKMS (Dynamic Kernel Module Support), ะธ bcachefs-tools ั ะทะฐะฟััะบะฐะตะผะพะน ะฒ ะฟัะพัััะฐะฝััะฒะต ะฟะพะปัะทะพะฒะฐัะตะปั ััะธะปะธัะพะน bcachefs, ัะตะฐะปะธะทัััะตะน ะบะพะผะฐะฝะดั ะดะปั ัะพะทะดะฐะฝะธั (mkfs), ะผะพะฝัะธัะพะฒะฐะฝะธั, ะฒะพัััะฐะฝะพะฒะปะตะฝะธั ะธ ะฟัะพะฒะตัะบะธ ะคะก. ะะฐะบะตัั ัะพะฑัะฐะฝั ะดะปั Debian, Ubuntu, เปเบเปเบ Linux ะธ ะพะถะธะดะฐัััั ะดะปั Fedora, openSUSE ะธ NixOS. DKMS-ะผะพะดัะปั ะฟะพะดะดะตัะถะธะฒะฐะตั ัะฐะฑะพัั ั ัะดัะฐะผะธ Linux, เปเบฅเบตเปเบกเบเบปเปเบเบเบฒเบ 6.16.
ะะตัะผะพััั ะฝะฐ ะฝะตะฟัะธะผะตัะฐัะตะปัะฝัะน ะฝะพะผะตั ะฒะตััะธะธ, ะพะฑััะปะพะฒะปะตะฝะฝัะน ะพััััััะฒะธะตะผ ะธะทะผะตะฝะตะฝะธะน ะฒ ะดะธัะบะพะฒะพะผ ัะพัะผะฐัะต, ะฒัะฟััะบ 1.38.6 ะฒะบะปััะฐะตั ััะด ัะตัััะทะฝัั ะพะฟัะธะผะธะทะฐัะธะน ะฟัะพะธะทะฒะพะดะธัะตะปัะฝะพััะธ. ะ ะบะพะด ะดะปั ัะฐะฑะพัั ัะพ ััััะบัััะฐะผะธ ะฒ ัะพัะผะฐัะต btree, ะถััะฝะฐะปะธัะพะฒะฐะฝะธั ะธ ะพะฑะตัะฟะตัะตะฝะธั ัะฐะฑะพัั ัะฐะนะปะพะฒะพะน ัะธััะตะผั ะฒะฝะตัะตะฝะพ ะพะบะพะปะพ 200 ะธะทะผะตะฝะตะฝะธะน, ะฟะพะฒััะฐััะธั ะฟัะพะธะทะฒะพะดะธัะตะปัะฝะพััั. ะะพะณะธะบะฐ ะฟะพะดัะฒะตัะถะดะตะฝะธั ััะฐะฝะทะฐะบัะธะน ัะถะฐัะฐ ะฒ 4ะะ ะผะฐัะธะฝะฝะพะณะพ ะบะพะดะฐ, ะดะพะฑะฐะฒะปะตะฝั ะพะฟัะธะผะธะทะฐัะธะธ ะดะปั ะธัะบะปััะตะฝะธั ะฒะพะทะฝะธะบะฝะพะฒะตะฝะธั ะบะพะฝะบััะธััััะธั ะฑะปะพะบะธัะพะฒะพะบ (ยซlock contentionยป) ะฟัะธ ัะฐะฑะพัะต ั btree, ะฟะพะปะฝะพัััั ะธะทะฑะฐะฒะปะตะฝ ะพั ะฑะปะพะบะธัะพะฒะพะบ ะฟัะพัะตัั ัะฑัะพัะฐ ัะพััะพัะฝะธั ะถััะฝะฐะปะฐ (journal flush).
ะะฐ ัะตัะฒะตัะต ั 48-ัะดะตัะฝะพะผ CPU AMD ะฒ Bcachefs ัะดะฐะปะพัั ะดะพะฑะธัััั ะฟัะพะฟััะบะฝะพะน ัะฟะพัะพะฑะฝะพััะธ 16.5 GB/sec ะฟัะธ ะทะฐะฟััะบะต 48 ะบะปะธะตะฝัะพะฒ dbench (ะดะปั ััะฐะฒะฝะตะฝะธั ะฒ XFS ะฟะพะปััะตะฝ ัะตะทัะปััะฐั ะฒ 16 GB/sec). ะะพะดะณะพัะพะฒะปะตะฝั, ะฝะพ ะพัะปะพะถะตะฝั ะดะพ ัะปะตะดัััะตะณะพ ัะตะปะธะทะฐ, ะฟะฐััะธ, ะดะพะฒะพะดััะธะต ะฟัะพะธะทะฒะพะดะธัะตะปัะฝะพััั ะฒ ัะตััะฐั dbench ะดะพ 19 GB/sec (ะดะฐะฝะฝัะต ะฟะฐััะธ ััะตะฑััั ะดะพะฟะพะปะฝะธัะตะปัะฝะพะณะพ ัะตััะธัะพะฒะฐะฝะธั ะธะปะธ ะธะทะผะตะฝะตะฝะธั ะดะธัะบะพะฒะพะณะพ ัะพัะผะฐัะฐ). ะัะธ ัะตััะธัะพะฒะฐะฝะธะธ ััะธะปะธัะพะน fio ะฟัะพะธะทะฒะพะดะธัะตะปัะฝะพััั Bcachefs ัะพััะฐะฒะธะปะฐ 700 ะพะฟะตัะฐัะธะน ะฒ ัะตะบัะฝะดั ะฟัะธ ะฒัะฟะพะปะฝะตะฝะธะธ ะพะฟะตัะฐัะธะน ัะปััะฐะนะฝะพะน ะทะฐะฟะธัะธ 4-ะบะธะปะพะฑะฐะนัะฝัะผะธ ะฑะปะพะบะฐะผะธ (XFS ะดะตะผะพะฝัััะธััะตั ะฒ ััะพะผ ัะตััะต ะผะธะปะปะธะพะฝ ะพะฟะตัะฐัะธะน ะฒ ัะตะบัะฝะดั, ะฟัะธ ัะพะผ, ััะพ XFS ะพะณัะฐะฝะธัะธะฒะฐะตััั ัะตะผะฐะฟะธะฝะณะพะผ ะฑะปะพะบะพะฒ, ะฐ Bcachefs ะพะฑัะฐะฑะฐััะฒะฐะตั ะฟะพะปะฝัะน ัะธะบะป CoW (Copy-on-Write) ั ะฟัะพะฒะตัะบะพะน ะบะพะฝััะพะปัะฝัั ััะผะผ ะธ ะพะฑะฝะพะฒะปะตะฝะธะตะผ ััััะบัััั btree).
ะะพะผะธะผะพ ะพะฟัะธะผะธะทะฐัะธะน ะฒ ะฒัะฟััะบะต Bcachefs 1.38.6 ัะตะฐะปะธะทะพะฒะฐะฝะฐ ะฟะพะดะดะตัะถะบะฐ ะฟะพะดะบะปััะตะฝะธั ะดะพ 255 ััััะพะนััะฒ ะบ ะพะดะฝะพะน ะคะก. ะ ัะตะฟะพะทะธัะพัะธะธ apt.bcachefs.org ะฝะฐัะฐะปะพัั ัะพัะผะธัะพะฒะฐะฝะธะต ะฟะฐะบะตัะพะฒ ะดะปั Ubuntu 26.04. ะะฝััะฐััััะบัััะฐ ะฝะตะฟัะตััะฒะฝะพะน ะธะฝัะตะณัะฐัะธะธ ะธ ะฐะฒัะพะผะฐัะธะทะธัะพะฒะฐะฝะฝะพะณะพ ัะตััะธัะพะฒะฐะฝะธั ะฟะตัะตะฒะตะดะตะฝะฐ ะฝะฐ ะฟัะพะฒะตัะบั ัะฑะพัะพะบ ะฝะฐ ะฑะฐะทะต DKMS. ะ ัะปะตะดัััะธะต ะฝะตัะบะพะปัะบะพ ะผะตัััะตะฒ ะฟะปะฐะฝะธััะตััั ัะพััะตะดะพัะพัะธัั ะฒะฝะธะผะฐะฝะธะต ะฝะฐ ะพะฟัะธะผะธะทะฐัะธะธ ัะฐะฑะพัั ัะฐะนะปะพะฒะพะน ัะธััะตะผั ั ะฝะตัะบะพะปัะบะธะผะธ ััััะพะนััะฒะฐะผะธ ั ัะฐะฝะตะฝะธั.
ะัะพะผะต ัะพะณะพ, ะฟัะพะดะพะปะถะฐะตััั ัะฐะฑะพัะฐ ะฟะพ ะฟะตัะตะฟะธััะฒะฐะฝะธั ะบะพะดะฐ ะฝะฐ ัะทัะบะต Rust. ะัะผะตัะฐะตััั, ััะพ ะฟะพะดะดะตัะถะบะฐ Rust ะฒ ัะดัะต ะดะพััะธะณะปะฐ ะทะฝะฐะบะพะฒะพะณะพ ะผะพะผะตะฝัะฐ โ ะฒัะต ะทะฝะฐัะธัะตะปัะฝัะต ะดะธัััะธะฑััะธะฒั ะฟัะธ ัะพัะผะธัะพะฒะฐะฝะธะธ ะฟะฐะบะตัะพะฒ ั ัะดัะพะผ 7.0 ะฟะพ ัะผะพะปัะฐะฝะธั ะฐะบัะธะฒะธัะพะฒะฐะปะธ ะฝะฐัััะพะนะบั CONFIG_RUST ะดะปั ัะฑะพัะบะธ ัะดัะฐ ั ะฟะพะดะดะตัะถะบะพะน Rust. ะ ะฟัะพะตะบัะต Bcachefs ะฝะฐ Rust ัะถะต ะฟะตัะตะฟะธัะฐะฝ ะฝะฐะฑะพั ััะธะปะธั
bcachefs-tools, ะทะฐะฟััะบะฐะตะผัะน ะฒ ะฟัะพัััะฐะฝััะฒะต ะฟะพะปัะทะพะฒะฐัะตะปั, ะฒะบะปััะฐั ัะตะฐะปะธะทะฐัะธั API ะดะปั ัะฐะฑะพัั ัะพ ััััะบัััะฐะผะธ btree. ะ ัะปะตะดัััะตะผ ัะตะปะธะทะต ะฟะปะฐะฝะธััะตััั ะธะฝัะตะณัะธัะพะฒะฐัั ะฟะพะดะณะพัะพะฒะปะตะฝะฝัะต ะพะฑะฒัะทะบะธ ะฝะฐ Rust ะฒ DKMS-ะผะพะดัะปั ัะดัะฐ ะธ ะฝะฐัะฐัั ะฟะตัะตะฟะธััะฒะฐะฝะธะต ะฑะฐะทะพะฒะพะณะพ ะบะพะดะฐ Bcachefs. ะัะตะดะฟะพะปะฐะณะฐะตััั, ััะพ ะธัะฟะพะปัะทะพะฒะฐะฝะธะต Rust ะฟะพะฒััะธัั ะณะธะฑะบะพััั, ััะฐะฑะธะปัะฝะพััั ะธ ัะดะพะฑััะฒะพ ัะฐะฑะพัั ั ะบะพะดะพะผ, ัะดะตะปะฐะตั ะฟัะพะตะบั ะฑะพะปะตะต ะธะฝัะตัะตัะฝัะผ ะดะปั ะผะพะปะพะดัั
ะธะฝะถะตะฝะตัะพะฒ ะธ ะฟะพะทะฒะพะปะธั ะฒ ะฑัะดััะตะผ ัะตะฐะปะธะทะพะฒะฐัั ัะพัะผะฐะปัะฝัั ะฒะตัะธัะธะบะฐัะธั ะฝะฐะดัะถะฝะพััะธ.
เปเบเบเบเบฒเบ Bcachefs เบเบณเบฅเบฑเบเบเบฑเบเบเบฐเบเบฒเบฅเบฐเบเบปเบเปเบเบฅเปเบเบตเปเบกเบตเบเบธเบเบเบฐเบชเบปเบเปเบเบทเปเบญเบฅเบงเบกเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบฑเปเบเบชเบนเบเบเบญเบ Btrfs เปเบฅเบฐ ZFS เปเบเบปเปเบฒเบเบฑเบเบเบฐเบชเบดเบเบเบดเบเบฒเบ, เบเบงเบฒเบกเปเปเบฒเปเบเบทเปเบญเบเบท เปเบฅเบฐ เบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบเบฒเบเบเบฐเบซเบเบฒเบเบเบญเบ XFS. Bcachefs เบฎเบญเบเบฎเบฑเบเบเบธเบเบชเบปเบกเบเบฑเบเบเปเบฒเบเปเปเบเบฑเปเบ: เบซเบผเบฒเบเบญเบธเบเบฐเบเบญเบเบเปเปเบเบฒเบเบดเบเบฑเบ, เบฎเบนเบเปเบเบเบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบซเบผเบฒเบเบเบฑเปเบ (เบเบฑเปเบเบฅเบธเปเบกเบเบตเปเบกเบตเบเปเปเบกเบนเบเบเบตเปเปเบเบปเปเบฒเปเบเบดเบเปเบฅเบทเปเบญเบเปเปเบเบเบญเบตเบเปเบชเป SSD เบเบตเปเปเบง, เปเบฅเบฐ เบเบฑเปเบเปเบเบดเบเบเบตเปเบกเบตเบเปเปเบกเบนเบเบเบตเปเปเบเบปเปเบฒเปเบเบดเบเปเปเบญเบเบเบงเปเบฒเบเบฒเบเบฎเบฒเบเบเบดเบ), เบเบฒเบเบเปเบณเบเปเบญเบ (RAID 1/10), เบเบฒเบเปเบเบฑเบเบเปเปเบกเบนเบเบเบปเปเบงเบเบฒเบง, เบเบฒเบเบเบตเบเบญเบฑเบเบเปเปเบกเบนเบเบเบตเปเปเบเปเบเปเบช (เปเปเบ LZ4, gzip, เปเบฅเบฐ ZSTD), เบเบดเปเบเบชเปเบงเบเบชเบฐเบเบฒเบเบฐ (snapshots), เบเบฒเบเบเบงเบเบชเบญเบเบเบงเบฒเบกเบชเบปเบกเบเบนเบเปเบเบเปเบเป checksums, เบฅเบฐเบซเบฑเบเปเบเปเปเบเบเบงเบฒเบกเบเบดเบเบเบฒเบ, เปเบฅเบฐ เบเบฒเบเปเบเบฑเบเบฎเบฑเบเบชเบฒเบเปเปเบกเบนเบเบเบตเปเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบ (เปเบเบเปเบเป ChaCha20 เปเบฅเบฐ Poly1305).
ะะท ะทะฝะฐัะธัะตะปัะฝัั ะฝะพะฒะพะฒะฒะตะดะตะฝะธะน, ะดะพะฑะฐะฒะปะตะฝะฝัั ะฒ Bcachefs ะทะฐ ะฟะพัะปะตะดะฝะธะต ะผะตัััั, ัะฟะพะผะธะฝะฐัััั:
- ะะตั ะฐะฝะธะทะผ ยซreconcileยป (rebalance_v2), ะบะพัะพััะน ะฒ ะพัะปะธัะธะต ะพั ัะตะถะธะผะฐ ยซrebalanceยป ะฟะพะทะฒะพะปัะตั ะฒัะฟะพะปะฝะธัั ัะตะฑะฐะปะฐะฝัะธัะพะฒะบั ะฝะต ัะพะปัะบะพ ะดะฐะฝะฝัั (ะฝะฐะฟัะธะผะตั, ัะตะฟะปะธัะธัะพะฒะฐะฝะธะต ะฝะตัะบะพะปัะบะธั ะบะพะฟะธะน ะฝะฐ ัะฐะทะฝัะต ะฝะฐะบะพะฟะธัะตะปะธ), ะฝะพ ะธ ะผะตัะฐะดะฐะฝะฝัั ะฒ ะคะก (ะฝะฐะฟัะธะผะตั, ะดะปั ะฟะตัะตะฝะพัะฐ ะผะตัะฐะดะฐะฝะฝัั ะฟะพัะปะต ะดะพะฑะฐะฒะปะตะฝะธั ะฒ ะฟัะป ะดะพะฟะพะปะฝะธัะตะปัะฝะพะณะพ ะฝะฐะบะพะฟะธัะตะปั). Reconcile ะฟัะธะผะตะฝะธะผ ะดะปั ะฒัะตั ะพะฟะตัะฐัะธะน ะฒะฒะพะดะฐ/ะฒัะฒะพะดะฐ, ะฐ ะฝะต ัะพะปัะบะพ ะดะปั ะพะฟะตัะฐัะธะน ัะพะฝะพะฒะพะณะพ ะบะพะฟะธัะพะฒะฐะฝะธั ะธ ัะถะฐัะธั. ะ reconcile ะฐะฒัะพะผะฐัะธัะตัะบะธ ััะธััะฒะฐัััั ะธะทะผะตะฝะตะฝะธั ะฝะฐัััะพะตะบ ััััะพะนััะฒ ะธ ััะฐะทั ะฟะตัะตัะตะฟะปะธัะธัััััั ะดะตะณัะฐะดะธัะพะฒะฐะฒัะธะต ะดะฐะฝะฝัะต ะธ ะผะตัะฐะดะฐะฝะฝัะต.
- ะะพะดะดะตัะถะบะฐ ะบะพะดะพะฒ ะบะพััะตะบัะธะธ ะพัะธะฑะพะบ, ะฟะพะทะฒะพะปัััะธั ะฒะพัััะฐะฝะฐะฒะปะธะฒะฐัั ะฟะพะฒัะตะถะดัะฝะฝัะต ะดะฐะฝะฝัะต ะฟะพ ะฐะฝะฐะปะพะณะธะธ ั RAID 5/6. ะ ะตะฐะปะธะทะฐัะธั ะพัะฝะพะฒะฐะฝะฐ ะฝะฐ ะบะพะดะธัะพะฒะฐะฝะธะธ ะ ะธะดะฐ-ะกะพะปะพะผะพะฝะฐ, ัะฟะพัะพะฑะฝะพะผ ะธัะฟัะฐะฒะธัั ะดะพ N ะพัะธะฑะพะบ ะฒ ัััะฐะนะฟะต (stripe) ะฟัะธ ะฝะฐะปะธัะธะธ N ะธะทะฑััะพัะฝัั ะฑะปะพะบะพะฒ. ะะฑะตัะฟะตัะตะฝะพ ะฐะฒัะพะผะฐัะธัะตัะบะพะต ะฒะพัััะฐะฝะพะฒะปะตะฝะธะต ะดะตะณัะฐะดะธัะพะฒะฐะฒัะธั ัััะฐะนะฟะพะฒ. ะะพะทะผะพะถะฝะพััั ะฟัะธะผะตะฝะตะฝะธั ะบะพะดะพะฒ ะฒะพัััะฐะฝะพะฒะปะตะฝะธั ะฟัะธะผะตะฝะธะผะฐ ะฒ ะบะพะฝัะธะณััะฐัะธัั ั ะฝะฐะบะพะฟะธัะตะปัะผะธ ัะฐะทะฝะพะณะพ ัะฐะทะผะตัะฐ.
เปเบซเบผเปเบเบเปเปเบกเบนเบ: opennet.ru
