3 구글의 분산 스토리지(1)

2,149 views

Published on

Published in: Technology, News & Politics
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,149
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
41
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

3 구글의 분산 스토리지(1)

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

×