LinuxLX · Distributed Storage ConceptsCeph
Ceph architecture intro - the modern distributed storage
What you'll learn
- Describe Ceph architecture
- Explain RADOS, OSDs, MONs, MDS
- Recognise Ceph use cases
- Choose Ceph over alternatives
Prerequisites
Verified against Ubuntu 24.04 LTS · Debian 12 (Bookworm) · RHEL 9.x · Rocky Linux 9.x · AlmaLinux 9.x · Linux kernel 6.1 LTS / 6.6 LTS · systemd 255+ · OpenSSH 8.7p1 (RHEL 9) / 9.6p1 (Ubuntu 24.04) · nftables 1.0.x · chrony 4.x · Pacemaker 2.1.x · Corosync 3.1.x · 2026-08-09
Ceph is the modern open-source distributed storage system. It provides block, object, and file storage with no single point of failure. This lesson covers the architecture.
RADOS
RADOS (Reliable Autonomous Distributed Object Store) is the core of Ceph. It provides:
- Object storage: data is stored as objects.
- Replication: each object is replicated across OSDs.
- Self-healing: when an OSD fails, the data is re-replicated.
- CRUSH: the algorithm that maps objects to OSDs.
RADOS is the foundation for the other Ceph services (RBD, RGW, CephFS).
Components
| Component | Role | Count |
|---|---|---|
| MON (monitor) | Cluster state, consensus | 3 or 5 (odd) |
| OSD (object storage daemon) | Stores objects on a disk | Many (one per disk) |
| MDS (metadata server) | CephFS metadata | 1-3 for HA |
| MGR (manager) | Cluster management, metrics | 1-3 for HA |
| RGW (rados gateway) | S3-compatible object API | 1-3 for HA |
Block storage with RBD
RBD (RADOS Block Device) is block storage over RADOS:
- Create a RBD image.
- Map it to a node.
- Use it like a local disk (filesystem, mount).
rbd create --size 10G mypool/myimage
rbd map mypool/myimage
# /dev/rbd0 is the block device
mkfs.xfs /dev/rbd0
mount /dev/rbd0 /mnt
RBD supports snapshots, clones, and replication. Used for VM disks and database storage.
Object storage with RGW
RGW (RADOS Gateway) is an S3-compatible object API:
- Create buckets, upload objects.
- Compatible with the AWS S3 API.
- Used for application object storage.
# Configure a user
radosgw-admin user create --uid=alice --display-name="Alice"
radosgw-admin key create --uid=alice --key-type=s3 --access-key=...
# Use with s3cmd or any S3 client
s3cmd --access_key=... --secret_key=... mb s3://mybucket
File storage with CephFS
CephFS is a POSIX filesystem over RADOS:
- MDS handles metadata.
- OSDs handle data.
- Mount via kernel client or FUSE.
# Mount
mount -t ceph <mon1>:6789:/ /mnt/cephfs -o name=admin,secret=...
# Or via ceph-fuse
ceph-fuse /mnt/cephfs
When to use Ceph
- Block storage for VMs (RBD).
- Object storage for applications (RGW / S3).
- Distributed filesystem (CephFS).
- Large-scale (exabytes possible).
- Multi-datacenter.
For smaller clusters, Ceph may be overkill. Use SAN or NFS for tens of hosts. Ceph is for hundreds to thousands.
Knowledge check
Knowledge check · 3 questions
Q1. What is RADOS?
Q2. Ceph scales to exabytes.
Q3. Which of the following are valid Ceph components? Select all that apply.
Passing score: 75%. Answers are checked in this browser.