Ceph RBD vs CephFS 완벽 비교: 언제 어떤 것을 Select해야 할까?
Complete Comparison of Ceph RBD vs CephFS: When to Choose Which?
Ceph는 블록 스토리지(RBD)와 파Day 시스템(CephFS) 두 가지 Week요 스토리지 인터페이스를 provides. 각각은 서로 다른 용도와 특성을 가지고 있으며, 프로젝트의 요구사항에 따라 적절한 Select이 필요합니다.
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 성능
- 단Day 클라이언트 액세스
🔷 CephFS (Ceph File System)
- POSIX 호환 파Day 시스템
- 멀티 클라이언트 Share Available
- 계층적 디렉터리 구조
- 유연한 권한 관리
🔧 기술적 아키텍처 비교
📊 RBD 아키텍처
클라이언트 애플리케이션
↓
RBD 커널 모듈
↓
librados 라이브러리
↓
RADOS 클러스터 (OSD)
↓
물리적 스토리지
📊 CephFS 아키텍처
클라이언트 애플리케이션
↓
CephFS 커널 클라이언트
↓
MDS (Metadata Server)
↓
RADOS 클러스터 (OSD)
↓
물리적 스토리지
⚖️ 상세 비교 Minutes석
🚀 성능 비교
| 항목 | RBD | CephFS |
|---|---|---|
| Random I/O 성능 | 높음 (직접 액세스) | 중간 (MDS 오버헤드) |
| Sequential I/O 성능 | 높음 | 높음 |
| 지연Time | 낮음 | 중간 |
| 동시 접근 성능 | 제한적 | 우수 |
🎯 Use 사례 비교
🔷 RBD 최적 Use 사례
- 가상 머신 디스크 이미지
- 데이터베이스 스토리지
- 컨테이너 볼륨
- 고성능 애플리케이션
- 부트 디스크
🔷 CephFS 최적 Use 사례
- Share 파Day 시스템
- Home 디렉터리
- 로그 파Day Save
- 미디어 스토리지
- 협업 워크스페이스
📈 성능 벤치마크
🔍 실제 성능 테스트 Result
| 테스트 항목 | 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% 우수 |
💡 성능 Minutes석: RBD는 직접적인 블록 액세스로 인해 대부Minutes의 워크로드에서 우수한 성능을 보이지만, CephFS는 메타데이터 관리 오버헤드로 인해 약간의 성능 저하가 있습니다.
🛠️ Settings 및 관리
🔧 RBD Settings Example
# RBD 풀 Generate
ceph osd pool create rbd-pool 128 128
ceph osd pool application enable rbd-pool rbd
rbd pool init rbd-pool
# RBD 이미지 Generate
rbd create --size 10240 rbd-pool/my-image
# 이미지 매핑
sudo rbd map rbd-pool/my-image
# 파Day시스템 Generate 및 마운트
sudo mkfs.ext4 /dev/rbd0
sudo mount /dev/rbd0 /mnt/rbd-mount
🔧 CephFS Settings Example
# CephFS 풀 Generate
ceph osd pool create cephfs-data 128 128
ceph osd pool create cephfs-metadata 32 32
# 파Day시스템 Generate
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...
🔐 Security 및 권한 관리
🛡️ RBD Security 특성
- 액세스 제어: 클라이언트별 키 기반 인증
- 암호화: 클라이언트 측 암호화 Support
- 스냅샷: 읽기 전용 스냅샷 Generate
- 클론: 효율적인 이미지 복제
🛡️ CephFS Security 특성
- POSIX 권한: 표준 파Day 시스템 권한
- 디렉터리 권한: years old밀한 디렉터리별 제어
- 클라이언트 제한: 경로 기반 액세스 제한
- 암호화: 전송 중 암호화 Support
🔄 백업 및 복원
🔷 RBD 백업 방법
# 스냅샷 Generate
rbd snap create rbd-pool/my-image@snap1
# 스냅샷 Export
rbd export rbd-pool/my-image@snap1 backup.img
# 스냅샷 복원
rbd import backup.img rbd-pool/restored-image
🔷 CephFS 백업 방법
# 스냅샷 Generate
mkdir /mnt/cephfs/.snap/snap1
# rsync 백업
rsync -av /mnt/cephfs/ /backup/cephfs/
# tar 백업
tar -czf backup.tar.gz /mnt/cephfs/
🏗️ 확장성 및 가용성
📊 확장성 비교
| 항목 | RBD | CephFS |
|---|---|---|
| Maximum 이미지 Size | 16 EB | 파Day 시스템 Size 제한 |
| 동시 클라이언트 | 1개 (배타적 액세스) | 수천 개 |
| 메타데이터 확장 | 불필요 | MDS 클러스터 확장 |
| 성능 확장 | OSD Add로 선형 확장 | MDS 성능에 의존 |
💰 비용 및 리소스
💸 운영 비용 비교
- RBD:
- MDS 불필요로 인한 낮은 운영 비용
- 단순한 아키텍처로 관리 용이
- 높은 성능으로 하드웨어 효율성 증대
- CephFS:
- MDS 운영을 for Add 리소스 필요
- 복잡한 메타데이터 관리
- 멀티 클라이언트 환경에서 비용 효율성
🎯 Select 가이드
✅ RBD를 Select해야 하는 경우
- 가상 머신 스토리지가 필요한 경우
- 데이터베이스 스토리지로 Use하는 경우
- 높은 IOPS가 필요한 애플리케이션
- 단Day 클라이언트만 액세스하는 경우
- 컨테이너 볼륨으로 Use하는 경우
✅ CephFS를 Select해야 하는 경우
- 여러 클라이언트가 동시에 액세스해야 하는 경우
- 기존 애플리케이션에서 POSIX 호환성이 필요한 경우
- Share 파Day 시스템이 필요한 경우
- 복잡한 디렉터리 구조가 필요한 경우
- 로그 파Day이나 미디어 Save소로 Use하는 경우
⚡ 성능 최적화 팁
🔧 RBD 최적화
# 클라이언트 최적화
echo mq-deadline > /sys/block/rbd0/queue/scheduler
echo 4096 > /sys/block/rbd0/queue/nr_requests
# 캐시 Settings
rbd_cache = true
rbd_cache_size = 33554432 # 32MB
# 멀티 스레드 Settings
rbd_concurrent_management_ops = 20
🔧 CephFS 최적화
# 클라이언트 캐시 Settings
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
🚨 Caution사항 및 제한사항
⚠️ RBD 제한사항:
- 동시에 여러 클라이언트에서 쓰기 불Available
- 파Day 시스템 Feature 제한
- 복잡한 권한 관리의 어려움
⚠️ CephFS 제한사항:
- MDS 장애 시 All 파Day 시스템 영향
- 메타데이터 성능 병목
- RBD 대비 낮은 성능
🔮 미래 전망
🚀 기술 발전 방향
- RBD:
- 더 효율적인 스냅샷 관리
- 향상된 클론 Feature
- NVMe-oF Support 강화
- CephFS:
- 다중 MDS 성능 개선
- 더 나은 메타데이터 Minutes산
- 스냅샷 Feature 강화
📋 실무 구현 체크리스트
📝 RBD 구현 체크리스트
- [ ] 적절한 풀 Size Settings (PG 수 Calculate)
- [ ] 클라이언트 캐싱 Settings
- [ ] 스냅샷 및 백업 전략 수립
- [ ] 모니터링 Settings 구성
- [ ] 재해 복구 계획 수립
📝 CephFS 구현 체크리스트
- [ ] MDS 고가용성 구성
- [ ] 메타데이터 풀 Size 최적화
- [ ] 클라이언트 권한 Settings
- [ ] 디렉터리 구조 설계
- [ ] 백업 스케줄 Settings
🎯 결론
RBD와 CephFS는 각각 고유한 Advantages과 용도를 가지고 있습니다. RBD는 고성능이 필요한 블록 스토리지에, CephFS는 Share 파Day 시스템이 필요한 환경에 적합합니다. 프로젝트의 요구사항을 정확히 Minutes석하여 적절한 Select을 하는 것이 중요합니다.
🔑 Select 요약:
- 고성능 + 단Day 클라이언트 → RBD Select
- Share 액세스 + 멀티 클라이언트 → CephFS Select
- 데이터베이스 + 가상머신 → RBD Select
- 파Day Share + 협업 → CephFS Select