Bcachefs, a modern copy-on-write Linux filesystem that supports encryption, snapshots, compression, and other advanced features designed to compete with filesystems such as Btrfs and ZFS, has hit a major milestone. In a blog post, project lead Kent Overstreet says the filesystem is no longer considered experimental.
The news arrived alongside the release of Bcachefs 1.38.6, which focuses on performance improvements.
“We’re no longer experimental. I took the label off the website – a few months ago, I think, based on my usual “the incoming bug reports are slowing down and looking a lot less serious and easy to get through than they were”. Consider this the belated official announcement :)”
However, this does not mean Bcachefs is ready for all production systems yet. It simply means the project now sees the filesystem as past its experimental phase. Still, for those following Bcachefs, this is an important change. Additionally, version 1.38.6 also highlights two main areas of recent development: Reconcile and erasure coding.
Reconcile is a system for managing devices and data. It keeps track of where data is, where it should be, and what needs to change when filesystem options or device states are updated. In practice, this lets Bcachefs move data in the background, re-replicate it, or make changes like enabling erasure coding without needing users to move data manually.
Erasure coding is no longer considered experimental either. Bcachefs uses Reed-Solomon coding, which is also used by RAID5 and RAID6. The project says its strategy avoids the usual RAID write hole. Instead of updating existing stripes directly, new writes are first replicated and then turned into stripes in the background.
This release also includes many performance improvements. Overstreet says that benchmarking and profiling led to over 200 patches in the core btree code, journal, and filesystem code. Some key changes include a faster transaction commit path, new ways for the btree code to avoid lock contention, and a lockless journal flush path.
On a single-device setup, Overstreet reports that Bcachefs 1.38.6 hit 16.5 GB/s in dbench tests on a 48-core AMD EPYC 9454 system, while XFS reached 16 GB/s in the same test. With extra patches not in this release, Bcachefs reportedly reached 19 GB/s. In fio 4K random write tests, Bcachefs managed 700,000 IOPS on the same hardware, compared to 1 million IOPS for XFS.
Work is also happening with Rust. The Bcachefs userspace code has already been rewritten in Rust, and the team plans to add Rust bindings to the DKMS module next. At first, Rust will be used for unit and performance tests, and treated as an optional dependency before any bigger changes to the kernel side.
As you probably know, following the drama between Overstreet and Torvalds, Bcachefs is no longer included in the kernel and is now shipped as a DKMS module as of Linux 6.18. The site lists support for Linux 6.16 and newer, with packaging notes for Gentoo, Void, NixOS, Arch, Debian, Ubuntu, Fedora, and openSUSE.
So, is Bcachefs now stable? According to the project, the experimental label is gone. However, if you plan to use it for important data or business-critical systems, it’s still wise to be careful. Filesystems build trust over time, across many workloads, systems, and failure situations.
Even so, Bcachefs 1.38.6 is more than just another release, and the hope is that future versions will restore built-in Bcachefs support in the Linux kernel by default.
