해결책
대규모 분산 파일 시스템은 전통적으로 각 블록이나 객체가 어디에 있는지 알려주는 메타데이터를 필요로 했다. 페타바이트 규모에서는 이러한 할당 맵이 조정, 복구, 재분배 문제가 되었다.
Ceph의 답은 CRUSH였다. 의사 난수 배치 함수다. 클라이언트와 저장 노드는 중앙 테이블에 묻는 대신 객체 이름과 클러스터 맵으로부터 객체의 위치를 계산할 수 있었다.
OSDI 논문은 Ceph가 초당 25만 건 이상의 메타데이터 작업을 지원한다고 보고했으며, CRUSH 발표는 중앙 디렉터리를 피하면서 수만에서 수십만 개의 저장 장치를 대상으로 하는 알고리즘을 제시했다.
이룬 것
배치를 함수로 전환
결정론적 배치 함수는 모든 참여자가 독립적으로 동일한 객체를 찾을 수 있게 한다.
가중치와 장애 도메인 규칙은 랙과 장치 크기 같은 현실의 제약을 보존한다.
작은 토폴로지 변경은 반드시 이동해야 하는 데이터만 이동시켜, 확장과 장애의 충격을 줄인다.
할당 목록을 제거함으로써 메타데이터 서버의 역할은 모든 바이트의 주소가 아니라 네임스페이스로 축소된다.
극단적 규모에서는 조정을 최적화하는 것보다 조정을 없애는 것이 더 중요할 수 있다. 공유된 결정론적 함수가 공유된 가변 디렉터리를 대체할 수 있다.
그 후
CRUSH는 Ceph의 대표적인 아이디어 중 하나가 되었고, 이 프로젝트가 오래가는 오픈소스 저장 시스템이 되는 데 기여했다. 그 아름다움은 아키텍처에 있다. 페타바이트 규모에서 최고의 디렉터리는 디렉터리가 없는 것이었다.
근거 확인하기
출처
- CRUSH: Controlled, Scalable, Decentralized Placement of Replicated Data Storage Systems Research Center, UC Santa Cruz · ssrc.us
- Ceph: A Scalable, High-Performance Distributed File System USENIX · usenix.org ·