고가용성(HA) 및 장애 복구
7️⃣ 고가용성(HA) 및 장애 복구
Ceph는 설계 자체가 고가용성과 자가 복구(Self-Healing)를 중심으로 되어 있습니다.
이 장에서는 Ceph의 핵심 컴포넌트인 **Monitor(MON)**와 OSD의 이중화 구조부터, 장애 복구 시나리오, 상태 확인 명령어, Dashboard를 통한 모니터링까지 다룹니다.
1. Monitor 및 OSD의 이중화
📌 구조 개요
Ceph 클러스터는 기본적으로 다음과 같은 구성으로 이중화됩니다:
- MON(Monitor): 클러스터 상태를 관리하며, 홀수 개(보통 3개 이상)를 권장
- OSD(Object Storage Daemon): 데이터를 저장하며, 여러 개의 디스크에 분산됨
- Mgr: 모니터링/자동화 및 Dashboard 제공
📊 아키텍처 예시
graph TD; subgraph Ceph Cluster MON1[Monitor 1] --- MON2[Monitor 2] --- MON3[Monitor 3] MGR1[Manager] OSD1[OSD 1] --> Disk1 OSD2[OSD 2] --> Disk2 OSD3[OSD 3] --> Disk3 end Client[Pod or PVC] --> MON1
- MON이 하나 죽어도 과반수가 남아있으면 클러스터 정상 유지
- OSD가 하나 죽어도 복제된 데이터 덕분에 서비스 지속 가능
2. OSD Failure 시 자동 복구 시나리오
💥 장애 발생 예시
- 디스크가 물리적으로 고장
- OSD Pod Crash
- 노드 자체 장애
🔄 복구 흐름도
sequenceDiagram participant Node1 as Node (OSD1) participant Node2 as Node (OSD2) participant MON as Ceph Monitor participant MGR as Ceph Manager Node1->>MON: Heartbeat 끊김 MON->>MGR: OSD1 DOWN 알림 MGR->>Ceph: 데이터 복제 재조정 (Backfill/Recovery) Ceph->>OSD2: 다른 OSD에서 데이터 복제 시작
✅ Ceph는 PG 단위로 데이터를 다시 재배치하여 복제 수를 유지합니다.
3. Ceph Health 체크 (ceph status
, ceph health
)
🩺 주요 명령어
# 클러스터 전체 상태 확인
ceph status
# 간단한 헬스 코드 확인
ceph health
# OSD 상태 확인
ceph osd tree
# PG 상태 확인
ceph pg stat
📘 예시 출력
cluster:
id: fdf7c1c8-xxxx-xxxx-xxxx-xxxxxxxxxxxx
health: HEALTH_WARN
1 osds down
Degraded data redundancy: 1 pg undersized
services:
mon: 3 daemons, quorum a,b,c
mgr: active (xyz), standbys: none
osd: 3 osds: 2 up, 3 in
🔍 HEALTH_WARN, HEALTH_ERR 등 다양한 상태를 통해 실시간 감지가 가능
4. Ceph Dashboard를 통한 모니터링 및 알림 설정
📊 Dashboard 접속
Ceph는 Web UI를 기본 제공합니다.
# Enable Dashboard
ceph mgr module enable dashboard
# Admin 계정 생성
ceph dashboard set-login-credentials admin password
# HTTPS 대시보드 활성화 (Self-Signed SSL)
ceph dashboard create-self-signed-cert
# 포트 확인
ceph config get mgr mgr/dashboard/server_port
🌐 접속 예시
https://<mgr-node-ip>:<dashboard-port>
📸 Dashboard 주요 화면
- Cluster 상태
- OSD 별 상태/용량
- PG 상태
- Performance Metrics (IOPS, Latency 등)
🔔 알림 설정
Dashboard에서는 이메일, webhook 등을 통한 알림(Notification) 설정도 가능합니다.
✅ 마무리 요약
항목 | 설명 |
---|---|
MON 이중화 | 과반수 유지 시 정상 작동 |
OSD 장애 복구 | 자동 복제/재배치 기능으로 자가 치유 |
Health 명령어 | ceph status , ceph health 등으로 실시간 진단 |
Dashboard | GUI 기반 모니터링 및 장애 탐지/알림 |
마지막 수정일자