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) 프로젝트
- 하나의 네임노드(NameNode)와 다수의 데이터노드(DataNode)로 구성
- 네임노드는 파일 시스템의 이름 공간을 관리하며 클라이언트로 부터 파일 접근 요청 처리
- 파일 데이터는 블록 단위로 나뉘어 여러 데이터노드에 분산 저장
- 데이터노드는 클라이언트로부터 입출력 요청을 처리
- 클라이언트 및 노드간 통신을 위해 TCP/IP 네트워크 상에서 RPC(Remote Procedure Call) 사용
3. 러스터(Lustre)
- 러스터는 객체 기반 클러스터 파일 시스템
- 클라이언트 파일 시스템, 메타데이터 서버, 객체 저장 서버로 구성되며 고속 네트워크로 연결
- TCP/IP, 인피니밴드(Infiniband), 미리넷(Myrinet)과 같은 네트워크 지원
- 유닉스(Unix) 시맨틱을 제공하면서 파일 메타데이터에 대해서는 라이트백 캐시(Write Back Cache) 지원
- 메타데이터에 대한 동시 접근이 적으면 클라이언트 캐시를 이용한 라이트백 캐시를 사용하고, 메타데이터에 대한 동시 접근이 많으면 클라이언트 캐시를 사용하여 발생할 수 있는 오버헤드를 줄임
- 메타데이터와 파일 데이터에 대한 동시성 제어를 위해 별도의 잠금 사용
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] 데이터 분선 전문가 가이드
'IT 자격증 > 데이터 분석 전문가(ADP)' 카테고리의 다른 글
NoSQL과 구글 빅테이블(Google BigTable) - ADP #10 (0) | 2022.07.25 |
---|---|
데이터베이스 클러스터(Database Cluster) - ADP #9 (0) | 2022.07.19 |
대용량 비정형 데이터 처리 - ADP #7 (0) | 2022.05.01 |
데이터 연계 및 통합 기법 - ADP #6 (0) | 2022.04.30 |
EAI(Enterprise Application Integration) - ADP #5 (0) | 2022.04.01 |