Google을 지탱하는 기술3
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Google을 지탱하는 기술3

on

  • 3,658 views

Distributed Storage of Google

Distributed Storage of Google

Statistics

Views

Total Views
3,658
Views on SlideShare
3,636
Embed Views
22

Actions

Likes
3
Downloads
80
Comments
0

2 Embeds 22

http://kms.sec.samsung.net 14
http://www.slideshare.net 8

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Google을 지탱하는 기술3 Presentation Transcript

  • 1. 1. GFS – 분산 파일 시스템 2. Bigtable – 분산 스토리지 시스템 3. Chubby – 분산 잠금 서비스 4. HDD vs SSD
  • 2. GFS What is GFS? Distributed File System? - 다수의 컴퓨터를 조합 -> Massive storage - 효율적인 데이터 전송 GFS( Google File System ) : Google의 독자적인 distributed file system - Network를 통한 read & write - 대용량 파일의 읽고 쓰기 -> 대량기록, 읽기에 특화 - 고장발생을 전제로 설계 -> 독립적인 백업기능 - 파일을 cue로서 사용 -> 끊임없는 data 추가
  • 3. GFS GFS의 구조 Client Master Master – 관리 통제하는 중앙서버 Chunk Server Chunk Chunk Server Server – HDD I/O 담당 Client HDD HDD HDD HDD – GFS 이용하는 C.S Application C.S C.S file
  • 4. GFS Read & Write Client Master Read ① – 가장 가까운 서버 이용 ② ③ Chunk Chunk Chunk Server Server Server Write – 복수의 서버 이용 Client Master ① ③ ② Chunk Chunk Chunk Server Server Server Secondar ④ Primary ④ Secondar y y
  • 5. GFS 문제점 & 해결 Chunk Checksum값으로 error 확인 Checksum - Disk 장애 : data의 무결성을 검증하기 위해 만들어진 값 - 내용 바뀜 Same data -> Same checksum Chunk Server Master가 관리대상에서 제외시킴 - 통신두절 Chunk는 새로운 server에 할당 Master 관리정보 갱신 시 Operation Log에 기록 - Master 정지 Master 고장 시 Operation Log 읽고 재현
  • 6. Bigtable 거대한 DataBase RDB data model Column 값 구조화된 data의 분산 Row 스토리지 시스템 Multi Dimensional Sorted Map row key + column key Bigtable data model + time stamp = data Row key Column key Row 구조화된 data Column의 수를 자유롭게 증감 Column Column Time stamp Family Family
  • 7. Bigtable Example 완성된 table 예 : Row key Contents: Anchor:example.com Anchor:example.kr google.com <html>… Google 구글 <html>… <html>… Key Data Bigtable에 저장된 data : Google.com+contents:+t1 <html>… Google.com+contents:+t2 <html>… Google.com+contents:+t3 <html>… Google.com+anchor:example.com+t4 Google Google.com+anchor:example.kr+t5 구글
  • 8. Bigtable tablet Table Row Tablet Tablet Tablet Server1 -Table을 복수의 Row로 분할한 것 Tablet Tablet Server2 Locality(소속성, 지역성) -필요한 data를 한 곳에 모아 Row key data locality 높임 Com.google.image … - [.]위치에서 domain을 역전 시킴 Com.google.maps … Com.google.www …
  • 9. Bigtable Bigtable의 구조 Chubby Master Master – 전체 통괄 Tablet Server GFS Tablet Server Client Tablet – tablet 관리 Server Client Tablet – data read & write Server
  • 10. Bigtable tablet의 할당 Tablet 하나의 tablet은 Server 하나의 tablet server에 할당 GFS tablet memtable Commit Log Tablet server 고장 SSTable -> tablet을 다른 server에 할당 tablet memtable SSTable 하나의 tablet server tablet memtable SSTable 약10~1000개의 tablet 관리
  • 11. Bigtable tablet의 구조 SSTable - 읽기 전용 검색용 테이블 Tablet - data 와 index로 구성 Server - tablet은 복수의 SSTable로 구성 GFS tablet memtable Commit Log Commit Log SSTable tablet memtable - tablet을 수정한 이력이 보존 SSTable tablet memtable Memtable SSTable - 메모리상에서 수정가능 한 table - Tablet server 내부에 존재
  • 12. Bigtable tablet의 준비 - Tablet Server가 빈 memtable 마련 Tablet - tablet 구성 할 SSTable index GFS Server ->memtable에 넣음 Commit Log SSTable - 복수의 SSTable index memtable -> 하나로 재구성 SSTable SSTable - commit log 내용 -> memtable에 적용
  • 13. Bigtable tablet Read&write Write - 쓸 내용을 commit log에 추가 - Memtable 업데이트 Tablet - client에 결과 전달 GFS Server Commit Log Read Read SSTable - Memtable에서 key 검색 memtable SSTable - 최근 data 있으면 client에 반환 - SSTable에 있으면 GFS로부터 받아 Write SSTable 서 반환 작업의 대부분이 메모리상에서 수행
  • 14. Bigtable Compaction Minor Compaction - Memtable이 지나치게 커지면 새로운 SSTable에 기록 - 최근 memtable에 업데이트된 내용만 기록 - Commit Log 의 내용 삭제 Major Compaction Compaction을 반복 -> SSTable 너무 많아짐 - Minor - SSTable 많아지면 읽기 효율 저하, 디스크 낭비 - SSTable 을 하나로 모으는 작업
  • 15. Bigtable tablet 검색 Metadata -테이블의 이름과 key를 통해 tablet이 있는 장소 알아냄 User tablet Metadata tablet Root tablet Chubby
  • 16. Bigtable 성능향상 방법 Locality Groups 동시에 이용될 가능성이 큰 column family -> Locality Groups으로 그룹화 ->그룹마다 SSTable을 분리 Data compression 읽기, 쓰기를 하는 data -> locality group별로 지정된 방법 통해 자동 압축, 해제 가능 읽기 캐시 가능한 tablet server의 메모리 상에 data 남겨 둠 -> GFS와의 통신 줄임 Commit Log 일괄처리 대용량 쓰기 요청 받음 -> Commit Log에 기록
  • 17. Chubby Chubby 란? Chubby Cell Replica HDD 분산 시스템의 기반이 되는 시스템 배타제어 가능한 작은 시스템 제공 Client Replica HDD 이벤트 통지에도 이용 -> DNS 대용 파일크기가 아주 작음(1KB미만) Master HDD Client Chubby의 기능 Replica HDD File System Lock Service Replica HDD Event notification
  • 18. Chubby File System Cell의 이름을 DNS에 문의 -> 모든 replica의 address 구함 파일에 접근하기 임시파일 작성 -> 자신의 상태 알림 Local cell – 같은 위치의 chubby cell Local cell & Global cell Global cell – 전세계로부터 접근 가능 cell File읽기,쓰기 모두 master에게 요구 File의 내용은 local database에 기록 File read & write 모든 file, directory에 ACL(Access Control List)설정가능
  • 19. Chubby Lock service 공유잠금(Shared Lock) : Reader Mode 파일의 잠금 배타잠금(Exclusive Lock) : Writer Mode GFS를 Chubby와 조합함으로 간접적으로 잠금 외부 리소스의 잠금 일정 시간 지나면 잠금 자동해제 파일에 잠금을 거는 동시에 data(sequencer) 생성 시퀀서(Sequencer) -> 요청유효 확인 페일오버(fail over) Chubby측 장애발생시에도 client는 처리가능
  • 20. Chubby Event notification Event -Chubby file 만들거나 그 내용을 update하면 그것을 감시하고 있는 client에게 event 전송 - 각 server 는 시동 시 자신의 주소를 기록한 file 생성 -> 마스터프로세스는 디렉토리를 감시함으로써 서버의 시동, 종료 확인 Cache - Chubby file을 읽으면, 그 내용이 client 측에 캐시됨 - 마스터의 주소를 조회하는데 편리
  • 21. HDD vs SSD SSD : Solid State Disk 원판을 돌리는 하드디스크와는 달리 SSD는 플래시 메모리를 사용 빠른 읽기, 쓰기 속도를 지니고 있고, 높은 안정성 메모리 특유의 저전력, 저발열로 전체적인 시스템의 안정성을 이끌어 냄
  • 22. http://www.youtube.com/watch?v=Pf_QS3mZsyU&feature=player_embedded
  • 23. TO BE CONTINUE…