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

Google을 지탱하는 기술3

on

  • 3,538 views

Distributed Storage of Google

Distributed Storage of Google

Statistics

Views

Total Views
3,538
Slideshare-icon Views on SlideShare
3,516
Embed Views
22

Actions

Likes
3
Downloads
78
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 Google을 지탱하는 기술3 Presentation Transcript

    • 1. GFS – 분산 파일 시스템 2. Bigtable – 분산 스토리지 시스템 3. Chubby – 분산 잠금 서비스 4. HDD vs SSD
    • GFS What is GFS? Distributed File System? - 다수의 컴퓨터를 조합 -> Massive storage - 효율적인 데이터 전송 GFS( Google File System ) : Google의 독자적인 distributed file system - Network를 통한 read & write - 대용량 파일의 읽고 쓰기 -> 대량기록, 읽기에 특화 - 고장발생을 전제로 설계 -> 독립적인 백업기능 - 파일을 cue로서 사용 -> 끊임없는 data 추가
    • 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
    • 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
    • GFS 문제점 & 해결 Chunk Checksum값으로 error 확인 Checksum - Disk 장애 : data의 무결성을 검증하기 위해 만들어진 값 - 내용 바뀜 Same data -> Same checksum Chunk Server Master가 관리대상에서 제외시킴 - 통신두절 Chunk는 새로운 server에 할당 Master 관리정보 갱신 시 Operation Log에 기록 - Master 정지 Master 고장 시 Operation Log 읽고 재현
    • 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
    • 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 구글
    • 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 …
    • Bigtable Bigtable의 구조 Chubby Master Master – 전체 통괄 Tablet Server GFS Tablet Server Client Tablet – tablet 관리 Server Client Tablet – data read & write Server
    • 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 관리
    • 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 내부에 존재
    • Bigtable tablet의 준비 - Tablet Server가 빈 memtable 마련 Tablet - tablet 구성 할 SSTable index GFS Server ->memtable에 넣음 Commit Log SSTable - 복수의 SSTable index memtable -> 하나로 재구성 SSTable SSTable - commit log 내용 -> memtable에 적용
    • 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 서 반환 작업의 대부분이 메모리상에서 수행
    • Bigtable Compaction Minor Compaction - Memtable이 지나치게 커지면 새로운 SSTable에 기록 - 최근 memtable에 업데이트된 내용만 기록 - Commit Log 의 내용 삭제 Major Compaction Compaction을 반복 -> SSTable 너무 많아짐 - Minor - SSTable 많아지면 읽기 효율 저하, 디스크 낭비 - SSTable 을 하나로 모으는 작업
    • Bigtable tablet 검색 Metadata -테이블의 이름과 key를 통해 tablet이 있는 장소 알아냄 User tablet Metadata tablet Root tablet Chubby
    • Bigtable 성능향상 방법 Locality Groups 동시에 이용될 가능성이 큰 column family -> Locality Groups으로 그룹화 ->그룹마다 SSTable을 분리 Data compression 읽기, 쓰기를 하는 data -> locality group별로 지정된 방법 통해 자동 압축, 해제 가능 읽기 캐시 가능한 tablet server의 메모리 상에 data 남겨 둠 -> GFS와의 통신 줄임 Commit Log 일괄처리 대용량 쓰기 요청 받음 -> Commit Log에 기록
    • 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
    • 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)설정가능
    • Chubby Lock service 공유잠금(Shared Lock) : Reader Mode 파일의 잠금 배타잠금(Exclusive Lock) : Writer Mode GFS를 Chubby와 조합함으로 간접적으로 잠금 외부 리소스의 잠금 일정 시간 지나면 잠금 자동해제 파일에 잠금을 거는 동시에 data(sequencer) 생성 시퀀서(Sequencer) -> 요청유효 확인 페일오버(fail over) Chubby측 장애발생시에도 client는 처리가능
    • Chubby Event notification Event -Chubby file 만들거나 그 내용을 update하면 그것을 감시하고 있는 client에게 event 전송 - 각 server 는 시동 시 자신의 주소를 기록한 file 생성 -> 마스터프로세스는 디렉토리를 감시함으로써 서버의 시동, 종료 확인 Cache - Chubby file을 읽으면, 그 내용이 client 측에 캐시됨 - 마스터의 주소를 조회하는데 편리
    • HDD vs SSD SSD : Solid State Disk 원판을 돌리는 하드디스크와는 달리 SSD는 플래시 메모리를 사용 빠른 읽기, 쓰기 속도를 지니고 있고, 높은 안정성 메모리 특유의 저전력, 저발열로 전체적인 시스템의 안정성을 이끌어 냄
    • http://www.youtube.com/watch?v=Pf_QS3mZsyU&feature=player_embedded
    • TO BE CONTINUE…