💡 etc/Infra

[Ceph] 분산 스토리지 플랫폼 : Ceph

heywantodo 2025. 1. 21. 14:17
728x90
반응형

[Ceph] 분산 스토리지 플랫폼 : Ceph

Minio의 최신 버전에서 s3 스토리지 게이트웨이 기능 지원이 종료됨에 따라, 대체할 수 있는 플랫폼을 찾아보다 알게 된 것이 Ceph 였다. 스토리지 게이트웨이 기능을 대체하기엔 적합하진 않았지만 활용도가 높아보여 이번 포스팅에선 ceph에 대해 알아보고자 한다.

 

Chep란?

Ceph는 고성능, 확장성, 신뢰성을 제공하는 오픈소스 분산 스토리지 플랫폼이다.

특히, 소프트웨어 정의 스토리지(Software-Defined Storage, SDS) 개념에 기반해 하드웨어와 독립적으로 동작하며

블록 스토리지, 파일 스토리지, 오브젝트 스토리지 모두를 지원하며, 데이터를 자동으로 분산 저장하고 복구하는 특징이 있다.

 

Chep의 주요 특징

1. 단일 스토리지 플랫폼

: Ceph는 세 가지 주요 스토리지 유형을 단일 플랫폼에서 제공한다.

  • 오브젝트 스토리지 (Object Storage)
    • RESTful API를 통해 데이터를 저장하고 액세스 할 수 있다.
    • AmazonS3 또는 OpenStack Swift와 유사한 방식으로 작동한다.
  • 블록 스토리지 (Block Storage)
    • iSCSI 또는 RBD (RADOS Block Device)를 통해 가상 머신 및 데이터 베이스와 같은 워크로드에 사용된다.
  • 파일 스토리지 (File Storage)
    • CephFS라는 POSIX 호환 파일 시스템을 제공한다.

 

2. 완전 분산 아키텍처

Ceph는 중앙 집중식 메타데이터 서버없이 CRUSH(Controlled Replication Under Scalabel Hashing) 알고리즘을 사용해 데이터를 클러스터에 고르게 분산하고 액세스한다.

 

Ceph의 주요 구성 요소

1. RADOS (Reliable Autonomic Distributed Object Store)

Ceph의 핵심 스토리제 엔진으로, 데이터를 오브젝트로 저장하며 모든 기능(복제, 분산, 복구 등)을 수행한다.

 

2. OSD (Object Storage Daemon)

데이터의 저장 및 복제를 담당하는 Ceph의 데이터 노드다.

클러스터 내의 데이터를 읽고 쓰며, CRUSH 맵에 따라 데이터를 분산 및 복구한다.

 

3. Monirot (MON)

클러스터의 상태, 노드 매핑, 인증 정보를 관리한다.

클라이언트와 OSD 간 통신의 신뢰성을 보장한다.

 

4. Manager (MGR)

클러스터 성능 메트릭 수집 및 상태 대시보드를 제공한다.

관리 자동화 및 확장 기능을 지원한다.

 

5. MDS (Metadata Server)

CephFS에서 파일 및 디렉토리 메타데이터를 관리한다.

POSIX 파일 시스템 액세스를 가능하게 한다.

 

6. RGW (RADOS Gateway)

오브젝트 스토리지 API를 제공하는 게이트웨이 (ex. S3, Swift)

Ceph의 데이터를 RESTful 방식으로 액세스 할 수 있도록 지원한다.

 

Ceph의 작동 원리

1. CRUSH 알고리즘

💡 CRUSH (Controlled Replication Under Scalable Hashing)
일반적인 분산 스토리지 시스템에서 데이터 분산과 복제는 메타데이터 서버를 통해 이루어지지만,
CRUSH는 메타데이터 서버 없이 데이터를 효율적으로 관리한다.

Ceph는 데이터를 중앙 서버 없이 클러스터 내에 분산하기 위해 CRUSH 알고리즘을 사용한다.

CRUSH는 메타데이터 서버가 필요 없으므로, 이를 통해 성능 병목과 단일 장애 지점을 제거한다.

 

2. 복제와 복구

데이터는 기본적으로 3개의 복사본(replica)으로 저장되며, OSD가 장애를 일으키면 Ceph는 남아있는 복사본을 기반으로

자동으로 데이터를 복구한다.

 

Ceph 아키텍처

클라이언트가 Ceph 클러스터에 데이터를 저장하거나 읽으려는 요청을 보낸다. 요청은 MON, OSD, CRUSH 맵을 통해 적절한 OSD에 라우팅된다.

데이터를 CRUSH 알고리즘을 통해 여러 OSD에 분산 저장한다.

 

마무리

Ceph는 Kubernetes와 통합하여 동적 스토리지 프로비저닝을 제공하기 때문에, 클라우드 네이티브 환경 및 대규모 데이터 저장 환경에 적합하다.

클라우드 네이티브와 전통적인 엔터프라이즈 환경 모두에서 널리 사용되는 만큼, 체계적인 학습과 관리가 중요하다.

 

참고

https://docs.redhat.com/it/documentation/red_hat_ceph_storage/4/html-single/architecture_guide/index

 

728x90
반응형