Crimson Project

Crimson is Ceph's next-generation Object Storage Daemon (OSD), rebuilt from the ground up for fast storage devices, notably NVMe SSDs. By exploiting the random I/O capability and throughput of modern hardware, Crimson aims to deliver exceptional speed and efficiency.

Crimson shipped its first technology preview in the Squid release, and the Tentacle release added SeaStore, Crimson's purpose-built object store, as a technology preview. Both are available today for testing and feedback; they are not yet intended for production.

Read the Crimson guide
Crimson

Built for modern hardware

Crimson is built with SPDK, DPDK, and the C++ Seastar framework, and is designed as a drop-in replacement for the classic OSD: it speaks the RADOS protocol, integrates into existing Ceph clusters, and supports most existing OSD commands.

  • Kernel bypass

    Direct communication with networking and storage devices that support polling, eliminating the overhead of kernel involvement on the I/O path.

  • Shared-nothing architecture

    One thread per core with no cross-core locking: work stays on the CPU core that owns it, minimizing lock contention and context switches.

  • Computational efficiency

    Load balanced across multi-core systems so that each core handles the same volume of I/O with less CPU, scaling with the hardware instead of against it.

Project status

Crimson OSD

Crimson is under active development and not yet at feature parity with the classic OSD.

Currently supports:

  • RADOS operations, including snapshot support
  • Log-based recovery and backfill
  • RBD workloads on replicated pools
  • BlueStore, SeaStore, and CyanStore (memory-based) object store backends
  • Deployment via cephadm
  • Initial scrub support
  • Multi-core messenger, OSD, and object store architecture

Work in progress:

  • Erasure-coded pools
  • Auto-scaling placement groups (splits and merges)
  • Object Gateway (RGW) workloads
  • mClock OSD scheduler
  • Background scrub scheduling
  • Making SeaStore the default object store

SeaStore

SeaStore is Crimson's native object store, developed with the Seastar framework on the same design principles. The storage backend is the major CPU consumer in an OSD, so Crimson can only truly scale with cores if its backend does too. BlueStore remains available within Crimson, and may be retained for HDDs if SeaStore proves unsuited to them.

Currently supports:

  • Most ObjectStore transactional interfaces, including read, write, and clone
  • Most necessary background cleaning tasks
  • Segmented backend optimized for sequential writes
  • Random-block backend optimized for random writes
  • ZNS devices and device tiering
  • Multi-core architecture
  • Profiling through metrics, admin socket commands, and logs

Work in progress:

  • B+ tree performance optimizations (onode, omap, LBA)
  • Reduced write amplification and better internal scheduling
  • More efficient device tiering and disk rebalancing between shards
  • Block-based read checksums
  • Compression and hardware offloading

Testing and CI

The crimson-rados suite gates pull request merges to prevent regressions and runs twice a week, including CBT-driven performance tests.

Ongoing work adds performance review to CI so regressions are caught automatically, with regular comparisons between the classic OSD and Crimson. See recent runs on Pulpito, and browse open issues on the Crimson tracker.

Follow the project

  • Documentation

    The Crimson guide covers current capabilities, deployment with cephadm, and how to bring up a Crimson OSD with each backend.

    Crimson guide
  • Project board

    Development is planned in the open on the Crimson GitHub project board, with issues tracked on the Crimson section of tracker.ceph.com.

    Crimson project board
  • Community

    Discuss Crimson in the #crimson channel on the Ceph Slack, and join the weekly Crimson and SeaStore call listed with the community's virtual meetings.

    Virtual meetings