테라바이트 데이터 처리를 위한 StoreTorrent 파일시스템 성능과 내결함성
StoreTorrent는 소규모 레코드 입출력을 최적화하고, 피어‑투‑피어 복제 인덱스를 활용해 장애 상황에서도 데이터 전송 없이 분석을 진행할 수 있는 분산 파일시스템이다. 파이프라인 기반 I/O와 메타데이터 설계로 작은 파일 쓰기·읽기 성능을 1‑10배 향상시켰으며, 70대의 스토리지 노드와 560개의 클라이언트를 이용한 실험에서 전체 쓰기 1.69 G
초록
StoreTorrent는 소규모 레코드 입출력을 최적화하고, 피어‑투‑피어 복제 인덱스를 활용해 장애 상황에서도 데이터 전송 없이 분석을 진행할 수 있는 분산 파일시스템이다. 파이프라인 기반 I/O와 메타데이터 설계로 작은 파일 쓰기·읽기 성능을 1‑10배 향상시켰으며, 70대의 스토리지 노드와 560개의 클라이언트를 이용한 실험에서 전체 쓰기 1.69 GB/s, 네트워크 읽기 8.47 GB/s를 달성했다.
상세 요약
StoreTorrent는 “작은 레코드”라는 특수한 워크로드를 목표로 설계된 파일시스템이다. 기존의 대용량 연속 스트림에 최적화된 분산 파일시스템(PVFS, Gluster 등)은 메타데이터 업데이트와 블록 단위 전송 때문에 수백 바이트 이하의 레코드 처리 시 오버헤드가 급증한다. 이를 해결하기 위해 저자는 두 가지 핵심 메커니즘을 도입했다. 첫 번째는 Application‑OS Pipelining이다. 클라이언트 라이브러리는 사용자 레코드를 메모리 버퍼에 적재하고, 비동기적으로 여러 I/O 요청을 동시에 커널에 전달한다. 커널은 이 파이프라인을 통해 디스크와 네트워크 인터페이스를 지속적으로 활용하게 되며, 시스템 콜 횟수를 최소화한다. 두 번째는 메타데이터 구조와 피어‑투‑피어 복제 인덱스이다. 메타데이터는 중앙 트래커가 아니라 각 스토리지 노드가 자신이 보유한 레코드와 복제본 위치를 서로 교환하는 형태로 유지된다. 복제본을 찾을 때 클라이언트는 트래커가 제공한 초기 인덱스를 바탕으로 직접 피어에게 질의하고, 필요 시 복제본을 재배치한다. 이 방식은 장애 발생 시에도 데이터 이동 없이 바로 복제본을 읽어낼 수 있게 해, Degraded‑Read 상황에서도 네트워크 대역폭을 절감한다.
실험 환경은 8코어 CPU와 SATA 디스크를 직접 연결한 70대의 스토리지 노드, 그리고 560개의 8코어 클라이언트로 구성된 이더넷 클러스터였다. 작은 레코드(64 KB 이하) 쓰기 테스트에서 StoreTorrent는 총 1.69 GB/s(≈ 24 MB/s/노드)의 집계 쓰기 속도를 기록했으며, 이는 PVFS와 Gluster가 보인 0.2 GB/s 수준에 비해 8‑10배 향상된 수치다. 읽기 성능 역시 네트워크를 통한 집계 8.47 GB/s를 달성했는데, 이는 로컬 파일시스템의 최대 대역폭에 근접한다. 특히 복제본이 하나만 남은 단일 장애 상황에서도 읽기 속도 저하가 거의 없었으며, 복제본 재배치 없이 피어‑투‑피어 인덱스만으로 데이터 접근이 가능했다.
이러한 설계는 비용 효율성과 확장성을 동시에 만족한다. 복제본을 저장하는 추가 디스크 용량만 있으면, 별도의 전용 메타데이터 서버 없이도 높은 신뢰성을 확보할 수 있다. 또한 파이프라인 구조는 클라이언트‑서버 간의 RTT를 최소화하므로, 대규모 클러스터에서도 선형적인 성능 확장이 가능하다. 그러나 현재 구현은 복제본 수가 2개인 경우에 최적화돼 있으며, 복제본 수가 늘어나면 인덱스 동기화 비용이 급증할 가능성이 있다. 또한 메타데이터 일관성 보장을 위해 트래커가 여전히 중앙 집중식 역할을 수행하므로, 트래커 장애 시 복구 메커니즘이 필요하다. 전반적으로 StoreTorrent는 작은 파일 중심의 데이터 분석 워크로드에 적합한, 저비용 고성능 분산 파일시스템의 새로운 가능성을 제시한다.
📜 논문 원문 (영문)
🚀 1TB 저장소에서 고화질 레이아웃을 불러오는 중입니다...