File Systems Unfit as Distributed Storage Backends: Lessons from 10 Years of Ceph Evolution
SOSP ’19, October 27–30, 2019, Huntsville, ON, Canada.
Abutalib Aghayev*, Sage Weil†, Michael Kuchnik*, Mark Nelson†, Gregory R. Ganger*, George Amvrosiadis** Carnegie Mellon University
† Hewlett Packard Enterprise
For a decade, the Ceph distributed file system followed the conventional wisdom of building its storage backend on top of local file systems. This is a preferred choice for most distributed file systems today because it allows them to benefit from the convenience and maturity of battle-tested code. Ceph’s experience, however, shows that this comes at a high price. First, developing a zero-overhead transaction mechanism is challenging. Second, metadata performance at the local level can significantly affect performance at the distributed level. Third, supporting emerging storage hardware is painstakingly slow.
Ceph addressed these issues with BlueStore, a new backend designed to run directly on raw storage devices. In only two years since its inception, BlueStore outperformed previous established backends and is adopted by 70% of users in production. By running in user space and fully controlling the I/O stack, it has enabled space-efficient metadata and data checksums, fast overwrites of erasure-coded data, inline compression, decreased performance variability, and avoided a series of performance pitfalls of local file systems. Finally, it makes the adoption of backwards-incompatible storage hardware possible, an important trait in a changing storage landscape that is learning to embrace hardware diversity.
FULL PAPER: pdf