Ceph 기본 아키텍처

Ceph 기본 아키텍처

1️⃣ Ceph Cluster의 주요 컴포넌트

Ceph 클러스터는 다양한 컴포넌트로 구성되며, 각 컴포넌트는 역할을 나누어 분산 스토리지를 효율적으로 운영합니다.

1. Ceph의 주요 컴포넌트 개요

Ceph 클러스터는 아래와 같은 핵심 구성 요소로 이루어져 있습니다.

  • Monitor (MON) - 클러스터 상태 및 Quorum 관리
  • Manager (MGR) - 클러스터 메트릭, UI, API 제공
  • Object Storage Daemon (OSD) - 데이터 저장, 복제 및 분배
  • Metadata Server (MDS) - CephFS 메타데이터 관리
  • RADOS Gateway (RGW) - 오브젝트 스토리지 인터페이스 제공

2️⃣ Monitor (MON): 클러스터 상태 및 Quorum 관리

1. Monitor의 역할

  • 클러스터의 상태를 유지 및 관리
  • 클러스터 구성원(노드) 간 Quorum(과반수 동의) 유지
  • OSD 및 MDS의 상태 모니터링

2. Quorum이란?

Quorum은 클러스터 내에서 과반수 이상의 MON 노드가 활성 상태여야 클러스터가 정상적으로 동작할 수 있도록 보장하는 메커니즘입니다.

예시:

  • 3개의 MON이 있는 경우, 최소 2개 이상이 동작해야 함
  • 5개의 MON이 있는 경우, 최소 3개 이상이 필요함

3️⃣ Manager (MGR): 클러스터 메트릭, UI, API 제공

1. Manager의 역할

  • 클러스터 운영을 위한 메트릭 제공
  • Ceph Dashboard UI 제공
  • 외부 API 연동 지원 (Prometheus, Grafana)

2. Ceph Dashboard 예시

ceph mgr module enable dashboard

위 명령어를 실행하면, Ceph Dashboard를 활성화하여 웹 UI를 통해 클러스터 상태를 모니터링할 수 있습니다.


4️⃣ Object Storage Daemon (OSD): 데이터 저장, 복제 및 분배

1. OSD의 역할

  • 실제 데이터를 저장하는 데몬 프로세스
  • 데이터 복제 및 Erasure Coding 수행
  • CRUSH 맵을 사용하여 데이터 분산

2. OSD 프로세스 예제

systemctl status ceph-osd@1

이 명령어를 실행하면 특정 OSD의 상태를 확인할 수 있습니다.


5️⃣ Metadata Server (MDS): CephFS 메타데이터 관리

1. MDS의 역할

  • CephFS의 파일 시스템 메타데이터 관리
  • 파일 및 디렉터리 구조 유지
  • POSIX 호환 파일 시스템 제공

2. MDS 확인 명령어

ceph fs status

이 명령어를 실행하면 CephFS의 상태 및 MDS 상태를 확인할 수 있습니다.


6️⃣ RADOS Gateway (RGW): 오브젝트 스토리지 인터페이스 제공

1. RGW의 역할

  • Amazon S3 및 OpenStack Swift 호환 API 제공
  • Ceph를 오브젝트 스토리지로 사용 가능하게 함

2. RGW 예제

radosgw-admin user create --uid="testuser" --display-name="Test User"

위 명령어를 실행하면 S3와 같은 방식으로 Ceph RGW에서 사용할 수 있는 사용자를 생성할 수 있습니다.


7️⃣ Ceph의 데이터 분산 및 CRUSH 알고리즘

1. CRUSH (Controlled Replication Under Scalable Hashing)

CRUSH는 데이터를 효율적으로 분산 저장하기 위한 Ceph의 핵심 알고리즘입니다.

CRUSH 알고리즘 특징:

  • 중앙 집중식 메타데이터 서버 없이 데이터 위치 결정
  • 하드웨어 장애 시 자동으로 데이터 복구 수행
  • 정책 기반 데이터 배치 가능 (SSD, HDD 분리 등)

2. CRUSH 맵 예시

ceph osd crush tree

위 명령어를 실행하면 현재 클러스터의 CRUSH 맵을 확인할 수 있습니다.


8️⃣ Placement Group (PG) 개념과 역할

1. PG란?

PG(Placement Group)는 데이터의 논리적 그룹이며, CRUSH 알고리즘을 통해 OSD에 분배됩니다.

예시:

  • 데이터를 직접 OSD에 저장하는 것이 아니라 PG를 통해 저장
  • PG가 여러 OSD에 복제되어 데이터 보호

2. PG 상태 확인

ceph pg stat

이 명령어를 실행하면 PG의 현재 상태를 확인할 수 있습니다.


9️⃣ Ceph의 데이터 복제 및 Erasure Coding

1. 데이터 복제 방식

  • Ceph는 기본적으로 데이터를 여러 OSD에 복제하여 저장
  • 기본 복제 수치는 3개이며, 3개의 OSD에 동일한 데이터를 저장하여 내구성을 확보

2. Erasure Coding (EC)

Erasure Coding은 RAID-5, RAID-6과 유사한 방식으로 데이터를 저장하여 저장 효율성을 높이는 방식입니다.

예제:

ceph osd pool create mypool 8 erasure

위 명령어를 실행하면 Erasure Coding을 적용한 새로운 스토리지 풀을 생성할 수 있습니다.


RSS Feed
마지막 수정일자