콘텐츠로 이동

클러스터 기반 DFS (GFS, HDFS)

Jan 23, 2026 · Updated Jan 27, 2026

클러스터 기반 DFS는 파일을 여러 청크로 분할하여 다수의 데이터 서버에 복제 저장하고, 메타데이터 서버가 위치를 관리하는 대규모 분산 파일 시스템이다. 하드웨어 장애는 예외가 아닌 일상이라는 전제 하에 설계되었다.

컴포넌트역할
Metadata Server디렉토리 구조, 파일-청크 매핑, 청크 위치 정보 관리
Data Server파일 청크 저장 및 클라이언트에 데이터 제공
Client메타데이터 서버에서 위치 정보 얻고, 데이터 서버에서 직접 읽기/쓰기
  1. 파일 청킹(Chunking): 파일을 고정 크기 청크(64MB~128MB)로 분할
  2. 복제(Replication): 각 청크를 여러 데이터 서버에 복제 (기본 3개)
  3. 메타데이터 분리: 메타데이터만 별도 서버에서 관리
특성GFSHDFS
개발GoogleApache (오픈소스)
랜덤 쓰기지원 (복잡)미지원 (append만)
동시 쓰기지원단일 writer
일관성복잡한 보장단순 (append only)
스택MapReduceHadoop Framework

GFS/HDFS 위에서 대규모 병렬 처리를 수행합니다. 데이터가 있는 곳으로 계산을 이동하는 계산 마이그레이션 방식이다.

책을 여러 챕터로 나눠서 여러 창고에 복사본을 보관하는 것과 유사하다. 목차(메타데이터 서버)에서 어느 창고에 있는지 확인하고, 가장 가까운 창고에서 필요한 챕터를 가져온다.

파일: 300MB video.mp4, 청크 크기: 64MB
파일 저장 흐름
1 파일 분할
video.mp4 → 5개 청크로 분할
2 청크 복제
각 청크를 3개 데이터 서버에 복제
3 메타데이터 저장
매핑 정보를 메타데이터 서버에 저장
파일 읽기 흐름
1 위치 요청
클라이언트 → 메타데이터 서버
2 위치 응답
청크 위치 목록 반환
3 병렬 읽기
각 데이터 서버에서 청크 병렬 읽기