Kim Seogyu
Distributed Systems

CRUSH (Controlled Replication Under Scalable Hashing)

Ceph CRUSH가 중앙 메타데이터 없이 데이터 배치를 계산하는 원리를 설명합니다.

Published 2025년 12월 27일1 min read120 words

CRUSH (Controlled Replication Under Scalable Hashing)

CRUSH는 "객체를 어디에 저장할지"를 중앙 테이블 없이 결정하는 Ceph의 핵심 알고리즘입니다.

CRUSH의 장점

  1. 결정론적 배치(같은 입력 -> 같은 결과)
  2. 대규모 확장에 유리
  3. 실패 도메인(호스트/랙/존) 인식 가능

어떻게 동작하나

  1. 객체/PG를 해시
  2. CRUSH map + rule 적용
  3. 계층 구조에서 대상 OSD 선택
  4. 결과를 클라이언트/OSD가 동일하게 계산

중앙 조회가 없기 때문에 확장성과 장애 내성이 좋아집니다.

운영에서 중요한 것

  • CRUSH map 설계가 잘못되면 복제/EC 모두 취약해집니다.
  • 하드웨어 추가/제거 시 rebalance 영향 범위를 예측해야 합니다.
  • rule 변경은 트래픽과 recovery 부하를 함께 고려해 점진 적용해야 합니다.

결론

CRUSH는 해시 함수가 아니라 배치 정책 엔진입니다. 인프라 토폴로지와 실패 모델을 정확히 반영해야 기대한 내구성을 얻습니다.

Share

Related Articles

Comments

이 블로그는 제가 알고 있는 것들을 잊지 않기 위해 기록하는 공간입니다.
직접 작성한 글도 있고, AI의 도움을 받아 정리한 글도 있습니다.
정확하지 않은 내용이 있을 수 있으니 참고용으로 봐주세요.

© 2026 Seogyu Kim