CephXI · OSD ArchitectureOSD Architecture
BlueStore is the only backend — what that means
What you'll learn
- Explain why BlueStore replaced FileStore
- Describe how BlueStore uses a raw device
- Identify the operational differences from a filesystem-backed OSD
- Recognise legacy documentation that assumes FileStore
Prerequisites
None — start here.
Verified against Ceph Tentacle 20.2.x · Ceph Squid 19.2.x (supported previous) · cephadm matches the verified Ceph release · podman 4.x · csi-rbd and csi-cephfs current · RBD / CephFS / RGW current (matches Ceph release) · Linux kernel 5.15+ (5.10 minimum) · Ubuntu 24.04 LTS (Ceph host baseline) · Debian 12 (Bookworm) (Ceph host baseline) · Rocky Linux / RHEL / AlmaLinux 9.x (Ceph host baseline) · Proxmox VE 9.x (cross-course integration) · Kubernetes 1.31+ (cross-course integration) · 2026-08-18
Why this matters in production
BlueStore is the only OSD backend in current Ceph. FileStore was
deprecated and has been removed, so any documentation describing
journals on separate partitions, XFS tuning for OSDs, or
filestore_* settings is describing a system that no longer exists.
What FileStore did and why it was replaced
FileStore stored objects as files on XFS, with a separate journal for write ordering. That meant:
- Every write went to the journal and then to the filesystem — double writes for all data.
- The filesystem’s own metadata operations sat between Ceph and the device.
- POSIX semantics that Ceph did not need were being paid for anyway.
- Extended attributes had size limits requiring workarounds.
BlueStore removes the filesystem. Object data goes directly to the raw block device; object metadata goes to RocksDB.
FileStore: Ceph → journal → XFS → block device
BlueStore: Ceph → block device (data)
→ RocksDB (metadata)
What BlueStore gives
- No double write for large writes. Data goes straight to a freshly allocated extent.
- Checksums on everything. Every read is verified; corruption is detected rather than returned.
- Efficient small writes through deferred writes into the RocksDB WAL.
- Optional compression, per pool.
- Full control of allocation, so Ceph decides layout rather than a filesystem.
The layout on disk
An OSD occupies:
- block — the main data device, holding object data and, by default, everything else.
- block.db — optional separate device for RocksDB.
- block.wal — optional separate device for the write-ahead log.
FSID=$(ceph fsid)
ceph-volume lvm list /dev/sdb
ls -l "/var/lib/ceph/$FSID/osd.12/"
If block.db is not specified, RocksDB lives on the main device.
That is fine on NVMe and costly on HDD.
Spotting legacy documentation
If a guide mentions any of these, it predates BlueStore and should not be followed:
filestore_xattr_use_omap,filestore_max_sync_interval- creating a journal partition with
ceph-disk - formatting an OSD device with XFS
ceph-diskat all — it was replaced byceph-volume
Quiz
Knowledge check · 4 questions
Q1. What was the main efficiency problem with FileStore that BlueStore solves?
Q2. A BlueStore OSD device can be mounted and browsed to inspect the objects it holds.
Q3. A team is following a guide that instructs them to create a journal partition and format the OSD device with XFS. Assess.
New cluster build on current Ceph. The guide being followed is a well-regarded blog post from several years ago. It instructs creating a 10 GB journal partition on SSD per OSD, formatting the data device with XFS, and using ceph-disk to prepare the OSDs. The team reports that ceph-disk does not exist on their hosts.
Q4. Explain the deferred write path and why the threshold differs between HDD and SSD.
Passing score: 75%. Answers are checked in this browser.
Production discipline
Check the Ceph version against the date of any documentation before
following it — journals, XFS formatting, ceph-disk, and
filestore_* settings all describe a backend that has been removed,
and adapting such a guide step by step will not converge. Use
ceph-volume lvm list and ceph-bluestore-tool show-label for device
inspection rather than expecting to mount anything. And give HDD OSDs
a separate fast device for WAL and DB, since the deferred write path
otherwise competes with data I/O on the same spindle.
Cross-course references
- Ceph: Part XII (BlueStore) for the internals in depth.
- Ceph: Part III (Storage Hardware) for WAL and DB device selection.
- Ceph: Part LVII (Replacing Failed OSDs) for ceph-volume in practice.