Rook-Ceph 아키텍처 이해

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 호환 오브젝트

RSS Feed
마지막 수정일자