Container Orchestration/Kubernetes

Kubernetes Local Storage Solutions: OpenEBS vs Longhorn vs Rook Ceph 완전 비교 가이드

Somaz 2025. 12. 17. 07:29
728x90
반응형

Overview

Kubernetes 환경에서 상태를 가진 애플리케이션(Stateful Applications)을 운영할 때, 적절한 스토리지 솔루션 선택은 매우 중요하다. 기존의 NFS나 클라우드 기반 스토리지의 한계를 극복하고자 많은 조직들이 local storage 기반의 분산 블록 스토리지 솔루션을 도입하고 있다.

 

본 가이드에서는 현재 가장 주목받고 있는 세 가지 오픈소스 스토리지 솔루션을 심층 분석하고 비교한다.

 

 

 

OpenEBS

CNCF 샌드박스 프로젝트로, Container Attached Storage(CAS) 개념을 도입한 클라우드 네이티브 스토리지 솔루션이다. 다양한 스토리지 엔진을 제공하여 다양한 워크로드 요구사항을 충족한다.

 

 

Longhorn

Rancher에서 개발한 분산 블록 스토리지로, 단순함과 사용 편의성에 중점을 둔 솔루션이다. 직관적인 웹 UI와 강력한 백업/복원 기능을 제공한다.

 

 

Rook Ceph

Kubernetes 환경에서 Ceph 클러스터를 자동화하여 관리하는 솔루션입니다. 엔터프라이즈급 성능과 안정성을 제공하며, Object, Block, File 스토리지를 모두 지원한다.

 

 

 

📅 관련 글

2024.02.20 - [Open Source Software] - Rook-Ceph란?

 

 

 

 

 


 

 

아키텍처 비교

 

 

OpenEBS 아키텍처

 

특징

  • 멀티 엔진 아키텍처: 워크로드별 최적화된 엔진 선택 가능
  • Container Attached Storage: 각 볼륨마다 전용 컨트롤러 파드
  • 마이크로서비스 기반: 각 컴포넌트가 독립적으로 스케일링 가능

 

 

 

 

 

 

Longhorn 아키텍처

 

 

특징

  • 단순한 아키텍처: 이해하기 쉬운 구조
  • iSCSI 기반: 표준 블록 스토리지 프로토콜 사용
  • 볼륨별 엔진: 각 볼륨마다 독립적인 엔진 프로세스

 

 

 

 

Rook Ceph 아키텍처

 

 

특징

  • 엔터프라이즈급 아키텍처: 검증된 Ceph 기반
  • 다중 스토리지 타입: Block, Object, File 모두 지원
  • 고도로 분산된 구조: 대규모 클러스터에 최적화

 

 

 

 

 


 

 

 

상세 기능 비교

 

스토리지 엔진 및 기능

기능 OpenEBS Longhorn Rook Ceph
스토리지 엔진 LocalPV, Jiva, cStor, Mayastor 단일 엔진 Ceph RBD, CephFS, RGW
복제 방식 동기/비동기 선택 가능 동기식 복제 동기식 복제
스냅샷 ✅ (엔진별 상이)
백업 ✅ (S3, NFS) ✅ (Multiple backends)
암호화
압축 ✅ (cStor, Mayastor)
씬 프로비저닝
QoS

 

 

 

 

성능 비교

항목 OpenEBS Longhorn Rook Ceph
지연시간(Latency) 낮음-중간 (엔진별) 낮음 중간
처리량(Throughput) 높음 (Mayastor) 중간 매우 높음
IOPS 높음 (LocalPV) 중간 매우 높음
오버헤드 낮음-중간 낮음 중간-높음
네트워크 사용량 중간 중간 높음

 

 

 

 

관리 및 운영

항목 OpenEBS Longhorn Rook Ceph
설치 복잡도 중간 낮음 높음
웹 UI ✅ (기본적) ✅ (풍부한 기능) ✅ (Ceph Dashboard)
모니터링 Prometheus/Grafana 내장 + Prometheus 풍부한 메트릭
로그 관리 기본적 상세함 매우 상세함
업그레이드 복잡 간단 복잡
문제 해결 중간 쉬움 어려움
문서화 양호 우수 우수

 

 

 

 

 


 

 

 

 

 

 

워크로드별 성능 분석

 

데이터베이스 워크로드

 

성능 순위(랜덤 I/O 집약적 워크로드)

  1. OpenEBS (Mayastor/LocalPV): 8.5/10
    • NVMe 최적화
    • 낮은 지연시간
  2. Rook Ceph: 8.0/10
    • BlueStore 최적화
    • 높은 IOPS
  3. Longhorn: 7.0/10
    • 안정적이지만 상대적으로 낮은 성능

 

 

 

 

빅데이터/분석 워크로드(순차 I/O 집약적 워크로드)

 

 

성능 순위

  1. Rook Ceph: 9.0/10
    • 뛰어난 처리량
    • 병렬 처리 최적화
  2. OpenEBS (cStor): 8.0/10
    • ZFS 기반 최적화
  3. Longhorn: 7.5/10
    • 간단하지만 제한적 성능

 

 

 

 

웹 애플리케이션(혼합 I/O 패턴)

 

성능 순위

  1. OpenEBS (LocalPV): 9.0/10
    • 로컬 스토리지 성능
  2. Longhorn: 8.5/10
    • 균형 잡힌 성능
  3. Rook Ceph: 8.0/10
    • 안정적이지만 오버헤드 존재

 

 

 

 

 

 

실제 구현 사례

 

OpenEBS 구현 예시

# StorageClass for Database
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: openebs-mayastor-nvme
provisioner: io.openebs.csi-mayastor
parameters:
  repl: "3"
  protocol: "nvmf"
  fsType: "ext4"
allowVolumeExpansion: true
volumeBindingMode: Immediate

---
# PVC for High-Performance Database
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: postgres-data
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: openebs-mayastor-nvme
  resources:
    requests:
      storage: 100Gi

 

 

 

 

Longhorn 구현 예시

# StorageClass for General Purpose
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: longhorn-ssd
provisioner: driver.longhorn.io
allowVolumeExpansion: true
reclaimPolicy: Retain
parameters:
  numberOfReplicas: "2"
  staleReplicaTimeout: "30"
  fromBackup: ""
  fsType: "ext4"

---
# PVC with Backup Policy
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: app-data
  annotations:
    longhorn.io/recurring-jobs: |
      [
        {
          "name": "backup",
          "task": "backup",
          "cron": "0 2 * * *",
          "retain": 7
        }
      ]
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: longhorn-ssd
  resources:
    requests:
      storage: 50Gi

 

 

 

 

Rook Ceph 구현 예시

# CephCluster Configuration
apiVersion: ceph.rook.io/v1
kind: CephCluster
metadata:
  name: rook-ceph
  namespace: rook-ceph
spec:
  cephVersion:
    image: quay.io/ceph/ceph:v17.2.6
  dataDirHostPath: /var/lib/rook
  mon:
    count: 3
    allowMultiplePerNode: false
  mgr:
    count: 2
  dashboard:
    enabled: true
    ssl: true
  storage:
    useAllNodes: true
    useAllDevices: true
    config:
      osdsPerDevice: "1"

---
# StorageClass for Enterprise Workload  
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: rook-ceph-block-ssd
provisioner: rook-ceph.rbd.csi.ceph.com
parameters:
  clusterID: rook-ceph
  pool: replicapool
  imageFormat: "2"
  imageFeatures: layering
  csi.storage.k8s.io/provisioner-secret-name: rook-csi-rbd-provisioner
  csi.storage.k8s.io/provisioner-secret-namespace: rook-ceph
allowVolumeExpansion: true

 

 

 

 

 

총 소유 비용(TCO) 분석

 

 

하드웨어 요구사항

솔루션 최소 노드 수 CPU 요구사항 메모리 요구사항 네트워크 예상 비용
OpenEBS 3 2-4 코어/노드 4-8GB/노드 1Gbps 중간
Longhorn 3 1-2 코어/노드 2-4GB/노드 1Gbps 낮음
Rook Ceph 3-5 4-8 코어/노드 8-16GB/노드 10Gbps 높음

 

 

 

 


 

 

 

사용 사례별 추천 가이드

 

스타트업/중소기업 (10-50 노드)

 

추천: Longhorn

 

이유

  • 낮은 학습 곡선
  • 최소한의 운영 인력
  • 충분한 성능
  • 우수한 백업 기능

 

적합한 워크로드

  • 웹 애플리케이션
  • 소규모 데이터베이스
  • CI/CD 파이프라인
  • 개발/테스트 환경

 

 

 

중견기업 (50-200 노드)

 

추천: OpenEBS

 

이유

  • 다양한 워크로드 지원
  • 성능 최적화 옵션
  • 적당한 복잡도
  • 활발한 커뮤니티

 

적합한 워크로드

  • 마이크로서비스
  • 중규모 데이터베이스
  • 실시간 분석
  • 혼합 워크로드 환경

 

 

 

대기업/엔터프라이즈 (200+ 노드)

 

추천: Rook Ceph

 

이유

  • 엔터프라이즈급 성능
  • 뛰어난 확장성
  • 다양한 스토리지 타입
  • 성숙한 생태계

 

적합한 워크로드

  • 대규모 데이터베이스
  • 빅데이터 분석
  • AI/ML 워크로드
  • 멀티미디어 처리

 

 

 

특수 환경별 추천

 

엣지 컴퓨팅

추천: OpenEBS LocalPV

  • 최소한의 리소스 사용
  • 네트워크 의존성 없음

 

 

멀티클라우드

추천: Longhorn

  • 클라우드 간 이식성
  • 표준화된 백업 형식

 

고성능 컴퓨팅(HPC)

추천: Rook Ceph

  • 병렬 I/O 최적화
  • 높은 처리량

 

 

 

 


 

 

 

결론 및 권장사항

 

최종 추천 매트릭스

시나리오 1순위 2순위 3순위
소규모 환경 Longhorn OpenEBS LocalPV OpenEBS Jiva
중간 규모 환경 OpenEBS Longhorn Rook Ceph
대규모 엔터프라이즈 Rook Ceph OpenEBS Longhorn
고성능 요구 OpenEBS Mayastor Rook Ceph Longhorn
단순함 우선 Longhorn OpenEBS LocalPV OpenEBS Jiva
다양한 워크로드 OpenEBS Rook Ceph Longhorn

 

 

 

핵심 결론

  1. Longhorn: 단순함과 사용 편의성을 중시하는 환경에 최적. 중소규모 조직과 Kubernetes 초보자에게 강력 추천.
  2. OpenEBS: 다양한 워크로드와 성능 요구사항을 가진 환경에 최적. 유연성과 확장성을 동시에 원하는 조직에 적합.
  3. Rook Ceph: 엔터프라이즈급 성능과 안정성이 필요한 대규모 환경에 최적. 복잡하지만 가장 강력한 기능 제공.

 

 

 

성공적인 도입을 위해선?

  1. 단계적 접근: 파일럿 프로젝트부터 시작하여 점진적으로 확대
  2. 충분한 테스트: 프로덕션 적용 전 다양한 시나리오에서 충분한 테스트 수행
  3. 모니터링 강화: 초기 단계에서 상세한 모니터링 구축
  4. 백업 전략: 마이그레이션 전 반드시 백업 계획 수립
  5. 팀 역량: 선택한 솔루션에 대한 팀의 이해도와 역량 개발

 

 

 

각 솔루션은 고유한 장단점을 가지고 있으며, 조직의 요구사항, 기술적 역량, 그리고 예산을 종합적으로 고려하여 선택해야 한다. 무엇보다 중요한 것은 선택한 솔루션을 충분히 이해하고 운영할 수 있는 역량을 확보하는 것이다.

 

 

 

 

 

 

 

 


Reference

 

공식 문서

 

아키텍처 및 설계 가이드

728x90
반응형