Bcachefs
From Wikipedia, the free encyclopedia
| Developer(s) | Kent Overstreet |
|---|---|
| Introduced | 21 August 2015 |
| Structures | |
| Directory contents | Hybrid B+ tree |
| File allocation | Extents |
| Bad blocks | None recorded |
| Features | |
| Dates recorded | modification (mtime), attribute modification (ctime), access (atime), create (crtime) |
| Attributes | Extended attributes |
| File system permissions | POSIX (+ ACL in xattrs) |
| Transparent compression | Yes |
| Transparent encryption | Yes |
| Copy-on-write | Yes |
| Other | |
| Supported operating systems | Linux |
| Website | bcachefs |
Bcachefs is a copy-on-write (COW) file system for Linux-based operating systems. It is intended to compete with the modern features of ZFS or Btrfs.
It was first announced it in 2015, and it was added to the Linux kernel beginning with 6.7 in 2024.[1][2] In June 2025, Linus Torvalds announced bcachefs would be ejected from the kernel as a result of repeated violations of kernel development guidelines.[3][4] In August 2025, bcachefs status was changed from 'Supported' to 'Externally maintained'.[5] As of late September 2025, Linus Torvalds has removed all Bcachefs code from the Linux Kernel, beginning with version 6.18.[6] It is now available as an external module.
Stability
Bcachefs is a copy-on-write (COW) file system for Linux-based operating systems.[7] Features include caching,[8] full file-system encryption using the ChaCha20 and Poly1305 algorithms,[9] native compression[8] via LZ4, gzip[10] and Zstandard,[11] snapshots,[8] CRC-32C and 64-bit checksumming.[7] It can span block devices, including in RAID configurations.[9]
Earlier versions of Bcachefs provided all the functionality of Bcache, a block-layer cache system for Linux, with which Bcachefs shares about 80% of its code.[12] As of December 2021, the block-layer cache functionality has been removed.[11]
On a data structure level, bcachefs uses B-trees like many other modern file systems, but with an unusually large node size defaulting to 256 KiB. These nodes are internally log-structured, forming a hybrid data structure, reducing the need for rewriting nodes on update.[13] Snapshots are not implemented by cloning a COW tree, but by adding a version number to filesystem objects.[14]
The COW feature and the bucket allocator enables a RAID implementation which is claimed to not suffer from the write hole nor IO fragmentation. On the other hand, the bucket allocator necessitates the use of a copying garbage collector for dealing with mostly-empty buckets.[11]
Bcachefs describes itself as "working and stable, with a small community of users".[15] When discussing Linux 6.9-rc3 on April 7, 2024, Linus Torvalds touched on the stability of bcachefs, saying "if you thought bcachefs was stable already, I have a bridge to sell you",[16] and in August 2024 that "nobody sane uses bcachefs and expects it to be stable".[17]
In August 2024, the Debian maintainer of bcachefs-tools, a package providing "userspace tools and docs", orphaned the package, questioning its long term supportability.[18] The maintainer further commented in a blog post that: "I'd advise that if you consider using bcachefs for any kind of production use in the near future, you first consider how supportable it is long-term, and whether there's really anyone at all that is succeeding in providing stable support for it."[19]