Skip to main content
RunBook Academy

CephCXXI · Storage Architecture Decision-MakingStorage Architecture Decision-Making

Ceph on cloud infrastructure: when it is a real choice

Advanced⏱ ~18 mincephcephadm

What you'll learn

  • Distinguish provider-durable volumes from ephemeral instance storage
  • Model cross-availability-zone transfer as a replication cost
  • Map availability zones onto CRUSH failure domains
  • Treat instance replacement as routine OSD replacement

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

Not yet marked complete on this device.

Why this matters in production

Running Ceph on a provider that already replicates your storage means paying for durability twice, and the reasons to do it anyway are real but specific.

What the provider already gives you

Backing storeProvider durabilityCeph adds
Managed block volumereplicated inside the zone, priced accordinglyzone-spanning placement and control
Local instance NVMenone; lost on stop or retirementall of the durability
Managed object servicefull, with its own SLAnothing, unless the S3 semantics differ
Managed file servicefullnothing, unless POSIX behaviour differs
On managed volumes the honest justification is control and portability.
On instance storage it is durability, because there is none otherwise.

The cost shape

Line itemOn-premCloud
Capacitycapital, depreciatedper GB per month, times the replication factor
Replication trafficfree on your own fabriccharged per GB across zones, continuously
Recovery trafficfreecharged, and a host loss generates a lot of it
Power, space, coolingyoursincluded
Hardware refreshevery five yearsnever
Exit costresale valueegress charges on everything
A size 3 pool with one copy per zone sends two zone-crossing copies for
every byte a client writes, forever. That is a recurring line item, not a
migration cost.
# what the cluster is actually moving
ceph osd pool stats
ceph -s | grep -E 'client|recovery'

Failure domains you actually get

ceph osd crush add-bucket az-a datacenter
ceph osd crush add-bucket az-b datacenter
ceph osd crush add-bucket az-c datacenter
ceph osd crush move az-a root=default
ceph osd crush move ceph-01 datacenter=az-a
ceph osd crush rule create-replicated by-az default datacenter
ceph osd crush tree
DomainAvailable in a cloud
Availability zoneyes, and it is the only one that is guaranteed
Racknot exposed; do not model it
Hostyes, but two instances may share a physical host
Power feednot exposed

Instance lifecycle is OSD lifecycle

ceph orch device ls
ceph orch osd rm 14 --replace --zap
ceph orch osd rm status
ceph orch apply osd --all-available-devices
ceph orch ps --daemon-type osd --refresh
On-prem, replacing an OSD is an incident. On instance storage it is a
routine consequence of instance replacement, and it has to be automated
or it will not keep up.

Quiz

Knowledge check · 4 questions

  1. Q1. What makes local instance NVMe a better backing store for Ceph than managed block volumes, from a cost standpoint?

  2. Q2. Cross-zone replication traffic is a migration cost that ends once the cluster is populated.

  3. Q3. Design failure domains for a cloud Ceph cluster.

    Nine instances across three availability zones, each with local NVMe. The deployment currently uses the default host failure domain and a size 3 pool.

  4. Q4. Why does instance replacement have to be automated on a cloud Ceph cluster?

Passing score: 75%. Answers are checked in this browser.

Production discipline

Decide first whether the backing store is provider-durable or ephemeral; that single fact determines whether your replication factor is buying durability or paying for it a second time. Model availability zones as the CRUSH failure domain, since it is the only boundary a provider actually guarantees, and budget the cross-zone transfer that follows.

Cross-course references

  • Kubernetes: node autoscaling that terminates instances is a storage event when storage is local
  • Linux: redundancy layered on redundancy multiplies cost and adds little durability