Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Google3

1.208 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie, Business
  • Loggen Sie sich ein, um Kommentare anzuzeigen.

Google3

  1. 1. Google 을 지탱하는 기술 Google 의 분산 스토리지 - GFS samantha
  2. 2. GFS <ul><li>GFS(Google File System) </li></ul>
  3. 3. GFS (Google File System) <ul><li>구글의 독자적인 분산파일시스템 </li></ul><ul><li>다수의 컴퓨터를 조합해 거대한 스토리지 ( 외부기억장치 ) 를 만들어내는 기술 </li></ul><ul><li>네트워크를 통해 파일을 읽고 쓰기 위한 시스템 </li></ul><ul><li>장점 </li></ul><ul><ul><li>큰 용량 </li></ul></ul><ul><ul><li>효율적인 데이터 전송 </li></ul></ul>
  4. 4. 데이터 전송을 위한 특화 설계 <ul><li>장애 대책 </li></ul><ul><ul><li>고장 발생을 전제로 하여 시스템 설계 </li></ul></ul><ul><ul><li>GFS 에서 파일은 항상 백업된 상태 </li></ul></ul><ul><li>대용량 파일 </li></ul><ul><ul><li>데이터를 대량으로 기록하고 읽어 내는 데이터 송수신에 활용할 수 있도록 특화 설계 </li></ul></ul><ul><li>cue 사용 </li></ul><ul><ul><li>파일을 데이터의 cue 로서 사용 </li></ul></ul><ul><ul><li>GFS 에서 파일이란 데이터의 통로 </li></ul></ul>
  5. 5. GFS 의 기능 작성 삭제 열기 닫기 읽기 쓰기 스냅샷 – 파일 복사 레코드 추가 – 파일 끝에 데이터 추가
  6. 6. GFS 의 전체모습 <ul><li>Master </li></ul><ul><ul><li>GFS 전체의 상태를 관리하고 통제하는 중앙서버 </li></ul></ul><ul><li>Chunk </li></ul><ul><ul><li>GFS 상의 파일 </li></ul></ul><ul><ul><li>64MB 의 하나의 블록 </li></ul></ul><ul><ul><li>각각의 Chunk 는 보통 3 개의 Chunk Server 에 </li></ul></ul><ul><ul><li>복제되어 보관 </li></ul></ul><ul><li>Chunk Server </li></ul><ul><ul><li>Master 가 관리하는 다수의 서버 </li></ul></ul><ul><ul><li>하드디스크 입출력 담당 </li></ul></ul><ul><li>Client </li></ul><ul><ul><li>GFS 를 이용하여 파일을 읽고 쓰는 애플리케이션 </li></ul></ul>
  7. 7. GFS 의 전체모습 클라이언트 마스터 청크 서버 청크 서버 청크 서버 파일 청크 청크 청크 …
  8. 8. 쓰기 <ul><li>Primary </li></ul><ul><ul><li>마스터가 청크 서버 중에서 통합하는 역할을 할 것으로 결정한 하나의 청크 서버 </li></ul></ul><ul><li>Secondary – Primary 외의 나머지 </li></ul><ul><li>클라이언트에게 어느 서버가 프라이머리인지 전달되면 이후에 기록이 완료될 때까지 이 프라이머리가 기록 과정 통제 </li></ul><ul><li>청크 서버가 도중에 고장이 나거나 하드디스크 장애로 기록에 실패할지도 모르기 때문에 대책마련 필수 </li></ul>
  9. 9. 레코드 추가 <ul><li>파일의 끝에 한 묶음의 데이터를 효율적으로 추가하도록 설계 </li></ul><ul><li>Record </li></ul><ul><ul><li>한 번에 읽고 쓰는 데이터의 단위 </li></ul></ul><ul><ul><li>도중에 바뀌지 않고 확실하게 기록되어야 한다 </li></ul></ul><ul><li>Atomic 조작 </li></ul><ul><ul><li>하나의 처리가 마지막까지 중단되지 않고 단번에 이루어지는 것 </li></ul></ul>
  10. 10. GFS 에서 일어날 수 있는 장애 대책 <ul><li>청크의 장애 대책 </li></ul><ul><ul><li>시스템의 신뢰성을 높이기 위해 청크를 보존할 때 체크섬을 계산하여 청크의 내용과 기록 </li></ul></ul><ul><ul><li>Checksum </li></ul></ul><ul><ul><ul><li>데이터의 무결성을 검증하기 위해 만들어진 값 . </li></ul></ul></ul><ul><ul><ul><li>동일한 데이터라면 반드시 동일한 체크섬 값이 만들어져야 한다 . </li></ul></ul></ul><ul><ul><ul><li>읽을 때와 쓸 때의 데이터가 다르다면 체크섬 대조에 실패하여 에러가 발생한 것으로 간주 </li></ul></ul></ul><ul><li>청크 서버의 장애 대책 </li></ul><ul><ul><li>청크 서버와의 통신이 완전히 끊기면 마스터는 그것을 관리 대상에서 제외 . </li></ul></ul><ul><ul><li>청크는 새로운 서버에게 다시 할당되어 청크복사본의 개수는 동일하게 유지 </li></ul></ul>
  11. 11. GFS 에서 일어날 수 있는 장애 대책 <ul><li>마스터 장애 대책 </li></ul><ul><ul><li>마스터가 정지하면 GFS 전체가 제 기능을 하지 못함 </li></ul></ul><ul><ul><li>관리 정보 갱신시 Operation Log 에 기록 </li></ul></ul><ul><ul><li>마스터가 정지해도 Operation Log 에서 </li></ul></ul><ul><ul><li>읽어와 고장나기 전 상태로 되돌릴 수 있다 </li></ul></ul>
  12. 12. BIGTABLE
  13. 13. Bigtable <ul><li>분산 스토리지 시스템 </li></ul><ul><li>구글과 같은 대규모 분산 시스템에서 복잡한 데이터 구조를 효율적으로 읽고 쓸 수 있도록 고안 </li></ul><ul><li>기존의 RDB 와 달라진 점 </li></ul><ul><ul><li>Data Model : </li></ul></ul><ul><ul><li>데이터 저장방법에 대한 사고방식 </li></ul></ul><ul><li>Crawler 가 수집한 방대한 웹 페이지를 저장하기 이한 목적으로 사용 </li></ul>
  14. 14. 테이블의 구조 * RDB 의 데이터 모델 * Bigtable 의 데이터 모델 칼럼 로우 로우 로우 키 칼럼 패밀리 칼럼 타임 스탬프 값 구조화된 데이터
  15. 15. 다차원 맵 <ul><li>다차원 맵 이란 ? </li></ul><ul><ul><li>Bigtable 에서 로우 키 , 칼럼 키 , 타임 스탬프를 각각 늘리거나 줄일 수 있다는 개념 </li></ul></ul><ul><li>로우 키와 칼럼 패밀리 설정 </li></ul><ul><li>-> 또다시 테이블과 같은 구조 존재 </li></ul><ul><li>가로 방향 임의 칼럼 존재 </li></ul><ul><li>-> data 는 Time stamp 에 의해 구별 </li></ul>
  16. 16. Bigtable 의 데이터 모델 칼럼 키 칼럼 패밀리 로우 키 로우 타임 스탬프
  17. 17. Bigtable 의 전체 모습 Chubby GFS 클라이언트 태블릿 서버 태블릿 서버 태블릿 서버 마스터 Bigtable 의 구성요소
  18. 18. 태블릿 <ul><li>SStable </li></ul><ul><ul><li>읽기 전용 검색용 테이블 _ 수정 불가능 </li></ul></ul><ul><ul><li>키에 대응하는 data 의 위치 기록 </li></ul></ul><ul><li>Memtable </li></ul><ul><ul><li>수정이 가능한 작은 테이블 </li></ul></ul><ul><ul><li>고장 발생시 사라지므로 GFS 상에 태블릿 수정이력을 저장 _Commit 로그 이용 </li></ul></ul>
  19. 19. CUHBBY
  20. 20. Chubby <ul><li>Lock 서버 </li></ul><ul><li>분산시스템에서 Lock 수행 </li></ul><ul><ul><li>복수 시스템이 공통 리소스를 이용할 때는 data 가 깨지는 것을 막기 위해 Lock 필요 </li></ul></ul><ul><li>3 가지 기능 </li></ul><ul><ul><li>File System </li></ul></ul><ul><ul><li>Lock service </li></ul></ul><ul><ul><li>Event notification </li></ul></ul>
  21. 21. File System <ul><li>Global 셀 </li></ul><ul><ul><li>전 세계접근이 가능한 chubby 셀 </li></ul></ul><ul><ul><ul><li><-> local 셀 : 가까이 있는 셀 접근 </li></ul></ul></ul><ul><li>시스템 전체 관한 정보 기록 </li></ul><ul><ul><li>각종 접근 제어 </li></ul></ul><ul><ul><li>어디에서 어떤 정보가 작동중인가 </li></ul></ul><ul><ul><li>Bigtable 의 메타데이터가 어디 있는가 </li></ul></ul><ul><ul><li>시스템 설정 file </li></ul></ul>
  22. 22. Lock service <ul><li>배타제어 문제 해결 </li></ul><ul><li>Shared Lock </li></ul><ul><ul><li>배타적 장금 방지 -> file 의 내용 변경 X </li></ul></ul><ul><li>Exclusive Lock </li></ul><ul><ul><li>잠금 허용 X -> file 의 안전한 수정 가능 </li></ul></ul><ul><li>Advisory Lock </li></ul><ul><ul><li>잠금 무시 하고 읽고 쓰기 가능 </li></ul></ul>
  23. 23. Event notification <ul><li>File 감시하며 event 받음 </li></ul><ul><ul><li>프로세스들이 간편하게 정보교환 가능 </li></ul></ul><ul><li>Event 발생 </li></ul><ul><ul><li>Chubby 가 file 생성하거나 내용 update 시 </li></ul></ul><ul><ul><ul><li>File update 시 캐시파기 - 오래된 내용읽지 않음 </li></ul></ul></ul><ul><ul><li>Chubby 에서 디렉토리 감시시 생성되거나 삭제될 때 </li></ul></ul>

×