Skip to content
Crimson, Ceph's own Seastar rewrite of the OSD with SeaStore, against croit FlashStore, a Rust rewrite with its own store

FlashStore Against Crimson: Two Rewrites Of The Same OSD

Crimson is Ceph’s own rewrite of the OSD, in C++ on the Seastar framework, with a new native store called SeaStore; FlashStore is croit’s rewrite, in Rust, with a store of its own. Both are in preview and both are aimed at NVMe and fast networks. This compares them as Ceph 21.2.0 Umbrella ships Crimson, from Ceph’s source and documentation and croit’s ceph-rust snapshot: where each comes from and under what licence, why Rust meets the Five Eyes memory-safety guidance and C++ does not, why Crimson needs its own pools and an experimental flag while FlashStore drops into existing pools, why Umbrella has no way to turn an existing pool into a Crimson pool so the data has to be copied, what each tells the monitor at boot, Seastar reactors against pinned polling cores, the fact that a default Crimson OSD still runs BlueStore, SeaStore’s onode, OMAP and LBA trees against FlashStore’s one tree per shard, the order each commits a write in, SeaStore’s segment cleaner, and what hardware and pools each will take.

11th November 2026 Â· 20 min Â· 4679 words Â· Damien Dye
Umbrella BlueStore, RocksDB on BlueFS on any drive, against croit FlashStore, a copy-on-write B+tree and WAL per core on NVMe with power-loss protection

FlashStore Against Umbrella BlueStore: What croit Changed Under The OSD

croit’s ceph-rust is a clean-room Rust rewrite of the Ceph OSD with its own object store, FlashStore, in public preview since 9th November 2026. This puts it side by side with BlueStore exactly as Ceph 21.2.0 Umbrella ships it, read from both projects’ source and documentation: what is in the repository and under which licences, where each store keeps its metadata, how a 4 KiB write and a write under 4 KiB reach the drive in each, Umbrella’s thread pools against FlashStore’s one thread per core, why FlashStore makes power-loss protection a hard requirement, what it will not run on, why it tells your monitors it is BlueStore, which BlueStore options it honours and which it ignores, and why the only way between the two is backfill.

11th November 2026 Â· 20 min Â· 4665 words Â· Damien Dye