CephXC · Scaling OutScaling Out
Manager placement and redundancy
What you'll learn
- Describe the manager's responsibilities
- Determine an appropriate manager count
- Configure placement
- Handle manager failover
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
The manager handles a great deal that is invisible until it stops: metrics, the dashboard, the orchestrator, and several Ceph operations.
What the manager does
| Responsibility | Effect if unavailable |
|---|---|
| Prometheus metrics endpoint | no monitoring data |
| The dashboard | no web interface |
ceph orch commands | no orchestration |
| PG autoscaler | no automatic PG adjustment |
| Balancer | no rebalancing |
| Device health monitoring | no SMART collection |
rbd_support module | some RBD operations fail |
| Progress reporting | no ceph progress output |
ceph mgr module ls | python3 -c '
import sys,json; d=json.load(sys.stdin)
print("enabled:", d["enabled_modules"])'
Client I/O continues entirely without a manager — the data path does not involve it.
How many to run
| Cluster | Managers |
|---|---|
| Small, non-critical | 2 |
| Production | 2 or 3 |
| Large, with heavy orchestration use | 3 |
| More than 3 | no benefit |
One active, the rest standby.
There is no quorum; standbys are simply ready to take over.
ceph mgr stat
ceph mgr dump | python3 -c '
import sys,json; d=json.load(sys.stdin)
print("active:", d["active_name"])
print("standbys:", [s["name"] for s in d["standbys"]])'
Configuring placement
ceph orch apply mgr --placement="label:mgr"
ceph orch host label add ceph-02 mgr
ceph orch ps --daemon-type mgr
Placement guidance:
on different hosts from each other
ideally in different failure domains
co-located with monitors is common and acceptable
not on hosts under heavy OSD load if avoidable
The last point matters at scale: the metrics endpoint generation is CPU work, and a manager on a saturated OSD host produces slow scrapes.
Failover
The active manager fails
→ the monitors detect it
→ a standby is promoted
→ modules reinitialise
→ the metrics endpoint moves to the new active
ceph mgr fail
ceph mgr stat
| During failover | Effect |
|---|---|
| Metrics | a gap until the new active starts serving |
| Dashboard | briefly unavailable |
| Orchestration | commands fail until promotion completes |
| Client I/O | unaffected |
| Recovery in progress | unaffected |
Failover is typically seconds, and the metrics gap is the visible part.
Quiz
Knowledge check · 4 questions
Q1. Why do managers need no quorum while monitors do?
Q2. Client I/O stops when no manager is available.
Q3. Fix a metrics gap during manager failover.
Ceph metrics disappear entirely for several minutes whenever the active manager fails over. Prometheus targets the manager host by name.
Q4. What stops working when no manager is available?
Passing score: 75%. Answers are checked in this browser.
Production discipline
List every manager host as a Prometheus scrape target — the metrics endpoint moves on failover and a single-target configuration loses all Ceph metrics precisely when they matter. Two managers are adequate; manager count is an availability choice with no quorum arithmetic.
Cross-course references
- Kubernetes: controller manager failover has the same stateless promotion model
- Linux: active-standby services without shared state fail over trivially