Rook-Ceph 개요 및 핵심 개념

Rook-Ceph 개요 및 핵심 개념

1️⃣ Rook란 무엇인가? (Cloud-native storage orchestrator)

Rook은 클라우드 네이티브 환경에서 스토리지를 자동으로 관리하기 위한 **스토리지 오케스트레이터(Storage Orchestrator)**입니다.

  • Kubernetes 환경에서 동작
  • 스토리지 시스템을 쉽게 배포, 구성, 관리할 수 있음
  • 다양한 백엔드 스토리지 시스템 지원: Ceph, Cassandra, EdgeFS, NFS 등

🧠 쉽게 말하면?
Rook = 스토리지 시스템을 쿠버네티스에서 자동화하는 매니저

📦 Rook은 Kubernetes Operator 패턴을 사용해 복잡한 스토리지 작업을 자동으로 처리합니다.

🖼️ Rook Operator 구조

+-------------------+
| Kubernetes Master |
+--------+----------+
         |
         | Operator (Rook)
         v
+--------+----------+
| Ceph Cluster CRD  | <--- 사용자 정의 리소스 (CR)
+--------+----------+
         |
         v
+--------+----------+
| Ceph 데몬 (OSD, MGR, MON 등)
+-------------------+

2️⃣ Ceph란 무엇인가? (확장 가능한 분산 스토리지)

Ceph는 오픈소스 기반의 분산형 스토리지 시스템으로, 다양한 스토리지 서비스를 제공합니다.

  • 블록(Block) 스토리지 - 예: RBD
  • 오브젝트(Object) 스토리지 - 예: S3 호환 RGW
  • 파일(File) 스토리지 - 예: CephFS

🎯 주요 특징

항목 설명
📈 확장성 수백~수천 대의 노드로 확장 가능
💥 내결함성 디스크 장애 발생 시 자동 복구
💡 자가 치유(Self-healing) 데이터 자동 재분산 및 복제
🔐 고가용성 다수의 모니터(MON)를 통한 장애 대응

Ceph는 스토리지의 무중단 확장, 자가 복구, 장애 허용 기능으로 유명합니다.


3️⃣ Rook과 Ceph의 관계

  • Rook은 Kubernetes 환경에서 Ceph을 자동으로 설치하고 관리하는 도구입니다.
  • Ceph는 실제 데이터 저장을 처리하는 스토리지 백엔드 시스템입니다.

📌 요약:

Rook = Ceph 설치 및 운영 자동화 도구 (K8s-native)
Ceph = 분산 스토리지 엔진 (Data 저장소)

Rook은 Ceph Cluster를 Kubernetes 안에 설치하고 운영하면서, Ceph이 가진 강력한 기능을 클라우드 네이티브 환경에 쉽게 녹일 수 있도록 도와줍니다.

🖼️ Rook-Ceph 연동 구조

[Kubernetes]
   |
   +--> Rook Operator
         |
         +--> Ceph MON (모니터)
         +--> Ceph OSD (데이터 저장)
         +--> Ceph MGR (관리)
         +--> Ceph RGW (S3 호환)

4️⃣ Kubernetes 환경에서 Rook-Ceph의 필요성

쿠버네티스는 기본적으로 스토리지를 직접 관리하지 않습니다. 그래서 스토리지 계층은 별도로 구축해야 합니다.

📌 Rook-Ceph을 사용하는 이유:

문제 Rook-Ceph의 해결 방식
스토리지 설치 복잡 Ceph 설치, 설정 자동화 (Operator)
스토리지 확장 어려움 자동 확장 및 자가 복구 지원
PVC 동적 프로비저닝 필요 Ceph CSI 드라이버와 연동
고가용 스토리지 필요 다중 노드 구성으로 내결함성 확보

✅ 동작 흐름 예시 (PVC → Pod)

1. 사용자가 PVC 생성
2. Rook-Ceph의 CSI가 Ceph에 요청
3. Ceph이 실제 볼륨(RBD 등) 생성
4. Pod에서 해당 볼륨 사용

5️⃣ 실무에서의 활용 사례 (K8s PV/PVC, 데이터 서비스 백엔드 등)

💾 1. 퍼시스턴트 볼륨(PV/PVC) 자동 프로비저닝

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-ceph-pvc
spec:
  storageClassName: rook-ceph-block
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi

→ Pod에서는 위 PVC를 마운트하여 Ceph 볼륨 사용 가능


📊 2. 데이터베이스, 메시지 큐 등 데이터 집약적 서비스 백엔드

  • PostgreSQL, MySQL, Redis, Kafka 등
  • 장시간 데이터 저장 필요 → Rook-Ceph으로 고가용 스토리지 제공

☁️ 3. 프라이빗 S3 스토리지 구축

  • Rook-Ceph + Ceph RGW로 사내 S3 호환 오브젝트 스토리지 구성
  • minio보다 훨씬 확장성과 신뢰성 높음

📌 아키텍처 다이어그램 (실제 예시)

+--------------------------------------------------+
|                Kubernetes Cluster                |
|                                                  |
|  +-------------+     +------------------------+  |
|  |   Pod A     | --> | PVC → rook-ceph-block |  |
|  +-------------+     +------------------------+  |
|                                                  |
|        Rook-Ceph Operator & Ceph Cluster         |
|   +------------+   +-----------+   +----------+  |
|   | Ceph MON   |   | Ceph MGR  |   | Ceph OSD |  |
|   +------------+   +-----------+   +----------+  |
+--------------------------------------------------+

RSS Feed
마지막 수정일자