Enterprise Infrastructure Intelligence ● Certified engineers online · Fast response guaranteed
백업/스토리지

Ceph CRUSH Algorithm: 분산 스토리지의 핵심 배치 알고리즘

CRUSH(Controlled Replication Under Scalable Hashing)는 Ceph에서 데이터 위치를 중앙 메타데이터 서버 없이 계산하는 의사난수(pseudo-random) 알고리즘입니다. 클라이언트와 OSD가 클러스터 맵과 CRUSH 규칙을 이용해 독립적으로 객체 배치 위치를 계산함으로써 스케일링과 고가용성을 달성합니다.

2026.09.22  ·  23회  · 

CRUSH 알고리즘의 핵심 개념

Controlled Replication Under Scalable Hashing(CRUSH) 알고리즘은 데이터 저장 위치를 계산하여 데이터를 저장하고 검색하는 방식을 결정합니다. CRUSH는 Ceph 클라이언트가 중앙 서버나 브로커를 거치지 않고 OSD와 직접 통신할 수 있도록 합니다. 이는 전통적인 분산 스토리지의 중앙 조회 테이블(Lookup Table) 메커니즘을 배제함으로써 성능 병목과 확장성 한계를 극복합니다.

아키텍처: 다중 계층 계층 구조와 배치 그룹

CRUSH 알고리즘은 각 RADOS 객체를 배치 그룹(PG)으로 매핑한 다음 각 배치 그룹을 하나 이상의 OSD Daemon으로 매핑합니다. 이 "간접화 계층"은 새로운 OSD Daemon과 기저 OSD 장치가 온라인 상태가 될 때 Ceph가 동적으로 재분산할 수 있게 합니다. CRUSH는 CRUSH 맵을 사용하여 데이터를 OSD로 매핑하고, 구성된 복제 정책 및 장애 도메인에 따라 클러스터 전체에 데이터를 분산합니다.

버킷 알고리즘과 가중치 기반 분배

버킷 인스턴스를 선언할 때 타입을 지정하고 고유한 문자열 이름을 부여하며, 항목의 용량이나 기능을 반영하는 가중치를 지정하고, straw2와 같은 버킷 알고리즘 및 보통 rjenkins1 해시 알고리즘을 반영하는 해시(0)를 지정합니다. straw2는 기존의 straw 알고리즘의 여러 제한 사항을 수정하는 새로운 버킷 알고리즘으로, straw2는 가중치 조정 시 변경되어야 하는 배치만 변경하는 원래의 목표를 달성합니다.

실무 주의점: 재분산과 장애 도메인

OSD를 CRUSH 맵에서 제거하면 CRUSH는 배치 그룹을 받을 OSD를 재계산하고 데이터가 그에 따라 재분산됩니다. 리프 버킷에 적은 수의 장치가 있는 계층에서는 일부 배치 그룹이 원하는 복제본 수보다 적게 매핑될 수 있으며, 이는 일반적으로 각 호스트 노드 아래에 1~3개의 OSD가 있는 경우에 발생합니다. 따라서 클러스터 확장 시 충분한 장치 수를 계획하고 계층 구조를 신중하게 설계해야 합니다.

WIKIDATA WORKSTATION
AI·렌더링에 최적화된
전문가용 워크스테이션
NVIDIA RTX GPU · 최대 192GB 메모리 · ECC 지원