KR20130074953A - Apparatus and method for dynamic virtual machine placement - Google Patents
Apparatus and method for dynamic virtual machine placement Download PDFInfo
- Publication number
- KR20130074953A KR20130074953A KR1020110143097A KR20110143097A KR20130074953A KR 20130074953 A KR20130074953 A KR 20130074953A KR 1020110143097 A KR1020110143097 A KR 1020110143097A KR 20110143097 A KR20110143097 A KR 20110143097A KR 20130074953 A KR20130074953 A KR 20130074953A
- Authority
- KR
- South Korea
- Prior art keywords
- virtual machine
- cache miss
- miss rate
- virtual
- node
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000013508 migration Methods 0.000 claims description 12
- 230000015654 memory Effects 0.000 description 27
- 230000015556 catabolic process Effects 0.000 description 16
- 238000006731 degradation reaction Methods 0.000 description 16
- 238000012544 monitoring process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000009977 dual effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000002131 composite material Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
본 발명은 클라우드 컴퓨팅 시스템의 자원을 효율적으로 사용하기 위한 가이드를 제공하는 장치 및 방법에 관한 것이다.
전술한 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 동적 가상 머신 배치 장치는 클러스터가 포함된 클라우드 컴퓨팅 시스템에서, 클러스터에 포함된 복수의 노드에 포함된 복수의 가상 머신의 캐시 미스율을 수집하는 캐시 미스율 수집부, 캐시 미스율에 따라 가상 머신을 재배치하는 가상 머신 재배치부를 포함한다.The present invention relates to an apparatus and method for providing a guide for efficiently using resources of a cloud computing system.
In order to solve the above technical problem, the dynamic virtual machine deployment apparatus according to an embodiment of the present invention, in the cloud computing system including the cluster, the cache miss rate of the plurality of virtual machines included in the plurality of nodes included in the cluster And a cache miss rate collector for collecting and a virtual machine relocator for relocating the virtual machines according to the cache miss rate.
Description
본 발명은 클라우드 컴퓨팅 시스템의 자원을 효율적으로 사용하기 위해 가상 머신을 동적으로 배치하는 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for dynamically deploying virtual machines to efficiently use resources of a cloud computing system.
종래의 프로세스 배치 기술은 하나의 물리적 머신 안에서의 공유 자원 충돌 문제를 해결하기 위한 방법을 사용하였다. 하지만 클라우드 환경에서는 복수의 물리적 머신들이 존재하며, 물리적 머신의 개수 이상의 가상 머신이 존재할 수 있다. 이 경우, 하나의 가상 머신 안에서 공유 자원 충돌 문제를 해결하더라도, 가상 머신들 간의 공유 자원 충돌이 발생하면 자원 이용의 효율성이 낮아지는 문제점이 발생한다. 이러한 공유 자원에 대한 예를 들면, 캐시 메모리, 메모리 대역폭, 네트워크 대역폭, 디스크 성능 등이 있다. 만약, 캐시 메모리(LLC)를 공유하는 CPU들을 두 개의 가상 머신이 각각 사용하고 있고, 두 가상 머신에서 실행되고 있는 응용프로그램이 캐시 메모리를 빈번하게 사용하는 경우라면, 캐시 적중률이 독점적으로 캐시를 사용할 때보다 낮아지기 때문에 가상 머신의 성능 저하를 일으키는 문제점이 발생한다. 이는 다른 공유 자원들의 경우에도 동일하게 발생되는 문제이다.Conventional process placement techniques have used a method for solving a shared resource conflict problem in one physical machine. However, in a cloud environment, a plurality of physical machines exist, and there may be more than one virtual machine. In this case, even when the shared resource conflict problem is solved in one virtual machine, when a shared resource conflict occurs between the virtual machines, a problem of lowering the efficiency of resource usage occurs. Examples of such shared resources include cache memory, memory bandwidth, network bandwidth, disk performance, and the like. If two virtual machines each use CPUs that share a cache memory (LLC), and an application running in both virtual machines frequently uses the cache memory, the cache hit ratio uses the cache exclusively. Because it is lower than usual, there is a problem that causes the performance of the virtual machine to degrade. This is the same problem that occurs with other shared resources.
도 1은 종래 기술의 일 실시예에 따른 가상 머신 배치 결과를 나타낸 도면이다. 가상 머신이 자신이 배치된 시스템의 공유 자원을 다른 가상 머신과 경쟁하여 사용하는 경우에 공유 자원을 많이 사용하는 가상 머신들이 하나의 단일 시스템으로 배치되어 가상 머신의 성능 저하가 발생할 수 있다. 1 is a view showing a virtual machine arrangement result according to an embodiment of the prior art. When a virtual machine uses shared resources of a system in which it is deployed in competition with other virtual machines, virtual machines that use a lot of shared resources may be deployed as a single system, which may cause performance degradation of the virtual machine.
이런 경우 가상 머신 스케쥴링 당시에는 시스템이 idle하여 가상 머신을 배치하였지만 추후에 가상 머신들이 캐시 자원을 빈번이 사용하게 되어 시스템 전체적으로 성능을 저하시키는 현상이 발생하게 되는 것이다. 도 1에서 점선으로 표시된 가상 머신 2개가 배치되는 시점에는 캐시 많이 사용하는 가상 머신이 없었지만 배치되고 난 후에 다른 가상 머신의 캐시 사용량이 급증하는 경우 이 시스템 상에서 동작하는 가상 머신들의 캐시 미스율이 증가하는 성능저하의 피해를 입게 된다.In this case, at the time of scheduling the virtual machine, the system is idle and the virtual machine is placed, but in the future, the virtual machines frequently use cache resources, which causes performance degradation of the entire system. When two virtual machines indicated by dotted lines in FIG. 1 are deployed, there is no cache-intensive virtual machine, but the cache miss rate of the virtual machines operating on the system increases when the cache usage of another virtual machine increases rapidly after being deployed. The damage is reduced.
위에서 설명한 바와 같이 기존의 클라우드 컴퓨팅 시스템을 사용함에 있어 공유 자원 간 충돌이 발생하여 해당 자원을 이용하는 가상 머신들이 성능 저하를 겪게 되는 문제점이 있었다. 하나의 물리적 머신 안에서의 공유자원 배분만으로는 복수 개의 가상 머신에 충분한 공유자원을 제공할 수 없으며, 반면 다른 물리적 머신은 유휴상태에 있을 수 있다. 따라서 전체 클라우드 컴퓨팅 시스템의 효율적인 공유자원 관리가 되는 못하는 문제점이 발생한다. 또한 종래 기술에서 가상 머신에 대한 재배치 방법은 CPU로드와 메모리 로드만을 고려하여 이들의 균형을 유지하기 위해서만 사용되었고 공유 자원에 의한 가상 머신의 성능저하를 고려하지 않았다. 따라서 각 가상 머신의 성능 저하를 방지하기 위한 가상 머신 재배치 방법이 요구되었다.As described above, in using the existing cloud computing system, there is a problem that virtual machines using the resource suffer from performance degradation due to collision between shared resources. Allocation of shared resources within one physical machine may not provide enough shared resources for multiple virtual machines, while other physical machines may be idle. Therefore, there is a problem in that the efficient shared resource management of the entire cloud computing system. In addition, in the related art, the relocation method for the virtual machine is used only to balance the CPU load and the memory load, and does not consider the performance degradation of the virtual machine due to shared resources. Therefore, a virtual machine relocation method was required to prevent performance degradation of each virtual machine.
본 발명은 위와 같은 문제점을 해결하기 위한 것으로써, 본 발명이 이루고자 하는 기술적 과제는 동적 가상 머신 배치 장치 및 방법에 있어서, 전술한 문제점을 겪지 않으면서, 사용자에게 효율적인 공유자원 사용을 가능하도록 하는 것이다.The present invention is to solve the above problems, the technical problem to be achieved in the present invention is a dynamic virtual machine arrangement apparatus and method, to enable efficient use of shared resources to the user without experiencing the above problems. .
전술한 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 동적 가상 머신 배치 장치는 클러스터가 포함된 클라우드 컴퓨팅 시스템에서, 클러스터에 포함된 복수의 노드에 포함된 복수의 가상 머신의 캐시 미스율을 수집하는 캐시 미스율 수집부, 캐시 미스율에 따라 가상 머신을 재배치하는 가상 머신 재배치부를 포함한다.In order to solve the above technical problem, the dynamic virtual machine deployment apparatus according to an embodiment of the present invention, in the cloud computing system including the cluster, the cache miss rate of the plurality of virtual machines included in the plurality of nodes included in the cluster And a cache miss rate collector for collecting and a virtual machine relocator for relocating the virtual machines according to the cache miss rate.
또한, 본 발명의 일 실시예에 따른 동적 가상 머신 배치 장치는 가상 머신 재배치부가 Global phase 가상 머신 재배치부를 포함하고, Global phase 가상 머신 재배치부는, 캐시 미스율 정보를 입력받아 최고 및 최저 캐시 미스율을 갖는 노드를 각각 선택하는 노드 선택부, 선택된 최고 및 최저 캐시 미스율을 갖는 노드에서 각각 최고 및 최저 캐시 미스율을 갖는 가상 머신을 선택하는 가상 머신 선택부 및 선택된 가상 머신을 상호 교환하여 재배치하는 노드 가상 머신 재배치부를 포함하는 것을 특징으로 한다.In addition, the dynamic virtual machine deployment apparatus according to an embodiment of the present invention, the virtual machine relocation unit includes a global phase virtual machine relocation unit, the global phase virtual machine relocation unit, the node having the highest and lowest cache miss rate by receiving cache miss rate information A node selector for selecting respectively, a virtual machine selector for selecting a virtual machine having the highest and lowest cache miss rates, respectively, and a node virtual machine repositioner for redeploying the selected virtual machines by interchange It is characterized by including.
또한, 본 발명의 일 실시예에 따른 동적 가상 머신 배치 장치는 가상 머신 재배치부가 Local phase 가상 머신 재배치부를 포함하고, Local phase 가상 머신 재배치부는, 각 노드에 포함된 가상 머신을 캐시 미스율에 따라 정렬하는 가상 머신 정렬부, 정렬된 가상 머신들을 각 노드에 포함된 소켓의 개수와 동일한 개수의 가상 머신을 포함하는 그룹들로 그룹핑하는 가상 머신 그룹핑부 및 그룹별로 해당 그룹에 포함된 가상 머신을 복수 개의 소켓에 재배치하는 소켓 가상 머신 재배치부를 포함하는 것을 특징으로 한다.In addition, the dynamic virtual machine deployment apparatus according to an embodiment of the present invention, the virtual machine relocator includes a local phase virtual machine relocator, Local phase virtual machine relocator, to arrange the virtual machine included in each node according to the cache miss rate A virtual machine aligning unit, a virtual machine grouping unit that groups the sorted virtual machines into groups including the same number of virtual machines as the number of sockets included in each node, and a plurality of sockets of the virtual machines included in the group for each group. It characterized in that it comprises a socket virtual machine repositioning unit for relocating to.
또한, 본 발명의 일 실시예에 따른 동적 가상 머신 배치 장치는 소켓 가상 머신 재배치부가 가상 머신들 중 최고 캐시 미스율을 갖는 가상 머신과 최저 캐시 미스율을 갖는 가상 머신이 동일한 소켓에 포함되도록 재배치하는 것을 특징으로 한다.In addition, the dynamic virtual machine deployment apparatus according to an embodiment of the present invention is characterized in that the socket virtual machine relocation unit relocates the virtual machine having the highest cache miss rate and the virtual machine having the lowest cache miss rate among the virtual machines to be included in the same socket. It is done.
또한, 본 발명의 일 실시예에 따른 동적 가상 머신 배치 장치는 가상 머신 재배치부는 live-migration을 이용하여 가상 머신을 재배치하는 것을 특징으로 한다.In addition, the dynamic virtual machine deployment apparatus according to an embodiment of the present invention is characterized in that the virtual machine relocation unit relocates the virtual machine using live-migration.
전술한 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 동적 가상 머신 배치 방법은 클러스터가 포함된 클라우드 컴퓨팅 시스템에서, 클러스터에 포함된 복수의 노드에 포함된 복수의 가상 머신의 캐시 미스율을 수집하는 단계, 캐시 미스율에 따라 가상 머신을 재배치하는 단계를 포함한다.In order to solve the above technical problem, the dynamic virtual machine deployment method according to an embodiment of the present invention in the cloud computing system including a cluster, the cache miss rate of the plurality of virtual machines included in a plurality of nodes included in the cluster Collecting and relocating the virtual machine according to the cache miss rate.
또한, 본 발명의 일 실시예에 따른 동적 가상 머신 배치 방법은 가상 머신을 재배치하는 단계가 캐시 미스율 정보를 입력받아 최고 및 최저 캐시 미스율을 갖는 노드를 각각 선택하는 단계, 선택된 최고 및 최저 캐시 미스율을 갖는 노드에서 각각 최고 및 최저 캐시 미스율을 갖는 가상 머신을 선택하는 단계 및 선택된 가상 머신을 상호 교환하여 재배치하는 단계를 포함하는 것을 특징으로 한다.In addition, in the dynamic virtual machine placement method according to an embodiment of the present invention, the step of relocating the virtual machine to receive the cache miss rate information to select the node having the highest and lowest cache miss rate, respectively, the selected highest and lowest cache miss rate Selecting at each node having the highest and lowest cache miss rates and redeploying the selected virtual machines interchangeably.
또한, 본 발명의 일 실시예에 따른 동적 가상 머신 배치 방법은 가상 머신 재배치하는 단계가 각 노드에 포함된 가상 머신을 캐시 미스율에 따라 정렬하는 단계, 정렬된 가상 머신들을 각 노드에 포함된 소켓의 개수와 동일한 개수의 가상 머신을 포함하는 그룹들로 그룹핑하는 단계 및 그룹별로 해당 그룹에 포함된 가상 머신을 복수 개의 소켓에 재배치하는 단계를 포함하는 것을 특징으로 한다.In addition, the dynamic virtual machine deployment method according to an embodiment of the present invention, the step of relocating the virtual machine to arrange the virtual machine included in each node according to the cache miss rate, the sorted virtual machines of the socket included in each node And grouping the groups into groups including the same number of virtual machines and relocating the virtual machines included in the group into a plurality of sockets.
또한, 본 발명의 일 실시예에 따른 동적 가상 머신 배치 방법은 소켓에 재배치하는 단계가 가상 머신들 중 최고 캐시 미스율을 갖는 가상 머신과 최저 캐시 미스율을 갖는 가상 머신이 동일한 소켓에 포함되도록 재배치하는 것을 특징으로 한다.In addition, the dynamic virtual machine placement method according to an embodiment of the present invention is the step of relocating to the socket is to relocate the virtual machine with the highest cache miss rate and the virtual machine with the lowest cache miss rate among the virtual machines to be included in the same socket It features.
또한, 본 발명의 일 실시예에 따른 동적 가상 머신 배치 방법은 가상 머신을 재배치하는 단계가 live-migration을 이용하여 가상 머신을 재배치하는 것을 특징으로 한다.In addition, the dynamic virtual machine deployment method according to an embodiment of the present invention is characterized in that the step of relocating the virtual machine to relocate the virtual machine using live-migration.
본 발명의 일 실시예에 따르면, 사용자에게 공평한 성능의 가상 머신을 제공하는 것이 가능하다.According to one embodiment of the invention, it is possible to provide a user with a virtual machine of fair performance.
본 발명의 일 실시예에 따르면, 전체 클러스터 시스템의 자원 효율성을 높이는 것이 가능하다.According to one embodiment of the present invention, it is possible to increase the resource efficiency of the entire cluster system.
본 발명의 일 실시예에 따르면, 클라우드 컴퓨팅 시스템에서 공유 자원 충돌에 의한 가상 머신의 성능 저하를 개선하는 것이 가능하다.According to an embodiment of the present invention, it is possible to improve performance degradation of a virtual machine due to shared resource collision in a cloud computing system.
도 1은 종래 기술의 일 실시예에 따른 가상 머신 배치 결과를 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 OpenNebula의 구조를 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 가상 머신 모니터링 정보의 전달 과정을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 Live-migration 과정을 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 듀얼 소켓 멀티코어 CPU를 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른 물리적 머신 간 가상 머신 배치 및 재배치를 나타낸 도면이다.
도 7은 본 발명의 일 실시예에 따른 동적 가상 머신 재배치 장치를 나타낸다.
도 8은 본 발명의 일 실시예에 따른 Local phase 가상 머신 재배치부를 나타낸다.
도 9은 본 발명의 일 실시예에 따른 Local phase 가상 머신 재배치를 나타낸 도면이다.
도 10는 본 발명의 일 실시예에 따른 Local phase 가상 머신 재배치 방법의 순서도를 나타낸 도면이다.
도 11은 본 발명의 일 실시예에 따른 Global phase 가상 머신 재배치부를 나타낸다.
도 12는 본 발명의 일 실시예에 따른 Global phase 가상 머신 재배치를 나타낸 도면이다.
도 13는 본 발명의 일 실시예에 따른 Global phase 가상 머신 재배치 방법의 순서도를 나타낸 도면이다. 1 is a view showing a virtual machine arrangement result according to an embodiment of the prior art.
2 is a view showing the structure of OpenNebula according to an embodiment of the present invention.
3 is a diagram illustrating a process of transmitting virtual machine monitoring information according to an embodiment of the present invention.
4 is a diagram illustrating a live-migration process according to an embodiment of the present invention.
5 illustrates a dual socket multicore CPU according to an embodiment of the present invention.
6 is a diagram illustrating virtual machine placement and relocation between physical machines according to an embodiment of the present invention.
7 illustrates a dynamic virtual machine relocation apparatus according to an embodiment of the present invention.
8 illustrates a local phase virtual machine relocation unit according to an embodiment of the present invention.
9 illustrates a local phase virtual machine relocation according to an embodiment of the present invention.
10 is a flowchart illustrating a local phase virtual machine relocation method according to an embodiment of the present invention.
11 illustrates a global phase virtual machine relocator according to an embodiment of the present invention.
12 illustrates a global phase virtual machine relocation according to an embodiment of the present invention.
13 is a flowchart illustrating a global phase virtual machine relocation method according to an embodiment of the present invention.
이하 첨부 도면들 및 첨부 도면들에 기재된 내용들을 참조하여 본 발명의 실시 예를 상세하게 설명하지만, 본 발명이 실시 예들에 의해 제한되거나 한정되는 것은 아니다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings and accompanying drawings, but the present invention is not limited to or limited by the embodiments.
본 명세서에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어를 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 관례 또는 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 그 의미를 기재할 것이다. 따라서 본 명세서에서 사용되는 용어는, 단순한 용어의 명칭이 아닌 그 용어가 가지는 실질적인 의미와 본 명세서의 전반에 걸친 내용을 토대로 해석되어야 함을 밝혀두고자 한다.As used herein, terms used in the present invention are selected from general terms that are widely used in the present invention while taking into account the functions of the present invention, but these may vary depending on the intention or custom of a person skilled in the art or the emergence of new technologies. In addition, in certain cases, there may be a term arbitrarily selected by the applicant, in which case the meaning thereof will be described in the description of the corresponding invention. Therefore, it is intended that the terminology used herein should be interpreted based on the meaning of the term rather than on the name of the term, and on the entire contents of the specification.
본 발명에서 클라우드 컴퓨팅은 서로 다른 물리적인 위치에 존재하는 클러스터들의 자원을 가상화 기술로 통합해 제공하는 기술이다. 즉 하드웨어(hardware), 소프트웨어(software) 등 IT자원을 필요한 때 필요한 만큼 빌려 쓰고 이에 대한 사용요금을 지급하는 방식의 서비스를 말한다. 사용자는 각 클러스터 자원의 성능과 관계없이 가상머신을 이용하여 컴퓨팅하고자 하는 어플리케이션에 적합한 성능을 제공받을 수 있다.In the present invention, cloud computing is a technology for integrating and providing resources of clusters existing in different physical locations with virtualization technology. In other words, it refers to a service in which IT resources such as hardware and software are borrowed when necessary and paid for using them. The user may be provided with a performance suitable for an application to be computed using a virtual machine regardless of the performance of each cluster resource.
이하 클라우드 컴퓨팅 시스템과 클러스터 및 가상머신은 그 용어에 한정되지 아니하고 분산자원을 사용하여 컴퓨팅을 제공하는 시스템과 이에 포함되는 분산 컴퓨팅 자원 및 분산 컴퓨팅 자원을 하나의 컴퓨팅 자원으로 사용자에게 제공할 수 있는 가상 컴퓨팅 자원을 의미한다.Hereinafter, the cloud computing system, the cluster, and the virtual machine are not limited to the term, but a system that provides computing using distributed resources and a distributed computing resource and distributed computing resources included therein as a single computing resource. Means computing resources.
클라우드 컴퓨팅 시스템에서는 가상 머신 별로 빈번하게 사용하는 자원과 낮은 빈도로 사용하는 자원들간의 차이가 존재한다. 따라서 가상 머신들이 하나의 물리적 머신을 사용하더라도 가상 머신의 배치 방법에 따라 성능 저하 발생 여부가 달라지게 된다. 예를 들면, 캐시 메모리 사용량이 많은 것끼리 배치되고, 메모리 사용량이 적은 것끼리 배치되어 실행되는 경우보다 캐시 메모리 사용량이 많은 것과 적은 것들이 혼합되어 배치될 경우에 성능 저하를 피할 수 있다. 성능 간섭 효과가 상대적으로 낮아지기 때문에 물리적 머신을 더욱 효율적으로 사용할 수 있는 것이다.In a cloud computing system, there is a difference between a resource used frequently and a low frequency used for each virtual machine. Therefore, even if virtual machines use a single physical machine, performance degradation may vary depending on how the virtual machines are placed. For example, performance degradation can be avoided when a large amount of cache memory is used and a large amount of cache memory is used and a small amount of the mixed amount of memory is used. The relatively low effect of performance interference allows for more efficient use of physical machines.
본 발명에서 제안하는 캐시 메모리 공유로 인한 성능 저하를 최소화시키기 위한 방법은, 주어진 프로그램들에 대해서 전체적인 성능 간섭이 최소화되는 프로그램 집합들을 만들어, 각각을 CPU에 배치하는 것이다.A method for minimizing performance degradation due to cache memory sharing proposed by the present invention is to create program sets in which overall performance interference is minimized for given programs, and place each of them in a CPU.
성능 간섭이 최소화하기 위해서, 각 프로그램에 필요한 캐시 메모리 용량을 고려하여, 하나의 CPU, 즉 캐시 메모리를 공유하는 코어들에서 실행되는 프로그램들의 캐시 메모리 요구량의 총합이 CPU의 캐시 메모리 용량과 유사하게 하면 된다.In order to minimize performance interference, taking into account the cache memory capacity required for each program, if the sum of the cache memory requirements of programs running on one CPU, that is, cores sharing cache memory, is similar to the cache memory capacity of the CPU, do.
하지만, 프로그램의 캐시 메모리 요구량을 측정하기는 쉽지 않다. 따라서 캐시 미스율(LLC miss)을 이용하여 캐시 메모리에 대한 요구량을 측정하는 방법을 이용한다. 캐시 미스율이 높을수록 캐시 메모리 요구량이 높은 것으로 측정한다. 캐시 미스율은 별도의 추가 장치 없이도 파악할 수 있는 장점이 있다. However, measuring the cache memory requirements of a program is not easy. Therefore, the cache miss rate (LLC miss) is used to measure the required amount of cache memory. The higher the cache miss rate, the higher the cache memory requirement. The cache miss rate has the advantage that it can be identified without any additional device.
본 발명에서는 일 실시예로 물리적 머신 내에서 공유되는 자원들 중 캐시 메모리에 대해 성능 간섭 효과를 줄이는 방법을 설명한다.The present invention describes a method of reducing the performance interference effect on the cache memory among the resources shared in the physical machine in one embodiment.
본 발명의 클라우드 컴퓨팅 시스템은 본 연구에서는 IaaS(Infrastructure as a Service) 기반의 클라우드 컴퓨팅 플랫폼을 가정하고 있다. 여기서 Infrastructure는 고객이 사용할 수 있는 가상 머신(Virtual Machine)을 제공 받는 형태이다. 이와 같은 기능을 제공해주는 소프트웨어로 공개 소프트웨어인 OpenNubula를 실시예로 들 수 있다. The cloud computing system of the present invention assumes an IaaS (Infrastructure as a Service) based cloud computing platform. The infrastructure is provided with a virtual machine that can be used by customers. One example of the software providing such a function is OpenNubula, which is open software.
도 2는 본 발명의 일 실시예에 따른 OpenNebula의 구조를 나타낸 도면이다. 2 is a view showing the structure of OpenNebula according to an embodiment of the present invention.
프라이빗(private) 클라우드(10)의 가장 최하위 계층은 여러 대의 물리적 머신들(11)이 존재하고, 물리적 머신들(11)은 모두 가상화 소프트웨어를 탑재하게 된다. 가상화 소프트웨어로는 Xen, KVM 또는 VMware를 제공한다.The lowest layer of the
또한, 이러한 물리적인 머신들(11)의 자원을 관리하고 담당하는 Virtual Infrastructure Manager(12)가 존재한다. 이는 각 물리적 머신(11)의 기본적인 다원 정보를 관리하고, 사용자의 요청에 따라 새로운 가상 머신을 할당하고, 배치할 수 있다.In addition, there is a
프라이빗 클라우드 시스템 내부 사용자들(13)은 내부 인터페이스(14)를 통해 물리적 머신들(11)을 이용할 수 있으며 외부 사용자들(15)의 경우에는 공공 인터페이스(16)을 통해 접근하는 것이 가능하다. 또한 프라이빗 클라우드(10)는 외부 클라우드(17)와 혼용하여 복합 클라우드 시스템(18)을 제공하는 것이 가능하다.The private cloud system
도 3은 본 발명의 일 실시예에 따른 가상 머신 모니터링 정보의 전달 과정을 나타낸 도면이다.3 is a diagram illustrating a process of transmitting virtual machine monitoring information according to an embodiment of the present invention.
본 발명의 가상 머신 모니터링은 단순히 사용된 CPU, 메모리 및 네트워크의 사용량만을 보여주는 것이 아니라, 현재 가상머신이 어느 CPU-affinity를 사용하여 동작하는지, LLC(Last Level Cache)의 miss가 발생한 횟수 및 실행된 인스트럭션의 수를 주기적으로 모니터할 수 있다. 여기서 CPU-affinity란 가상 머신이 어느 CPU 소켓에 더 적합한지를 나타내는 것으로 가상머신과 CPU 소켓 간의 동작 융합 정도를 나타내는 값이다. The virtual machine monitoring of the present invention not only shows the usage of the CPU, memory and network used, but also which CPU-affinity the virtual machine is currently operating on, the number of misses of the last level cache (LLC) and the execution of the virtual machine. You can monitor the number of instructions periodically. In this case, CPU-affinity indicates which CPU socket a virtual machine is better suited for, and indicates the degree of convergence between the virtual machine and the CPU socket.
각 노드(21)에서는 각 가상 머신의 LLC miss의 발생횟수와 CPU-affinity 정보(23)를 주기적으로 관찰한다. 주기적인 관찰은 각 노드(21)에서 동작하는 Xenonmon.py(20) 모니터링 툴에 의해 것이 가능하다. 그리고 Front-End(24)로부터 요청이 들어오면 가장 최근의 관찰 데이터들을 전달해준다. 마지막으로 Front-End(24)에서는 해당 정보를 DataBase(25)에 기록한다. 이 정보를 바탕으로 가상 머신 관리자가 가상 머신을 재배치하는 것이 가능하다.Each
도 4는 본 발명의 일 실시예에 따른 Live-migration 과정을 나타낸 도면이다. 4 is a diagram illustrating a live-migration process according to an embodiment of the present invention.
Live-migration이란 현재 Power-On 상태의 가상 머신을 Off 상태로 전환할 필요없이 다른 물리적 머신으로 재배치(migration)시키는 것을 의미한다. 이를 통해 가상 머신이 수행하고 있는 컴퓨팅 작업에 대한 중단없이 다른 물리적 머신으로 재배치할 수 있어 작업의 연속성이 보장되는 장점이 있다. Live-migration means to migrate a current power-on virtual machine to another physical machine without having to switch it off. This allows you to redeploy to other physical machines without interrupting the computing work being performed by the virtual machine, which ensures continuity of work.
Front-End(31)에서 동작하는 스케줄러는 주기적으로 가상 머신의 모니터링 정보를 관찰할 수 있다. 가상 머신이 현재 시스템의 어느 노드에서 동작하는지를 알 수 있고, 현재의 LLC miss와 cpu-affinity 정보(32)를 알 수 있다. 따라서 이 정보를 기반으로 적응적으로 스케줄링 정책을 수행할 수 있다. 그리고 가상 머신 이동이 가능하도록 OpenNebula에서 제공하는 XML-RPC를 이용하여 상황에 따라 가상 머신을 이동시킬 수 있다.The scheduler operating in the front-
스케줄러는 클러스터 노드들의 정보(35)를 주기적으로 모니터링 하다가 특정 노드에 LLC miss가 다른 노드에 비해 많은 경우, 해당 노드에 가장 많이 부하를 주는 가상 머신을 선택하여 상대적으로 부하가 적다고 판단되는 노드로 가상 머신을 Live-migration 시키는 것이 가능하다.The scheduler periodically monitors the information (35) of the cluster nodes, and when there are more LLC misses in a particular node, the scheduler selects a virtual machine that puts the most load on the node, and determines that the load is relatively low. It is possible to live-migrate a virtual machine.
예를 들어, 도 4와 같이 가상머신 재배치 대상노드(33)가 LLC miss의 수가 다른 노드들에 비해서 높은 경우 가상머신 재배치 대상노드(33)에서 동작중인 가상 머신들 중에서 LLC miss가 가장 높은 가상 머신을 상대적으로 LLC miss가 적은 가상머신 재배치 상대노드(34)로 옮길 수 있다. 도면에서 가상머신 재배치 대상노드(33)는 모니터링 결과 LLC miss가 30000으로 다른 노드에 비해서 많으므로 해당 노드에서 가장 많은 부하를 생성하는 VM1을 선택한다. 이어서 함께 모니터링하고 있던 노드 중 상대적으로 부하가 100으로 적은 가상머신 재배치 상대노드(34)으로 위에서 선택된 가상 머신 VM1을 Live-migration 시킨다. For example, when the virtual machine
이러한 스케쥴러의 동작을 통해 클라우드 시스템에 포함된 클러스터의 노드 간 부하를 조절하는 것이 가능하며 이를 통해 클러스터 내 가상 머신의 성능저하 없이 효율적으로 사용할 수 있다. Through the operation of the scheduler, it is possible to adjust the load between the nodes of the cluster included in the cloud system, thereby enabling efficient use without degrading the performance of the virtual machines in the cluster.
도 5는 본 발명의 일 실시예에 따른 듀얼 소켓 멀티코어 CPU를 나타낸 도면이다. 5 illustrates a dual socket multicore CPU according to an embodiment of the present invention.
듀얼 소켓 멀티코어 CPU는 두 개의 소켓(41,42)을 포함하고 있으며 각 소켓은 복수 개의 프로세서(43)와 이들 프로세서들이 공유하는 LLC(Last Level Cache, 44)를 포함할 수 있다. 또한 CPU는 소켓 외부에 두 개의 소켓이 공유하는 외부 메모리(45,46)를 포함할 수 있다. The dual socket multicore CPU includes two
하나의 소켓(41)에 포함되는 복수의 프로세서(43)들은 캐시 메모리인 LLC(44)를 공유한다. 따라서 특정 소켓 내의 프로세서(43)에서 동작하는 프로그램들이 캐시 메모리 사용이 높은 프로그램들로만 구성된다면 높은 공유 자원 요구량으로 인해 해당 소켓의 성능 저하가 발생한다. 이러한 경우 특정 소켓(41)에서 다른 소켓(42)으로 각 프로그램이 실행되는 일부 가상 머신을 재배치할 수 있다. 본 발명에서는 위의 소켓 간의 부하를 조절하는 방법을 Local phase 가상 머신 재배치로 정의하며, 이를 통해 각 소켓(41,42)에 포함된 가상 머신들에서 발생하는 LLC miss를 균등하게 하고 이를 통해 각 가상 머신의 성능저하를 방지하여 자원 효율성을 높이는 것이 가능하다. Local phase 재배치에 대해서는 아래의 도 9에서 상세히 설명한다.The plurality of
또한 이와 유사하게 각 소켓(41,42)은 외부 메모리(45,46)를 공유하므로 특정 물리적 머신에 대한 메모리 요구량이 증가하면 가상 머신의 성능 저하가 발생할 수 있다. 이를 위해 클러스터 내의 각 컴퓨팅 노드들의 캐시 미스율을 균등하게 하여 각 가상 머신의 성능 저하를 방지하는 것이 가능하다. 물리적 머신 간의 가상 머신 재배치는 Global phase 가상 머신 재배치로 정의하며 이에 대해서는 아래의 도 12에서 상세히 설명한다.Similarly, since the
도 6은 본 발명의 일 실시예에 따른 물리적 머신 간 가상 머신 배치 및 재배치를 나타낸 도면이다. 6 is a diagram illustrating virtual machine placement and relocation between physical machines according to an embodiment of the present invention.
도 6(a)에서 각 물리적 머신은 하드웨어(51), 가상 머신 모니터(52) 및 가상 머신들(53,54,55)을 포함한다. 각 가상 머신들(53,54,55)은 별개의 OS(operating system)에서 동작하는 것이 가능하며, 그 예로 window, linux, solaris를 들 수 있다.In FIG. 6 (a) each physical machine includes
하드웨어1(51)는 복수 개의 가상머신(53,54,55)에 의해 공유되며 가상 머신 모니터1(52)는 각 가상 머신의 자원요구량, LLC miss 및 cpu-affinity 등을 모니터링할 수 있다. 이 때 하드웨어1(51)는 물리적 머신 단위, 또는 CPU 내의 소켓 단위의 자원을 나타낼 수 있다. The
도 6(b)는 하드웨어 사이에서 가상 머신이 live-migration하는 동작을 나타낸다. 하드웨어1(51)의 가상 머신 모니터1(52)에 의한 관찰 결과, 해당 하드웨어1(51)에 대한 자원 요구량이 커져 가상 머신의 성능 저하가 발생하면 상대적으로 낮은 자원 요구량을 갖는 하드웨어2(55)로 가상 머신에 대한 live-migration을 수행한다. 6 (b) shows an operation of live-migration of a virtual machine between hardware. As a result of observation by the virtual machine monitor 1 (52) of the hardware 1 (51), when the resource demand for the hardware 1 (51) increases and the performance of the virtual machine decreases, the hardware 2 (55) having a relatively low resource requirement is required. Perform live-migration on the virtual machine.
도면에서는 가상 머신 VM3(55)에 대한 live-migration을 나타내었으며 이를 통해 VM3(55)는 현재 Power-On 상태에서 Off 상태로의 전환 없이 하드웨어2(56)로 재배치(migration)하는 것이 가능하다. 재배치된 VM3(55)는 하드웨어2의 자원을 이용하여 컴퓨팅을 수행할 수 있으며 재배치 후의 VM3(55)에 대한 모니터링은 가상 머신 모니터2(57)에 의해 모니터링된다. 위에서 설명한 물리적 머신 간 재배치 동작은 Global phase 가상 머신 재배치에 의해 이루어진다. In the figure, the live-migration of the
위와 같은 가상 머신 재배치를 통해 각 하드웨어에 대한 자원 요구량 편차를 줄이는 것이 가능하며 결과적으로 가상 머신의 성능 저하를 방지하고 효율적인 사용이 가능한 효과가 있다.By relocating the virtual machine as described above, it is possible to reduce the variation of resource requirements for each hardware. As a result, it is possible to prevent the performance degradation of the virtual machine and to use it efficiently.
도 7은 본 발명의 일 실시예에 따른 동적 가상 머신 재배치 장치를 나타낸다.7 illustrates a dynamic virtual machine relocation apparatus according to an embodiment of the present invention.
캐시 미스율 수집부(71)는 클러스터에 포함된 각 노드에 포함된 가상 머신의 캐시 미스율을 수집한다. 이를 통해 어느 노드에 과부하가 걸려 가상 머신의 성능 저하가 발생하는지에 대한 정보를 얻을 수 있다. The cache
가상 머신 재배치부(73)는 위에서 수집된 캐시 미스율을 근거로 가상 머신을 재배치한다. 가상 머신 재배치부(73)는 Global phase 가상 머신 재배치부와 Local phase 가상 머신 재배치부를 포함한다. 여기서, Global phase 가상 머신 재배치부는 노드 간의 가상 머신 재배치에 사용할 수 있으며 Local phase 가상 머신 재배치부는 소켓 간의 가상 머신 재배치에 사용할 수 있다. 각 가상 머신 재배치 방법에 대해서는 아래서 자세히 설명한다.The
도 8은 본 발명의 일 실시예에 따른 Local phase 가상 머신 재배치부를 나타낸다. 8 illustrates a local phase virtual machine relocation unit according to an embodiment of the present invention.
본 발명에 의한 Local phase 가상 머신 재배치는 다음의 순서로 동작한다. Local phase virtual machine relocation according to the present invention operates in the following order.
우선 가상 머신 정렬부(75)는 각 가상 머신의 캐시 미스율(miss rate)을 기준으로 가상 머신들을 정렬시킨다. 이를 통해 가상 머신들을 캐시 메모리 요구량이 많은 순서대로 정렬시킬 수 있다. 가상 머신에 대한 정렬이 완료되면 가상 머신 그룹핑부(76)는 시스템 내에 포함되어 있는 소켓의 개수와 동일한 수의 가상 머신을 포함하는 그룹으로 가상 머신을 그룹핑 한다. First, the
그룹핑이 완료되면 소켓 가상 머신 재배치부(77)는 캐시 미스율이 가장 높은 그룹을 선택하고 해당 그룹 내에 포함된 가상 머신들을 서로 다른 소켓에 재배치한다. 다음으로, 가장 캐시 미스율이 낮은 그룹을 선택하고 위와 마찬가지로 해당 그룹에 포함된 가상 머신들을 서로 다른 소켓에 배치한다. 이 때 캐시 미스율이 가장 높은 가상 머신이 할당된 소켓에는 최저 캐시 미스율을 갖는 가상 머신을 할당한다. 이러한 과정을 반복실시함으로써 각 소켓의 캐시 미스율을 최대한 균등하게 유지할 수 있다. 이러한 재배치 작업은 일정한 주기마다 또는 사용자의 명령에 의해서 실시될 수 있다.When the grouping is completed, the socket virtual
이를 통해 각 그룹에 포함된 가상 머신들은 서로 다른 소켓에 재배치된다. 각 그룹에 포함되어 있는 가상 머신들은 유사한 캐시 메모리 요구량을 갖기 때문에 복수의 소켓이 균등한 메모리 요구량을 갖도록 분리하여 재배치할 수 있다.This allows virtual machines in each group to be relocated to different sockets. The virtual machines in each group have similar cache memory requirements, so that multiple sockets can be split and relocated so that they have an even memory requirement.
도 9은 본 발명의 일 실시예에 따른 Local phase 가상 머신 재배치를 나타낸 도면이다. 9 illustrates a local phase virtual machine relocation according to an embodiment of the present invention.
2개의 소켓(81,82)을 포함하는 시스템(80)에서 8개의 가상 머신들(83)이 동작하고 있는 상황을 예로 들어 설명하면, 가상 머신 정렬부(75)은 캐시 미스율을 기준으로 가상 머신들(83)을 내림차순으로 정렬한 후 인덱싱을 한다. 그 결과 각 가상머신들(83)은 가장 높은 캐시 미스율을 갖는 VM1부터 가장 낮은 캐시 미스율을 갖는 VM8로 인덱싱된다. Referring to the situation in which eight
가상 머신에 대한 인덱싱이 완료되면 가상 머신들(83)을 소켓(81,82)의 개수인 2개씩 그룹핑을 한다. 이 때 그룹 인덱싱은 가장 높은 캐시 미스율을 갖는 그룹과 가장 낮은 캐시 미스율을 갖는 그룹을 한 개씩 선택하여 번갈아 가면서 인덱싱한다. 도 9에서는 VM1,VM2가 그룹1로, VM7,VM8이 그룹2로, VM3,VM4가 그룹3으로, VM5,VM6이 그룹4로 인덱싱된다. When the indexing of the virtual machines is completed, the
그룹 인덱싱이 완료되면 그룹 인덱싱에 따라 그룹1부터 그룹2, 그룹3, 그룹4로 차례대로 가상 머신에 대한 재배치 작업을 실시한다. 그 결과 그룹 1의 VM1은 소켓0(81)으로, 그룹1의 VM2는 소켓1(82)로, 그룹 2의 VM8은 소켓0(81)으로, 그룹2의 VM7는 소켓1(82)로, 그룹 3의 VM3은 소켓0(81)으로, 그룹3의 VM4는 소켓1(82)로, 그룹 4의 VM6은 소켓0(81)으로, 그룹1의 VM5는 소켓1(82)로 재배치된다. 가장 높은 캐시 미스율을 갖는 VM1과 가장 낮은 캐시 미스율을 갖는 VM8을 동일한 소켓0(81)에 배치함으로써 가상 머신의 캐시 미스율 간 상보에 의해 결과적으로는 각 소켓 간의 공유 자원에 대한 요구량이 균등하도록 재배치하는 것이다. 이러한 과정을 반복함으로서 각 소켓에서 동작하는 가상 머신이 가능한 균등한 캐시 미스율을 갖도록 할 수 있도록 한다.After group indexing is completed, the virtual machines are relocated from
위의 실시예에서는 소켓이 2개이고 가상 머신이 8개인 경우를 예를 들어 설명하였으나 본 발명은 이에 한정되지 아니한다.In the above embodiment, a case where two sockets and eight virtual machines are described as an example, but the present invention is not limited thereto.
도 10는 본 발명의 일 실시예에 따른 Local phase 가상 머신 재배치 방법의 순서도를 나타낸 도면이다. 10 is a flowchart illustrating a local phase virtual machine relocation method according to an embodiment of the present invention.
Local phase 가상 머신 재배치 방법은 하나의 시스템 내에 포함된 복수의 소켓에서 동작하는 가상 머신들을 정렬시킨다(S12). 이 때 정렬하는 방법은 각 가상 머신의 캐시 미스율을 기준으로 캐시 미스율이 높은 가상 머신부터 내림차순으로 정렬시키며 정렬이 완료되는 동일한 순서대로 인덱싱한다. The local phase virtual machine relocation method aligns virtual machines operating on a plurality of sockets included in one system (S12). In this case, the sorting method sorts in descending order from the virtual machines having the highest cache miss rate based on the cache miss rate of each virtual machine, and indexes them in the same order as the sorting is completed.
가상 머신 인덱싱이 완료되는 각 가상 머신들에 대한 그룹핑을 실시한다(S14). 그룹핑 방법은 위에서 인덱싱한 순서대로 그룹핑을 하며 한 그룹에 포함되는 가상 머신의 개수는 단일 시스템 내에 포함되어 있는 소켓의 개수와 동일하다. 각 그룹에 대한 인덱싱은 최고 캐시 미스율을 갖는 그룹과 최저 캐시 미스율을 갖는 그룹을 번갈아 가면서 인덱싱한다. 이에 대한 자세한 설명은 위의 도 9에서 설명하였다. Grouping is performed for each virtual machine whose virtual machine indexing is completed (S14). Grouping methods are grouped in the order indexed above, and the number of virtual machines in one group is the same as the number of sockets in a single system. Indexing for each group alternately indexes the group with the highest cache miss rate and the group with the lowest cache miss rate. Detailed description thereof has been described with reference to FIG. 9.
그룹에 대한 인덱싱이 완료되면 각 그룹에 속한 가상 머신에 대한 재배치를 수행한다(S16). 재배치 순서는 그룹 인덱싱에 따라 진행되며 동일 그룹에 속한 가상 머신들을 각각 다른 소켓에 재배치한다. 이 때 최고 캐시 미스율을 갖는 가상 머신과 최저 캐시 미스율을 갖는 가상 머신이 동일한 소켓에 포함되도록 재배치한다. 이러한 과정은 모든 그룹에 포함된 가상 머신이 모두 재배치될 때까지 반복하여 수행한다. When indexing for the group is completed, the relocation of the virtual machines belonging to each group is performed (S16). The relocation sequence is based on group indexing and relocates virtual machines belonging to the same group to different sockets. At this time, the virtual machine with the highest cache miss rate and the virtual machine with the lowest cache miss rate are relocated to be included in the same socket. This process is repeated until all the virtual machines in all groups are relocated.
위와 같은 과정을 통해 단일 시스템에 포함된 각 소켓 내의 가상 머신들의 캐시 미스율이 균등하도록 재배치하는 것이 가능하며 결과적으로 균등한 메모리 요구량을 갖게 되어 가상 머신의 성능 저하를 방지하고 효율적인 공유자원 사용이 가능하다. Through the above process, it is possible to relocate the cache miss rate of the virtual machines in each socket included in a single system to be equal. As a result, the memory requirements are equal, thus preventing the performance of the virtual machines and effectively using the shared resources. .
도 11은 본 발명의 일 실시예에 따른 Global phase 가상 머신 재배치부를 나타낸다. 11 illustrates a global phase virtual machine relocator according to an embodiment of the present invention.
노드 선택부(101)는 캐시 미스율을 입력받아 복수의 노드들 중에서 최고 캐시 미스율을 갖는 노드 및 최저 캐시 미스율을 갖는 노드를 선택한다. 각 노드의 캐시 미스율은 각 노드에 포함된 가상 머신의 캐시 미스율의 합으로 계산할 수 있다.The
노드 선택이 완료되면 가상 머신 선택부(102)는 위에서 선택된 최고 캐시 미스율을 갖는 노드에 포함된 가상 머신 중에서 최고 캐시 미스율을 갖는 가상 머신을 선택한다. 또한 위에서 선택된 최저 캐시 미스율을 갖는 노드에 포함된 가상 머신 중에서 최저 캐시 미스율을 갖는 가상 머신을 선택한다.When the node selection is completed, the virtual
가상 머신에 대한 선택이 완료되면 노드 가상 머신 재배치부(103)는 위에서 선택된 최고 캐시 미스율을 갖는 가상 머신을 최저 캐시 미스율을 갖는 노드에 재배치하고, 최저 캐시 미스율을 갖는 가상 머신을 최고 캐시 미스율을 갖는 노드에 재배치한다. 이러한 가상 머신 재배치부를 통해 각 노드들은 균등한 캐시 미스율을 갖는 가상 머신들을 배치받을 수 있고 결과적으로, 각 노드에 요구되는 자원 요구량을 균등하게 하여 가상 머신의 성능 저하를 막고 자원에 대한 효율적인 활용을 할 수 있다. When the selection for the virtual machine is completed, the node virtual
도 12는 본 발명의 일 실시예에 따른 Global phase 가상 머신 재배치를 나타낸 도면이다. 12 illustrates a global phase virtual machine relocation according to an embodiment of the present invention.
각각 하나의 노드에서 9개의 가상 머신이 동작하고 있는 2개의 노드를 예로 들어 설명한다. 도 12에서 빗금친 사각형은 캐시 미스율이 높은 가상 머신을 나타내고 빗금 없는 사각형은 캐시 미스율이 낮은 가상 머신을 나타낸다. Two nodes in which nine virtual machines operate on one node will be described as an example. In FIG. 12, the hatched rectangles represent virtual machines with high cache miss rates and the hatched rectangles represent virtual machines with low cache miss rates.
가상 머신이 동작하는 시스템에서 도 12(a)와 같이 특정 노드(91)로 시스템의 부하가 치우치게 될 수 있다. Global phase에서는 이러한 경우, 캐시 미스율이 가장 높은 노드(111)에서 캐시 미스율이 가장 높은 가상 머신을 선택한다. 그리고 역으로 캐시 미스율이 가장 낮은 노드(112)에서 캐시 미스율이 가장 낮은 가상 머신을 선택한다. 이렇게 선택된 두 개의 머신에 대해 Live-migration 기술을 이용하여 도 12(b)와 같이 노드의 위치를 바꿔준다. 이러한 과정을 가장 높은 캐시 미스율을 갖는 노드와 가장 낮은 노드의 차이가 기설정된 threshold를 벗어나지 않을 때까지 반복하여 실행한다. 도 12(c)는 이러한 과정이 진행되는 것을 나타낸 도면이고, 도 12(d)는 이러한 과정이 반복되어 수행된 결과를 나타내는 도면이다. 결과적으로 도 12(a)에서 특정 노드에 집중되었던 캐시 미스율이 높은 가상 머신들은 위의 global phase 가상 머신 재배치를 통해 도 12(d)와 같이 재비치됨으로써 각 노드에 걸리는 부하를 균등하게 유지할 수 있다. 이를 통해 부하의 집중으로 인한 가상 머신의 성능 저하를 방지하고 효율적인 자원 활용을 할 수 있다. 위의 실시예에서는 노드가 2개이고 각 노드에 포함된 가상 머신이 9개인 경우를 예를 들어 설명하였으나 본 발명은 이에 한정되지 아니한다.In a system in which a virtual machine operates, the load of the system may be biased to a specific node 91 as shown in FIG. 12 (a). In the global phase, in this case, the
도 13는 본 발명의 일 실시예에 따른 Global phase 가상 머신 재배치 방법의 순서도를 나타낸 도면이다. 13 is a flowchart illustrating a global phase virtual machine relocation method according to an embodiment of the present invention.
Global phase 가상 머신 재배치 방법은 재배치할 가상 머신을 포함하고 있는 노드를 선택한다. 이를 위해 최고 캐시 미스율의 노드 및 최저 캐시 미스율의 노드를 선택한다(S21). 각 노드의 캐시 미스율은 각 노드에 포함된 가상 머신들의 캐시 미스율의 합으로 계산할 수 있다.The global phase virtual machine relocation method selects the node containing the virtual machine to be relocated. To this end, the node with the highest cache miss rate and the node with the lowest cache miss rate are selected (S21). The cache miss rate of each node may be calculated as the sum of the cache miss rates of the virtual machines included in each node.
이 과정을 통해 시스템에 포함된 여러 노드들 중에서 가장 높은 부하의 노드와 가장 낮은 부하의 노드를 선별할 수 있다. 두 노드는 Global phase 가상 머신 재배치의 대상이 된다. This process selects the nodes with the highest load and the node with the lowest load among the nodes in the system. Both nodes are subject to global phase virtual machine relocation.
다음 단계에서는 재배치할 가상 머신을 선택한다. 위에서 선택된 최고 캐시 미스율의 노드에서 최고 캐시 미스율의 가상 머신을 선택하고, 최저 캐시 미스율의 노드에서 최저 캐시 미스율의 가상 머신을 선택한다(S23).The next step is to select the virtual machine to relocate. The virtual machine having the highest cache miss rate is selected at the node having the highest cache miss rate selected above, and the virtual machine having the lowest cache miss rate is selected at the node having the lowest cache miss rate (S23).
가상 머신에 대한 선택이 완료되면 위에서 선택된 두 가상 머신에 대해 최고 미스율의 가상 머신은 최저 미스율의 가상 노드에 재배치하고, 최저 미스율의 가상 머신을 최고 미스율의 가상 노드에 재배치한다(S25). 이 재배치 과정에서 live-migration 방법을 사용하여 재배치하는 것이 가능하다.When the selection of the virtual machines is completed, the highest miss rate virtual machine is relocated to the lowest miss rate virtual node for the two virtual machines selected above, and the lowest miss rate virtual machine is relocated to the highest miss rate virtual node (S25). During this relocation process it is possible to relocate using the live-migration method.
상기 과정은 최고 캐시 미스율의 노드와 최저 캐시 미스율의 노드 간 캐시 미스율 차이가 기설정된 threshold 값 이하가 될 때까지 반복하여 실시할 수 있다.The process may be repeated until the cache miss rate difference between the node with the highest cache miss rate and the node with the lowest cache miss rate is less than or equal to a predetermined threshold value.
위와 같은 방법을 통해 Global phase 가상 머신 재배치 방법은 각 노드의 자원 요구량을 균등하게 조절함으로써 특정 노드에 걸린 과부하를 해소함으로써 가상 머신의 성능 저하를 방지하고 효율적인 공유 자원 사용을 가능하게 하는 효과가 있다. Through the above method, the global phase virtual machine relocation method equally adjusts the resource requirements of each node to alleviate the overload on a specific node, thereby preventing performance degradation of the virtual machine and enabling efficient use of shared resources.
이상과 같이 본 발명은 비록 한정된 실시 예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시 예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.While the invention has been shown and described with reference to certain preferred embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. This is possible. Therefore, the scope of the present invention should not be limited by the described embodiments, but should be determined by the equivalents of the appended claims, as well as the appended claims.
31: Front-End 32: LLC miss 및 cpu-affinity 정보
33: 가상머신 재배치 대상노드 34: 가상머신 재배치 상대노드
35: 클러스터 노드들의 정보31: Front-End 32: LLC miss and cpu-affinity information
33: Virtual machine relocation target node 34: Virtual machine relocation target node
35: information of cluster nodes
Claims (10)
상기 클러스터에 포함된 복수의 노드에 포함된 복수의 가상 머신의 캐시 미스율을 수집하는 캐시 미스율 수집부;
상기 캐시 미스율에 따라 가상 머신을 재배치하는 가상 머신 재배치부를 포함하는 동적 가상 머신 재배치 장치.In a cloud computing system with a cluster,
A cache miss rate collector configured to collect cache miss rates of a plurality of virtual machines included in a plurality of nodes included in the cluster;
And a virtual machine relocator configured to relocate the virtual machine according to the cache miss rate.
상기 Global phase 가상 머신 재배치부는,
상기 캐시 미스율 정보를 입력받아 최고 및 최저 캐시 미스율을 갖는 노드를 각각 선택하는 노드 선택부;
상기 선택된 최고 및 최저 캐시 미스율을 갖는 노드에서 각각 최고 및 최저 캐시 미스율을 갖는 가상 머신을 선택하는 가상 머신 선택부; 및
상기 선택된 가상 머신을 상호 교환하여 재배치하는 노드 가상 머신 재배치부를 포함하는 동적 가상 머신 재배치 장치. The method of claim 1, wherein the virtual machine repositioning unit comprises a global phase virtual machine repositioning unit,
The global phase virtual machine relocation unit,
A node selector configured to receive the cache miss rate information and select nodes having the highest and lowest cache miss rates, respectively;
A virtual machine selector configured to select a virtual machine having a highest and lowest cache miss rate at each node having the selected highest and lowest cache miss rate; And
And a node virtual machine relocator configured to interchange and relocate the selected virtual machine.
상기 Local phase 가상 머신 재배치부는,
상기 각 노드 내의 소켓들에 포함된 가상 머신을 캐시 미스율에 따라 정렬하는 가상 머신 정렬부;
상기 정렬된 가상 머신들을 각 노드에 포함된 소켓의 개수와 동일한 개수의 가상 머신을 포함하는 그룹들로 그룹핑하는 가상 머신 그룹핑부; 및
상기 그룹별로 해당 그룹에 포함된 가상 머신을 복수 개의 소켓에 재배치하는 소켓 가상 머신 재배치부를 포함하는 동적 가상 머신 재배치 장치.The virtual machine relocator of claim 1, wherein the virtual machine relocator includes a local phase virtual machine relocator.
The local phase virtual machine relocator,
A virtual machine aligning unit that sorts the virtual machines included in the sockets in each node according to a cache miss rate;
A virtual machine grouping unit for grouping the sorted virtual machines into groups including the same number of virtual machines as the number of sockets included in each node; And
And a socket virtual machine relocator configured to relocate the virtual machines included in the group to a plurality of sockets for each group.
상기 가상 머신들 중 최고 캐시 미스율을 갖는 가상 머신과 최저 캐시 미스율을 갖는 가상 머신이 동일한 소켓에 포함되도록 재배치하는 동적 가상 머신 재배치 장치.The method of claim 3, wherein the socket virtual machine repositioning unit
And relocating the virtual machine having the highest cache miss rate and the virtual machine having the lowest cache miss rate among the virtual machines to be included in the same socket.
상기 클러스터에 포함된 복수의 노드에 포함된 복수의 가상 머신의 캐시 미스율을 수집하는 단계;
상기 캐시 미스율에 따라 가상 머신을 재배치하는 단계를 포함하는 동적 가상 머신 재배치 방법.In a cloud computing system with a cluster,
Collecting cache miss rates of a plurality of virtual machines included in a plurality of nodes included in the cluster;
And relocating a virtual machine according to the cache miss rate.
상기 캐시 미스율 정보를 입력받아 최고 및 최저 캐시 미스율을 갖는 노드를 각각 선택하는 단계;
상기 선택된 최고 및 최저 캐시 미스율을 갖는 노드에서 각각 최고 및 최저 캐시 미스율을 갖는 가상 머신을 선택하는 단계; 및
상기 선택된 가상 머신을 상호 교환하여 재배치하는 단계를 포함하는 동적 가상 머신 재배치 방법. 7. The method of claim 6, wherein relocating the virtual machine
Receiving the cache miss rate information and selecting nodes having the highest and lowest cache miss rates, respectively;
Selecting a virtual machine having a highest and lowest cache miss rate at each node having the selected highest and lowest cache miss rate; And
Interchanging and relocating the selected virtual machine.
상기 각 노드 내의 소켓들에 포함된 가상 머신을 캐시 미스율에 따라 정렬하는 단계;
상기 정렬된 가상 머신들을 각 노드에 포함된 소켓의 개수와 동일한 개수의 가상 머신을 포함하는 그룹들로 그룹핑하는 단계; 및
상기 그룹별로 해당 그룹에 포함된 가상 머신을 복수 개의 소켓에 재배치하는 단계를 포함하는 동적 가상 머신 재배치 방법.7. The method of claim 6, wherein relocating the virtual machine
Sorting the virtual machines included in the sockets in each node according to a cache miss rate;
Grouping the sorted virtual machines into groups including the same number of virtual machines as the number of sockets included in each node; And
Relocating a virtual machine included in the group for each group to a plurality of sockets.
상기 가상 머신들 중 최고 캐시 미스율을 갖는 가상 머신과 최저 캐시 미스율을 갖는 가상 머신이 동일한 소켓에 포함되도록 재배치하는 동적 가상 머신 재배치 방법.9. The method of claim 8, wherein relocating to the socket
And relocating the virtual machine having the highest cache miss rate and the virtual machine having the lowest cache miss rate among the virtual machines to be included in the same socket.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110143097A KR20130074953A (en) | 2011-12-27 | 2011-12-27 | Apparatus and method for dynamic virtual machine placement |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110143097A KR20130074953A (en) | 2011-12-27 | 2011-12-27 | Apparatus and method for dynamic virtual machine placement |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20130074953A true KR20130074953A (en) | 2013-07-05 |
Family
ID=48988922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110143097A KR20130074953A (en) | 2011-12-27 | 2011-12-27 | Apparatus and method for dynamic virtual machine placement |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20130074953A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150016820A (en) * | 2013-08-05 | 2015-02-13 | 한국전자통신연구원 | System and method for virtual machine placement and management on cluster system |
KR101502225B1 (en) * | 2013-07-31 | 2015-03-12 | 서울대학교산학협력단 | Virtual machine allocation method to minimize performance interference between virtual machines |
WO2015099701A1 (en) | 2013-12-24 | 2015-07-02 | Intel Corporation | Cloud compute scheduling using a heuristic contention model |
WO2022039292A1 (en) * | 2020-08-19 | 2022-02-24 | 서울대학교산학협력단 | Edge computing method, electronic device, and system for providing cache update and bandwidth allocation for wireless virtual reality |
KR102571782B1 (en) * | 2022-12-16 | 2023-08-29 | 스트라토 주식회사 | Apparatus and method for virtual machine relocation using resource management pool |
-
2011
- 2011-12-27 KR KR1020110143097A patent/KR20130074953A/en not_active Application Discontinuation
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101502225B1 (en) * | 2013-07-31 | 2015-03-12 | 서울대학교산학협력단 | Virtual machine allocation method to minimize performance interference between virtual machines |
KR20150016820A (en) * | 2013-08-05 | 2015-02-13 | 한국전자통신연구원 | System and method for virtual machine placement and management on cluster system |
WO2015099701A1 (en) | 2013-12-24 | 2015-07-02 | Intel Corporation | Cloud compute scheduling using a heuristic contention model |
EP3087503A4 (en) * | 2013-12-24 | 2018-01-17 | Intel Corporation | Cloud compute scheduling using a heuristic contention model |
US11212235B2 (en) | 2013-12-24 | 2021-12-28 | Intel Corporation | Cloud compute scheduling using a heuristic contention model |
US11689471B2 (en) | 2013-12-24 | 2023-06-27 | Intel Corporation | Cloud compute scheduling using a heuristic contention model |
WO2022039292A1 (en) * | 2020-08-19 | 2022-02-24 | 서울대학교산학협력단 | Edge computing method, electronic device, and system for providing cache update and bandwidth allocation for wireless virtual reality |
KR102571782B1 (en) * | 2022-12-16 | 2023-08-29 | 스트라토 주식회사 | Apparatus and method for virtual machine relocation using resource management pool |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10776151B2 (en) | Adaptive CPU NUMA scheduling | |
US10334034B2 (en) | Virtual machine live migration method, virtual machine deployment method, server, and cluster system | |
US10609129B2 (en) | Method and system for multi-tenant resource distribution | |
Park et al. | Locality-aware dynamic VM reconfiguration on MapReduce clouds | |
US8510747B2 (en) | Method and device for implementing load balance of data center resources | |
US20200167184A1 (en) | System and Method for Optimizing Placements of Virtual Machines on Hypervisor Hosts | |
US9442763B2 (en) | Resource allocation method and resource management platform | |
US8874744B2 (en) | System and method for automatically optimizing capacity between server clusters | |
US8352942B2 (en) | Virtual-machine control apparatus and virtual-machine moving method | |
CN114356543B (en) | A multi-tenant machine learning task resource scheduling method based on Kubernetes | |
Chatzistergiou et al. | Fast heuristics for near-optimal task allocation in data stream processing over clusters | |
US20130167152A1 (en) | Multi-core-based computing apparatus having hierarchical scheduler and hierarchical scheduling method | |
JP2008191949A (en) | Multi-core system, and method for distributing load of the same | |
CN111078363A (en) | NUMA node scheduling method, device, equipment and medium for virtual machine | |
WO2019153697A1 (en) | Cluster resource adjustment method and device, and cloud platform | |
CN110221920B (en) | Deployment method, device, storage medium and system | |
JP2007272263A (en) | Method for managing computer, computer system, and management program | |
CN108132827B (en) | Network slice resource mapping method, related equipment and system | |
KR101356033B1 (en) | Hybrid Main Memory System and Task Scheduling Method therefor | |
KR20130074953A (en) | Apparatus and method for dynamic virtual machine placement | |
US20090183166A1 (en) | Algorithm to share physical processors to maximize processor cache usage and topologies | |
US20110154357A1 (en) | Storage Management In A Data Processing System | |
JP6010975B2 (en) | Job management apparatus, job management method, and program | |
Panda et al. | Novel service broker and load balancing policies for cloudsim-based visual modeller | |
US20120042322A1 (en) | Hybrid Program Balancing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20111227 |
|
PA0201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20130527 Patent event code: PE09021S01D |
|
PG1501 | Laying open of application | ||
E601 | Decision to refuse application | ||
PE0601 | Decision on rejection of patent |
Patent event date: 20130731 Comment text: Decision to Refuse Application Patent event code: PE06012S01D Patent event date: 20130527 Comment text: Notification of reason for refusal Patent event code: PE06011S01I |