SlideShare uma empresa Scribd logo
1 de 75
Baixar para ler offline
Google을 통해 살펴보는
분산 파일 시스템의
현재와 미래
분신기술Lab I 김홍모
분산 파일 시스템




분산 파일 시스템
분산 파일 시스템




 파일 시스템이란?
파일을 저장하고 읽을 수 있는 시스템
분산 파일 시스템




파일 시스템과
 창고 관리
분산 파일 시스템




     메타 정보란?
물건의 위치를
꼼꼼히 기록해야
잃어버리지 않아요




            box99 ; 1열 2층
분산 파일 시스템




파일 시스템
분산 파일 시스템




저장하고자 하는 파일이
 너무 많을 경우에는?
분산 파일 시스템




여러 대의 컴퓨터를
 이용 한다면?
분산 파일 시스템




분산 파일 시스템이란?
   다수의 컴퓨터를
이용해서 구현한 파일 시스템
분산 파일 시스템




  많은 웹 서비스들이
분산 파일 시스템을 이용해서
    자료를 관리
GFS




Google File System(GFS)
GFS




 구글은 얼마나 많은
문서를 가지고 있을까?
GFS




색인된 문서 수 > 25,270,000,000
GFS




문서 하나의 크기를 1KB로 잡으면
     총 자료의 크기 >
   25,270,000,000 * 1KB
      = 25.27 TB
GFS




GFS(Google File System)
           노트는 필요 없다네
GFS




용도
Gmail 만들기




Gmail 만들기
Gmail 만들기




2004년
Gmail 만들기




     Google 최초의
Interactive Web Service




  효율             반응속도
Gmail 만들기




Gmail을 만들어 봅시다
Gmail 만들기




           재료들

         Google Servlet
            Engine



                          Big Table
Google File System
Gmail 만들기




    재료 소개 #1
Google Servlet Engine
 웹 서버 프로그래밍을 위한 도구


       Google Servlet
          Engine
Gmail 만들기




      재료 소개 #2
       BigTable
 GFS 위에서 구동되는 구글의 DBMS



         BigTable
Gmail 만들기




     방법 #1
GFS에 메일 자료를 직접 저장


        Google Servlet
           Engine

      Google File System
Gmail 만들기




작은 파일이 너무 많아요!
    요즘 두통이 심해
Gmail 만들기




       방법 #2
BigTable에 메일 자료를 저장

        Google Servlet
           Engine

          BigTable


      Google File System
Gmail 만들기




BigTable에 자료를
  저장하는 것은?
Gmail 만들기




GFS가 처리해야 할 파일 수 감소

   이것은 선물이야
Gmail 만들기




GFS 단일 마스터 구조
     모든 요청은 나를
     통해야 하지
Gmail 만들기




           방법 #3
               이중화

           Google Servlet
              Engine

    BigTable                BigTable


Google File System   Google File System
Gmail 만들기




  지금까지 우리는
1) 메일 자료를 잘 처리하며
  2) 서버 장애에 강한
     시스템을
    성공적으로
      구축
Gmail 만들기




문제는


비용
Gmail 만들기




비용 분석
GFS 복제 정책



  +
Gmail 만들기




비용 분석
GFS 복제 정책
+ 이중화 모델


+           ?
Gmail 만들기



외전

     2011년 2월 27일
Gmail 만들기



외전

     2011년 2월 28일
Gmail 만들기



외전

     2011년 3월 1일
Gmail 만들기



외전

     2011년 3월 2일



      복구 완료
Gmail 만들기




    비용 분석
GFS 복제 정책
+ 이중화 모델
+ Tape Backup

+         ?
Gmail 만들기




    전체 비용?


+
Gmail 만들기




결과는?
GFS를 뛰어넘자




GFS를 뛰어넘자
GFS를 뛰어넘자




 이 상황을 극복할
좋은 방법은 없을까?
GFS를 뛰어넘자




  GFS의 단점
1) 파일 수 문제
2) 마스터 장애에 취약
3) 고비용
GFS를 뛰어넘자




   작은 파일을
잘 처리하기 위해서는?
장애 영향을 줄이려면?
     나 홀로 외우기는
     이제 그만할래
GFS를 뛰어넘자




다수의 서버로 많은 메타 정보를
 효율적으로 관리할 수 있어야
 혼자서는 저 많은 자료를
 관리할 수 없어요
GFS를 뛰어넘자




#1 메타 정보 꾸러미 도입
이름 사전 순으로
정리하면 노트 주인만 정하면
                  A   하지만 노트들을 어떻게
                      분배해야 할까요?

                  B
됩니다.




                  …
                  Y
                  Z
GFS를 뛰어넘자




         #2 메타 정보 꾸러미와
            서버의 짝 맺음
                                                   나는 D
                                                   U 부터 D 까지 관리
    나는 T
    P 부터 T 까지 관리
                       X YZA B C D             D
                      W              E
                     V
T                   U                     F
                   T                       G
                   S                      H        나는 O
                    R                    I         E 부터 O 까지 관리
                     Q               J
                       PO        K
                            NM L
                                               O
GFS를 뛰어넘자




#3 서버에 장애가 발생하더라도
     영향을 최소화
                                                      나는 D
    나는 T                                              U 부터 D 까지 관리
    P 부터 T 까지 관리
    추가로 E 부터 O 도 관리       X YZA B C D             D
                         W              E
                        V
T                      U                     F
                      T                       G
                      S                      H



                                                  X
                       R                    I
                                                      오늘부터 휴가

                        Q               J
                          PO        K
                               NM L
                                                  O
GFS를 뛰어넘자




Distributed Hash Table
GFS를 뛰어넘자




작은 파일을 잘 처리하고
서버 장애 영향 최소화
     성공!
GFS를 뛰어넘자




저장 비용을 줄이려면?
GFS를 뛰어넘자




그전에 복제는 왜 할까?
GFS를 뛰어넘자



외전

        조선 왕조 실록




      춘추관(서울)   충주서고


     세종 8년 등사 해서 분산 보관
GFS를 뛰어넘자



외전

             조선 왕조 실록




 춘추관(서울)     충주서고   전주서고   성주서고


           세종 27년 2부씩 추가 등사
GFS를 뛰어넘자



외전

            조선 왕조 실록




  춘추관(서울)   충주서고   전주서고   성주서고


선조 25년 임진왜란으로 전주를 제외하고 모두 소실
GFS를 뛰어넘자



외전

        조선 왕조 실록




              전주서고


1997년 10월 1일 유네스코 세계기록유산으로 등록
GFS를 뛰어넘자




   복제를 하는 이유는
자료를 잃어버리지 않기 위해서
GFS를 뛰어넘자




자료는 안전하게 보호하지만
비용을 줄이는 방법은 없을까?



     비용   신뢰성
GFS를 뛰어넘자




  Erasure Code
자료의 일부를 잃어버려도
나머지 자료로 원본을 복구
GFS를 뛰어넘자




Erasure Code 사용 #1
 원본을 k 조각으로 분할
               k Data Slices




 D        D0   D1    D2 … Dk-1
GFS를 뛰어넘자




          Erasure Code 사용 #2
 분할된 자료를 이용해 코드 자료 생성

     k Data Slices              m Code Slices



D0   D1    D2 … Dk-1   Coding   C0 … Cm-1
GFS를 뛰어넘자




  Erasure Code 사용 #3
분할된 자료 및 코드 자료를 모두 저장

      k Data Slices        m Code Slices



 D0   D1   D2 … Dk-1   +   C0 … Cm-1
GFS를 뛰어넘자




             Erasure Code 사용 #4
 저장된 자료의 일부를 잃어버려도 원본을 복구

     k Data Slices    m Code Slices



D0   D1   D2 … Dk-1 + C0 … Cm-1       D
GFS를 뛰어넘자




     시뮬레이션
             MTTF = 27216h
12           MTTR = 24h + alpha
             Availability may vary by site env

10


 8


 6
             Additional Space (Ratio)
             Payload (Ratio)
 4
             Availability (# of 9)

 2


 0
GFS를 뛰어넘자




           비용 비교
  Erasure Code를 이용하면
      비용이 절반으로

           복제             Erasure Code
가용성        99.99999999%   99.999999999%
비용(원본대비)   300%           150%
GFS를 뛰어넘자




   낮은 비용으로
자료를 안전하게 저장하기
     성공!
GFS를 뛰어넘자




GFS를 뛰어넘는 두 가지 키워드
  1) 분산 메타 관리 체계
     2) Erasure Code
GFS를 뛰어넘자




Google의 답안은?

  Colossus
GFS를 뛰어넘자




KTH의 답안은?

 PrismFS !!
PrismFS




PrismFS
PrismFS




                              PrismFS 구조
                    Data Server Group   Data Server Group   Management Group

                                                                Deploy Map       Distributed Meta System


                                                             Status Collector

REST Client Group
                        REST Front          REST Front          Dash Board




                                                                                REST Front




                        REST Front          REST Front          REST Front

                                                                                          Distributed
                    Data Server Group   Data Server Group                              Directory Service
                                                            Data Server Group
PrismFS




       PrismFS 특징

1)   분산 메타 관리 체계
2)   Erasure Code 기반 자료 보호
3)   REST API
4)   모든 자료에 check-sum 적용
5)   통합된 관리 체계
QnA




QnA
감사합니다.
클라우드연구소 / 분산기술 Lab / 김홍모
     aadvarkk@kthcorp.com

Mais conteúdo relacionado

Mais de KTH, 케이티하이텔

[H3 2012] Bridge over troubled water : make plug-in for Appspresso
[H3 2012] Bridge over troubled water : make plug-in for Appspresso[H3 2012] Bridge over troubled water : make plug-in for Appspresso
[H3 2012] Bridge over troubled water : make plug-in for AppspressoKTH, 케이티하이텔
 
[H3 2012] 스마트모바일 환경에서의 App.품질관리전략
[H3 2012] 스마트모바일 환경에서의 App.품질관리전략[H3 2012] 스마트모바일 환경에서의 App.품질관리전략
[H3 2012] 스마트모바일 환경에서의 App.품질관리전략KTH, 케이티하이텔
 
[H3 2012] 스타트업 개발사의 생존필수 아이템, BaaS 모바일 고객센터
[H3 2012] 스타트업 개발사의 생존필수 아이템, BaaS 모바일 고객센터[H3 2012] 스타트업 개발사의 생존필수 아이템, BaaS 모바일 고객센터
[H3 2012] 스타트업 개발사의 생존필수 아이템, BaaS 모바일 고객센터KTH, 케이티하이텔
 
[H3 2012] Local based SNS를 이용한 타겟 마케팅
[H3 2012] Local based SNS를 이용한 타겟 마케팅[H3 2012] Local based SNS를 이용한 타겟 마케팅
[H3 2012] Local based SNS를 이용한 타겟 마케팅KTH, 케이티하이텔
 
[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기KTH, 케이티하이텔
 
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화KTH, 케이티하이텔
 
[H3 2012] 하이브리드앱 제작 사례 공유 - 푸딩얼굴인식 3.0
[H3 2012] 하이브리드앱 제작 사례 공유 - 푸딩얼굴인식 3.0[H3 2012] 하이브리드앱 제작 사례 공유 - 푸딩얼굴인식 3.0
[H3 2012] 하이브리드앱 제작 사례 공유 - 푸딩얼굴인식 3.0KTH, 케이티하이텔
 
[H3 2012] Cloud Database Service - Hulahoop를 소개합니다.
[H3 2012] Cloud Database Service - Hulahoop를 소개합니다.[H3 2012] Cloud Database Service - Hulahoop를 소개합니다.
[H3 2012] Cloud Database Service - Hulahoop를 소개합니다.KTH, 케이티하이텔
 
[H3 2012] 기획/디자인/개발자 모두 알아야 하는 '대박앱의 비밀'
[H3 2012] 기획/디자인/개발자 모두 알아야 하는 '대박앱의 비밀'[H3 2012] 기획/디자인/개발자 모두 알아야 하는 '대박앱의 비밀'
[H3 2012] 기획/디자인/개발자 모두 알아야 하는 '대박앱의 비밀'KTH, 케이티하이텔
 
[H3 2012] OAuth2 - API 인증을위한 만능 도구상자
[H3 2012] OAuth2 - API 인증을위한 만능 도구상자[H3 2012] OAuth2 - API 인증을위한 만능 도구상자
[H3 2012] OAuth2 - API 인증을위한 만능 도구상자KTH, 케이티하이텔
 
[H3 2012] 오픈 소스로 구현하는 실시간 데이터 처리를 위한 CEP
[H3 2012] 오픈 소스로 구현하는 실시간 데이터 처리를 위한 CEP[H3 2012] 오픈 소스로 구현하는 실시간 데이터 처리를 위한 CEP
[H3 2012] 오픈 소스로 구현하는 실시간 데이터 처리를 위한 CEPKTH, 케이티하이텔
 
[H3 2012] 로그속 사용자 발자국 들여다보기
[H3 2012] 로그속 사용자 발자국 들여다보기[H3 2012] 로그속 사용자 발자국 들여다보기
[H3 2012] 로그속 사용자 발자국 들여다보기KTH, 케이티하이텔
 
[H3 2012] 클라우드기반 앱 만들기 - baas.io SDK 활용
[H3 2012] 클라우드기반 앱 만들기 - baas.io SDK 활용[H3 2012] 클라우드기반 앱 만들기 - baas.io SDK 활용
[H3 2012] 클라우드기반 앱 만들기 - baas.io SDK 활용KTH, 케이티하이텔
 
[H3 2012] 키노트 - Backend platform의 미래, baas.io
[H3 2012] 키노트 - Backend platform의 미래, baas.io[H3 2012] 키노트 - Backend platform의 미래, baas.io
[H3 2012] 키노트 - Backend platform의 미래, baas.ioKTH, 케이티하이텔
 
[H3 2012] 행복한 개발을 위한 테스트 케이스
[H3 2012] 행복한 개발을 위한 테스트 케이스[H3 2012] 행복한 개발을 위한 테스트 케이스
[H3 2012] 행복한 개발을 위한 테스트 케이스KTH, 케이티하이텔
 
[H3 2012] 우리가 모르는 Node.js로 할 수 있는 몇가지
[H3 2012] 우리가 모르는 Node.js로 할 수 있는 몇가지[H3 2012] 우리가 모르는 Node.js로 할 수 있는 몇가지
[H3 2012] 우리가 모르는 Node.js로 할 수 있는 몇가지KTH, 케이티하이텔
 
[H3 2012] 모두의 도구로 프로토타이핑을 시작하라
[H3 2012] 모두의 도구로 프로토타이핑을 시작하라[H3 2012] 모두의 도구로 프로토타이핑을 시작하라
[H3 2012] 모두의 도구로 프로토타이핑을 시작하라KTH, 케이티하이텔
 

Mais de KTH, 케이티하이텔 (20)

[H3 2012] Instant Prototyping with ROR
[H3 2012] Instant Prototyping with ROR[H3 2012] Instant Prototyping with ROR
[H3 2012] Instant Prototyping with ROR
 
[H3 2012] Bridge over troubled water : make plug-in for Appspresso
[H3 2012] Bridge over troubled water : make plug-in for Appspresso[H3 2012] Bridge over troubled water : make plug-in for Appspresso
[H3 2012] Bridge over troubled water : make plug-in for Appspresso
 
[H3 2012] 스마트모바일 환경에서의 App.품질관리전략
[H3 2012] 스마트모바일 환경에서의 App.품질관리전략[H3 2012] 스마트모바일 환경에서의 App.품질관리전략
[H3 2012] 스마트모바일 환경에서의 App.품질관리전략
 
[H3 2012] 스타트업 개발사의 생존필수 아이템, BaaS 모바일 고객센터
[H3 2012] 스타트업 개발사의 생존필수 아이템, BaaS 모바일 고객센터[H3 2012] 스타트업 개발사의 생존필수 아이템, BaaS 모바일 고객센터
[H3 2012] 스타트업 개발사의 생존필수 아이템, BaaS 모바일 고객센터
 
[H3 2012] Local based SNS를 이용한 타겟 마케팅
[H3 2012] Local based SNS를 이용한 타겟 마케팅[H3 2012] Local based SNS를 이용한 타겟 마케팅
[H3 2012] Local based SNS를 이용한 타겟 마케팅
 
[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기[H3 2012] 오픈소스로 개발 실력 쌓기
[H3 2012] 오픈소스로 개발 실력 쌓기
 
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
[H3 2012] 앱(APP) 중심으로 생각하기 - DevOps와 자동화
 
[H3 2012] 하이브리드앱 제작 사례 공유 - 푸딩얼굴인식 3.0
[H3 2012] 하이브리드앱 제작 사례 공유 - 푸딩얼굴인식 3.0[H3 2012] 하이브리드앱 제작 사례 공유 - 푸딩얼굴인식 3.0
[H3 2012] 하이브리드앱 제작 사례 공유 - 푸딩얼굴인식 3.0
 
[H3 2012] Cloud Database Service - Hulahoop를 소개합니다.
[H3 2012] Cloud Database Service - Hulahoop를 소개합니다.[H3 2012] Cloud Database Service - Hulahoop를 소개합니다.
[H3 2012] Cloud Database Service - Hulahoop를 소개합니다.
 
[H3 2012] 기획/디자인/개발자 모두 알아야 하는 '대박앱의 비밀'
[H3 2012] 기획/디자인/개발자 모두 알아야 하는 '대박앱의 비밀'[H3 2012] 기획/디자인/개발자 모두 알아야 하는 '대박앱의 비밀'
[H3 2012] 기획/디자인/개발자 모두 알아야 하는 '대박앱의 비밀'
 
[H3 2012] OAuth2 - API 인증을위한 만능 도구상자
[H3 2012] OAuth2 - API 인증을위한 만능 도구상자[H3 2012] OAuth2 - API 인증을위한 만능 도구상자
[H3 2012] OAuth2 - API 인증을위한 만능 도구상자
 
[H3 2012] 오픈 소스로 구현하는 실시간 데이터 처리를 위한 CEP
[H3 2012] 오픈 소스로 구현하는 실시간 데이터 처리를 위한 CEP[H3 2012] 오픈 소스로 구현하는 실시간 데이터 처리를 위한 CEP
[H3 2012] 오픈 소스로 구현하는 실시간 데이터 처리를 위한 CEP
 
[H3 2012] 로그속 사용자 발자국 들여다보기
[H3 2012] 로그속 사용자 발자국 들여다보기[H3 2012] 로그속 사용자 발자국 들여다보기
[H3 2012] 로그속 사용자 발자국 들여다보기
 
[H3 2012] 클라우드기반 앱 만들기 - baas.io SDK 활용
[H3 2012] 클라우드기반 앱 만들기 - baas.io SDK 활용[H3 2012] 클라우드기반 앱 만들기 - baas.io SDK 활용
[H3 2012] 클라우드기반 앱 만들기 - baas.io SDK 활용
 
[H3 2012] 키노트 - Backend platform의 미래, baas.io
[H3 2012] 키노트 - Backend platform의 미래, baas.io[H3 2012] 키노트 - Backend platform의 미래, baas.io
[H3 2012] 키노트 - Backend platform의 미래, baas.io
 
[H3 2012] 행복한 개발을 위한 테스트 케이스
[H3 2012] 행복한 개발을 위한 테스트 케이스[H3 2012] 행복한 개발을 위한 테스트 케이스
[H3 2012] 행복한 개발을 위한 테스트 케이스
 
[H3 2012] 꽃보다 Scala
[H3 2012] 꽃보다 Scala[H3 2012] 꽃보다 Scala
[H3 2012] 꽃보다 Scala
 
[H3 2012] 봄날은간다
[H3 2012] 봄날은간다[H3 2012] 봄날은간다
[H3 2012] 봄날은간다
 
[H3 2012] 우리가 모르는 Node.js로 할 수 있는 몇가지
[H3 2012] 우리가 모르는 Node.js로 할 수 있는 몇가지[H3 2012] 우리가 모르는 Node.js로 할 수 있는 몇가지
[H3 2012] 우리가 모르는 Node.js로 할 수 있는 몇가지
 
[H3 2012] 모두의 도구로 프로토타이핑을 시작하라
[H3 2012] 모두의 도구로 프로토타이핑을 시작하라[H3 2012] 모두의 도구로 프로토타이핑을 시작하라
[H3 2012] 모두의 도구로 프로토타이핑을 시작하라
 

H3 2011 Google을 통해 살펴보는 분산 파일 시스템의 현재와 미래_분산기술Lab_김홍모