분산 파일 시스템 (Distributed File System) - ADP #8

    1. 구글 파일 시스템(Google File System, GFS)

    - 구글 파일 시스템은 구글의 대규모 클러스터 서비스 플랫폼의 기반이 되는 파일 시스템으로 개발

     

    가. GFS의 가정

    - 저가형 서버로 구성된 환경으로 서버의 고장이 빈번히 발생할 수 있다 가정

    - 대부분의 파일은 대용량이라 가정하며 효과적으로 관리할 수 있는 방법 요구

    - 작업 부하는 연속적으로 많은 데이터를 읽는 연산이나 임의의 영역에서 적은 데이터를 읽는 연산

    - 파일 쓰기는 순차적으로 데이터를 추가하며 파일에 대한 갱신은 드물에 이루어짐

    - 동시에 파일을 추가하는 환경에서 동기화 오버헤드를 최소화할 방법 요구

    - 낮은 응답 지연시간보다 높은 처리율이 중요

     

    나. GFS의 구성

    - GFS는 아래와 같이 클라이언트, 마스터, Chunk 서버로 구성

    파일 시스템 구조

     

     

    - GFS Client는 POSIX(Portable Operation System Interface) 인터페이스를 지원하지 않고, 파일 시스템 인터페이스와 유사한 자체 인터페이스 지원

    - 파일은 고정된 크기의 chunk들로 나누어 chunk 서버들에 분산 저장하고 각 chunk에 대한 여러 개의 복제본도 chunk 서버에 분산 저장

    - GFS에서는 기본 chunk 크기를 64MB로 지정하여 메타데이터의 크기를 줄인다

    - 마스터는 주기적으로 heartbeat 메세지를 이용하여 chunk를 체크해 재복제하거나 재분산과 가은 회복 동작 수행

    - chunk는 마스터에 의해 생성/삭제 될 수 있으며, 유일한 식별자에 의해 구별

     

    2. 하둡 분산 파일 시스템

    - 하둡은 검색엔진 프로젝트인 루씬(Lucene)의 서브 프로젝트로 진행됐지만, 2008년 최상위 프로젝트로 승격

    - GFS의 아키텍처와 사상을 그대로 구현한 클로닝(Cloning) 프로젝트

     

    HDFS 구조

     

    - 하나의 네임노드(NameNode)와 다수의 데이터노드(DataNode)로 구성

    - 네임노드는 파일 시스템의 이름 공간을 관리하며 클라이언트로 부터 파일 접근 요청 처리

    - 파일 데이터는 블록 단위로 나뉘어 여러 데이터노드에 분산 저장

    - 데이터노드는 클라이언트로부터 입출력 요청을 처리

    - 클라이언트 및 노드간 통신을 위해 TCP/IP 네트워크 상에서 RPC(Remote Procedure Call) 사용

     

     

    3. 러스터(Lustre)

    - 러스터는 객체 기반 클러스터 파일 시스템

    - 클라이언트 파일 시스템, 메타데이터 서버, 객체 저장 서버로 구성되며 고속 네트워크로 연결

    - TCP/IP, 인피니밴드(Infiniband), 미리넷(Myrinet)과 같은 네트워크 지원

    - 유닉스(Unix) 시맨틱을 제공하면서 파일 메타데이터에 대해서는 라이트백 캐시(Write Back Cache) 지원

     

    Lustre 구조

     

    - 메타데이터에 대한 동시 접근이 적으면 클라이언트 캐시를 이용한 라이트백 캐시를 사용하고, 메타데이터에 대한 동시 접근이 많으면 클라이언트 캐시를 사용하여 발생할 수 있는 오버헤드를 줄임

    - 메타데이터와 파일 데이터에 대한 동시성 제어를 위해 별도의 잠금 사용

     

    4. 클러스터 파일 시스템 비교

    구분 GFS 하둡 DFS 러스터
    Open Source 지원 지원 지원
    Chunk based 지원 지원 지원 안함
    Support Replication 지원 지원 지원 안함
    Multiple metadata server supported 지원 안함 지원 안함 지원 안함
    Locks used to maintain atomicity 지원 지원 지원
    Uses a DB for storing metadata 지원 안함 지원 안함 지원 안함
    Adding nodes without shutting
    down the system.
    지원  지원 지원
    POSIX support 지원 안함 지원 안함 지원
    Supports file modification 지원 안함
    (append는 지원함)
    지원 안함 지원

     

    References

    [1] 데이터 분선 전문가 가이드

    댓글

    Designed by JB FACTORY