ืงื™ื“ื•ื Bcachefs ืœ-Linux Kernel

ืงื ื˜ ืื•ื‘ืจืกื˜ืจื™ื˜, ื”ืžื—ื‘ืจ ืฉืœ ืžืขืจื›ืช ื–ื™ื›ืจื•ืŸ ื”ืžื˜ืžื•ืŸ BCache SSD ื‘ืœื•ืง, ืฉื”ื™ื ื—ืœืง ืžืœื™ื‘ืช ืœื™ื ื•ืงืก, ืกื™ื›ื ืืช ืชื•ืฆืื•ืช ื”ืขื‘ื•ื“ื” ืขืœ ืงื™ื“ื•ื ืžืขืจื›ืช ื”ืงื‘ืฆื™ื Bcachefs ื‘ื ืื•ืžื• ื‘ื›ื ืก LSFMM 2023 (Linux Storage, Filesystem, Memory Management & BPF Summit). ืœืชื•ืš ื”ื”ืจื›ื‘ ื”ืจืืฉื™ ืฉืœ ืœื™ื‘ืช ืœื™ื ื•ืงืก ื•ื“ื™ื‘ืจ ืขืœ ืชื•ื›ื ื™ื•ืช ืœืคื™ืชื•ื— ื ื•ืกืฃ ืฉืœ FS ื–ื”. ื‘ืžืื™, ืกื˜ ืžืขื•ื“ื›ืŸ ืฉืœ ืชื™ืงื•ื ื™ื ืขื ื™ื™ืฉื•ื ื”-Bcachefs FS ื”ื•ืฆืข ืœื‘ื“ื™ืงื” ื•ื”ื›ืœืœื” ื‘ื”ืจื›ื‘ ื”ืจืืฉื™ ืฉืœ ืœื™ื‘ืช ืœื™ื ื•ืงืก. FS Bcachefs ืžืคืชื—ืช ื›-10 ืฉื ื™ื. ื”ืžื•ื›ื ื•ืช ืœื‘ื“ื™ืงืช ื”ื™ื™ืฉื•ื ืฉืœ Bcachefs ืœืคื ื™ ื”ื›ืœืœืช ื”ืœื™ื‘ื” ื”ื•ื›ืจื–ื” ื‘ืกื•ืฃ 2020, ื•ื”ื’ืจืกื” ื”ื ื•ื›ื—ื™ืช ืฉืœ ื”ืชื™ืงื•ื ื™ื ืœื•ืงื—ืช ื‘ื—ืฉื‘ื•ืŸ ืืช ื”ื”ืขืจื•ืช ื•ื”ื—ืกืจื•ื ื•ืช ืฉื–ื•ื”ื• ื‘ืžื”ืœืš ื”ืกืงื™ืจื” ื”ืงื•ื“ืžืช.

ืžื˜ืจืช ื”ืคื™ืชื•ื— ืฉืœ Bcachefs ื”ื™ื ืœื”ื’ื™ืข ืœืจืžืช XFS ื‘ื‘ื™ืฆื•ืขื™ื, ืืžื™ื ื•ืช ื•ืžื“ืจื’ื™ื•ืช, ืชื•ืš ืžืชืŸ ืชื›ื•ื ื•ืช ื ื•ืกืคื•ืช ื”ื’ืœื•ืžื•ืช ื‘-Btrfs ื•-ZFS, ื›ื’ื•ืŸ ื”ื›ืœืœืช ื”ืชืงื ื™ื ืžืจื•ื‘ื™ื ื‘ืžื—ื™ืฆื”, ืคืจื™ืกื•ืช ืื—ืกื•ืŸ ืจื‘-ืฉื›ื‘ืชื™ื•ืช, ืฉื›ืคื•ืœ (RAID 1/10), ืฉืžื™ืจื” ื‘ืžื˜ืžื•ืŸ, ื“ื—ื™ืกืช ื ืชื•ื ื™ื ืฉืงื•ืคื™ื (ืžืฆื‘ื™ LZ4, gzip ื•-ZSTD), ืคืจื•ืกื•ืช ืžืฆื‘ (ืฆื™ืœื•ืžื™ ืžืฆื‘), ืื™ืžื•ืช ืชืงื™ื ื•ืช ืขืœ ื™ื“ื™ ืกื›ื•ืžื™ ื‘ื“ื™ืงื”, ื™ื›ื•ืœืช ืœืื—ืกืŸ ืงื•ื“ื™ ืชื™ืงื•ืŸ ืฉื’ื™ืื•ืช ืฉืœ Reed-Solomon (RAID 5/6), ืื—ืกื•ืŸ ืžื•ืฆืคืŸ ืฉืœ ืžื™ื“ืข (ChaCha20 ื•-Poly1305 ืžืฉื•ืžืฉื™ื). ืžื‘ื—ื™ื ืช ื‘ื™ืฆื•ืขื™ื, Bcachefs ืžืงื“ื™ืžื” ืืช Btrfs ื•ืžืขืจื›ื•ืช ืงื‘ืฆื™ื ืื—ืจื•ืช ื”ืžื‘ื•ืกืกื•ืช ืขืœ ืžื ื’ื ื•ืŸ Copy-on-Write, ื•ืžื“ื’ื™ืžื” ื‘ื™ืฆื•ืขื™ื ืงืจื•ื‘ื™ื ืœ-Ext4 ื•-XFS.

ืžื‘ื™ืŸ ื”ื”ื™ืฉื’ื™ื ื”ืื—ืจื•ื ื™ื ื‘ืคื™ืชื•ื— Bcachefs, ืžืฆื•ื™ืŸ ื”ืชื™ื™ืฆื‘ื•ืช ื‘ื™ื™ืฉื•ื ืชืฆืœื•ืžื™ ืžืฆื‘ ื”ื–ืžื™ื ื™ื ืœื›ืชื™ื‘ื”. ื‘ื”ืฉื•ื•ืื” ืœ-Btrfs, ืฆื™ืœื•ืžื™ ืžืฆื‘ ื‘-Bcachefs ื ื™ืชื ื™ื ืœื”ืจื—ื‘ื” ื”ืจื‘ื” ื™ื•ืชืจ ื˜ื•ื‘ ื•ื—ื•ืคืฉื™ื™ื ืžื”ื‘ืขื™ื•ืช ื”ื’ืœื•ืžื•ืช ื‘-Btrfs. ื‘ืคื•ืขืœ, ืขื‘ื•ื“ืช ื”ืชืžื•ื ื•ืช ื ื‘ื“ืงื” ื‘ืขืช ืืจื’ื•ืŸ ื’ื™ื‘ื•ื™ื™ MySQL. Bcachefs ื’ื ืขืฉืชื” ืขื‘ื•ื“ื” ืจื‘ื” ื›ื“ื™ ืœืฉืคืจ ืืช ื”ืžื“ืจื’ื™ื•ืช - ืžืขืจื›ืช ื”ืงื‘ืฆื™ื ืขืฉืชื” ื‘ื™ืฆื•ืขื™ื ื˜ื•ื‘ื™ื ื‘ื‘ื“ื™ืงื•ืช ื‘ืื—ืกื•ืŸ ืฉืœ 100 TB, ื•-Bcachefs ืฆืคื•ื™ื” ืœื”ื™ื•ืช ืžื™ื•ืฉืžืช ื‘ืื—ืกื•ืŸ 1 PB ื‘ืขืชื™ื“ ื”ืงืจื•ื‘. ืžืฆื‘ nocow ื—ื“ืฉ ื ื•ืกืฃ ื›ื“ื™ ืœื”ืฉื‘ื™ืช ืืช ืžื ื’ื ื•ืŸ "ื”ืขืชืง ืขืœ ื›ืชื™ื‘ื”" (nocow). ื‘ืžื”ืœืš ื”ืงื™ืฅ, ื”ื ืžืชื›ื ื ื™ื ืœื”ื‘ื™ื ืืช ื”ื™ื™ืฉื•ื ืฉืœ ืงื•ื“ื™ ืชื™ืงื•ืŸ ืฉื’ื™ืื•ืช ื•-RAIDZ ืœืžืฆื‘ ื™ืฆื™ื‘, ื›ืžื• ื’ื ืœืคืชื•ืจ ื‘ืขื™ื•ืช ืขื ืฆืจื™ื›ืช ื–ื™ื›ืจื•ืŸ ื’ื‘ื•ื”ื” ื‘ืขืช ืฉื—ื–ื•ืจ ื•ื‘ื“ื™ืงืช ืžืขืจื›ื•ืช ืงื‘ืฆื™ื ืขื ื›ืœื™ ื”ืฉื™ืจื•ืช fsck.

ืžื‘ื™ืŸ ื”ืชื•ื›ื ื™ื•ืช ืœืขืชื™ื“ ืžื•ื–ื›ืจ ื”ืจืฆื•ืŸ ืœื”ืฉืชืžืฉ ื‘ืฉืคืช Rust ื‘ืคื™ืชื•ื— Bcachefs. ืœื“ื‘ืจื™ ื”ืžื—ื‘ืจ ืฉืœ Bcachefs, ื”ื•ื ืื•ื”ื‘ ืœืงื•ื“ื“, ืœื ืœื ืคื•ืช ื‘ืื’ื™ื ื‘ืงื•ื“, ื•ืขื›ืฉื™ื• ื–ื” ืžื˜ื•ืจืฃ ืœื›ืชื•ื‘ ืงื•ื“ ื‘-C ื›ืฉื™ืฉ ืืคืฉืจื•ืช ื˜ื•ื‘ื” ื™ื•ืชืจ. Rust ื›ื‘ืจ ืžืขื•ืจื‘ืช ื‘-Bcachefs ื‘ื™ื™ืฉื•ื ืฉืœ ื—ืœืง ืžืฉื™ืจื•ืชื™ ืžืจื—ื‘ ื”ืžืฉืชืžืฉ. ื™ืชืจื” ืžื›ืš, ื ื‘ืงืข ื”ืจืขื™ื•ืŸ ืœืฉื›ืชื‘ ื‘ื”ื“ืจื’ื” ืœื—ืœื•ื˜ื™ืŸ ืืช Bcachefs ื‘-Rust, ืฉื›ืŸ ื”ืฉื™ืžื•ืฉ ื‘ืฉืคื” ื–ื• ื—ื•ืกืš ื‘ืื•ืคืŸ ืžืฉืžืขื•ืชื™ ื–ืžืŸ ื ื™ืคื•ื™ ื‘ืื’ื™ื.

ื‘ื›ืœ ื”ื ื•ื’ืข ืœื”ืขื‘ืจืช Bcachefs ืœืžื™ื™ื ืกื˜ืจื™ื ืฉืœ ืœื™ื‘ืช ืœื™ื ื•ืงืก, ืชื”ืœื™ืš ื”ืื™ืžื•ืฅ ืขืœื•ืœ ืœื”ืชืขื›ื‘ ื‘ื’ืœืœ ื”ื’ื•ื“ืœ ื”ื’ื“ื•ืœ ืœืžื“ื™ ืฉืœ ื”ืฉื™ื ื•ื™ื™ื (2500 ืชื™ืงื•ื ื™ื ื•ื›-90 ืืœืฃ ืฉื•ืจื•ืช ืงื•ื“), ืฉืงืฉื” ืœืกืงื•ืจ. ื›ื“ื™ ืœื”ืื™ืฅ ืืช ื”ืกืงื™ืจื”, ื—ืœืง ืžื”ืžืคืชื—ื™ื ื”ืฆื™ืขื• ืœืคืฆืœ ืืช ืกื“ืจืช ื”ืชื™ืงื•ื ื™ื ืœื—ืœืงื™ื ืงื˜ื ื™ื ื™ื•ืชืจ ื•ืžื•ืคืจื“ื™ื ื‘ืฆื•ืจื” ื”ื’ื™ื•ื ื™ืช. ื‘ืžื”ืœืš ื”ื“ื™ื•ืŸ, ื—ืœืง ืžื”ืžืฉืชืชืคื™ื ื’ื ื”ืกื‘ื• ืืช ืชืฉื•ืžืช ื”ืœื‘ ืœืคื™ืชื•ื— ื”ืคืจื•ื™ืงื˜ ืขืœ ื™ื“ื™ ืžืคืชื— ืื—ื“ ื•ืœืกื›ื ื” ืฉื”ืงื•ื“ ืœื ื™ื™ืฉืžืจ ืื ื™ืงืจื” ืžืฉื”ื• ืœืžืคืชื— ืฉืœื• (ืฉื ื™ ืขื•ื‘ื“ื™ Red Hat ืžืขื•ื ื™ื™ื ื™ื ื‘ืคืจื•ื™ืงื˜, ืืš ืขื‘ื•ื“ืชื ืขื“ื™ื™ืŸ ืžื•ื’ื‘ืœ ืœืชื™ืงื•ื ื™ ื‘ืื’ื™ื).

Bcachefs ืคื•ืชื—ื” ื‘ืืžืฆืขื•ืช ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ืฉื›ื‘ืจ ื ื‘ื“ืงื• ื‘ืคื™ืชื•ื— ืžื›ืฉื™ืจ ื”-Bcache block, ืฉื ื•ืขื“ ืœืื—ืกื•ืŸ ื‘ืžื˜ืžื•ืŸ ืœื›ื•ื ื ื™ื ืงืฉื™ื—ื™ื ืื™ื˜ื™ื™ื ื‘ื›ื•ื ื ื™ SSD ืžื”ื™ืจื™ื (ื›ืœื•ืœ ื‘ืงืจื ืœ ืžืื– ืฉื—ืจื•ืจ 3.10). Bcachefs ืžืฉืชืžืฉืช ื‘ืžื ื’ื ื•ืŸ Copy-on-Write (COW), ื‘ื• ืฉื™ื ื•ื™ื™ื ืื™ื ื ืžื•ื‘ื™ืœื™ื ืœื”ื—ืœืคืช ื ืชื•ื ื™ื โ€“ ื”ืžืฆื‘ ื”ื—ื“ืฉ ื ื›ืชื‘ ืœืžื™ืงื•ื ื—ื“ืฉ, ื•ืœืื—ืจ ืžื›ืŸ ืžื—ื•ื•ืŸ ื”ืžืฆื‘ ื”ื ื•ื›ื—ื™ ืžืฉืชื ื”.

ืชื›ื•ื ื” ืฉืœ Bcachefs ื”ื™ื ืชืžื™ื›ื” ื‘ื—ื™ื‘ื•ืจ ืจื‘-ืฉื›ื‘ืชื™ ืฉืœ ื›ื•ื ื ื™ื, ืฉื‘ื”ื ื”ืื—ืกื•ืŸ ืžื•ืจื›ื‘ ืžืžืกืคืจ ืฉื›ื‘ื•ืช - ื”ื›ื•ื ื ื™ื ื”ืžื”ื™ืจื™ื ื‘ื™ื•ืชืจ (SSD) ืžื—ื•ื‘ืจื™ื ืœืฉื›ื‘ื” ื”ืชื—ืชื•ื ื”, ื”ืžืฉืžืฉื™ื ืœืื—ืกื•ืŸ ื ืชื•ื ื™ื ื‘ืฉื™ืžื•ืฉ ืชื›ื•ืฃ, ื•ื”ืฉื›ื‘ื” ื”ืขืœื™ื•ื ื” ื ื•ืฆืจืช. ื“ื™ืกืงื™ื ืžืจื•ื•ื—ื™ื ื™ื•ืชืจ ื•ื–ื•ืœื™ื ื™ื•ืชืจ ื”ืžืื—ืกื ื™ื ื ืชื•ื ื™ื ืคื—ื•ืช ื ื“ืจืฉื™ื. ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘ืžื˜ืžื•ืŸ ืฉืœ ื›ืชื™ื‘ื” ื—ื•ื–ืจืช ื‘ื™ืŸ ืฉื›ื‘ื•ืช. ื ื™ืชืŸ ืœื”ื•ืกื™ืฃ ื•ืœื ืชืง ื›ื•ื ื ื™ื ื‘ืื•ืคืŸ ื“ื™ื ืžื™ ืœืžื—ื™ืฆื” ืžื‘ืœื™ ืœื”ืคืจื™ืข ืœืฉื™ืžื•ืฉ ื‘ืžืขืจื›ืช ื”ืงื‘ืฆื™ื (ื”ื ืชื•ื ื™ื ืขื•ื‘ืจื™ื ืื•ื˜ื•ืžื˜ื™ืช).

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”