Ceph Storage 완벽 가이드: Object, Block, FileSystem 기능 총정리
Complete Guide to Ceph Storage: Object, Block, and FileSystem Features
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.