통계학/ADP

[ADP] 분산데이터 저장기술 - 분산파일시스템

헬로희 2025. 2. 20. 16:06
728x90

분산데이터 저장기술

  • 분산파일시스템
  • 클러스터
  • 데이터베이스
  • NoSQL

 

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

  • 파일을 고정된 크기(64mb)의 chunk들로 나누고, 각 chunk에 대한 여러 개의 복제본과 chunk를 청크서버에 분산 및 저장
  • chunk는 마스터에 의해 생성/삭제 될 수 있으며, 유일한 식별자에 의해 구별됨

1) GFS 설계의 가정

  • 저가형 서버로 구성된 환경으로 서버의 고장이 빈번히 발생 할 수 있다고 가정
  • 대부분 파일은 대용량이라고 가정하고 효과적으로 관리할 수 있는 방법 요구됨
  • 파일에 대한 쓰기 연산은 주로 순차적으로 이루어짐
  • 낮은 응답지연시간보다 높은 처리율이 더 중요

2) GFS의 구성요소

  • Client
    • 파일에 대한 읽기/쓰기 동작을 요청하는 애플리케이션
    • 파일 시스템 인터페이스와 유사한 자체 인터페이스를 지원
    • 여러 클라이언트에서 원자적인 데이터추가연산을 지원하기 위한 인터페이스 지원
  • Master
    • 단일마스터구조로 파일시스템의 이름공간, 파일과 chunk의 매핑정보 등에 해당하는 모든 메타데이터를 메모리상에서 관리
    • 하나의 chunk 서버를 primary로 지정하여 복제본의 갱신 연산을 일관되게 처리할 수 있도록 보장
    • chunk들의 상태에 따라 chunk를 재복제하거나 재분산하는 것과 같은 회복동작 수행
  • Chunk Server
    • 로컬디스크에 chunk를 저장 및 관리하면서 클라이언트로부터의 chunk입출력 요청 처리
    • heartbeat 메시지를 통해 청크서버의 상태에 대한 정보를 주기적으로 마스터에 전달

2. 하둡 분산 파일시스템 (HDFS, hadoop Distributed File System)

  • Apache Nutch 웹 검색 엔진의 파일 시스템으로 개발됨
  • GFS의 마스터와 유사한 하나의 Name node와 GFS의 Chunk server와 유사한 다수의 DataNode로 구성됨
  • 파일데이터는 Block(Chunk)단위로 나뉘어 여러 DataNode에 분산/복제/저장됨
  • 기본적으로 파일은 한번 쓰이면 변경되지 않는다고 가정
    (2.0 알파버전부터는 저장됨 파일에 append가 가능)
  • 순차적 스트리밍 방식
  • 배치작업에 적합하도록 설계
  • 낮은 데이터 접근 지연시간보다 높은 데이터 처리량에 중점
  • Client, NameNode, DataNode 간의 통신을 위하여 TCP/IP 네트워크상에서 RPC(Remote Procedure Call)사용

1) HDFS의 구성요소

  • NameNode
    • HDFS상 모든 메타데이터를 관리하며 마스터/슬레이브 구조에서 마스터의 역할
    • 파일이 어떤 형태의 block단위로 나누어져 있고, 어떤 node에 특정 block이 있는지 등 시스템 전반의 상태 모니터링
    • 데이터를 저장하거나 매플리케이션을 실행하는 작업은 수행안함
    • 클라이언트로부터 파일접근 요청처리
  • DataNode
    • GDFS의 SalveNode
    • 클라이언트로부터 데이터 입출력요청 처리
    • 데이터 유실방지를 위한 block을 3중 복제하여 저장
    • block을 저장할 떄 해당 block에 대한 파일의 checksum정보를 별도로 저장
    • 주기적으로 datanode 상태를 나타내는 heartbeat와 자신이 관리하는 block의 목록인 blockreport를 NameNode에 전송
  • 보조네임노드
    • HDFS상태 모니터링 보조
    • 주기적으로 NameNode의 파일시스템 이미지를 SnapShot해 생성

HDFS 파일저장 과정
HDFS 파일읽기 과정


3. 러스터(Luster)

  • Cluster File System Inc.에서 개발한 객체 기반의 클러스터 파일시스템
  • 고속네트워크로 연결된 클라이언트 파일시스템, 메타데이터 서버, 객체저장서버들로 구성됨
  • 계측화된 모듈구조로 TCP/IP, Infiniband, Myrinet과 같은 네트워크를 지원

1) 구성요소

  • Client File System
    • Linux VFS(Virtual FIle System)에서 설치할 수 있는 파일 시스템
    • 메타데이터 서버와 객체 저장 서버들과 통신하면서 클라이언트 응용에 파일시스템인터페이스 제공
  • 메타데이터 서버
    • 파일시스템의 이름공간과 파일에 대한 메타에이터 관리
  • 객체저장서버
    • 파일데이터를 저장하고, 클라이언트로부터 객체 입출력 요청 처리
    • 데이터는 세그먼트라는 작은 데이터 단위로 분할해서 복수의 디스크 장치에 분산시키는 기술인 '스트라이핑 방식'으로 분산 및 저장
  •  

2) 구동방식

  • 유닉스 시맨틱을 제공하면서 파일 메타데이터에 대해서는 WirteBack Cache를 지원
  • 클라이언트에서 메타데이터 변경에 대한 갱신 레코드를 생성하고 나중에 메타데이터 서버에 전달
  • 데타데이터 서버는 전달된 갱신 레코드를 재수행하여 변경된 메타데이터 반영
  • 파일의 메타데이터와 파일 데이터에 대한 동시성 제어를 위해 별도의 잠금을 사용
  • 클라이언트와 메타데이터 서버 간의 네트워크 트래픽을 최소화하기 위하여 메타데이터에 대한 잠금 요청 시에 메타데이터 접근 의도를 같이 전달하는 intent 기반 잠금 프로토콜 사용

4. 파일시스템 비교

구분 GFS 하둡 DFS 러스터
Open SOurce O O O
Chenk Based O O X
Support Replication O O X
Multiple metadata server supported X X X
Locks used to maintain atomicity O O O
Uses a DB for storing metadata X X X
Adding nodes
without shutting down the system
O O O
POSIX support X X O
Supports file modification X X O

 

728x90

'통계학 > ADP' 카테고리의 다른 글

[ADP] 분산데이터 저장기술 - 데이터베이스 클러스터  (0) 2025.02.21
[ADP] 빅데이터 처리기법  (0) 2025.01.17
[ADP] 데이터 처리 프로세스  (1) 2025.01.16
[ADP] DBMS와 SQL  (1) 2025.01.15
[ADP] 빅데이터의 이해  (0) 2025.01.14