Translator의 기본 개념과 역할
GlusterFS의 Translator(xlator)는 공유 객체(.so 파일)로 컴파일되며, volfile에 정의된 설정에 따라 동적으로 로드됩니다. 사용자 요청을 스토리지 요청으로 변환하는 일대일, 일대다, 또는 일대영(캐싱 등) 관계를 구현하며, 경로 수정, 데이터 변환(암호화 등), 요청 차단 또는 새 요청 생성 등의 기능을 수행합니다.
Translator Stack의 구조와 작동 원리
모든 Translator는 그래프 구조로 연결되어 하나의 처리 파이프라인을 형성합니다. 클라이언트 스택은 FUSE Translator로 시작하여 DHT, AFR, Protocol Client로 이어지고, 서버 스택은 Protocol Server와 POSIX Translator로 구성됩니다. STACK_WIND()는 상위 계층에서 하위 계층으로 요청을 전달하고, STACK_UNWIND()는 응답을 역방향으로 전달하는 비동기 콜백 메커니즘입니다.
주요 Translator 카테고리와 실무 고려사항
Storage, Cluster(DHT, AFR), Performance(write-behind, read-ahead, io-cache), Encryption, Protocol, System 등 10가지 유형으로 분류됩니다. 실무에서는 Translator 순서가 중요하며, GlusterFS 3.1 이후 CLI가 자동으로 그래프를 구성하므로 수동 설정 불필요합니다. 브릭 누락 시 해시 공간에 구멍이 생겨 데이터 위치 파악이 어려워질 수 있는 점을 유의해야 합니다.