View
2.511
Download
8
Category
Preview:
Citation preview
ⓒ 2012 KT Hitel Corporation
클라우드를 위한 스토리지 기술 – PFS2
KTH | 클라우드연구소 | 분산기술Lab | 김홍모
ⓒ 2012 KT Hitel Corporation
목차
1. 클라우드 스토리지의 조건 2. 신뢰성과 경제성 3. 확장성과 일관성 4. PrismFS2
ⓒ 2012 KT Hitel Corporation
목차
1. 클라우드 스토리지의 조건 2. 신뢰성과 경제성 3. 확장성과 일관성 4. PrismFS2
ⓒ 2012 KT Hitel Corporation
클라우드 스토리지의 조건
클라우드 스토리지의 조건은?
믿을 수 있고.. 저렴하고.. 빠르고..
사용이 쉬운 것
ⓒ 2012 KT Hitel Corporation
클라우드 스토리지의 조건
믿을 수 있고.. =
장애가 발생하더라도 (가능하면 사용자가 모르게) 복원할 수 있고..
ⓒ 2012 KT Hitel Corporation
클라우드 스토리지의 조건
저렴하고.. =
스토리지 구축 비용 및 스토리지 운영 비용이 낮고..
ⓒ 2012 KT Hitel Corporation
클라우드 스토리지의 조건
빠르고.. =
다양한 용도에 충분히 빠르며 운영 중 나타나는 병목 현상을 해결할 수 있고..
ⓒ 2012 KT Hitel Corporation
클라우드 스토리지의 조건
사용이 쉬운 것 =
편리한 인터페이스와 일관된 정보를 사용자에게
제공할 것
ⓒ 2012 KT Hitel Corporation
클라우드 스토리지의 조건
클라우드 스토리지의 조건은?
믿을 수 있고 à 신뢰성 저렴하고 à 경제성 빠르고 à 확장성
사용이 쉬운 것 à 일관성
ⓒ 2012 KT Hitel Corporation
클라우드 스토리지의 조건
이런 것을 어떻게 만들지?
분산 시스템 구현 기술
ⓒ 2012 KT Hitel Corporation
클라우드 스토리지의 조건
먼저 Google File System을 살펴보자
ⓒ 2012 KT Hitel Corporation
클라우드 스토리지의 조건
Google File System은
신뢰성을 위해
마스터 서버의 이중화 및
사용자 자료의 삼중화
ⓒ 2012 KT Hitel Corporation
클라우드 스토리지의 조건
Google File System은
경제성을 위해
상용 하드웨어와 공개 OS를 사용하는 소프트웨어로 구현
ⓒ 2012 KT Hitel Corporation
클라우드 스토리지의 조건
Google File System은
확장성을 위해
청크 서버를 추가해 용량을 확장
ⓒ 2012 KT Hitel Corporation
클라우드 스토리지의 조건
Google File System은
일관성을 위해
단일 메타 데이터 서버로 구현
ⓒ 2012 KT Hitel Corporation
클라우드 스토리지의 조건
하지만 Google File System은 지금 퇴역했다는…
출처) http://www.wired.com/wiredenterprise/2012/07/google-colossus/
ⓒ 2012 KT Hitel Corporation
클라우드 스토리지의 조건
우리도 Google File System
보다 더 나은
신뢰성, 경제성, 확장성, 일관성을 가진 시스템을 만들자
ⓒ 2012 KT Hitel Corporation
클라우드 스토리지의 조건
떠나 볼까요?
ⓒ 2012 KT Hitel Corporation
목차
1. 클라우드 스토리지의 조건 2. 신뢰성과 경제성 3. 확장성과 일관성 4. PrismFS2
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
시작하기 전에.. 두벌과 세벌 복사의 차이점은?
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
신뢰성(Reliability) 과 가용성(Availability)
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
신뢰성(Reliability)이란
주어진 시간 동안 고장이 없을 확률
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
우주선에 설치된 동일한 컴퓨터 50대가 각자 맡은 일을 처리하고 있다.
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
1000시간을 운영한 결과 2대가 고장이 났을 경우 이 컴퓨터의 신뢰성은?
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
1000시간을 운영한 결과 2대가 고장이 났을 경우 이 컴퓨터의 신뢰성은?
R(1000h)
= 1 – P(1000 시간 동안 고장 날 확률) = 1 – 2/50 = 0.96
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
이런 컴퓨터가 50대로 구성된 시스템의 신뢰성은
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
이런 컴퓨터가 50대로 구성된 시스템의 신뢰성은
R_system(1000h)
= R(1000h)^50 = 0.96 ^ 50 = 약 0.129886
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
두 대의 동일한 컴퓨터가 독립적으로 같은 일을 처리할 수
있다고 할 경우
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
두 대의 동일한 컴퓨터가 독립적으로 같은 일을 처리할 수
있다고 할 경우 R_2(1000h)
= P(1000h에 적어도 한대가 작동하는 경우) = 1 - P(1000h에 두 대 모두 고장 난 경우) = 1 – 2/50 * 2/50 = 0.9984 (vs 0.96)
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
이런 구성으로 시스템을 구축할 경우 (2 * 50 대)
R_2_system(1000h)
= 0.9984^50 = 0.923057 (vs 0.96^50 = 0.129886)
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
중복의 효과
Unit 수 중복도
1 2 3 4
신뢰성
1 0.96 0.9984 0.999936 0.999997
50 0.129885794 0.923057206 0.996805 0.999872
100 0.016870319 0.852034605 0.99362 0.999744
1000 0 0.20163798 0.938003 0.997443
10000 0 0 0.527282 0.974725
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
우주선 사례와 달리 고장이 나면 고칠 수 있다.
이런 복구의 효과를 반영한 것이 가용성(Availability)
A = MTTF / (MTTF + MTTR)
MTTF ::= Mean Time To Failure MTTR ::= Mean Time To Repair
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
PC방에 설치된 동일한 컴퓨터 50대가 성업 중이다.
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
1000시간을 운영한 결과 2대가 고장이 났고
각각 수리 시간은 10시간이다. 이 컴퓨터의 가용성은?
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
1000시간을 운영한 결과 2대가 고장이 났고
각각 수리 시간은 10시간이다. 이 컴퓨터의 가용성은?
Availability
= MTTF/(MTTF + MTTR) = (1000*50/2) /(1000*50/2 + 10) = 0.9996
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
중복의 효과
Unit 수 중복도
1 2 3 4
가용성
1 0.99960016 0.99999984 1 1 50 0.980202593 0.999992006 0.999999997 1
100 0.960797123 0.999984013 0.999999994 1 1000 0.670373659 0.999840141 0.999999936 1
10000 0.018330293 0.998402556 0.999999361 1
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
장애를 극복하는 방법을 (신뢰성을 확보하는 방법을)
조선시대에도 알고 있었다?
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
조선 왕조 실록
세종 8년 등사 해서 분산 보관
춘추관(서울) 충주서고
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
조선 왕조 실록
세종 27년 2부씩 추가 등사
춘추관(서울) 충주서고 전주서고 성주서고
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
조선 왕조 실록
선조 25년 임진왜란으로 전주를 제외하고 모두 소실
춘추관(서울) 충주서고 전주서고 성주서고
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
조선 왕조 실록
1997년 10월 1일 유네스코 세계기록유산으로 등록
전주서고
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
조선 시대에도 알고 있었듯
자료의 보호를 위해 이를 복제한 뒤
서로 다른 곳에 저장
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
우리의 자료를 조선 왕조 실록처럼 저장하면?
+
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
이것의 의미는…
+
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
요즘은 조선 시대와 달리 지구에 좀 더 해롭다..
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
자료도 살리고 지구도 살리는 방법은
없을까?
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
Erasure Code
자료의 일부를 잃어버려도 나머지 자료로 원본을 복구
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
Erasure Code 사용 #1
원본을 k 조각으로 분할
D0 D1 D2 Dk-1 …
k Data Slices
D
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
Erasure Code 사용 #2
분할된 자료를 이용해 코드 자료 생성
Coding D0 D1 D2 Dk-1 … C0 … Cm-1
k Data Slices m Code Slices
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
Erasure Code 사용 #2
분할된 자료 및 코드 자료를 모두 저장
D0 D1 D2 Dk-1 … C0 … Cm-1
k Data Slices m Code Slices
+
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
Erasure Code 사용 #2
저장된 자료의 일부를 잃어버려도 원본을 복구
D0 D1 D2 Dk-1 … C0 … Cm-1
k Data Slices m Code Slices
+ D
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
시뮬레이션
0
2
4
6
8
10
12
Additional Space (Ratio)
Payload (Ratio)
Availability (# of 9)
높을 수록 안전
MTTF = 27216h MTTR = 24h + alpha Availability may vary by site env
ⓒ 2012 KT Hitel Corporation
신뢰성과 경제성
시뮬레이션에 따르면
Erasure Code를 이용하면 뛰어난 가용성을
저렴하게 제공할 수 있음!
ⓒ 2012 KT Hitel Corporation
목차
1. 클라우드 스토리지의 조건 2. 신뢰성과 경제성 3. 확장성과 일관성 4. PrismFS2
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
메타 데이터 관리
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
데이터 분할을 하는 이유?
DBMS의 공간 및 성능
한계를 극복하기 위해
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
분할 유형
수직 분할 Vs.
수평 분할
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
분할과 관련한 고민들
• 분할 Key • 분할을 결정하는 Key
• 분할 개수 • 전체 데이터 크기 • 분할 별 데이터 크기
• 분할 경계 • Database • DBMS instance • Server instance
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
분할과 행의 연결 방법
• 범위 • 생성 날짜 등 • 분할들의 크기가 균등하지 못할 가능성
• hash • 분할들의 크기가 균형 • 분할의 총 수를 조정하기 어려움
• 사용자 정의 Map • 자유도가 높음 • 자동화가 어려움
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
수평 분할 & Hash 방법을 사용해
질의를 중계, 서버 장애 처리, 용량 증설 처리
등의 서비스 제공하는 계층을 구축
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
수평 분할 & Hash 방법을 이용할 경우
문제 > DB Transaction
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
NoSQL 방법을 이용할 경우
문제 > Record Level 원자성
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
Exception Safety
어떤 코드가 Exception-safe 하다고 하는 것은 코드 내에서 예외가 발생하더라도 나쁜 효과가 없고
미리 정의한 불변 속성을 만족하는 것
메모리 릭 데이터 오염 잘못된 결과
데이터 일관성 등..
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
Exception Safety Guarantee
보장 예외가 발생할 경우 no-throw 예외를 내부적으로 처리
예외를 위로 올리지 않음 strong (or no-change) 예외가 발생하기 이전 상태로 되돌림 weak (or Basic) 예외가 발생하기 이전의 상태와 동일하지는
않지만 불변 속성을 만족
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
문제 < DB TX인 경우 일관성은
DBMS가 보장
문제 > DB TX인 경우 일관성은
프로그래머가 보장
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
문제 > DB TX인 경우 일관성은
프로그래머가 보장
어떻게?
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
힌트
In Place Update Vs.
Copy On Write
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
작업 이전으로 돌아갈 수 있는 충분한 정보를 남기고 예외 발생시 이를 이용해
일관성(불변 속성)을 유지
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
동시성 문제는 어떻게?
Read A
Read A Update A
Update A
Thread 1
Thread 2
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
Solution #1 Remote Lock을 이용
Read A
Read A Update A
Update A
Thread 1
Thread 2
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
Solution #2 Compare And Swap 이용
(ABA 문제 유의)
Read A
Read A CAS Update A
CAS Update A
Failed
Thread 1
Thread 2
Read A Update A
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
Remote Lock은 Lock 비용이 비싸므로
Sparse Lock 등의 패턴을 활용
Compare And Swap 이용은 이를 이용한 구현이 복잡하므로
…
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
이렇듯 동시성 문제는 해결이 어렵다. 그러므로
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
이렇듯 동시성 문제는 해결이 어렵다. 그러므로
1) 동시성 문제가 없도록 하거나.. 1) Thread에 자료를 바인딩 등…
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
이렇듯 동시성 문제는 해결이 어렵다. 그러므로
1) 동시성 문제가 없도록 하거나.. 1) Thread에 자료를 바인딩 등…
2) 동시성 문제를 받아들이거나.. 1) 게시판 뷰 수 같은 통계
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
이렇듯 동시성 문제는 해결이 어렵다. 그러므로
1) 동시성 문제가 없도록 하거나.. 1) Thread에 자료를 바인딩 등…
2) 동시성 문제를 받아들이거나.. 1) 게시판 뷰 수 같은 통계
3) 문제를 간단하게 만들고…
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
이렇듯 동시성 문제는 해결이 어렵다. 그러므로
1) 동시성 문제가 없도록 하거나.. 1) Thread에 자료를 바인딩 등…
2) 동시성 문제를 받아들이거나.. 1) 게시판 뷰 수 같은 통계
3) 문제를 간단하게 만들고… 4) 풀이를 간단하게 하고…
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
이렇듯 동시성 문제는 해결이 어렵다. 그러므로
1) 동시성 문제가 없도록 하거나.. 1) Thread에 자료를 바인딩 등…
2) 동시성 문제를 받아들이거나.. 1) 게시판 뷰 수 같은 통계
3) 문제를 간단하게 만들고… 4) 풀이를 간단하게 하고… 5) 다시 간단하게 하고..
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
이렇듯 동시성 문제는 해결이 어렵다. 그러므로
1) 동시성 문제가 없도록 하거나.. 1) Thread에 자료를 바인딩 등…
2) 동시성 문제를 받아들이거나.. 1) 게시판 뷰 수 같은 통계
3) 문제를 간단하게 만들고… 4) 풀이를 간단하게 하고… 5) 다시 간단하게 하고.. 6) 또 다시 간단하게 한다.
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
추가로… Protocol Buffer,
JSON, BSON을
DBMS와 함께 많이 쓰시죠?
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
False Sharing!
ㅁ
A B
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
False Sharing!
Read A
Read B Update B
Update A
Thread 1
Thread 2
ㅁ
A B
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
False Sharing은 서로 다른 두 정보가
같은 처리 단위로 묶여 있어 생기는 현상
PB, JSON, BSON 같은 직렬화 도구가 사용될 경우 발생할 가능성이 높음
ⓒ 2012 KT Hitel Corporation
확장성과 일관성
False Sharing은 결국 동시성 문제이므로 같은 방법으로 풀이
ⓒ 2012 KT Hitel Corporation
목차
1. 클라우드 스토리지의 조건 2. 신뢰성과 경제성 3. 확장성과 일관성 4. PrismFS2
ⓒ 2012 KT Hitel Corporation
PrismFS2
PrismFS2는 KTH에서 개발한 클라우드 스토리지
ⓒ 2012 KT Hitel Corporation
PrismFS2
Erasure Code를 이용해 자료를 보호
다중 메타 서버 구조를 활용해 확장이 가능
웹 서비스 API를 제공
ⓒ 2012 KT Hitel Corporation
…
QnA
Recommended