Trying Out & Benchmarking Bcachefs On Linux 6.7

Written by Michael Larabel in Software on 3 November 2023 at 10:59 AM EDT. Page 1 of 4. 87 Comments.

The biggest surprise this week so far with the Linux 6.7 merge window has been the landing of the Bcachefs file-system. Here is an early look at Bcachefs with Linux 6.7 and some preliminary benchmarks.

Bcachefs has long been in development by Kent Overstreet as a new open-source file-system born out of the Linux kernel's block cache code. For about a decade now it's been in the works as a modern copy-on-write file-system with aims to compete with the likes of Btrfs and ZFS. Bcachefs supports advanced features such as snapshots, compression, erasure coding, native multiple device support, data and metadata checksumming, and much more. Those unfamiliar with Bcachefs can learn more via the project site at bcachefs.org.

Bcachefs CONFIG_BCACHEFS_FS

I initially was benchmarking Bcachefs back in 2018 and then looked at it again in 2019 as the last time checking it out. But with it finally being mainlined I was eager to see how it was working out and performing against the more mature Linux file-system options.

After it was merged I built a fresh Linux Git build with the Bcachefs file-system driver enabled. I also built bcachefs-tools from Git. For the purposes of this initial testing it was done on a single secondary NVMe SSD on an Ubuntu 23.10 host with the Linux Git kernel and bcachefs-tools Git.

Bcachefs error

With my initial configuration it was initially a bit rough... When making the Bcachefs file-system and trying to mount it, ultimately I would get "Numerical result out of range" errors... Hrmm. Bcachefs "numerical result out of range" errors didn't readily turn up on Google. I tried a few different combinations like with different partition setups and other options, but ultimately was stuck with this "numerical out of range" errors each time regardless of what I tried.

Bcachefs numerical result out of range error

It was surprising to see an immediate show-stopping issue given I tested Bcachefs years ago and would be surprised to see it mainlined if so broken. This was done with a Micron 7450 Max 3.2TB U.3 NVMe SSD. The same drive worked fine with various other Linux file-systems, but I decided to just try out a different SSD.

Bcachefs setup

When replacing the Micron 7450 Max 3.2TB NVMe SSD with a Solidigm P44 Pro SSD 2TB, everything "just worked" fine this time and without any "numerical result out of range" errors. An odd and concerning issue but for the purposes of this testing decided to just proceed running with the Solidigm P44 Pro instead.

With the single Solidigm P44 Pro I then proceeded to run benchmarks of Bcachefs up against EXT4, F2FS, Btrfs, and XFS. Each time all the default mount options were used of each file-system and freshly formatted each time on the P44 Pro for the respective file-system. All benchmarks were carried out on the same system and using this week's Linux 6.7 Git kernel build. The system was based on the AMD Ryzen 9 7950X with the ASUS ROG STRIX X670-E GAMING WIFI motherboard, 2 x 16GB DDR5-6000 memory, and Samsung 980 PRO 2TB as the OS drive and the 2TB Solidigm P44 Pro as the benchmarking drive.

If there is sufficient interest from readers, as follow-up articles may be multi-disk testing and looking at other advanced features of Bcachefs. But for today's article and just getting an idea where this experimental file-system is currently at, it was a single disk and testing defaults for some sane representation.


Related Articles