개요
Rook-Ceph 운영 중 Ceph OSD down 알람 처리가 필요한 상황이 발생할 수 있습니다. Kubernetes 클러스터에서 Rook-Ceph를 운영하다 보면 대시보드에 OSD down 경고가 표시되는 경우가 있습니다. 이 글에서는 osd.3이 host 지정 없이 down 상태로 클러스터에 등록된 원인을 분석하고, 불필요한 OSD를 안전하게 제거하여 클러스터를 정상 상태로 복구하는 과정을 단계별로 정리합니다.
문제 상황
Ceph 대시보드에서 OSD 1 down 알람이 발생하였습니다.

ceph status를 확인하면 osd: 4 osds: 3 up으로 OSD 4개 중 3개만 정상 동작 중이며 HEALTH_WARN 상태입니다. 클러스터 용량(90 GiB) 대비 사용량(7.4 GiB)은 정상이며, 함께 표시된 mon b is low on available space는 Monitor 노드의 디스크 공간 문제로 OSD down 이슈와는 별개입니다.
bash-4.4$ ceph status
cluster:
id: d874b4ea-8deb-4aa3-a3ac-e750180a6a5b
health: HEALTH_WARN
mon b is low on available space
services:
mon: 3 daemons, quorum a,b,c (age 4M)
mgr: b(active, since 4M), standbys: a
mds: 1/1 daemons up, 1 hot standby
osd: 4 osds: 3 up (since 4M), 3 in (since 13M)
data:
volumes: 1/1 healthy
pools: 5 pools, 113 pgs
objects: 20.17k objects, 871 MiB
usage: 7.4 GiB used, 83 GiB / 90 GiB avail
pgs: 113 active+clean
bash-4.4$ ceph osd status
ID HOST USED AVAIL WR OPS WR DATA RD OPS RD DATA STATE
0 k8s-worker-01 2515M 27.5G 0 0 1 90 exists,up
1 k8s-worker-02 2511M 27.5G 0 0 0 0 exists,up
2 k8s-worker-03 2544M 27.5G 0 0 1 16 exists,up
3 0 0 0 0 0 0 autoout,exists,new
원인 분석
ceph osd tree 결과를 보면 osd.3이 host 정보 없이 autoout, exists, new 상태로 등록되어 있습니다. 워커 노드 3대(k8s-worker-01/02/03)에 OSD가 각각 1개씩 정상 배치(osd.0~2)되어 있는 반면, osd.3은 노드에 연결되지 않은 채 클러스터에만 등록된 고아(orphan) 상태입니다. 노드 수보다 OSD 수가 많아진 경우 이런 현상이 발생할 수 있으며, 수동으로 제거해야 합니다.
bash-4.4$ ceph osd tree ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 0.08789 root default -3 0.02930 host k8s-worker-01 0 ssd 0.02930 osd.0 up 1.00000 1.00000 -5 0.02930 host k8s-worker-02 1 ssd 0.02930 osd.1 up 1.00000 1.00000 -7 0.02930 host k8s-worker-03 2 ssd 0.02930 osd.2 up 1.00000 1.00000 3 0 osd.3 down 0 1.00000
처리 절차
불필요한 OSD를 제거할 때는 반드시 CRUSH map 제거 → CephX 인증 키 삭제 → OSD 항목 삭제 순서로 진행합니다. 순서를 지키지 않으면 클러스터에 인증 키나 항목이 잔류하여 이후에도 알람이 발생할 수 있습니다.
# ① CRUSH map에서 제거 (이미 등록되지 않은 경우 아래 메시지가 출력되며 정상) bash-4.4$ ceph osd crush remove osd.3 device 'osd.3' does not appear in the crush map # ② CephX 인증 키 삭제 bash-4.4$ ceph auth del osd.3 # ③ OSD 항목 최종 삭제 bash-4.4$ ceph osd rm 3 removed osd.3
ceph osd crush remove: 데이터 배치 알고리즘인 CRUSH map에서 OSD를 제거합니다. 처음부터 CRUSH map에 등록되지 않았다면 “does not appear” 메시지가 출력되며 이는 정상입니다.ceph auth del: 해당 OSD에 부여된 CephX 인증 키를 삭제합니다.ceph osd rm: 클러스터 OSD 목록에서 항목을 최종 삭제합니다.
결과 확인
OSD 제거 후 ceph osd tree를 다시 확인하면 osd.3이 사라지고 워커 노드당 OSD 1개씩 총 3개가 정상 배치된 것을 확인할 수 있습니다. 이로써 Ceph OSD down 알람 처리가 완료되고 클러스터가 정상 상태로 복구되었습니다.
bash-4.4$ ceph osd tree ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF -1 0.08789 root default -3 0.02930 host k8s-worker-01 0 ssd 0.02930 osd.0 up 1.00000 1.00000 -5 0.02930 host k8s-worker-02 1 ssd 0.02930 osd.1 up 1.00000 1.00000 -7 0.02930 host k8s-worker-03 2 ssd 0.02930 osd.2 up 1.00000 1.00000
Ceph 관련 운영 내용은 아래 포스트도 참고하시기 바랍니다.
- Ceph MDS Pod Anti-Affinity Troubleshoot — node drain 후 MDS 파드 분산 문제 해결
- Ceph 구축 — Rook-Ceph 초기 구축 가이드
- Ceph Storage Class를 활용한 WordPress/MySQL Pod 생성
참고 문서: Rook Ceph OSD Management · Ceph OSD Operations (공식 문서)



