3 구글의 분산 스토리지(1)
TRANSCRIPT
3 장 Google의 분산 Storage
Sky
GFS –Google File System
Bigtable –분산 Storage System
Chubby – 분산 잠금 Service
기타 Storage
Why?
GFS
GFS의 기능
GFS의 구조
GFS의 읽기 쓰기
정리 –GFS!
많은 Computer
대량의 Data 기록
대량의 Data 읽음
Crawler
Crawler
Crawler
Repository
IndexCreation
IndexCreation
IndexCreation
중간 File
Internet
대 용량 Storage 전 세계의 Web Page
정보를 처리
Network를 통해 file을읽고 쓰는 System
거대한 Data 통로
File에서 File 로변환하는 Process
Application
G F S
File 1 File 2
Data
DataData
Data
Change
GFS의 구조
Data 전송을 위한 특화 설계
Software를 활용한 장애대책
▪ 분산된 Back-up으로 안정성 유지
다른 기능의 감소
파일을 Cue(대기행렬)로서 사용
▪ GFS상의 파일 -> Data의 통로
조작 설명
Create 새로운 파일 작성
Delete 기존의 파일 삭제
Open 기존의 파일 연다.
Close 열린 파일을 닫는다.
Read 지정한 위치의 Data를 읽어 옴
Write 지정한 위치에 Data를 기록
Snapshot 파일을 복사
Record Append 파일의 끝에 Data를 추가
Master GFS 전체의 상태를 관리 / 통제
Chunk Server 실제 Hard Disk의 입출력을 담당
Client GFS를 이용하여 File을 읽고 쓰는 Application
Chunk (덩어리) GFS상의 파일의 한 Block 단위 : 64MB 보통 3개의 Chunk Server에 복제되어 보관
Client
H
ChunkServer
ChunkServer
D D
Master
MasterClient
ChunkServer
ChunkServer
ChunkServer
MasterClient
ChunkServer
ChunkServer
ChunkServer
Secondary SecondaryPrimary
<
읽기>
가까운서버를이용한다
<
쓰기>
복수의서버를이용한다
Snapshot 파일의 복사본을 순간적으로 만들어 내는 기능
Copy on Write
GFS에서 파일은 Chunk의 집합
같은 Chunk를 가르키는 새로운 이름의 파일 정보를만드는 기능
Record Append 한 Record의 data를 파일의 마지막에 추가하는 기능
Record : GFS에서 한번에 읽고 쓰는 data의 단위
원자적(Atomic) 쓰기를 위한 기능
추가 실패할 경우
출 : The Google File System. Sanjay Ghemawat, Howard Gobioff
RDB Vs. Bigtable
Multi Dimensional Sorted Map
Tablet
Compaction
성능향상
정리 – Bigtable!
RDB – Relational Database
Bigtalble
값
구조화된
데이터Row Key Column Family
Row
Row
Column
Column
Time Stamp
Row Key
Column Family
Row
Column Key
Time Stamp
Key 값
Row Key + Column Key + Time Stamp Structred Data
.
.
.
<Data Model>
<개념도>
복수의 연속하는 Row를 하나로 포괄
복수의 Server로 분산 관리
Locality
Row Key Data
images.google.com ….. …
maps.google.com …
www.google.com …
Row Key Data
com.google.images ….. …
com.google.maps …
com.google.www …
SSTable 읽기 전용 검색용 Table
GFS내부에 보관
Data / Index로 구성 -> 빠른 검색
하나의 Tablet은 복수의 SSTable로 구성
Memtable Memory 상에서 수정 가능
Tablet Server 내부에 보관
Commit Log
준비
GFSTablet Server
Commit Log
SSTable
SSTable
memtable
읽기 / 쓰기
GFSTablet Server
Commit Log
SSTable
SSTable
memtable
읽기
쓰기
Minor Compaction
Memtable 이 지나치게 커짐
새로운 SSTable에 내용 기록
오래된 Commit Log의 정리
Major Compaction
SSTable이 지나치게 늘어남
통합해서 하나의 SSTable로 모으는 작업
Metadata Table의 이름과 Key로 Tablet이 있는 장소 지시
Tablet의 마지막 Row Key가 기록
Tablet에 접근 Root Tablet -> Bigtable의 기점
▪ Client -> Chubby ▪ Root Tablet의 정보를 가져옴
▪ Root Tablet -> Key 검색▪ Key가 포함된 Metadata Tablet의 위치 파악
▪ Metadata Tablet -> Key 검색▪ 해당 Tablet의 위치 파악
▪ 읽기 / 쓰기 작업 요청
Locality Group
동시에 이용될 가능성 큰 Column Family Group
Data 압축
비교적 큰 data영역으로부터 공유하는 문자열의
Pattern 찾아내서 중복된 data 줄이는 방법
Data를 일정크기로 압축하는 방법
읽기 Cache Scan Cache
▪ 최근 Access한 Key에 대응하는 Data 남겨두는 방식
▪ 동일한 Key가 여러반 사용되는 경우 효과적
Block Cache▪ SSTable에서 Data를 읽을 때, 모아진 양을 읽어서 Tablet Server
상에 남겨두는 방식
▪ 연속된 Data를 차례로 읽는 경우 효과적
Commit Log의 일괄처리 (쓰기에서의 개선)
쓰기는 Commit Log를 위해 반드시 GFS에 접근
Commit Log에 한번에 기록하는 양 늘림
요청이 많을때 모두 모아서 Commit Log에 기록
Client
Master
GFS
Chubby
TabletServer
TabletServer
TabletServer
Chubby
Chubby Cell
Chubby – File System
Chubby – Lock Service
Chubby – Event Notification
Master 결정
소 용량, 높은 신뢰성과 편리한 기능
제공하는 분산 Storage
주요 기능
File System
▪ 다른 분산 System의 구축을 위한 기반
Lock Service
▪ 배타 제어
Event Notification
Chubby Cell 5개의 machine
으로 이뤄진 Chubby Replica Master
모든 Data Center에하나이상 존재
동시에 몇천~몇만의Client가 Access
Chubby Cell
Master
Client
Client
<Chubby의 전체구조>
파일에 접근
Chubby와 GFS의 Name Space는 통합
Local Cell – 가까이 있는 Cell
Global Cell – 전 세계로부터 접근이 가능한 Cell
각종 접근 제어
Media에서 어떤 Service가 작동중인지에 관한 정보
Bigtable의 Metadata가 어디 있는가에 관한 정보
그 밖에 다양한 System설정 파일
File의 잠금 Shared Lock – Reader Mode Exclusive Lock –Writer Mode ACL –Access Control List
외부 resource의 잠금 GFS File이 Chubby와 조합하여 간접적으로 잠금
Lock Service
Sequencer 단순한 문자열 Data – 요청이 유효한지 확인
Client가 정지했을때, Lock이 계속 되는 상황을 방지
Event Chubby에서 Process가 정지하면 자동삭제 되는 임시 파
일 생성
Master가 자신의 주소를 임시 파일에 기록
임시 파일만 감시
서버의 사활 감시, Master의 치환
Cache Chubby파일 읽은 후, 읽은 내용 Client측에 Cache 로 저장
파일의 내용이 Update될 때 모든 Cache 파기
Adress 취득, Adress 갱신
Replica의 합의에 의한 결정 Master는 절반 이상의 Replica가 연결되어 있는 장소
에 나타남
항상 3개 이상의 Replica와 통신 가능 상태
다양한 장애 Master의 고장
절반이상의 고장 –X Replica와의 통신 단절
Master와의 통신 단절
Cell 전체의 통신 단절 –X
C
M
Chubby
Chubby Cell
Chubby – File System
Chubby – Lock Service
Chubby – Event Notification
Master 결정
OneFS® 운영 체제 software를 사용 – 분산 file system에서 단일 global name space 제공
업계 최초의 유일한 동기식 Cluster Storage Architecture
단일 file system에서 4TB-1.6PB 까지 확장 가능한
시스템 – 기존 storage보다 최대 100배 확장 가능
최대 10GB/초의 유례 없는 총 처리량 – 기존 스토
리지 속도보다 최대 20배 향상
사용하기 쉬우면서도 강력한 Web 기반 관리
60초 내에 용량 및 성능 확장
System당 최대 용량 951TB
Storage 당 HA Host 수 512
최대 논리 Unit 수 4096
Storage당 Host Port 수 FC 8개와 iSCSI 4개
System Memory 32GB
Storage 당 Drive 수 480 or 960
Disk 유형 Fibre Channel, SATA II, LP SATA II 및 Flash Drive
지원되는 Host Windows*, Linux*, Solaris*, HP-UX*, AIX*, VMware*