A filesystem benchmark focused on corruption, snapshots, rebuilds and near-full behavior
I thought this might be useful to people here who run ZFS, btrfs, bcachefs or traditional md/LVM storage.
I maintain modern-fs-benchmark, a benchmark suite focused on behavior that is often missing from simple mkfs + fio comparisons:
- Injected corruption, scrubbing and self-healing
- Degraded operation and rebuild
- Snapshot aging, scaling, deletion and space reclamation
- Near-full and hard-ENOSPC behavior
- Compression, encryption and reflinks
- Fsync tail latency and responsiveness under load
The current matrix contains 26 configurations, including multiple ZFS, btrfs and bcachefs layouts, plus ext4 and XFS over md, LVM and dm-integrity as classic-stack baselines.
One test deliberately corrupts data on one redundant device behind the filesystem, runs a scrub and verifies the file contents. This demonstrates the difference between redundancy that can identify the correct copy through checksums and redundancy that only knows its copies disagree.
Dashboard:
https://bartosz.fenski.pl/modern-fs-benchmark/
Experimental real-hardware results:
https://bartosz.fenski.pl/modern-fs-benchmark/real-hw/
Source and methodology:
https://github.com/fenio/modern-fs-benchmark
An important caveat: the main dashboard uses loop devices on GitHub-hosted VMs. It is useful for correctness results, behavioral differences and trends, but absolute throughput should not be treated as a hardware ranking. The separate hardware dashboard contains three completed runs from a two-NVMe machine.
The source is Apache-2.0 licensed and the result datasets are CC BY 4.0.
Suggestions for additional data-hoarding workloads, failure scenarios and storage layouts are welcome. If an existing test treats a filesystem unfairly, I consider that a benchmark bug.