Bcachefs

Bcachefs是一种用于Linux操作系统的写时复制（COW）文件系统。它由首席开发者Kent Overstree在2015年发布。2022年12月，Bcachefs的开发者宣布Bcachefs达到稳定状态。2023年10月，Bcachefs在Linux 6.7中合并到Linux内核主线。但於2025年11月，Linux內核6.18版移除Bcachefs。Bcachefs的开发者希望实现与ZFS和Btrfs类似的现代特性以及ext4和XFS的速度和性能。

特征
Bcachefs具有缓存支持， 支持使用ChaCha20和Poly1305算法进行全文件系统加密，支持LZ4、gzip和Zstandard算法的透明压缩，支持文件系统子卷快照，CRC-32C和64位校验和。它可以跨越块设备，整合了RAID功能。

Bcachefs早期版本提供所有Bcache的功能，即实现了Linux的块层缓存系统，Bcachefs与Bcache共享约80%的代码。但截至2021年12月，块层缓存功能已从Bcachefs删除。

在数据结构层面，Bcachefs使用像许多其他现代文件系统一样的B树，但节点大小很大，默认为256 KiB。这些节点内部是日志结构的，形成混合数据结构，减少了更新时重写节点的需求。快照不是通过克隆COW树来实现的，而是通过向文件系统对象添加版本号来实现的。COW特性和桶分配器使RAID实现既没有写洞也没有IO碎片化。

历史
Bcachefs 的主要开发者是 Kent Overstreet，他也是 Bcache 的开发者。Overstreet 将 Bcache 描述为 Bcachefs 的构想“原型”，并计划用 Bcachefs 取代 Bcache。Overstreet 表示，Bcachefs 的开发始于 Bcache 开发者意识到其代码库“正在演变成一个完整的通用 POSIX 文件系统”，且其中“蕴含着一条通向简洁优雅设计的可能方向”。在 Bcache 于 2013 年并入 Linux 内核主线后，Overstreet 离开 Google，开始全职投入 Bcachefs 开发。

经过数年无资金支持的开发，Overstreet 于 2015 年正式发布了 Bcachefs，当时他称代码“基本上已经实现了所有功能”，并邀请测试人员和贡献者参与。他希望将其打造成一个既像ZFS和Btrfs一样具有丰富现代特性 ，又像ext4和XFS一样性能优秀的高级文件系统。 截至 2017 年，Overstreet 通过 Patreon 获得 Bcachefs 开发所需的资金支持。 

2018 年中，磁盘格式已经定形。 Bcachefs的开发者已经提交了补丁进行审核，以便将Bcachefs纳入Linux内核主线，但尚未被接受。 

至 2019 年中，Bcachefs 的预期功能已经全部完成，相关的补丁也已提交至LKML等待同行评审。   2023 年 10 月，Bcachefs 被合并到 Linux 6.7 内核中 ，该版本于 2024 年 1 月正式发布。  

2025年8月 林纳斯·托瓦兹 將Bcachefs狀態更改為『外部維護』，這是Linux内核首次使用這個狀態。

 参考文献 

 外部链接 


Category:2015年软件
Category:壓縮式檔案系統
Category:Linux内核支持的文件系统