Ceph
Ceph는 단일 분산 컴퓨터 클러스터 내에서 객체(Object), 블록(Block), 파일(File) 스토리지를 모두 제공하는 오픈소스 소프트웨어 정의 스토리지(Software-Defined Storage, SDS) 플랫폼이다. 데이터의 안정성, 확장성 및 단일 지점 장애(Single Point of Failure)를 제거하는 구조적 성능을 극대화하도록 설계되었다.
Ceph 클러스터의 핵심 기반은 시스템 내의 데이터를 분산 저장하고 관리하는 RADOS(Reliable Autonomic Distributed Object Store)이다. 이 기반 위에서 여러 형태의 스토리지 인터페이스를 제공한다.
Ceph의 주요 데몬 구성 요소는 다음과 같다.
- Ceph OSD (Object Storage Daemon): 실제 데이터를 디스크에 저장하고, 데이터 복제, 복구, 리밸런싱을 처리한다.
- Ceph Monitor (MON): 클러스터 상태 및 맵(OSD 맵, MON 맵, CRUSH 맵 등)을 유지 및 기록하여 시스템 안정성을 보장한다.
- Ceph Manager (MGR): 스토리지 시스템의 활용도, 성능 메트릭 등을 추적하고 관리한다.
- Ceph MDS (Metadata Server): CephFS(파일 시스템)를 위한 메타데이터를 저장한다. (블록이나 객체 스토리지 환경에서는 작동하지 않는다.)
데이터를 저장할 위치를 결정하기 위해 Ceph는 CRUSH(Controlled Replication Under Scalable Hashing) 알고리즘을 사용한다. 중앙 집중식 메타데이터 디렉터리나 인덱스를 조회하는 대신, 클라이언트와 OSD 맵이 데이터를 어디에 쓰고 읽을지 직접 계산한다. 이는 확장 프로세스의 병목 현상을 제거한다.
Ceph가 제공하는 3가지 주요 스토리지 유형 및 특징에 대한 비교는 다음과 같다.
| 스토리지 인터페이스 | 컴포넌트명 | 설명 | 주요 사용 사례 | 접근 방식(프로토콜) |
|---|---|---|---|---|
| 객체 스토리지 (Object Storage) | Ceph Object Gateway (RGW) | Amazon S3 및 OpenStack Swift API와 완벽하게 호환되는 RESTful 인터페이스를 제공한다. | 클라우드 스토리지, 대용량 아카이빙, 멀티미디어 데이터 보관 | HTTP/REST API (S3, Swift) |
| 블록 스토리지 (Block Storage) | Ceph Block Device (RBD) | 가상 머신(VM) 및 컨테이너에 마운트할 수 있는 신축성 있는 가상 블록 디바이스. 씬 프로비저닝, 스냅샷, 복제 기능을 지원한다. | OpenStack 기반 퍼블릭/프라이빗 클라우드, 데이터베이스 디스크, KVM 인스턴스 | 커널 모듈(krdb), QEMU/KVM(librbd), iSCSI |
| 파일 스토리지 (File Storage) | Ceph File System (CephFS) | POSIX 호환 분산 파일 시스템. 여러 클라이언트가 동시에 동일한 디렉토리나 파일을 마운트하고 접근할 수 있다. | 빅데이터 처리, 고성능 컴퓨팅(HPC), 다중 사용자 공유 홈 디렉토리 | 커널 클라이언트, FUSE(Filesystem in Userspace) |
Sources:
- Weil, S. A., Brandt, S. A., Miller, E. L., & Long, D. D. (2006). “Ceph: A scalable, high-performance distributed file system.” Proceedings of the 7th symposium on Operating systems design and implementation (OSDI ‘06).
- Official Ceph Documentation. “Intro to Ceph.” Ceph.com. (https://docs.ceph.com/en/latest/start/intro/)
- Red Hat Documentation. “Red Hat Ceph Storage Architecture Guide.” Redhat.com. (https://access.redhat.com/documentation/en-us/red_hat_ceph_storage)
- IBM. “What is Ceph?” IBM.com. (https://www.ibm.com/topics/ceph)