22
Google 을 을을을을 을을 By Sid 구구구 구구구

Google을 지탱하는 기술2

Embed Size (px)

DESCRIPTION

chapter 2 구글의 공룡화

Citation preview

Page 1: Google을 지탱하는 기술2

Google 을 지탱하는 기술

By Sid

구글의 공룡화

Page 2: Google을 지탱하는 기술2

Index

1. 구글의 대규모화

- System 확장- 하나로 합체- 이것만큼은- 자원은 알뜰하게- Search Engine

Upgrade

2. 분산처리 System

- 세계화- 다수의 서버- 인덱스 분할- 인덱스 분산- 새로운 검색절차

Page 3: Google을 지탱하는 기술2

System 확장1. Scale – up

보다 뛰어난 하드웨어 도입

장점 – 시스템 단순 Software 변경불필요

단점 – 가격비쌈

2. Scale – out

하드웨어의 수 늘림

장점 – 필요에 따라 장비 증가가능 비용억제 단점 – Software 개발 잘못된 설계는 성능개선 X

S-up

S-out

Page 4: Google을 지탱하는 기술2

하나로 합체

Rack – 2~4 개의 CPU 2~4GB Memory 2~4 개의 HDD 장비들은 1Gbps LAN 으로 연결

Cluster – 서로 협조하여 하나의 기능을 제공하는 Rack 의 집합

Data Center – 다수의 Rack 이 모여있는것 . 같은 Rack 이 복수의 Cluster 로 사용가능

Page 5: Google을 지탱하는 기술2

하나로 합체

Rack – 2~4 개의 CPU 2~4GB Memory 2~4 개의 HDD 장비들은 1Gbps LAN 으로 연결

Cluster – 서로 협조하여 하나의 기능을 제공하는 Rack 의 집합

Data Center – 다수의 Rack 이 모여있는것 . 같은 Rack 이 복수의 Cluster 로 사용가능

Page 6: Google을 지탱하는 기술2

하나로 합체

Rack – 2~4 개의 CPU 2~4GB Memory 2~4 개의 HDD 장비들은 1Gbps LAN 으로 연결

Cluster – 서로 협조하여 하나의 기능을 제공하는 Rack 의 집합

Data Center – 다수의 Rack 이 모여있는것 . 같은 Rack 이 복수의 Cluster 로 사용가능

Page 7: Google을 지탱하는 기술2

이것만큼은 !!

• 전원이 갑자기 끊김 ⇒ 재시동한다 . ⇒ 재시동 않는다 .• HDD 의 일부에 접근 할 수 없다 .• HDD 가 완전히 멈춘다 .• Network 에 잠시 / 계속 연결되지 않는다 .

Hardware 의 고장

장애를 미리 상정하고 대비

Software 로라도 문제해결 해줘야 함

Page 8: Google을 지탱하는 기술2

이것만큼은 !!

확장성 – 장비의 수를 늘린 만큼 성능이 (Scalability) 향상되는 성질

병목현상 – System 의 어딘가에서 성능향상을 저해하는 요인이 나타는 현상

고난도 분산처리

모든 장비의 상태파악 ⇒ 작업 분산시킴

[ 대규모 분산시스템구축 ] 확장할 수 있는 구조설계 ⇒ 병목현상 나타나지 않게

Page 9: Google을 지탱하는 기술2

자원은 알뜰하게

GFS 에 의해 연결된 machine 의 집합들Data Center 의 각 machine 을 network 로 연결⇒ 일관되게 Data read/write 하는 기술

OS 의 task 관리를 복수의 machine 으로 분산시킴각 machine 의 부하 감시⇒ 여유 있는 곳에서 Task 실행

GFS Cluster(Google File System)

Work Queue Cluster

Page 10: Google을 지탱하는 기술2

자원은알뜰하게

Work Queue

CPU

HDDGFS

CPU

HDD

Page 11: Google을 지탱하는 기술2

Search En-gine Upgrade

Search Server 의 대규모화

Server 늘림 ⇒ User 의 검색요청 분산 But Index 에서 병목현상 (wordID 에 따른 분산때문 )

대량의 검색결과 ⇒ 순위선정어려움

DocIn-dex

Lexicon

Barrels

Barrels

Barrels

SearchEngine

확장한다

병목현상

Page 12: Google을 지탱하는 기술2

Search En-gine Upgrade

Back-end 의 대규모화

Crawler 성능↑ ⇒ Repository 저장되는 양↑ ⇒ 병목현상

Webpage 수↑⇒ URLserver 에서 병목현상

확장한다

병목현상 ?

Repository crawler

crawler

crawler

URL server

구조해석

단어처리

병목현상 ?

Page 13: Google을 지탱하는 기술2

Search En-gine Upgrade

Index 의 대규모화

Index 를 분할하자 ⇒ 일정한 크기로 유지 ⇒ 성능악화 되지 않는다

대규모 Index 만들자 ⇒ 매번 분할하기 번거로움 ⇒ 범용 인덱스 시스템 구축

Page 14: Google을 지탱하는 기술2

세계화

세계 각지의 Data Center

가장 가까운 곳으로 연결⇒ 부하분산의 첫걸음

Page 15: Google을 지탱하는 기술2
Page 16: Google을 지탱하는 기술2

다수의 서버

GWS(Google Web Server)

각 검색요청을 한 곳에 모음

LB(Load Balancer)

여유 있는 GWS 에 일 맡김

Index ServerWeb page 목록 전달

Document ServerWeb page 요약정보

LB

GWS

IndexServer

GWS GWS

Docu-ment

Server

SearchCluster

Page 17: Google을 지탱하는 기술2

Index 분할

검색을 모든 Index 로 분산⇒ Index 당 web page 수 상한⇒ 일정시간 내 검색 마침

Index 의 크기도 작아짐

Shard

docID#1wordID#

1Position#

1Size#1 Etc.#1

wordID#2

Position#3

Size#3 Etc.#2

wordID#4

Position#4

Size#2 Etc.#4

docID#2wordID#

1Position#

2Size#1 Etc.#1

wordID#3

Position#1

Size#2 Etc.#3

Page 18: Google을 지탱하는 기술2

Index 분산

Shard = 파편

작은 cluster 로 구성

LB 가 부하를 균등하게 분산

확장 가능한 구조

GWS

LB

In-dexIn-dex

In-dex

In-dex

LB

In-dexIn-dex

In-dex

In-dex

LB

In-dexIn-dex

In-dex

In-dex

shard

shard

shard

Page 19: Google을 지탱하는 기술2

새로운 검색 절차

User 검색요청

Index Server 의 모든 shard cluster 에 검색요구

각 shard 는 검색과 랭킹처리

GWS 는 반환된 것 중 상위만 채택

Document Server 에 do-cId 로 정보요구

GWS 는 결과를 html page만들어 출력

GWS

IndexServer

Docu-ment

Server

shard shard

shard

shard

shard shard

Spell-ing

check

광고서버

①②

Page 20: Google을 지탱하는 기술2

구글의 기본사상

Software 로 신뢰성 높임

Hardware 가 고장나도 system 전체의 동작 유지

Hardware 늘려 부하를 분산

분할 / 분산 system 으로 병목현상 방지

비용대비 고성능 hardware 선택

Page 21: Google을 지탱하는 기술2

Thanks for your attention

Page 22: Google을 지탱하는 기술2