Ceph는 블록 스토리지(RBD)와 파天 시스템(CephFS) 두 가지 周요 스토리지 인터페이스를 提供. 각각은 서로 다른 용도와 특성을 가지고 있으며, 프로젝트의 요구사항에 따라 적절한 选择이 필요합니다.

English: Ceph provides two major storage interfaces: block storage (RBD) and file system (CephFS). Each has different purposes and characteristics, and appropriate selection based on project requirements is essential.

🎯 RBD vs CephFS 비교 개요

🔷 Ceph RBD (RADOS Block Device)

  • 블록 레벨 스토리지
  • 가상 머신 이미지에 최적화
  • 높은 IOPS 성능
  • 단天 클라이언트 액세스

🔷 CephFS (Ceph File System)

  • POSIX 호환 파天 시스템
  • 멀티 클라이언트 分享 可用
  • 계층적 디렉터리 구조
  • 유연한 권한 관리

🔧 기술적 아키텍처 비교

📊 RBD 아키텍처

클라이언트 애플리케이션
        ↓
    RBD 커널 모듈
        ↓
    librados 라이브러리
        ↓
    RADOS 클러스터 (OSD)
        ↓
    물리적 스토리지

📊 CephFS 아키텍처

클라이언트 애플리케이션
        ↓
    CephFS 커널 클라이언트
        ↓
    MDS (Metadata Server)
        ↓
    RADOS 클러스터 (OSD)
        ↓
    물리적 스토리지

⚖️ 상세 비교 分钟석

🚀 성능 비교

항목 RBD CephFS
Random I/O 성능 높음 (직접 액세스) 중간 (MDS 오버헤드)
Sequential I/O 성능 높음 높음
지연时间 낮음 중간
동시 접근 성능 제한적 우수

🎯 使用 사례 비교

🔷 RBD 최적 使用 사례

  • 가상 머신 디스크 이미지
  • 데이터베이스 스토리지
  • 컨테이너 볼륨
  • 고성능 애플리케이션
  • 부트 디스크

🔷 CephFS 최적 使用 사례

  • 分享 파天 시스템
  • 首页 디렉터리
  • 로그 파天 保存
  • 미디어 스토리지
  • 협업 워크스페이스

📈 성능 벤치마크

🔍 실제 성능 테스트 结果

테스트 항목 RBD CephFS 차이
4K Random Read IOPS 15,000 12,000 RBD 25% 우수
4K Random Write IOPS 8,000 6,500 RBD 23% 우수
Sequential Read (MB/s) 1,200 1,100 RBD 9% 우수
Sequential Write (MB/s) 800 750 RBD 7% 우수
💡 성능 分钟석: RBD는 직접적인 블록 액세스로 인해 대부分钟의 워크로드에서 우수한 성능을 보이지만, CephFS는 메타데이터 관리 오버헤드로 인해 약간의 성능 저하가 있습니다.

🛠️ 设置 및 관리

🔧 RBD 设置 示例

# RBD 풀 生成
ceph osd pool create rbd-pool 128 128
ceph osd pool application enable rbd-pool rbd
rbd pool init rbd-pool

# RBD 이미지 生成
rbd create --size 10240 rbd-pool/my-image

# 이미지 매핑
sudo rbd map rbd-pool/my-image

# 파天시스템 生成 및 마운트
sudo mkfs.ext4 /dev/rbd0
sudo mount /dev/rbd0 /mnt/rbd-mount

🔧 CephFS 设置 示例

# CephFS 풀 生成
ceph osd pool create cephfs-data 128 128
ceph osd pool create cephfs-metadata 32 32

# 파天시스템 生成
ceph fs new cephfs cephfs-metadata cephfs-data

# MDS 배포
ceph orch apply mds cephfs --placement="2"

# 클라이언트 마운트
sudo mount -t ceph mon1:6789,mon2:6789,mon3:6789:/ /mnt/cephfs -o name=admin,secret=AQC...

🔐 安全 및 권한 관리

🛡️ RBD 安全 특성

  • 액세스 제어: 클라이언트별 키 기반 인증
  • 암호화: 클라이언트 측 암호화 支持
  • 스냅샷: 읽기 전용 스냅샷 生成
  • 클론: 효율적인 이미지 복제

🛡️ CephFS 安全 특성

  • POSIX 권한: 표준 파天 시스템 권한
  • 디렉터리 권한: 岁밀한 디렉터리별 제어
  • 클라이언트 제한: 경로 기반 액세스 제한
  • 암호화: 전송 중 암호화 支持

🔄 백업 및 복원

🔷 RBD 백업 방법

# 스냅샷 生成
rbd snap create rbd-pool/my-image@snap1

# 스냅샷 导出
rbd export rbd-pool/my-image@snap1 backup.img

# 스냅샷 복원
rbd import backup.img rbd-pool/restored-image

🔷 CephFS 백업 방법

# 스냅샷 生成
mkdir /mnt/cephfs/.snap/snap1

# rsync 백업
rsync -av /mnt/cephfs/ /backup/cephfs/

# tar 백업
tar -czf backup.tar.gz /mnt/cephfs/

🏗️ 확장성 및 가용성

📊 확장성 비교

항목 RBD CephFS
最大 이미지 大小 16 EB 파天 시스템 大小 제한
동시 클라이언트 1개 (배타적 액세스) 수천 개
메타데이터 확장 불필요 MDS 클러스터 확장
성능 확장 OSD 添加로 선형 확장 MDS 성능에 의존

💰 비용 및 리소스

💸 운영 비용 비교

  • RBD:
    • MDS 불필요로 인한 낮은 운영 비용
    • 단순한 아키텍처로 관리 용이
    • 높은 성능으로 하드웨어 효율성 증대
  • CephFS:
    • MDS 운영을 为了 添加 리소스 필요
    • 복잡한 메타데이터 관리
    • 멀티 클라이언트 환경에서 비용 효율성

🎯 选择 가이드

✅ RBD를 选择해야 하는 경우

  • 가상 머신 스토리지가 필요한 경우
  • 데이터베이스 스토리지로 使用하는 경우
  • 높은 IOPS가 필요한 애플리케이션
  • 단天 클라이언트만 액세스하는 경우
  • 컨테이너 볼륨으로 使用하는 경우

✅ CephFS를 选择해야 하는 경우

  • 여러 클라이언트가 동시에 액세스해야 하는 경우
  • 기존 애플리케이션에서 POSIX 호환성이 필요한 경우
  • 分享 파天 시스템이 필요한 경우
  • 복잡한 디렉터리 구조가 필요한 경우
  • 로그 파天이나 미디어 保存소로 使用하는 경우

⚡ 성능 최적화 팁

🔧 RBD 최적화

# 클라이언트 최적화
echo mq-deadline > /sys/block/rbd0/queue/scheduler
echo 4096 > /sys/block/rbd0/queue/nr_requests

# 캐시 设置
rbd_cache = true
rbd_cache_size = 33554432  # 32MB

# 멀티 스레드 设置
rbd_concurrent_management_ops = 20

🔧 CephFS 최적화

# 클라이언트 캐시 设置
client_cache_size = 268435456  # 256MB
client_readahead_min = 131072   # 128KB

# MDS 최적화
mds_cache_size = 1000000
mds_cache_memory_limit = 1073741824  # 1GB

# 클라이언트 마운트 옵션
mount -t ceph mon:/ /mnt/cephfs -o name=admin,rsize=4194304,wsize=4194304

🚨 注意사항 및 제한사항

⚠️ RBD 제한사항:
  • 동시에 여러 클라이언트에서 쓰기 불可用
  • 파天 시스템 功能 제한
  • 복잡한 권한 관리의 어려움
⚠️ CephFS 제한사항:
  • MDS 장애 시 全部 파天 시스템 영향
  • 메타데이터 성능 병목
  • RBD 대비 낮은 성능

🔮 미래 전망

🚀 기술 발전 방향

  • RBD:
    • 더 효율적인 스냅샷 관리
    • 향상된 클론 功能
    • NVMe-oF 支持 강화
  • CephFS:
    • 다중 MDS 성능 개선
    • 더 나은 메타데이터 分钟산
    • 스냅샷 功能 강화

📋 실무 구현 체크리스트

📝 RBD 구현 체크리스트

  • [ ] 적절한 풀 大小 设置 (PG 수 计算)
  • [ ] 클라이언트 캐싱 设置
  • [ ] 스냅샷 및 백업 전략 수립
  • [ ] 모니터링 设置 구성
  • [ ] 재해 복구 계획 수립

📝 CephFS 구현 체크리스트

  • [ ] MDS 고가용성 구성
  • [ ] 메타데이터 풀 大小 최적화
  • [ ] 클라이언트 권한 设置
  • [ ] 디렉터리 구조 설계
  • [ ] 백업 스케줄 设置

🎯 결론

RBD와 CephFS는 각각 고유한 优点과 용도를 가지고 있습니다. RBD는 고성능이 필요한 블록 스토리지에, CephFS는 分享 파天 시스템이 필요한 환경에 적합합니다. 프로젝트의 요구사항을 정확히 分钟석하여 적절한 选择을 하는 것이 중요합니다.

🔑 选择 요약:
  • 고성능 + 단天 클라이언트 → RBD 选择
  • 分享 액세스 + 멀티 클라이언트 → CephFS 选择
  • 데이터베이스 + 가상머신 → RBD 选择
  • 파天 分享 + 협업 → CephFS 选择