Kent Overstreet, ืืขืจ ืืืืจ ืคืื ืื BCache ืืืึธืง ืืืื ืงืึทืืฉืื ื ืกืืกืืขื ืืืืฃ SSD ืืจืืืืื ืึทืจืืึทื ืืขืจืขืื ื ืืื ืื ืืื ืืงืก ืงืขืจื, ืืื ืืืื ืจืขืืข ืืื ืื LSFMM 2023 ืืืฆืื ื (Linux Storage, Filesystem, Memory Management & BPF Summit) ืกืึทืืขืจืืืื ืื ืจืขืืืืืึทืื ืคืื ืึทืจืืขื ืฆื ืืขืืขืจื ืื Bcachefs ืืขืงืข ืกืืกืืขื ืืื ืื ืืืืคึผื ืืึทืฅ ืคืื ืื ืืื ืืงืก ืงืขืจื ืืื ืืขืจืขืื ืืืขืื ืคึผืืึทื ื ืคึฟืึทืจ ืื ืืืืึทืืขืจ ืึทื ืืืืืงืืื ื ืคืื ืืขื FS. ืืื ืืื, ืึท ืืขืจืืืึทื ืืืงื ืืึทื ื ืคืื ืคึผืึทืืฉืึทื ืืื ืื ืืืคึผืืึทืืขื ืืืืฉืึทื ืคืื ืื Bcachefs FS ืืื ืืขืืืขื ืคืืจืืขืืืืื ืคึฟืึทืจ ืึธืคึผืฉืึทืฆืื ื ืืื ืื ืงืืืืฉืึทื ืืื ืื ืืืืคึผื ืืื ืืงืก ืงืขืจื. FS Bcachefs ืืื ืืขืืืขืืึธืคึผืขื ืคึฟืึทืจ ืืืขืื 10 ืืึธืจ. ืื ืืจืืืืงืืื ืฆื ืืืจืืืื ืื Bcachefs ืืืคึผืืึทืืขื ืืืืฉืึทื ืืืืืขืจ ืื ืงืืืืฉืึทื ืืื ืื ืงืขืจื ืืื ืึทื ืึทืื ืกื ืืื ืื ืกืืฃ ืคืื 2020, ืืื ืื ืงืจืึทื ื ืืืขืจืกืืข ืคืื โโืื ืคึผืึทืืฉืึทื ื ืขืื ืืื ืืฉืืื ืื ืืึทืืขืจืงืื ืืขื ืืื ืืืกืึธืจื ืืืืขื ืึทืคืืื ืืขืฉืึทืก ืื ืคืจืืขืจืืืงืข ืจืขืฆืขื ืืืข.
ืืขืจ ืฆืื ืคืื Bcachefs ืืื ืฆื ืืขืจืืจืืืื XFS ืืืจืื ืคืื ืคืึธืจืฉืืขืืื ื, ืจืืืืืึทืืืืึทืื ืืื ืกืงืึทืืึทืืืืืื, ืืื ืฆืืฉืืขืื ื ืึธื ืคึฟืขืึดืงืืืื ืคืื Btrfs ืืื ZFS, ืึทืืึท ืืื ืืึทืืื-ืืืื ืคึผืึทืจืืืฉืึทื ืื ื, ืืืืื-ืฉืืืืข ืคืึธืจ ืืืืึทืืฅ, ืจืขืคึผืืึทืงืืืฉืึทื (RAID 1/10), ืงืึทืืฉืื ื, ืืจืึทื ืกืคึผืขืจืึทื ื ืืึทืื. ืงืึทืืคึผืจืขืฉืึทื (LZ4, gzip ืืื ZSTD ืืึธืืขืก), ืฉืืึทื ืกืืืืกืื (ืกื ืึทืคึผืฉืึทืฅ), ืึธืจื ืืืขืืงืืึทื ืืืขืจืึทืคืึทืงืืืฉืึทื ืืื ืืฉืขืงืกืึทืื, ืื ืคืืืืงืืื ืฆื ืงืจืึธื ืจืื-ืฉืืื ืืขืืช ืงืขืจืขืงืฉืึทื ืงืึธืืื (RAID 5/6), ืกืืึธืจืื ื ืืื ืคึฟืึธืจืืึทืฆืืข ืืื ืื ืงืจืืคึผืืื ืคืึธืจืขื (ChaCha20 ืืื Poly1305 ืืขื ืขื ืืขื ืืฆื) . ืืื ืืขืจืืื ืขื ืคืื ืคืึธืจืฉืืขืืื ื, Bcachefs ืืื ืคืึธืจืืืก ืคืื Btrfs ืืื ืื ืืขืจืข ืืขืงืข ืกืืกืืขืืขื ืืืืืจื ืืืืฃ ืื Copy-on-Write ืืขืงืึทื ืืืึทื, ืืื ืืขืืึทื ืกืืจืืืฅ ืึทืคึผืขืจืืืืื ื ืืืืงืืึทื ื ืึธืขื ื ืฆื Ext4 ืืื XFS.
ืื ืืขืฆืืข ืืขืจืืจืืืืื ืืขื ืืื ืืขืจ ืึทื ืืืืืงืืื ื ืคืื Bcachefs ืึทืจืืึทื ื ืขืืขื ืกืืืืืึทืืึทืืืืฉืึทื ืคืื ืื ืืืคึผืืึทืืขื ืืืืฉืึทื ืคืื ืฉืจืืืืืึทืืืข ืกื ืึทืคึผืฉืึทืฅ. ืงืึทืืคึผืขืจื ืฆื Btrfs, ืกื ืึทืคึผืฉืึทืฅ ืืื Bcachefs ืืืฆื ืืืึธื ืคืื ืืขืกืขืจ ืืื ืืขื ืขื ืคืจืื ืคืื ืื ืคึผืจืึธืืืขืืก ืืึธืืืง ืืื Btrfs. ืืื ืคืืจ, ืื ืึทืจืืขื ืคืื ืกื ืึทืคึผืฉืึทืฅ ืืื ืืขืกืืขื ืืืขื ืึธืจืืึทื ืืืืื ื MySQL ืืึทืงืึทืคึผืก. Bcachefs ืืื ืืืื ืืืจืืืขืงืึธืื ืึท ืคึผืืึทืฅ ืคืื ืึทืจืืขื ืฆื ืคึฟืึทืจืืขืกืขืจื ืกืงืึทืืึทืืืืืื - ืื ืืขืงืข ืกืืกืืขื ืืื ืืขืืืขื ืืื ืืืขื ืืขืกืืขื ืืืืฃ 100 ืื ืกืืึธืจืืืืฉ, ืืื Bcachefs ืืื ืืขืจืืื ืฆื ืืืื ืืืคึผืืึทืืขื ืึทื ืืื 1 ืคึผื ืกืืึธืจืืืืฉ ืืื ืืขื ืืขืื ืฆืืงืื ืคึฟื. ืฆืืืขืืขืื ืึท ื ืืึทืข ื ืึธืงืึธืื ืืึธืืข ืฆื ืืืกืืืืึทื ืื ืงืึธืคึผืืข-ืืืืฃ-ืฉืจืืึทืื (ื ืึธืงืึธืื) ืืขืงืึทื ืืืึทื. ืืขืฉืึทืก ืื ืืืืขืจ, ืืื ืคึผืืึทื ืืจื ืฆื ืืจืขื ืืขื ืื ืืืคึผืืึทืืขื ืืืืฉืึทื ืคืื ืืขืืช ืงืขืจืขืงืฉืึทื ืงืึธืืื ืืื RAIDZ ืฆื ืึท ืกืืึทืืื ืฉืืึทื, ืืื ืกืึธืืืืข ืคึผืจืึธืืืขืืก ืืื ืืืื ืืึผืจืื ืงืึทื ืกืึทืืฉืึทื ืืืขื ืจืืกืืึธืจืื ื ืืื ืงืึธื ืืจืึธืืืจื ืื FS ืืื ืื ืคืกืง ื ืืฆื.
ืฆืืงืื ืคึฟื ืคึผืืึทื ื ืึทืจืืึทื ื ืขืืขื ืึท ืคืึทืจืืึทื ื ืฆื ื ืืฆื ืื ืจืืกื ืฉืคึผืจืึทื ืืืขื ืืขืืืขืืึธืคึผืื ื Bcachefs. ืืืื ืืขืจ ืืืืจ ืคืื Bcachefs, ืขืจ ืืื ืคึผืจืึธืืจืึทืืืื ื, ื ืืฉื ืืืืึทืืื ื ืงืึธื, ืืื ืขืก ืืื ืืฉืืืข ืฆื ืฉืจืืึทืื C ืงืึธื ืืืฆื ืึทื ืึท ืืขืกืขืจ ืึธืคึผืฆืืข ืืื ืืืขืจืืืฉื. Rust ืืื ืฉืืื ืื ืืืึทืืืื ืืื Bcachefs ืืื ืืืคึผืืึทืืขื ืื ื ืขืืืขืืข ืืืืืืึทืืื ืืืึธืก ืืืืคื ืืื ืืึทื ืืฆืขืจ ืคึผืืึทืฅ. ืืขืจืฆื, ืืขืจ ืืขืืึทื ืง ืืื ืืึทืืฉื ืฆื ืืืกืืขืืืืืึทื ืืึธืจ ืจืืจืืื Bcachefs ืืื Rust, ืืื ื ื ืืฆื ืืขื ืฉืคึผืจืึทื ืืืืืืืืง ืกืึทืืืขืก ืืืืึทืืื ื ืฆืืื.
ืืื ืคึฟืึทืจ ืื ืืขืืขืจืื ื ืคืื Bcachefs ืฆื ืื ืืืืคึผื ืืืื ืคืื ืื ืืื ืืงืก ืงืขืจื, ืื ืึทืืึทืคึผืฉืึทื ืคึผืจืึธืฆืขืก ืงืขื ืืืื ืืืืืื ืจืขืื ืฆื ืืขืจ ืคืขืจืื ืืจืืืก ืืจืืืก ืคืื ืขื ืืขืจืื ืืขื (2500 ืคึผืึทืืฉืึทื ืืื ืืืขืื 90 ืืืืื ื ืฉืืจืืช ืคืื ืงืึธื), ืืืึธืก ืืื ืฉืืืขืจ ืฆื ืึธืคึผืฉืึทืฆื. ืฆื ืคืึทืจืืืืขืจื ืึธืคึผืฉืึทืฆืื ื, ืขืืืขืืข ืืขืืืขืืึธืคึผืขืจืก ืืึธืื ืคืืจืืขืืืืื ืืจืืืงืื ื ืึท ืกืขืจืืข ืคืื โโืคึผืึทืืฉืึทื ืืื ืงืืขื ืขืจืขืจ ืืื ืืึทืืืฉืืงืื ืืคืืขืฉืืืื ืืืืื. ืืขืฉืึทืก ืื ืืืกืงืืกืืข, ืขืืืขืืข ืคึผืึทืจืืืกืึทืคึผืึทื ืฅ ืืืื ืืขืฆืืืื ืืคืืขืจืงืืึทืืงืืื ืฆื ืืขืจ ืึทื ืืืืืงืืื ื ืคืื ืื ืคึผืจืืืขืงื ืืืจื ืืืื ืืขืืืขืืึธืคึผืขืจ ืืื ืื ืืขืคืึทืจ ืึทื ืื ืงืึธื ืงืขื ืืืืืื ืึทื ืืืื ืืืื ื ืืืื ืขืคึผืขืก ืืึทืคึผืึทื ื ืฆื ืืืื ืืขืืืขืืึธืคึผืขืจ (ืฆืืืื ืจืขื ืืึทื ืขืืคึผืืืืื ืืขื ืขื ืืื ืืขืจืขืกืืจื ืืื ืื ืคึผืจืืืขืงื, ืึธืืขืจ ืืืืขืจ ืึทืจืืขื ืืื ื ืึธื ืืืืืืขื ืืขืืช ืงืขืจืขืงืฉืึทื).
Bcachefs ืืื ืืขืืืขืืึธืคึผืขื ืืื ืืขืงื ืึทืืึทืืืฉืื ืฉืืื ืืขืกืืขื ืืื ืืขืจ ืึทื ืืืืืงืืื ื ืคืื ืื Bcache ืืืึธืง ืืืื, ืืืืืื ื ืฆื ืงืึทืฉ ืึทืงืกืขืก ืฆื ืคึผืึทืืขืืขื ืฉืืืขืจ ืืจืืืืื ืืืืฃ ืฉื ืขื SSD ืืจืืืืื (ืึทืจืืึทื ืืขืจืขืื ื ืืื ืื ืงืขืจื ืกืืึทืจืืื ื ืืื ืืขืืืื ื 3.10). Bcachefs ื ืืฆื ืึท Copy-on-Write (COW) ืืขืงืึทื ืืืึทื ืืื ืืืึธืก ืขื ืืขืจืื ืืขื ืคืืจื ื ืืฉื ืฆื ืืึทืื ืึธืืืืขืจืจืืืืื ื - ืื ื ืืึทืข ืฉืืึทื ืืื ืืขืฉืจืืื ืฆื ืึท ื ืืึท ืึธืจื, ื ืึธื ืืืึธืก ืืขืจ ืึธื ืืืืึทื ืฆื ืื ืงืจืึทื ื ืฉืืึทื ืืื ืืขืืืื.
ื ืกืคึผืขืฆืืขื ืฉืืจืื ืคืื Bcachefs ืืื ืื ืฉืืืฆื ืคึฟืึทืจ ืืืืื-ืฉืืืืข ืคืึธืจ ืงืึทื ืขืงืฉืึทื ื, ืืื ืืืึธืก ืื ืกืืึธืจืืืืฉ ืืื ืงืึทืืคึผืึธืืื ืคืื ืขืืืขืืข ืืืึทืขืจืก - ืื ืคืึทืกืืึทืกื ืืจืืืืื (SSDs) ืืขื ืขื ืงืึธื ื ืขืงืืขื ืฆื ืื ืื ืึธ ืฉืืืืข, ืืืึธืก ืืขื ืขื ืืขื ืืฆื ืฆื ืงืึทืฉ ืึธืคื ืืขืืืืื ื ืืึทืื, ืืื ืื ืฉืคึผืืฅ. ืฉืืืืข ืืื ืืขืฉืืคื ืืืจื ืืขืจ ืืขืจืึทื ืืื ืืฉืืคึผืขืจ ืืจืืืืื ืืืึธืก ืฆืืฉืืขืื ืกืืึธืจืืืืฉ ืคึฟืึทืจ ืืืืื ืืงืขืจ ืืขืืืืื ื ืืึทืื. ืงืึทืืฉืื ื ืงืขื ืขื ืืืื ืืขืืืืื ื ืฆืืืืฉื ืืืึทืขืจืก ืืื ืฉืจืืืืืืึทืง ืืึธืืข. ืืจืืืืื ืงืขื ืขื ืืืื ืืื ืึทืืืงืึทืืื ืฆืืืขืืขืื ืืื ืืืืึทืืฉื ืคืื ืึท ืฆืขืืืืืื ื ืึธื ืกืืึธืคึผืคึผืื ื ืื ื ืืฆื ืคืื ืื ืืขืงืข ืกืืกืืขื (ืืึทืืึท ืืืืืจืืืฅ ืืืืืึธืืึทืืืฉ).
ืืงืืจ: opennet.ru