14
GOOGLE을 지탱하는 기 Google의 공룡화 06 Sanmantha

Google 2

  • Upload
    semi06

  • View
    591

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Google 2

GOOGLE을 지탱하는 기

Google의 공룡화

06 Sanmantha

Page 2: Google 2

차례

시스템

분산 시스템

기반 시스템

검색 Cluster

인덱스 분할

Page 3: Google 2

시스템의 성능 향상

Scale-up : 보다 뛰어난 하드웨어를 도입하는 방법

Scale-out : 하드웨어의 수를 늘리는 방법

Page 4: Google 2

장.단점

Scale-up Scale-out

장점

시스템을 단순하게 할 수 있

소프트웨어를 변경할 필요

가 없다

필요에 맞게 장비의 수를 증가

시킬 수 있다

비교적 비용을 억제할 수 있다

단점고성능 하드웨어의 가격이

비싸다

처음부터 복수의 하드웨어를 상

정해서 소프트웨어를 개발해야

만 한다

설계가 잘못될 경우, 대수를 늘

려도 성능이

개선되지 않는다.

Page 5: Google 2

시스템 연결

Rack

시스템의 기본

하나의 Rack에는 40~80대의 PC에 해당하는 부품

Cluster

Rack을 하나의 단위로 여러 개 연결한 것

목적따라 다양한 Cluster들이 존재

- (검색 Cluster, 수집 Cluster, 테스트용 Cluster 등…)

Data Center

다수의 Rack가 한데 모여있는 것

세계 각지에 분산 배치

Page 6: Google 2

분산 시스템의 구성

Cluster

Cluster

Cluster

Cluster

스위

PC PC

PC PC

PC PC

Cluster

RackCluster

Data Center

Page 7: Google 2

싼 장비를 대량으로 이용 시 문

제점

하드웨어 고장

저가의 하드웨어는 고장이 날 확률이 그만큼 높다

장애를 미리 상정하고 대비할 필요가 있다

문제 발생시 전체적으로 동작을 계속 할 수 있게해야 한다

고난도 분산처리

모든 장비의 상태를 파악하고 알맞게 작업을 분산시켜야 한다

얼마든지 확장할 수 있는 구조를 설계한 후 병목현상이 없도록 해야 한다확장성scalability : 장비의 수를 늘리면 늘린 만큼 성능

이 향상되는 성질

Page 8: Google 2

기반 시스템

GFS Cluster GFS : Google File System

다수의 머신을 사용하여 거대한 파일 시스템을 만들어내는 기술

머신들을 네트워크로 연결하여 일관되게 데이터를 읽고 쓸 수 있도록 하는 기술

GFS Cluster : GFS에 의해 연결된 머신들이 집합

하드드라이브를 다룸

Work Queue CPU를 다룸

비교적 여유가 있는 머신에서 주어진 태스크를 실행하는 기능 –쉬고 있는 머신을 자동으로 찾아내 순차적으로 실행시킴

GFS의 주요업무 디스크 읽기.쓰기, 데이터 전송 – CPU부담적음

Work Queue에 의해 부하가 높은 태스크를 동시에 실행하면 각각의 능력 최대활용 가능

Page 9: Google 2

검색엔진 개량

검색 back-end의 대규모화

Crawler의 성능이 올라가는 만큼 Repository에 저

장되는 데이터의 양도 증가 – 고속화 하지 않으면

병목현상 유발

URL서버도 병목현상 발생 가능성 있음

Load-Balancing과 인덱스 생성 – 인덱스를 하나로

합칠 때

인덱스의 대규모화

대규모 인덱스 사용 X

대규모 인덱스 사용 – 범용 인덱스 시스템 준비

Page 10: Google 2

새로운 검색엔진

단 한 번의 검색이라도 다수의 컴퓨터에 의해분산처리

Data Center

IP조사 : 지리적인 위치에 따라 바뀜

주소 창에 주소 입력 시 주소가 같아도 자신이 위치한 곳에서 되도록 가까운 곳에 있는 Google의Data Center연결 – 부하 분산의 첫 걸음

재해로 인해 하나의 Data Center가 심각한 타격을받을 경우, DNS는 그 Data Center의 IP주소 반환X

각각 독립적으로 웹 검색 – 검색 서버와 검색용 인덱스로 구성된

Page 11: Google 2

검색 Cluster

복수의 서버를 조합해 검색을 처리

GWS (Google Web Server) 각각의 검색 요청을 한 곳에 모으는 일 실행

웹 서버와 같은 위치

도큐먼트 서버에게 인덱스 서버가 찾은 목록 전달

도큐먼트 서버에서 만든 정보를 HTML로 정리해서 이용자에게 전달

Load Balancer, LB 검색 요청 분배->복수의 GWS 중 하나와 연결

부하가 가벼운 GWS에 처리를 맡김

도큐먼트 서버 각각의 웹 페이지 제목 및 요약 등의 정보 만듦

Page 12: Google 2

검색 클러스터 구조

LB

GWS GWS GWS

인덱스 서버 도큐먼트 서버

Page 13: Google 2

인덱스 분할

쉽게 확장할 수 있는 검색 시스템 구축 필요

Shard 인덱스 생성

wordID가 아닌 docID에 의해 인덱스 분할

인덱스 당 웹 페이지의 수 제한 but 그 하나하나는

모든 단어를 포함한 완전한 인덱스 생성

장점

웹 페이지 수 제한 시 생성되는 인덱스의 크기도

줄일 수 있음

Page 14: Google 2

Shard(파편)

모든 Shard에서 같은 검색을 하고 그 결과를 통

합해야 함

각 Shard는 작은 클러스터로 구성

읽기 전용 – 정기적인 업데이트 외에 갱신 하지

않음

얼마든지 확장 가능한 구조