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해 생성
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 |