Ceph는 단일 플랫폼에서 오브젝트, 블록, 파일시스템 스토리지를 모두 제공하는 유일무이한 분산 스토리지 솔루션입니다. 이 가이드에서는 Ceph의 세 가지 핵심 스토리지 기능을 상세히 분석하고, 각각의 장점과 실제 구축 사례를 완벽하게 정리해드립니다.

English: Ceph is a unique distributed storage solution that provides object, block, and filesystem storage all within a single platform. This guide provides a detailed analysis of Ceph's three core storage features, highlighting their advantages and real-world implementation cases.

🏗️ Ceph 스토리지 아키텍처 개요

Ceph의 강력함은 RADOS(Reliable Autonomic Distributed Object Store) 기반의 통합 아키텍처에서 나옵니다. 모든 스토리지 타입이 동일한 클러스터에서 작동하여 관리 복잡성을 크게 줄입니다.

┌─────────────────────────────────────────┐
│        Ceph Storage Platform            │
├─────────────────────────────────────────┤
│  Object Storage │ Block Storage │ FS    │
│  (RGW/S3)       │ (RBD)         │(CephFS)│
├─────────────────────────────────────────┤
│            LIBRADOS Layer               │
├─────────────────────────────────────────┤
│              RADOS Cluster              │
│  (Monitors + OSDs + Managers + MDSs)    │
└─────────────────────────────────────────┘

🗄️ Object Storage: RADOS Gateway (RGW)

핵심 특징과 장점

Ceph의 오브젝트 스토리지는 Amazon S3와 OpenStack Swift API를 완벽 지원하여 기존 애플리케이션과의 호환성을 보장합니다.

  • S3 API 완전 호환: 기존 S3 기반 애플리케이션을 수정 없이 마이그레이션 가능
  • 무제한 확장성: 페타바이트급 스토리지까지 선형적 확장
  • 멀티테넌시: 테넌트별 격리된 네임스페이스 제공
  • 지역 복제: 다중 데이터센터 간 자동 복제 기능

실제 구축 예시

# RADOS Gateway 설치 및 설정
sudo ceph-deploy install --rgw ceph-rgw01

# RGW 인스턴스 생성
sudo ceph-deploy rgw create ceph-rgw01

# S3 사용자 생성
radosgw-admin user create \
  --uid=testuser \
  --display-name="Test User" \
  --email=test@example.com

# 버킷 생성 (AWS CLI 사용)
aws s3 mb s3://my-test-bucket --endpoint-url=http://rgw-server:7480

성능 최적화 팁

설정 항목 권장값 효과
rgw_thread_pool_size 200-500 동시 처리 요청 수 증가
rgw_cache_enabled true 메타데이터 캐시로 응답 속도 향상
rgw_bucket_index_max_aio 16 버킷 인덱스 I/O 성능 개선

💽 Block Storage: RADOS Block Device (RBD)

핵심 특징과 장점

RBD는 가상화 환경과 컨테이너 오케스트레이션에 최적화된 고성능 블록 스토리지를 제공합니다.

  • 얇은 프로비저닝: 실제 사용량만큼만 공간 할당
  • 스냅샷 및 클론: 즉석 백업과 빠른 복제 기능
  • 암호화 지원: 데이터 보안을 위한 투명 암호화
  • QoS 제어: IOPS 및 대역폭 제한 기능

실제 활용 사례

# RBD 이미지 생성 (100GB)
rbd create --size 100G mypool/vm-disk01

# 스냅샷 생성
rbd snap create mypool/vm-disk01@backup-$(date +%Y%m%d)

# 클론 생성 (즉석 VM 복제)
rbd snap protect mypool/vm-disk01@backup-20250709
rbd clone mypool/vm-disk01@backup-20250709 mypool/vm-disk01-clone

# 커널 모듈로 마운트
rbd map mypool/vm-disk01
mkfs.ext4 /dev/rbd0
mount /dev/rbd0 /mnt/ceph-volume

성능 비교표

스토리지 타입 IOPS (4K랜덤) 대역폭 (순차) 지연시간
Ceph RBD (SSD) 50,000+ 2GB/s+ <1ms
기존 SAN 30,000 1.5GB/s 2-3ms
로컬 SSD 80,000+ 3GB/s+ <0.5ms

📁 FileSystem Storage: CephFS

핵심 특징과 장점

CephFS는 POSIX 호환 분산 파일시스템으로 대용량 파일 공유와 병렬 처리에 탁월합니다.

  • POSIX 완전 호환: 기존 리눅스 애플리케이션과 100% 호환
  • 동적 메타데이터 분산: 메타데이터 서버 간 자동 부하 분산
  • 다중 활성 MDS: 메타데이터 서버 이중화로 고가용성 확보
  • 서브볼륨 지원: 논리적 디렉터리 격리와 할당량 관리

실제 구축 과정

# MDS 서버 배포
ceph-deploy mds create ceph-mds01 ceph-mds02

# CephFS 파일시스템 생성
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 64
ceph fs new cephfs cephfs_metadata cephfs_data

# 클라이언트 마운트 (커널 드라이버)
mount -t ceph 192.168.1.10:6789:/ /mnt/cephfs \
  -o name=admin,secret=AQD4...

# FUSE 마운트 (사용자 공간)
ceph-fuse /mnt/cephfs-fuse \
  --name client.admin \
  --keyring /etc/ceph/ceph.client.admin.keyring

서브볼륨 관리

# 서브볼륨 그룹 생성
ceph fs subvolumegroup create cephfs group1

# 서브볼륨 생성 (100GB 할당량)
ceph fs subvolume create cephfs vol1 --group_name group1 --size 100G

# 사용자별 접근 권한 설정
ceph fs authorize cephfs client.user1 \
  /volumes/group1/vol1 rw

🔧 통합 관리 전략

모니터링 대시보드

Ceph의 통합 대시보드를 통해 세 가지 스토리지 타입을 일원화 관리할 수 있습니다.

# Ceph Dashboard 활성화
ceph mgr module enable dashboard
ceph dashboard create-self-signed-cert

# 관리자 계정 생성
ceph dashboard ac-user-create admin administrator

# 대시보드 접속: https://ceph-mgr:8443

백업 및 재해 복구

스토리지 타입 백업 방법 복구 시간(RTO) 데이터 손실(RPO)
Object (RGW) Cross-region 복제 5분 0분
Block (RBD) 스냅샷 + 원격 미러링 10분 1분
File (CephFS) rsync + 스냅샷 30분 15분

⚡ 실제 성능 벤치마크

혼합 워크로드 테스트 결과

실제 운영환경에서 측정한 Ceph 클러스터의 성능 데이터입니다 (노드 10개, SSD 구성).

# Object Storage (4MB 오브젝트)
- 업로드: 8GB/s (2000 ops/s)
- 다운로드: 12GB/s (3000 ops/s)

# Block Storage (4K 랜덤 I/O)
- 읽기 IOPS: 45,000
- 쓰기 IOPS: 35,000
- 혼합 IOPS: 40,000

# File System (대용량 파일)
- 순차 읽기: 6GB/s
- 순차 쓰기: 4GB/s
- 메타데이터 ops: 50,000/s

🌟 각 스토리지 타입별 최적 활용 시나리오

Object Storage (RGW) 추천 용도

  • 웹 애플리케이션: 이미지, 동영상, 정적 콘텐츠 저장
  • 백업 및 아카이브: 장기 보관이 필요한 데이터
  • 빅데이터 분석: 데이터 레이크 구축
  • 클라우드 네이티브 앱: 마이크로서비스 간 데이터 공유

Block Storage (RBD) 추천 용도

  • 가상머신: VM 디스크 및 부팅 볼륨
  • 데이터베이스: 고성능이 필요한 트랜잭션 워크로드
  • 컨테이너: Kubernetes Persistent Volume
  • 고성능 컴퓨팅: HPC 애플리케이션 스토리지

File System (CephFS) 추천 용도

  • 공유 워크스페이스: 개발팀 협업 환경
  • 미디어 처리: 영상 편집 및 렌더링
  • 로그 수집: 중앙화된 로그 스토리지
  • 홈 디렉터리: 사용자별 파일 서비스

🔒 보안 및 액세스 제어

통합 인증 시스템

# Ceph 사용자 생성 (모든 스토리지 타입 접근)
ceph auth get-or-create client.myapp \
  mon 'allow r' \
  osd 'allow rw pool=mypool' \
  mds 'allow rw path=/myapp-data'

# Object Storage용 S3 키 생성
radosgw-admin user create \
  --uid=myapp \
  --display-name="MyApp User" \
  --caps="users=read,write;usage=read"

네트워크 보안

구성 요소 기본 포트 암호화 지원 방화벽 설정
RGW (Object) 7480/80 SSL/TLS Public 접근
RBD (Block) 6789 cephx + msgr2 내부 네트워크
CephFS (File) 6789 cephx + 전송 암호화 내부 네트워크

📊 운영 관리 Best Practice

용량 계획

💡 Pro Tip: Ceph 클러스터 용량을 계획할 때는 복제본과 메타데이터 오버헤드를 고려해야 합니다. 일반적으로 raw 용량의 60-70%가 실제 사용 가능한 용량입니다.

# 용량 사용률 모니터링
ceph df
ceph osd df tree

# 풀별 사용률 확인
ceph osd pool stats
rados df

자동화 스크립트 예시

#!/bin/bash
# Ceph 건강 상태 체크 스크립트

HEALTH=$(ceph health -f json | jq -r '.status')
DATE=$(date '+%Y-%m-%d %H:%M:%S')

if [ "$HEALTH" != "HEALTH_OK" ]; then
    echo "[$DATE] Ceph 클러스터 상태 이상: $HEALTH"
    ceph health detail
    
    # Slack 알림 발송
    curl -X POST -H 'Content-type: application/json' \
        --data '{"text":"Ceph 클러스터 경고: '$HEALTH'"}' \
        $SLACK_WEBHOOK_URL
fi

🚀 마무리: Ceph의 미래와 발전 방향

Ceph Storage는 클라우드 네이티브 환경에서 가장 강력한 통합 스토리지 플랫폼으로 자리잡았습니다. Object, Block, FileSystem의 세 가지 스토리지 인터페이스를 단일 클러스터에서 제공함으로써:

  • 운영 복잡성 대폭 감소
  • 인프라 비용 최적화
  • 확장성과 가용성 동시 확보
  • 벤더 종속성 제거

이러한 혜택을 누릴 수 있습니다. 특히 하이브리드 클라우드와 엣지 컴퓨팅 환경에서 Ceph의 가치는 더욱 빛을 발하고 있습니다.

English: Ceph Storage has established itself as the most powerful unified storage platform in cloud-native environments. By providing three storage interfaces - Object, Block, and FileSystem - within a single cluster, organizations can significantly reduce operational complexity, optimize infrastructure costs, ensure scalability and availability, and eliminate vendor lock-in.