Distributed Systems
CRUSH (Controlled Replication Under Scalable Hashing)
Ceph CRUSH가 중앙 메타데이터 없이 데이터 배치를 계산하는 원리를 설명합니다.
CRUSH (Controlled Replication Under Scalable Hashing)
CRUSH는 "객체를 어디에 저장할지"를 중앙 테이블 없이 결정하는 Ceph의 핵심 알고리즘입니다.
CRUSH의 장점
- 결정론적 배치(같은 입력 -> 같은 결과)
- 대규모 확장에 유리
- 실패 도메인(호스트/랙/존) 인식 가능
어떻게 동작하나
- 객체/PG를 해시
- CRUSH map + rule 적용
- 계층 구조에서 대상 OSD 선택
- 결과를 클라이언트/OSD가 동일하게 계산
중앙 조회가 없기 때문에 확장성과 장애 내성이 좋아집니다.
운영에서 중요한 것
- CRUSH map 설계가 잘못되면 복제/EC 모두 취약해집니다.
- 하드웨어 추가/제거 시 rebalance 영향 범위를 예측해야 합니다.
- rule 변경은 트래픽과 recovery 부하를 함께 고려해 점진 적용해야 합니다.
결론
CRUSH는 해시 함수가 아니라 배치 정책 엔진입니다. 인프라 토폴로지와 실패 모델을 정확히 반영해야 기대한 내구성을 얻습니다.