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

Post on 03-Jul-2015

1.755 Views

Category:

Technology

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

3 장 Google의 분산 Storage

Sky

GFS –Google File System

Bigtable –분산 Storage System

Chubby – 분산 잠금 Service

기타 Storage

Why?

GFS

GFS의 기능

GFS의 구조

GFS의 읽기 쓰기

정리 –GFS!

많은 Computer

대량의 Data 기록

대량의 Data 읽음

Crawler

Crawler

Crawler

Repository

IndexCreation

IndexCreation

IndexCreation

중간 File

Internet

대 용량 Storage 전 세계의 Web Page

정보를 처리

Network를 통해 file을읽고 쓰는 System

거대한 Data 통로

File에서 File 로변환하는 Process

Application

G F S

File 1 File 2

Data

DataData

Data

Change

GFS의 구조

Data 전송을 위한 특화 설계

Software를 활용한 장애대책

▪ 분산된 Back-up으로 안정성 유지

다른 기능의 감소

파일을 Cue(대기행렬)로서 사용

▪ GFS상의 파일 -> Data의 통로

조작 설명

Create 새로운 파일 작성

Delete 기존의 파일 삭제

Open 기존의 파일 연다.

Close 열린 파일을 닫는다.

Read 지정한 위치의 Data를 읽어 옴

Write 지정한 위치에 Data를 기록

Snapshot 파일을 복사

Record Append 파일의 끝에 Data를 추가

Master GFS 전체의 상태를 관리 / 통제

Chunk Server 실제 Hard Disk의 입출력을 담당

Client GFS를 이용하여 File을 읽고 쓰는 Application

Chunk (덩어리) GFS상의 파일의 한 Block 단위 : 64MB 보통 3개의 Chunk Server에 복제되어 보관

Client

H

ChunkServer

ChunkServer

D D

Master

MasterClient

ChunkServer

ChunkServer

ChunkServer

MasterClient

ChunkServer

ChunkServer

ChunkServer

Secondary SecondaryPrimary

<

읽기>

가까운서버를이용한다

<

쓰기>

복수의서버를이용한다

Snapshot 파일의 복사본을 순간적으로 만들어 내는 기능

Copy on Write

GFS에서 파일은 Chunk의 집합

같은 Chunk를 가르키는 새로운 이름의 파일 정보를만드는 기능

Record Append 한 Record의 data를 파일의 마지막에 추가하는 기능

Record : GFS에서 한번에 읽고 쓰는 data의 단위

원자적(Atomic) 쓰기를 위한 기능

추가 실패할 경우

출 : The Google File System. Sanjay Ghemawat, Howard Gobioff

RDB Vs. Bigtable

Multi Dimensional Sorted Map

Tablet

Compaction

성능향상

정리 – Bigtable!

RDB – Relational Database

Bigtalble

구조화된

데이터Row Key Column Family

Row

Row

Column

Column

Time Stamp

Row Key

Column Family

Row

Column Key

Time Stamp

Key 값

Row Key + Column Key + Time Stamp Structred Data

.

.

.

<Data Model>

<개념도>

복수의 연속하는 Row를 하나로 포괄

복수의 Server로 분산 관리

Locality

Row Key Data

images.google.com ….. …

maps.google.com …

www.google.com …

Row Key Data

com.google.images ….. …

com.google.maps …

com.google.www …

SSTable 읽기 전용 검색용 Table

GFS내부에 보관

Data / Index로 구성 -> 빠른 검색

하나의 Tablet은 복수의 SSTable로 구성

Memtable Memory 상에서 수정 가능

Tablet Server 내부에 보관

Commit Log

준비

GFSTablet Server

Commit Log

SSTable

SSTable

memtable

읽기 / 쓰기

GFSTablet Server

Commit Log

SSTable

SSTable

memtable

읽기

쓰기

Minor Compaction

Memtable 이 지나치게 커짐

새로운 SSTable에 내용 기록

오래된 Commit Log의 정리

Major Compaction

SSTable이 지나치게 늘어남

통합해서 하나의 SSTable로 모으는 작업

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의 위치 파악

▪ 읽기 / 쓰기 작업 요청

Locality Group

동시에 이용될 가능성 큰 Column Family Group

Data 압축

비교적 큰 data영역으로부터 공유하는 문자열의

Pattern 찾아내서 중복된 data 줄이는 방법

Data를 일정크기로 압축하는 방법

읽기 Cache Scan Cache

▪ 최근 Access한 Key에 대응하는 Data 남겨두는 방식

▪ 동일한 Key가 여러반 사용되는 경우 효과적

Block Cache▪ SSTable에서 Data를 읽을 때, 모아진 양을 읽어서 Tablet Server

상에 남겨두는 방식

▪ 연속된 Data를 차례로 읽는 경우 효과적

Commit Log의 일괄처리 (쓰기에서의 개선)

쓰기는 Commit Log를 위해 반드시 GFS에 접근

Commit Log에 한번에 기록하는 양 늘림

요청이 많을때 모두 모아서 Commit Log에 기록

Client

Master

GFS

Chubby

TabletServer

TabletServer

TabletServer

Chubby

Chubby Cell

Chubby – File System

Chubby – Lock Service

Chubby – Event Notification

Master 결정

소 용량, 높은 신뢰성과 편리한 기능

제공하는 분산 Storage

주요 기능

File System

▪ 다른 분산 System의 구축을 위한 기반

Lock Service

▪ 배타 제어

Event Notification

Chubby Cell 5개의 machine

으로 이뤄진 Chubby Replica Master

모든 Data Center에하나이상 존재

동시에 몇천~몇만의Client가 Access

Chubby Cell

Master

Client

Client

<Chubby의 전체구조>

파일에 접근

Chubby와 GFS의 Name Space는 통합

Local Cell – 가까이 있는 Cell

Global Cell – 전 세계로부터 접근이 가능한 Cell

각종 접근 제어

Media에서 어떤 Service가 작동중인지에 관한 정보

Bigtable의 Metadata가 어디 있는가에 관한 정보

그 밖에 다양한 System설정 파일

File의 잠금 Shared Lock – Reader Mode Exclusive Lock –Writer Mode ACL –Access Control List

외부 resource의 잠금 GFS File이 Chubby와 조합하여 간접적으로 잠금

Lock Service

Sequencer 단순한 문자열 Data – 요청이 유효한지 확인

Client가 정지했을때, Lock이 계속 되는 상황을 방지

Event Chubby에서 Process가 정지하면 자동삭제 되는 임시 파

일 생성

Master가 자신의 주소를 임시 파일에 기록

임시 파일만 감시

서버의 사활 감시, Master의 치환

Cache Chubby파일 읽은 후, 읽은 내용 Client측에 Cache 로 저장

파일의 내용이 Update될 때 모든 Cache 파기

Adress 취득, Adress 갱신

Replica의 합의에 의한 결정 Master는 절반 이상의 Replica가 연결되어 있는 장소

에 나타남

항상 3개 이상의 Replica와 통신 가능 상태

다양한 장애 Master의 고장

절반이상의 고장 –X Replica와의 통신 단절

Master와의 통신 단절

Cell 전체의 통신 단절 –X

C

M

Chubby

Chubby Cell

Chubby – File System

Chubby – Lock Service

Chubby – Event Notification

Master 결정

OneFS® 운영 체제 software를 사용 – 분산 file system에서 단일 global name space 제공

업계 최초의 유일한 동기식 Cluster Storage Architecture

단일 file system에서 4TB-1.6PB 까지 확장 가능한

시스템 – 기존 storage보다 최대 100배 확장 가능

최대 10GB/초의 유례 없는 총 처리량 – 기존 스토

리지 속도보다 최대 20배 향상

사용하기 쉬우면서도 강력한 Web 기반 관리

60초 내에 용량 및 성능 확장

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*

top related