본문 바로가기 주메뉴 바로가기
국회도서관 홈으로 정보검색 소장정보 검색

목차보기

표제지

목차

국문초록 10

ABSTRACT 12

제1장 서론 14

제2장 관련연구 17

제1절 클러스터링 (Clustering) 17

1. 클러스터 개념 17

2. 클러스터 분류 19

3. 자원 관리 시스템(RMS) 미들웨어 21

제2절 GFS & Google MapReduce Framework 28

1. GFS (Google File System) 28

2. Google MapReduce Framework 30

제3절 Hadoop 32

1. HDFS (Hadoop Distributed File System) 32

2. Hadoop MapReduce Framework 34

제4절 MPI 35

제3장 SCAREX 프레임워크 모듈 설계 및 개발 37

제1절. SCAREX 프레임워크 설계 이슈 37

1. 저부하 고가용성 (High Availability with Low Network Load) 37

2. 규모성 (Scalability) 38

3. 신뢰성 (Reliability) 39

4. 유연성 (Flexibility) 40

5. 편의성 (Facility) 40

제2절 SCAREX 프레임워크 전체 구성 41

제3절 SCAREX 프레임워크 구성 패키지 43

1. Cluster Information Manager 43

2. Requester 45

3. Load Balancer 46

4. Worker 48

5. Work Result Management 50

제4절 SCAREX 프레임워크 주요 적용 기술 52

1. 처리 작업 분배 방법 52

2. 처리 작업 실패 극복 방법 55

3. Load Balancer 메모리 한계 극복 방법 58

4. 작업 모듈 자동 설정 61

제5절 SCAREX 프레임워크 구동 과정 62

제4장 실험 및 평가 65

제1절 실험 환경 65

1. 소프트웨어 구성 환경 65

2. 하드웨어 구성 환경 66

제2절 실험 모듈 및 실험 시스템 구조 68

제3절 실험 방법 및 결과 69

1. SCAREX 프레임워크 적용 효과 측정 실험 69

2. 처리 시스템 규모성 실험 71

3. 신뢰성 실험 74

4. SCAREX 프레임워크 운용 설계에 따른 성능 실험 78

5. 상이한 처리 클러스터 구성상에서의 처리 작업 분배 실험 81

제5장 결론 및 향후 연구 85

참고문헌 88

표목차

〈표 1-1〉 Work Interface 49

〈표 1-2〉 Work Interface를 기반으로 제작한 Work Module 구조 49

〈표 2-1〉 실험 환경 - 소프트웨어 구성 65

〈표 2-2〉 실험 환경 - 하드웨어 구성(처리 시스템) 67

〈표 2-3〉 처리 시간 감소율 및 감소율 차 74

〈표 2-4〉 신뢰성 실험 결과 75

〈표 2-5〉 실패 작업 평균 재할당 시간 77

〈표 2-6〉 내부 처리 서버 규모에 따른 처리 시간 79

〈표 2-7〉 내부 처리 서버 규모에 따른 작업 처리 횟수 분포 81

〈표 2-8〉 처리 작업 균등 분배 실험 결과 83

〈표 2-9〉 처리 규모 구간 처리 시스템별 처리 작업 규모 84

그림목차

〈그림 1-1〉 클러스터 아키텍처 18

〈그림 1-2〉 클러스터 분류도 19

〈그림 1-3〉 클러스터 RMS 아키텍처 21

〈그림 1-4〉 Google File System Architecture 29

〈그림 1-5〉 Google MapReduce Framework 동작 과정 31

〈그림 1-6〉 Hadoop의 HDFS 작동 구조 33

〈그림 1-7〉 MPI 프로그램 구조 36

〈그림 2-1〉 Work Result Management 패키지 모듈 구성도 41

〈그림 2-2〉 프레임워크 패키지 다이어그램 42

〈그림 2-3〉 프레임워크 기반 개발 구상도 43

〈그림 2-4〉 프레임워크 컴포넌트 다이어그램 44

〈그림 2-5〉 처리 성능 동일시 작업 분배 53

〈그림 2-6〉 상이한 처리 성능의 처리 시스템 기반 클러스터 상에서의 처리 작업 수행 54

〈그림 2-7〉 대규모 데이터 기반 처리 작업에 대한 클러스터 처리 55

〈그림 2-8〉 처리 작업 실패 극복 과정 56

〈그림 2-9〉 Load Balancer 메모리 한계 확장 방법 59

〈그림 2-10〉 처리 지연 및 가상 머신 메모리 확보 61

〈그림 2-11〉 처리 모델 모듈 (Work Module) 자동 설정 62

〈그림 2-12〉 전체 패키지 구성 기반 구동 과정 63

〈그림 3-1〉 실험 적용 처리 작업 구조 68

〈그림 3-2〉 SCAREX 프레임워크 적용 효과 측정 실험 결과 70

〈그림 3-3〉 단일노드 처리시간 대비 클러스터 처리시간 비율 71

〈그림 3-4〉 클러스터 처리 시스템 규모 증가 따른 처리 시간 72

〈그림 3-5〉 클러스터 처리 시스템 규모 증가 따른 처리 속도 향상 72

〈그림 3-6〉 클러스터 처리 시스템 규모 증가 따른 효율성 72

〈그림 3-7〉 처리 시간 감소율 74

〈그림 3-8〉 실패 작업 재할당 시간 78

〈그림 3-9〉 내부 처리 서버 규모 증가에 따른 클러스터 처리시간 79

〈그림 3-10〉 내부 처리 서버 규모에 따른 작업 처리 횟수 분포 80

〈그림 3-11〉 내부 처리 서버 규모에 따른 작업 처리 횟수 표준 편차 81

〈그림 3-12〉 처리 작업 균등 분배 실험 결과 83

〈그림 3-13〉 처리 규모 구간 처리 시스템별 처리 작업 규모 84

초록보기

분산 컴퓨팅은 단일 시스템이 가진 한계와 문제점을 극복함으로써 고성능, 고가용성, 고신뢰성을 달성하고자 하는 컴퓨팅 기술이다. 분산 컴퓨팅에서 중요한 기술 중 하나는 클러스터링 (Clustering)이다. 클러스터링은 단일 시스템들을 상호 연결함으로써 사용자에게 단일 시스템 이미지(SSI, Single System Image)를 제공할 수 있는 컴퓨팅 기술이다. 그러나 분산된 컴퓨팅 자원을 활용하는 기술은 네트워크, 컴퓨터 시스템과 같은 물리적인 구성 요소들에 관한 지식에서부터 작업 분배 방법, 작업 실패 극복, 내고장성 등을 고려해야 하기 때문에 전문적인 영역이다.

본 논문에서는 비상호적 처리 작업을 처리 할 수 있는 클러스터 시스템을 보다 쉽고 빠르게 구성할 수 있는 신뢰성과 확장성 있는 클러스터 프레임워크 ‘SCAREX (Scalable and Reliable distributed cluster framework)’를 제시한다. SCAREX 프레임워크는 저부하 고가용성, 규모성, 신뢰성, 유연성, 편의성 등의 5가지 설계 이슈를 바탕으로 설계 및 구현되었다. SCAREX 프레임워크는 큐(Queue)를 기반으로 작업 노드에 대한 컨넥션풀을 관리하는 방식이 적용하였기 때문에 저부하 고가용성, 균등한 처리 작업 분배, 빠른 확장성을 제공하고 있다. 본 프레임워크는 버퍼링 기법을 채용함에 따라 로드밸런서의 데이터 저장 메모리 공간을 작업 노드로 확장 할 수 있으며, 데이터를 확보하기 위한 대기 및 지연에 필요한 시간을 제거할 수 있으므로 빠른 데이터 처리가 가능하다. 그리고 본 프레임워크는 내고장성 (Fault Tolerant)기능을 제공하고 있다. 클러스터내의 작업노드에 고장이 발생하였을 경우, 로드밸런서는 해당 작업을 다른 노드에게 재할당 한다. 또한 본 논문에서 제시한 프레임워크를 사용함에 따라 클러스터 설계자는 시스템 요구사향에 맞게 프레임워크내의 다양한 패키지들을 조합함으로써 다양한 구조의 클러스터를 개발할 수 있다. 더욱이 본 프레임워크는 개발에 활용되는 인터페이스를 제공함으로써 빠르고 쉬운 클러스터 시스템 개발이 가능하다.

SCAREX 프레임워크를 평가하기 위해 본 논문에서는 총 5번의 실험을 실시하였다. 각각의 실험에 있어서, 작업 요청자 (Requester)는 HTML 문서로부터 태그가 제거된 순수한 텍스트를 추출하는 작업 (Task)에 대한 다수의 작업들을 요청한다.

첫 번째 실험은 프레임워크 적용 효과 실험이다. 본 실험 결과 단일 처리 시스템에 비해서 약 10%대의 단축된 처리 시간을 보여주었다. 두 번째 실험에서는 프레임워크의 “속도 향상 (Speedup)”과 “효율성 (Efficiency)”을 측정하기 위한 실험이다. 본 실험 결과 비교적 일정하게 유지되는 효율성을 보임과 동시에 선형적인 속도 향상을 보였다. 특히, 효율성의 조화 평균은 0.993으로 나타났다. 세 번째 실험은 프레임워크의 신뢰성에 관한 실험이다. 신뢰성은 17개의 작업 노드를 활용하여 10회의 실험과정을 거쳤다. 실험 결과 각각의 실험에 있어서 5대의 작업 노드에 대한 고장 상황에도 불구하고 손실되는 처리 작업 결과가 나타나지 않았다.

네 번째 실험은 작업 노드 내의 서버 쓰레드 규모에 따른 1000개의 작업 (task)에 대한 최저 처리 작업 수행 시간을 구하는 실험이다. 본 실험 결과 작업 노드 당 10개의 서버 쓰레드가 최저 처리 작업 수행 시간을 기록하였다. 다섯 번째 실험은 처리 노드의 하드웨어 성능 측정 없이 처리작업 분배에 있어서 균등한 처리 작업 분배에 관한 실험이다. 따라서 본 실험을 위해 우리는 처리 성능이 상이한 두 그룹(펜티엄3, 펜티엄4)을 만들었다. 본 실험 결과 각각의 그룹은 약 1:3의 처리 성능을 보이며 작업 노드의 하드웨어 성능 측정이 없음에도 불구하고 균등한 처리 작업 분배가 이루어졌음으로 확인 할 수 있었다.