Replace a failed OSD end to end
1 · Prerequisites
Confirm every item is in place before any state change.
- The replacement disk is on the host
- A maintenance window is scheduled
- Capacity headroom is verified
2 · Pre-checks
Read-only diagnostic commands. If any of these don't match expected output, stop and investigate further.
- · The failed OSD is identifiable in ceph osd tree
- · ceph -s reports the cluster is HEALTH_WARN with the OSD as the source
- · journalctl -u ceph-osd@<id> shows the daemon crash
- · smartctl -a /dev/<device> confirms the disk failure
3 · Procedure
Execute each step in order. Verify the expected output of a step before moving to the next.
- 1Mark the OSD out
- 2Wait for backfill: ceph -s reports zero recovery
- 3Stop the daemon: ceph orch daemon stop osd.<id>
- 4Purge the OSD: ceph osd purge osd.<id> --yes-i-really-mean-it
- 5Physically replace the disk
- 6Recreate the OSD: ceph orch daemon add osd <host>
- 7Verify the new OSD is up + in
- 8Monitor backfill completion
4 · Verification
Confirm the procedure actually fixed the problem.
- ✓ceph -s is HEALTH_OK
- ✓The replaced disk appears in the host inventory
- ✓Affected PGs are active+clean
- ✓CRUSH weight is correct
5 · Rollback
If verification fails, undo the procedure in reverse order.
- ↶If the new OSD fails to create: investigate the device
- ↶If recovery stalls: tune recovery settings
- ↶If the new OSD immediately fails: suspect the host
6 · Escalation
When the runbook isn't enough, contact:
- · Hardware vendor
- · Storage team if multiple OSDs are failing
Replace a failed OSD end to end
This runbook covers Replace a failed OSD end to end on a Ceph Tentacle cluster.
When to use
- Active production scenario matching the impact (
data-loss-risk) - The prerequisites are met
Prerequisites
Before starting this runbook, verify each prerequisite has been met. If a prerequisite is not met, resolve it first or escalate.
- The replacement disk is on the host
- A maintenance window is scheduled
- Capacity headroom is verified
Pre-checks
Collect evidence before taking action. Evidence is the proof the runbook worked.
# The failed OSD is identifiable in ceph osd tree
# ceph -s reports the cluster is HEALTH_WARN with the OSD as the source
# journalctl -u ceph-osd@`<id>` shows the daemon crash
# smartctl -a /dev/<device> confirms the disk failure
Procedure
Step 1
Mark the OSD out
Step 2
Wait for backfill: ceph -s reports zero recovery
Step 3
Stop the daemon: ceph orch daemon stop osd.<id>
Step 4
Purge the OSD: ceph osd purge osd.<id> —yes-i-really-mean-it
Step 5
Physically replace the disk
Step 6
Recreate the OSD: ceph orch daemon add osd <host>
Step 7
Verify the new OSD is up + in
Step 8
Monitor backfill completion
Verification
After completing the procedure, verify the result:
# ceph -s is HEALTH_OK
# The replaced disk appears in the host inventory
# Affected PGs are active+clean
# CRUSH weight is correct
Rollback
If the procedure does not produce the expected verification, roll back:
- If the new OSD fails to create: investigate the device
- If recovery stalls: tune recovery settings
- If the new OSD immediately fails: suspect the host
Escalation
If you cannot roll back or the rollback fails, escalate:
- Hardware vendor
- Storage team if multiple OSDs are failing