Ceph이란?

이민석's avatar
May 06, 2025
Ceph이란?

🚩

용어 정의, 클라이언트* : 요청자 == 스토리지를 필요로 하는 사람 서버* : 공급자 == 물리적인 서버(PC, EC2 등) 영어로 써진 것은 특정한 공식 용어

A. Ceph

Ceph은 분산형 스토리지 클러스터를 구축하는데 사용됩니다.
즉, 클라이언트*가 스토리지 사용을 유연하고 확장성있게 하게 만들 수 있습니다.

  • AS-IS : 클라이언트*는 본인이 배포되는 서버*에 귀속된 디스크를 사용

  • TO-BE : 클라이언트*는 클러스터 내부의 서버*에 귀속된 스토리지를 사용

[그림 1] Clients → Ceph Storage Cluster
[그림 1] Clients → Ceph Storage Cluster

Ceph Storage Cluster는 크게 보면 3가지로 구성됩니다.

  1. Ceph Client : Ceph Storage Cluster에 접근하기 위한 인터페이스

  2. Ceph Storage Node : 실제 저장과 관련된 책임, 역할 (cpeh-osd|mon|mgr)

  3. Ceph Protocol : Ceph Storage Node ← → Ceph Client

클라이언트가 사용 가능한 스토리지*는 그 유형에 따라서 3가지로 구분됩니다.

Object Storage

RADOS GW

RADOS Gateway

Block Storage

RBD

RADOS Block Device

Filesystem

FS

RADOS(Reliable, Autonomous, Distributed Object Store)

A.1. Ceph Client

Ceph Client는 3가지 유형에 대한 4가지 엑세스 방법이 제공됩니다.

  1. 유형 : APP, HOST/VM, Client

  2. 엑세스 방법 : libRADOS, Object(RADOS GW), Block(RBD), Filesystem(FS)

[그림 2] Ceph Client
[그림 2] Ceph Client

3가지 주요 엑세스 방법은 다음과 같은 예시로 손쉽게 이해할 수 있습니다.

Object Storage

데이터는 객체로 저장되고 네트워크를 통해 데이터로 쿼리

- GET /path/to/object

Block Storage

VM에서 패스스루된 블록 장치*를 사용 (포맷 불필요)

- /dev/sda/*

Filesystem

네트워크를 통해 원격 저장소를 마운트*해서 사용 (포맷 필요)

- POSIX open()

A.2. Ceph Storage Node

Ceph Storage Node는 Daemon을 통해서 데이터를 저장 및 관리합니다.

Ceph Object Storage Daemon

실제 데이터를 저장하고 복제, 복구, 재조정 (ceph-osd)

Ceph Monitor Daemon

클러스터 상태를 모니터링, 인증 및 맵 관리 (ceph-mon)

Ceph Manager Daemon

클러스터 상태를 수집, 요약 및 관리 제공 (ceph-mgr)

이떄 데이터 단위를 Object라고 부르며, Pool / PG / CRUSH 개념이 등장합니다.

https://docs.redhat.com/en-us/documentation/red_hat_ceph_storage/6/pdf/storage_strategies_guide/Red_Hat_Ceph_Storage-6-Storage_Strategies_Guide-en-US.pdf
[그림 3] Ceph Startegies (Object, Pool, PG, CRUSH)

A.3. 결론

Ceph을 사용하면 분산 스토리지 구성이 가능합니다.

참고자료

Share article

Unchaptered