Skip to content
Go back

Bcachefs in 2026: Ready or Not

By SumGuy 10 min read
Bcachefs in 2026: Ready or Not

You’ve Heard the Hype. Now What?

You’re staring at a fresh drive — maybe two — and wondering if this is finally the year you stop pretending btrfs is stable enough for your NAS, or that ZFS isn’t a licensing headache that requires you to pray to the DKMS gods after every kernel update.

Enter bcachefs. It got merged into Linux 6.7 back in January 2024. Kent Overstreet spent something like a decade building it. The promises are genuinely exciting: Copy-on-Write (CoW), snapshots, compression, multi-device with erasure coding, tiered storage, checksumming — all native, all in-kernel. No DKMS. No out-of-tree modules. Just… there.

And then the drama started.

A Quick Recap of the Drama (Because You’re Going to Google It Anyway)

Shortly after merging, bcachefs hit some turbulence in the kernel development process. There were disagreements between Kent and other kernel maintainers about development practices, patch quality, and whether certain fixes were regression-introducing. It got uncomfortable. There were public mailing list exchanges that made the Linux kernel community look like a tech Twitter thread.

Here’s the thing: none of that drama changes whether the filesystem is useful for your home lab. Kernel politics are real, but they don’t directly correlate to whether your data will survive a power outage. What matters is the actual state of the code, the tooling, and whether anyone besides Kent is poking at it.

The short version for 2026: bcachefs is stable enough for enthusiasts, not production-ready in the “bet your company on it” sense, and genuinely interesting if you know what you’re getting into.

What Bcachefs Actually Does Well

Native Tiered Storage (NVMe + Spinning Rust)

This is the one that makes me actually excited. You can set up a pool where your NVMe SSD acts as a write cache and hot-data tier, while your spinning disk handles cold storage — all without ZFS’s ARC tuning hell or Btrfs’s “please don’t use RAID 5/6” energy.

Terminal window
# Format a tiered pool: NVMe as "foreground" (fast tier), HDD as "background" (slow tier)
bcachefs format \
--label=nvme \
--foreground \
/dev/nvme0n1 \
--label=hdd \
--background \
/dev/sda

Data starts on the fast tier and gets migrated to the slow tier over time by the background migrator. You tune it. You don’t have to hand-place files. That’s genuinely useful for a home media server where your active encode jobs should hit NVMe but your archive of every Linux ISO you’ve downloaded “for research purposes” can live on the HDD.

Compression That Works

Bcachefs supports lz4, gzip, and zstd compression per-filesystem or per-file (via mount options or bcachefs setattr). The performance overhead with lz4 is negligible on modern hardware, and you’ll typically see 1.3–1.8x compression on mixed workloads.

Terminal window
# Mount with zstd compression
mount -t bcachefs -o compression=zstd /dev/nvme0n1 /mnt/pool

You can also set compression on specific directories after the fact:

Terminal window
bcachefs setattr --compression=zstd /mnt/pool/media/

That last part — per-directory compression — is the kind of feature that makes you nod slowly and say “okay, fine, you’ve earned my attention.”

Snapshots and CoW

The snapshot implementation is functional in 2026. It’s not ZFS-level polished (nothing is), but for “I need to snapshot this volume before I do something stupid” use cases, it works:

Terminal window
# Create a subvolume
bcachefs subvolume create /mnt/pool/data
# Snapshot it
bcachefs subvolume snapshot /mnt/pool/data /mnt/pool/data-snap-20260515

Rolling back is a matter of deleting the original and promoting the snapshot, which is… fine. It’s not zfs rollback elegance, but it’s there.

Checksumming on by Default

Every write gets checksummed with crc32c by default (configurable to xxhash or sha256). Silent data corruption gets caught. This alone puts it ahead of ext4 and XFS for anything you care about.

Where Bcachefs Still Struggles

The Tooling Gap

ZFS has zpool, zfs, zdb, a mature scrub ecosystem, and years of battle-tested management tools. Btrfs has btrfs-progs which is well-documented even if the filesystem itself has rough edges.

Bcachefs has… bcachefs and not a lot else. If something goes wrong, your debugging toolkit is the bcachefs CLI and dmesg. That’s workable, but compared to ZFS’s zpool status, zpool scrub, and the wealth of monitoring integrations, you’re going to be spending more time with raw commands.

There are no mature Prometheus exporters. No Grafana dashboards with a star count above 50. If you want observability, you’re building it yourself.

RAID Erasure Coding: Proceed with Caution

Bcachefs has native erasure coding (EC), which is genuinely impressive. It’s not fake striping like btrfs RAID 5/6 — it’s proper EC. But “not fake” doesn’t mean “battle-tested at scale.” The EC implementation is younger than the rest of the filesystem.

For a single-device or mirrored two-device setup, you’re in relatively solid territory. For a five-disk EC array holding your only copy of your photo library? Maybe don’t.

Smaller Community, Fewer Eyes

ZFS’s CoW issues were discovered and fixed over years because thousands of people ran it on real hardware. Bcachefs is running on a fraction of that userbase. That’s not a knock — every filesystem starts somewhere — but it means there are probably bugs in unusual hardware configurations or workload patterns that haven’t been hit yet.

If you’re running a home lab on commodity AMD hardware with bog-standard SATA drives, you’re more likely to be on the well-tested path. If you have some exotic PCIe 5.0 NVMe card and a cursed RAID controller, you might be the first person to hit your specific combination.

A Real Tiered Setup: Start to Finish

Let’s say you have a small NVMe SSD (/dev/nvme0n1, 256GB) and a spinning 2TB HDD (/dev/sda). You want bcachefs to handle tiering automatically.

Terminal window
# Check current partition tables (don't format drives with existing data)
lsblk /dev/nvme0n1 /dev/sda
# Wipe any existing filesystem signatures
wipefs -a /dev/nvme0n1
wipefs -a /dev/sda
# Format as a tiered bcachefs filesystem
# nvme0n1 is the fast foreground tier, sda is the slow background tier
bcachefs format \
--label=fast.nvme \
--foreground \
--durability=1 \
/dev/nvme0n1 \
--label=slow.hdd \
--background \
--durability=1 \
/dev/sda
# Mount it
mkdir -p /mnt/pool
mount -t bcachefs /dev/nvme0n1:/dev/sda /mnt/pool

That : in the mount command is intentional — you list all member devices separated by colons.

Add it to /etc/fstab for persistence:

/dev/nvme0n1:/dev/sda /mnt/pool bcachefs defaults 0 0

Check status:

Terminal window
bcachefs fs usage /mnt/pool

You’ll see per-tier usage stats. Data written starts on the NVMe tier and migrates down automatically as it ages. The migration daemon runs in-kernel — no cron job needed.

Enabling Compression and Checksums

These are on by default during format, but you can be explicit:

Terminal window
bcachefs format \
--label=fast.nvme --foreground /dev/nvme0n1 \
--label=slow.hdd --background /dev/sda \
--compression=lz4 \
--metadata_checksum=crc32c \
--data_checksum=crc32c

For archival data where CPU is cheap and compression matters, swap lz4 for zstd:

Terminal window
bcachefs format \
--label=fast.nvme --foreground /dev/nvme0n1 \
--label=slow.hdd --background /dev/sda \
--compression=zstd

Bcachefs vs ZFS vs Btrfs: The Honest Comparison

FeatureBcachefsZFSBtrfs
In-kernel (no DKMS)Yes (Linux 6.7+)No (OpenZFS DKMS)Yes
Native tieringYes, first-classARC/L2ARC (RAM-centric)No
SnapshotsYes, functionalExcellent, matureYes, but rough
RAID 5/6EC (young)Yes, matureAvoid in production
Tooling maturityLowHighMedium
Community sizeSmallLargeMedium
StabilityExperimental-ishBattle-testedMixed
LicenseGPLCDDL (DKMS on Linux)GPL

ZFS wins on tooling and maturity. Full stop. If you have RAM (ZFS loves RAM), if you’re comfortable with DKMS, and if you want the most production-ready CoW filesystem on Linux, ZFS is still the answer for anything that keeps you up at night.

Btrfs wins if you want something in-kernel with snapshots and you don’t mind its quirks. Btrfs RAID 1 (mirroring) is reliable. Btrfs RAID 5/6 is still a “here be dragons” situation in 2026.

Bcachefs wins if you want native tiering without ZFS’s DKMS tax, you’re running Linux 6.7+, and you’re comfortable being an early adopter. It also wins if you specifically need the tiering model it provides — NVMe + HDD in one pool with automatic migration is a legitimately useful home lab feature.

Kernel Version Requirements

You need Linux 6.7 or newer. That’s been out since January 2024, so by 2026 you’re fine on any modern distro tracking the stable kernel:

If you’re running Ubuntu 22.04 with its ancient 5.15 LTS kernel: you can use the Ubuntu mainline kernel PPA, but that’s a support headache you’re signing up for. Honestly, just upgrade the distro.

Terminal window
# Check your kernel version
uname -r
# Check if bcachefs module is available
modinfo bcachefs 2>/dev/null && echo "bcachefs available" || echo "need newer kernel"

What I’d Actually Use It For (And What I Wouldn’t)

Good use cases:

Bad use cases:

The Bottom Line

Bcachefs in 2026 is genuinely interesting and more usable than it was at merge time. If you’re a home lab enthusiast who tracks kernel versions, reads changelog notes for fun, and has a backup strategy that isn’t “it’s fine, probably,” go play with it. The tiered storage model is legitimately well-designed and the in-kernel advantage is real.

If you want something that works without fuss, has mature tooling, and has been tested on a million servers — ZFS is still your filesystem. The DKMS situation is annoying but manageable, and the ecosystem is miles ahead.

The honest answer to “ready or not” is: ready for enthusiasts who know what they’re accepting, not ready for anyone who needs to explain a data loss incident to someone else. That’s not a knock — it’s where every good filesystem starts. Come back in two years and this table is going to look different.

Until then, keep a backup of your backups. Your future self, also awake at 2 AM, will appreciate it.


Share this post on:

Send a Webmention

Written about this post on your own site? Send a webmention and it'll show up above once verified.


Previous Post
NixOS First Impressions for Pragmatists
Next Post
tmux vs Zellij vs Screen: Pick Your Multiplexer

Discussion

Powered by Garrul . Sign in with GitHub or Google, or post anonymously.

Related Posts