Upload
semi06
View
591
Download
0
Embed Size (px)
Citation preview
GOOGLE을 지탱하는 기
술
Google의 공룡화
06 Sanmantha
차례
시스템
분산 시스템
기반 시스템
검색 Cluster
인덱스 분할
시스템의 성능 향상
Scale-up : 보다 뛰어난 하드웨어를 도입하는 방법
Scale-out : 하드웨어의 수를 늘리는 방법
장.단점
Scale-up Scale-out
장점
시스템을 단순하게 할 수 있
다
소프트웨어를 변경할 필요
가 없다
필요에 맞게 장비의 수를 증가
시킬 수 있다
비교적 비용을 억제할 수 있다
단점고성능 하드웨어의 가격이
비싸다
처음부터 복수의 하드웨어를 상
정해서 소프트웨어를 개발해야
만 한다
설계가 잘못될 경우, 대수를 늘
려도 성능이
개선되지 않는다.
시스템 연결
Rack
시스템의 기본
하나의 Rack에는 40~80대의 PC에 해당하는 부품
Cluster
Rack을 하나의 단위로 여러 개 연결한 것
목적따라 다양한 Cluster들이 존재
- (검색 Cluster, 수집 Cluster, 테스트용 Cluster 등…)
Data Center
다수의 Rack가 한데 모여있는 것
세계 각지에 분산 배치
분산 시스템의 구성
Cluster
Cluster
Cluster
Cluster
스위
치
PC PC
PC PC
PC PC
Cluster
RackCluster
Data Center
싼 장비를 대량으로 이용 시 문
제점
하드웨어 고장
저가의 하드웨어는 고장이 날 확률이 그만큼 높다
장애를 미리 상정하고 대비할 필요가 있다
문제 발생시 전체적으로 동작을 계속 할 수 있게해야 한다
고난도 분산처리
모든 장비의 상태를 파악하고 알맞게 작업을 분산시켜야 한다
얼마든지 확장할 수 있는 구조를 설계한 후 병목현상이 없도록 해야 한다확장성scalability : 장비의 수를 늘리면 늘린 만큼 성능
이 향상되는 성질
기반 시스템
GFS Cluster GFS : Google File System
다수의 머신을 사용하여 거대한 파일 시스템을 만들어내는 기술
머신들을 네트워크로 연결하여 일관되게 데이터를 읽고 쓸 수 있도록 하는 기술
GFS Cluster : GFS에 의해 연결된 머신들이 집합
하드드라이브를 다룸
Work Queue CPU를 다룸
비교적 여유가 있는 머신에서 주어진 태스크를 실행하는 기능 –쉬고 있는 머신을 자동으로 찾아내 순차적으로 실행시킴
GFS의 주요업무 디스크 읽기.쓰기, 데이터 전송 – CPU부담적음
Work Queue에 의해 부하가 높은 태스크를 동시에 실행하면 각각의 능력 최대활용 가능
검색엔진 개량
검색 back-end의 대규모화
Crawler의 성능이 올라가는 만큼 Repository에 저
장되는 데이터의 양도 증가 – 고속화 하지 않으면
병목현상 유발
URL서버도 병목현상 발생 가능성 있음
Load-Balancing과 인덱스 생성 – 인덱스를 하나로
합칠 때
인덱스의 대규모화
대규모 인덱스 사용 X
대규모 인덱스 사용 – 범용 인덱스 시스템 준비
새로운 검색엔진
단 한 번의 검색이라도 다수의 컴퓨터에 의해분산처리
Data Center
IP조사 : 지리적인 위치에 따라 바뀜
주소 창에 주소 입력 시 주소가 같아도 자신이 위치한 곳에서 되도록 가까운 곳에 있는 Google의Data Center연결 – 부하 분산의 첫 걸음
재해로 인해 하나의 Data Center가 심각한 타격을받을 경우, DNS는 그 Data Center의 IP주소 반환X
각각 독립적으로 웹 검색 – 검색 서버와 검색용 인덱스로 구성된
검색 Cluster
복수의 서버를 조합해 검색을 처리
GWS (Google Web Server) 각각의 검색 요청을 한 곳에 모으는 일 실행
웹 서버와 같은 위치
도큐먼트 서버에게 인덱스 서버가 찾은 목록 전달
도큐먼트 서버에서 만든 정보를 HTML로 정리해서 이용자에게 전달
Load Balancer, LB 검색 요청 분배->복수의 GWS 중 하나와 연결
부하가 가벼운 GWS에 처리를 맡김
도큐먼트 서버 각각의 웹 페이지 제목 및 요약 등의 정보 만듦
검색 클러스터 구조
LB
GWS GWS GWS
인덱스 서버 도큐먼트 서버
인덱스 분할
쉽게 확장할 수 있는 검색 시스템 구축 필요
Shard 인덱스 생성
wordID가 아닌 docID에 의해 인덱스 분할
인덱스 당 웹 페이지의 수 제한 but 그 하나하나는
모든 단어를 포함한 완전한 인덱스 생성
장점
웹 페이지 수 제한 시 생성되는 인덱스의 크기도
줄일 수 있음
Shard(파편)
모든 Shard에서 같은 검색을 하고 그 결과를 통
합해야 함
각 Shard는 작은 클러스터로 구성
읽기 전용 – 정기적인 업데이트 외에 갱신 하지
않음
얼마든지 확장 가능한 구조