Bcachefs Limitations¶
Understanding current limitations is essential before using bcachefs.
Experimental Status¶
Not Production Ready
Bcachefs is explicitly marked as experimental by its developers. Data loss bugs have occurred and may occur again.
What This Means¶
- Filesystem format may change between versions
- Upgrade paths are not guaranteed
- Recovery tools are less mature than ZFS/ext4
- Limited testing compared to established filesystems
Recommended Precautions¶
- Always maintain backups - on a different filesystem type
- Test upgrades - in non-production environments first
- Monitor for errors - check
dmesgand logs regularly - Keep snapshots - for quick recovery from corruption
Known Issues¶
RAID5/6 - DO NOT USE¶
Data Loss Risk
RAID5 and RAID6 modes are explicitly marked "DO NOT USE YET" by bcachefs developers. They contain known bugs that can cause data loss.
Use RAID1 (mirroring) instead:
# Safe: RAID1 mirroring
bcachefs format --replicas=2 /dev/sda /dev/sdb
# UNSAFE: RAID5/6
# bcachefs format --data_checksum=... --erasure_code # DON'T DO THIS
No Swap File Support¶
Swap files on bcachefs are not supported:
# This will NOT work
fallocate -l 8G /mnt/bcachefs/swapfile
mkswap /mnt/bcachefs/swapfile
swapon /mnt/bcachefs/swapfile # Fails
Workarounds:
- Use a swap partition on a different filesystem
- Use zram for swap
- Use a swap file on ext4/xfs
32-bit Systems¶
Bcachefs has limited testing on 32-bit systems. Some features may not work correctly or may have reduced limits.
Large Filesystem Limits¶
While bcachefs theoretically supports very large filesystems, real-world testing at extreme scales is limited.
DKMS Requirements¶
Since bcachefs is now external to the kernel:
Build Requirements¶
- Kernel headers must be installed
- Build tools (gcc, make) must be available
- Recompilation needed after kernel updates
Boot Issues¶
If the DKMS module fails to build:
- System may not mount bcachefs filesystems at boot
- Root on bcachefs requires initramfs with the module
- Secure Boot adds signing complexity
Compatibility¶
- May break with kernel updates
- Development kernel features sometimes required
- Not available on all distributions
Missing Features¶
Compared to ZFS¶
| Feature | ZFS | Bcachefs |
|---|---|---|
| Send/Receive | Full support | Basic/Partial |
| Deduplication | Supported | Not yet |
| Quotas | Full support | Planned |
| Native encryption | Dataset-level | Whole filesystem |
| Pool expansion | Add vdevs | Add devices |
| Stable RAID | Yes | RAID1 only |
| Boot support | Well tested | Limited |
Compared to Btrfs¶
| Feature | Btrfs | Bcachefs |
|---|---|---|
| In-kernel | Yes | No (DKMS) |
| Send/Receive | Full support | Basic |
| Quotas | Supported | Planned |
| Stable RAID | RAID1/10 | RAID1 only |
| Defragmentation | Supported | Limited |
Recovery Limitations¶
Fsck Maturity¶
The bcachefs fsck tool is less mature than ext4's e2fsck or ZFS's zpool scrub:
Data Recovery Tools¶
Third-party recovery tools (TestDisk, PhotoRec) have limited bcachefs support.
Forensics¶
Forensic tools and documentation for bcachefs are minimal.
Performance Considerations¶
Write Amplification¶
Copy-on-write can cause write amplification with certain workloads:
- Random small writes
- Database workloads
- Journaling applications on top of bcachefs
Fragmentation¶
Over time, bcachefs can become fragmented:
- No mature defragmentation tool yet
- Rebalancing helps but has limits
- May need to copy data off and back for severe fragmentation
When NOT to Use Bcachefs¶
| Scenario | Recommendation |
|---|---|
| Production server | Use ZFS or ext4 |
| Root filesystem | Use ext4 or XFS |
| Database storage | Use XFS or ZFS |
| Critical data (only copy) | Use ZFS with replication |
| NAS appliance | Use ZFS |
| Enterprise deployment | Wait for maturity |
Safe Use Cases¶
| Scenario | Notes |
|---|---|
| Secondary data with backups | Safe to experiment |
| Development/testing | Good for learning |
| Media storage (with backup) | Compression useful |
| Non-critical archives | Checksums valuable |
Monitoring for Problems¶
Watch for issues:
# Check kernel logs
dmesg | grep -i bcachefs
# Monitor filesystem status
bcachefs fs usage /mnt/data
# Run periodic scrubs
bcachefs data scrub /mnt/data
Set up alerts for:
- Checksum errors
- Device failures
- Unusual space consumption
- Kernel warnings