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을 적용한 새로운 스토리지 풀을 생성할 수 있습니다.
마지막 수정일자