Xen의 확장성과 효율성을 위한 메모리의 동적 할당 정책
Dynamic Allocation Policy of Memory for Scalability and Efficiency in Xen
- 주제(키워드) Xen , 메모리 , 동적 할당
- 발행기관 서강대학교 일반대학원
- 지도교수 박성용
- 발행년도 2009
- 학위수여년월 2009. 2
- 학위명 석사
- 실제URI http://www.dcollection.net/handler/sogang/000000044883
- 본문언어 한국어
초록/요약
최근 서버의 통합을 통해 시스템 자원의 이용률과 효율성을 높이기 위한 방안으로 시스템 가상화가 많은 주목을 받고 있다. 시스템 가상화 기술이란 하나의 서버 기계를 마치 여러 독립적인 서버 기계로 느끼도록 가상으로 분리시켜 실제로는 하드웨어를 공유하더라도 가상화된 각각의 서버가 서로 다른 기계에서 동작하는 것처럼 만들어준다. 이 기술은 이미 실용화 단계에 있는 분야이며 하드웨어의 성능이 높아짐에 따라 더 많은 서버의 통합이 가능해지고 있다. 또한 이를 통하여 비용 절감 및 공간 축소의 효과를 얻고 있다. 현재 시스템 가상화 기술을 활용하여 자원의 이용률 또는 효율성을 향상시키기 위한 많은 연구들이 활발하게 이루어지고 있다. 시스템 가상화는 크게 컨테이너(Container) 기반과 하이퍼바이저(Hypervisor) 기반의 가상화 기법으로 나눌 수 있다. 컨테이너 기반의 가상화는 하나의 커널을 공유하여 다수의 사용자에게 각자의 사용자 공간을 제공하고 이 사용자 공간을 서로 분리시켜준다. 이 기법은 커널을 공유하기 때문에 가상머신을 생성하기 위한 추가적인 자원이 적어서 많은 가상머신을 동작시킬 수 있지만 이러한 특성으로 인하여 가상머신 간 고수준의 자원 분리를 제공할 수 없는 단점이 있다. 또한 고수준의 자원 분리가 불가능하기 때문에 한 가상머신의 내결함성(Fault tolerance)이 다른 가상머신들에게 영향을 미칠 위험이 있다. 이와는 반대로 하이퍼바이저 기반의 가상화는 물리적인 하드웨어 장비 위층에 존재하여 각 가상머신에게 고수준의 자원 분리를 제공할 수 있다. 이 가상화 기법은 가상머신의 생성 시 해당 자원을 미리 선점하여 할당해주므로 모든 가상머신들의 자원 총합이 실제 기계의 자원 총량을 넘을 수 없다. 따라서 컨테이너 기반의 가상화 기법만큼 다수의 가상머신을 제공하지는 못한다. 또한 한 가상머신에 할당된 자원을 다른 가상머신이 침범할 수 없으므로 자원이 부족한 가상머신이 존재하더라도 유휴자원이 발생할 수 있는 문제점이 있다. 본 논문에서는 이러한 가상화 기법들의 문제점에 착안하여 온전히 분리된 자원들을 가상머신에게 제공하고 발생할 수 있는 유휴자원을 최소화하여 자원 이용률 및 효율성을 향상시킬 수 있는 정책을 목표로 한다. 이 정책은 서버의 많은 자원들 중에서 컨테이너 기반의 가상화가 고수준의 자원 분리를 제공하지 못하고 하이퍼바이저 기반의 가상화에서 유휴자원이 많이 발생하는 메모리 자원에 초점을 맞추었다. 또한 메모리는 하이퍼바이저 기반의 가상화에서 더 많은 가상머신을 동작시키는데 큰 제약이 되는 자원이기도 하다. 따라서 메모리 자원의 사용량 예측과 배분 및 할당을 통해 실제 서버 기계 상의 가상머신들을 더욱 효과적으로 운용할 수 있는 메모리의 동적 할당 정책을 제안한다.
more초록/요약
The system virtualization is arrested attention to the server consolidation for utilization and efficiency of system resources recently. This system virtualization means the software technology that offers a number of virtualized environments through separating physical hardwares of one machine. A virtualized environment provide independent virtual hardwares to each server of virtual machine although shared hardware for real. The system virtualization is already in practical use level and makes cost reduction with much less spaces at many commercial fields. So, there are many researches to improve the resource utilization and efficiency through using the system virtualization technique. The system virtualization has two major types that are container-based and hypervisor-based virtualization. The container-based virtualization shares one kernel image and provides separated multiple user-space to each user. Because of the shared kernel, this type loads many virtual machines, but it can not support high-level resource isolation. Also, some fault tolerance of one virtual machine makes fatal fault to whole virtual machines due to shared resources. On the contrary, a virtualization layer of the hypervisor-based is on a physical hardware substrate so that supports high-level resource isolation to each virtualized environments. This type preoccupies resources to each virtual machine at creating virtual machine. Therefore a total resources of all virtual machine can not be over the real machine's resource capacity. This means the container-based type is able to load more virtual machine than hypervisor-based virtualization. And hypervisor-based type may product idle resources when some virtual machine needs more resource because of a characteristic of high-level resource isolation. This paper perceives these problems and develops a system for improving resource utilization with high-level resource isolation. Especially, a memory makes a system to disable high-level resource isolation to container-based virtualization. Furthermore, it limits a number of virtual machines and generates idle resource to hypervisor-based virtualization. In this paper, I focus on this memory resource. Finally, I suggest the policy which predicts next memory usage and allocates memory dynamically to virtual machines.
more목차
제 1 장 서론 = 1
1.1 연구의 배경 및 필요성 = 1
1.2 연구 방법 = 5
1.3 논문의 구성 = 6
제 2 장 관련 연구 = 8
2.1 Xen의 메모리 가상화 = 8
2.2 기존 메모리 관리 방법의 문제점 = 9
제 3 장 메모리의 동적 할당 정책 = 14
3.1 동적 할당의 목적 = 14
3.2 전체 흐름 = 15
3.3 메모리 사용량 예측 = 16
3.3.1 AR (Auto-Regression) = 16
3.3.2 AR의 차수 = 18
3.3.3 AR 예측에 필요한 메모리 사용량 데이터 = 19
3.3.4 메모리 사용량 예측 구성 = 21
3.4 메모리 할당 = 22
3.4.1 메모리 벌룬(Balloon) 드라이버 = 22
3.4.2 개미 군집 최적화 (ACO) 알고리즘을 활용한 배낭 문제 = 23
3.4.3 지연된(Delayed) 할당 = 30
제 4 장 성능 평가 = 33
4.1 성능 평가 실험을 위한 시스템 구성 = 33
4.2 시스템 성능 측정 및 분석 = 36
4.2.1 메모리의 정적 할당 = 38
4.2.2 메모리의 초과 할당 = 40
4.2.3 메모리의 동적 할당 = 47
제 5 장 결론 및 향후 과제 = 50
참고문헌 = 51
그림목차
[그림 1] 한국 서버 시장 매출액 규모 (2005~2011). 자료 : 한국IDC = 1
[그림 2] 시스템 가상화를 통한 서버 통합 = 2
[그림 3] 시스템 가상화 환경에서의 시스템 이용률 = 3
[그림 4] 컨테이너 기반의 시스템 가상화 = 4
[그림 5] 하이퍼바이저 기반의 가상화 = 4
[그림 6] 서버들의 메모리 사용 경향 분석 = 6
[그림 7] Xen 메모리의 세 계층 = 9
[그림 8] 메모리 이용률 측정을 위한 메모리 할당 요청 = 11
[그림 9] VServer의 메모리 사용량 = 11
[그림 10] VServer의 메모리 이용률 = 12
[그림 11] 두 Xen 가상머신의 메모리 사용 = 13
[그림 12] Xen의 메모리 이용률 = 13
[그림 13] 동적 할당 정책의 순서도 = 15
[그림 14] AR 차수에 따른 제곱 평균 오차 = 18
[그림 15] 잘못된 AR 예측 결과 횟수 = 20
[그림 16] AR 예측 평균 오차 = 21
[그림 17] 메모리 벌룬 드라이버의 동작 = 23
[그림 18] 실제 개미의 행동 = 25
[그림 19] 인공적인 개미의 행동 = 26
[그림 20] 개미 군집 최적화 알고리즘의 경로 구성 = 27
[그림 21] 개미의 마릿수에 따른 최적 값 발견까지의 필요한 구간 반복 횟수 = 28
[그림 22] 페로몬 증발율에 따른 최적 값 발견까지의 필요한 구간 반복 횟수 = 29
[그림 23] 메모리 스왑에 사용된 최대 CPU와 필요한 시간 = 31
[그림 24] 지연된 할당 보조 정책의 순서도 = 32
[그림 25] 동적 할당 시스템의 구성 = 33
[그림 26] 레포터로부터 수집자에게 전달되는 데이터의 XML 구조 = 34
[그림 27] 가상머신의 메모리 사용량 기록을 저장하는 데이터베이스 테이블 = 35
[그림 28] 가상머신 정보를 담는 데이터베이스 테이블 = 35
[그림 29] eLuna 웹서버의 메모리 사용량 그래프 = 36
[그림 30] eLuna 웹 서버의 메모리 사용량에서 추출한 수치 = 37
[그림 31] 실험에 사용한 메모리 워크로드 = 37
[그림 32] 정적 할당 방식의 두 가상머신(1GB)에 대한 메모리 워크로드 = 38
[그림 33] 정적 할당 방식의 두 가상머신(1GB)의 실제 메모리 사용 = 39
[그림 34] 정적 할당 방식의 두 가상머신(1GB)의 메모리 사용량 누적 = 39
[그림 35] 정적 할당 방식의 메모리 이용률 = 40
[그림 36] 네 가상머신 각각의 메모리 워크로드 = 41
[그림 37] 4MB 초과 할당 방식의 메모리 사용량과 워크로드 = 42
[그림 38] 4MB 초과 할당 방식의 메모리 이용률 = 43
[그림 39] 8MB 초과 할당 방식의 메모리 사용량과 워크로드 = 44
[그림 40] 8MB 초과 할당 방식의 메모리 이용률 = 44
[그림 41] 4MB 초과 할당 방식의 메모리 할당량과 실제 사용량 = 45
[그림 42] 8MB 초과 할당 방식의 메모리 할당량과 실제 사용량 = 46
[그림 43] 초과 할당 방식의 메모리 낭비 = 47
[그림 44] 동적 할당 방식의 메모리 사용량과 워크로드 = 48
[그림 45] 동적 할당 방식의 메모리 이용률 = 48
[그림 46] 할당 방식에 따른 이용률 = 49
표목차
[표 1] 잘못된 동작을 하는 가상머신에 대한 성능저하 = 10
[표 2] 데이터 개수 별 AR 예측 오차 = 19
[표 3] 배낭 문제의 파라미터에 부합하는 메모리 할당 문제의 파라미터 = 24

