Ceph RADOS

Ceph RADOS

1️⃣ RADOS Reliable Autonomic Distributed Object Store) 개념 및 핵심 기능

RADOS(Reliable Autonomic Distributed Object Store)는 Ceph의 핵심 스토리지 엔진으로, Ceph 클러스터 내에서 데이터를 안정적으로 분산 및 관리하는 역할을 합니다.

1. RADOS의 핵심 기능

  • 분산 스토리지: 데이터를 여러 OSD에 자동 분산
  • 자가 복구(Self-Healing): 장애 발생 시 데이터 복제 및 복구 자동 수행
  • 확장성: OSD 추가 시 자동으로 데이터 재분배
  • 자율 관리(Self-Managing): CRUSH 알고리즘 기반으로 데이터 배치 자동 조정

🔹 💡 RADOS는 Ceph의 가장 중요한 구성 요소이며, 모든 Ceph 서비스가 RADOS 위에서 동작합니다.


2️⃣ Ceph 클라이언트와 RADOS의 관계

Ceph 클라이언트는 다양한 인터페이스를 통해 RADOS와 직접 통신합니다.

1. 클라이언트 유형

클라이언트 설명
Librados 직접 RADOS API를 사용하는 애플리케이션
RBD 블록 스토리지 인터페이스 제공
CephFS POSIX 호환 파일 시스템 인터페이스 제공
RGW S3 호환 오브젝트 스토리지 제공

2. 클라이언트와 RADOS의 데이터 흐름

클라이언트 요청 -> CRUSH 알고리즘을 통해 PG 결정 -> 해당 PG가 포함된 OSD로 요청 전달

📌 💡 클라이언트는 데이터를 직접 OSD에 저장하며, MON 노드는 데이터 전송에 개입하지 않습니다.


3️⃣ Ceph OSD의 데이터 저장 구조

OSD(Object Storage Daemon)는 Ceph 클러스터에서 데이터를 저장하는 핵심 구성 요소입니다.

1. OSD의 데이터 저장 방식

  • Bluestore: 최신 OSD 저장 방식 (메타데이터는 RocksDB, 데이터는 원본 디스크)
  • Filestore(Deprecated): 기존 파일시스템 기반 저장 방식

2. OSD의 내부 구성

  • block.db (Metadata 저장, SSD 권장)
  • block.wal (Write-Ahead Logging 저장, SSD 권장)
  • block (실제 데이터 저장, HDD/SSD 가능)

📌 💡 Bluestore는 SSD를 block.db로 활용하면 성능이 크게 향상됩니다.


4️⃣ PG (Placement Group)와 OSD 매핑

1. Placement Group (PG) 개념

PG(Placement Group)는 데이터를 OSD에 효과적으로 분산하기 위한 중간 계층입니다.

객체 -> Placement Group (PG) -> OSD

🔹 💡 PG는 CRUSH 알고리즘을 기반으로 OSD에 매핑됩니다.

2. PG 수 설정 예제

PG 수 계산 공식:

PG 수 = (OSD 수 × 100) / 복제본 수

💡 예를 들어, OSD가 10개이고 복제본이 3개라면:

(10 × 100) / 3 ≈ 333개

📌 💡 PG 수를 너무 작게 설정하면 데이터 불균형이 발생할 수 있습니다.


5️⃣ 데이터 복제 및 Erasure Coding의 차이

Ceph은 두 가지 방식으로 데이터를 보호할 수 있습니다.

1. 데이터 복제 (Replication)

  • 데이터를 지정된 개수(예: 3개)만큼 복제하여 여러 OSD에 저장
  • 장애 발생 시 빠른 복구 가능
  • 스토리지 사용량이 증가 (복제본 개수만큼 용량 필요)

2. Erasure Coding (EC)

  • RAID와 유사한 방식으로 데이터 조각을 여러 OSD에 저장
  • 저장 공간 효율이 높음
  • 복구 시 계산 부하가 크며, 성능이 다소 저하될 수 있음

📌 💡 성능이 중요한 환경에서는 Replication을, 저장 공간이 중요한 환경에서는 Erasure Coding을 사용합니다.


6️⃣ OSD Failure 대응 및 자동 복구 과정

Ceph은 OSD 장애가 발생하면 데이터를 자동으로 복구합니다.

1. OSD 장애 감지

  • MON이 OSD Heartbeat(하트비트)를 감지하여 장애 발생 여부 판단
  • 장애 발생 시 CRUSH 맵에서 해당 OSD를 제거

2. 데이터 복구 과정

  1. Ceph은 복제본을 기준으로 데이터 누락 확인
  2. Healthy OSD들이 누락된 데이터를 자동 복구
  3. 복구 완료 후 클러스터 상태가 HEALTH_OK로 변경

💡 복구 진행 중에는 클러스터 상태가 HEALTH_WARN 또는 HEALTH_ERR로 나타날 수 있음


7️⃣ Ceph OSD Heartbeat 및 Failure Detection

OSD 간 Heartbeat(하트비트) 검사를 통해 장애를 감지합니다.

1. Heartbeat 방식

  • OSD는 주기적으로 다른 OSD에 신호를 보냄
  • 일정 시간(기본 20초) 내 응답이 없으면 장애로 간주

2. Heartbeat 튜닝 예제

ceph config set osd osd_heartbeat_grace 10  # 기본 20초 -> 10초로 단축
ceph config set osd osd_heartbeat_interval 3 # 기본 6초 -> 3초로 단축

📌 💡 Heartbeat 값을 너무 낮게 설정하면 네트워크 지연으로 인한 오탐이 발생할 수 있음


RSS Feed
마지막 수정일자