Rook-Ceph 아키텍처 이해
2️⃣ Rook-Ceph 전체 아키텍처 구성
Rook-Ceph는 Kubernetes 클러스터 내에서 **스토리지 오케스트레이션(Rook)**과 **분산 스토리지 시스템(Ceph)**이 결합된 형태로 구성됩니다.
🖼️ 전체 아키텍처 구성도
+-----------------------------------------------------+
| Kubernetes Cluster |
| |
| +------------------+ +-------------------+ |
| | Rook Operator | <--> | Ceph Cluster | |
| +------------------+ | (MON, MGR, OSD) | |
| +-------------------+ |
| |
| +------------------+ +-----------------------+ |
| | Application |-->| PVC → Ceph Storage | |
| | Pods | | (Block, FS, Object) | |
| +------------------+ +-----------------------+ |
+-----------------------------------------------------+
Rook Operator는 Ceph 클러스터를 구성하고, 각 컴포넌트를 Kubernetes 리소스로 생성/관리합니다.
3️⃣ 주요 컴포넌트 설명
1. Rook Operator
- 역할: Ceph 클러스터와 그 구성요소를 Kubernetes CR(Custom Resource)을 통해 자동 배포 및 유지관리
- 기능: MON/OSD/MGR 배포, 스토리지 클래스 생성, 상태 감시 및 장애 복구
kubectl get pods -n rook-ceph -l app=rook-ceph-operator
2. Ceph Monitors (MON)
- 역할: 클러스터 상태 모니터링, 멤버십 및 맵 관리
- 특징:
- 최소 3개로 구성해 quorum 유지
- 클러스터의 뇌절(split-brain) 방지
🧠 Ceph MON = 클러스터의 브레인
3. Ceph Manager (MGR)
- 역할: 클러스터 메트릭, 대시보드, 모듈 확장 담당
- 기능:
- Grafana 기반 Web UI 제공
- Prometheus 메트릭 출력
kubectl port-forward svc/rook-ceph-mgr-dashboard 7000:7000 -n rook-ceph
➡️ http://localhost:7000 접속 가능
4. Ceph OSDs (Object Storage Daemons)
- 역할: 실제 데이터 저장 및 복제 처리
- 구성: 노드의 디스크마다 하나의 OSD
- 기능:
- 데이터 셰이딩 및 복제
- 자가 복구 및 재분배
🧠 OSD = 데이터 저장소의 핵심
5. Ceph MDS (Metadata Server for CephFS)
- 역할: CephFS 파일시스템의 메타데이터 관리
- 필요 조건: CephFS 사용 시 반드시 필요
- 기능:
- 디렉터리, 파일 정보 처리
- POSIX 호환 인터페이스 제공
storageClassName: rook-cephfs
accessModes: [ ReadWriteMany ]
6. Ceph RGW (RADOS Gateway)
- 역할: S3 호환 오브젝트 스토리지 서비스 제공
- 기능:
- 사내 S3 대체로 사용 가능
- RESTful API 제공
예시:
s3cmd --access_key=XXX --secret_key=YYY ls s3://my-bucket
➡️ Ceph RGW는 퍼블릭 클라우드 의존 없이 S3 서비스 제공
4️⃣ Pod-to-Pod 네트워크 흐름
Pod 간 스토리지 사용 및 통신은 Kubernetes 네트워크 + Ceph CSI 드라이버를 통해 이루어집니다.
[App Pod] → [PVC 요청] → [Rook CSI Plugin] → [Ceph OSD]
↘︎ ↙︎
[Ceph MON → MGR]
- CSI 드라이버가 PVC 요청을 Ceph에 전달
- Ceph가 실제 RBD/FS 볼륨 생성
- App Pod는 해당 볼륨을 마운트 후 사용
5️⃣ 스토리지 백엔드 아키텍처
✅ CephBlock (블록 스토리지 - RBD)
- 용도: DB, 워크로드 등 단일 Pod 마운트용
- 특징:
ReadWriteOnce
방식, 고성능
storageClassName: rook-ceph-block
App Pod --> RBD Device --> Ceph OSD
✅ CephFS (파일 시스템 - POSIX)
- 용도: 공유 파일 시스템 필요 시 (여러 Pod에서 읽기/쓰기)
- 특징:
ReadWriteMany
, Ceph MDS 필요
storageClassName: rook-cephfs
Multiple Pods --> CephFS Mount --> OSD + MDS
✅ Ceph RGW (오브젝트 스토리지 - S3 호환)
- 용도: 로그 저장, 이미지 업로드, 백업 시스템
- 특징: REST API 기반, MinIO 대체 가능
App (S3 API) --> Ceph RGW --> RADOS --> OSD
🧠 요약
스토리지 타입 | 사용 사례 | 특징 |
---|---|---|
CephBlock | DB, 워크로드 | 고속, 단일 마운트 |
CephFS | 웹 서버, 공유 스토리지 | 다중 마운트 |
Ceph RGW | 로그, 백업, 이미지 | S3 호환 오브젝트 |
마지막 수정일자