[go: up one dir, main page]

KR101916809B1 - Apparatus for placing virtual cluster and method for providing the same - Google Patents

Apparatus for placing virtual cluster and method for providing the same Download PDF

Info

Publication number
KR101916809B1
KR101916809B1 KR1020150040459A KR20150040459A KR101916809B1 KR 101916809 B1 KR101916809 B1 KR 101916809B1 KR 1020150040459 A KR1020150040459 A KR 1020150040459A KR 20150040459 A KR20150040459 A KR 20150040459A KR 101916809 B1 KR101916809 B1 KR 101916809B1
Authority
KR
South Korea
Prior art keywords
virtual machines
hosts
subgroup
placement
subgroups
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
KR1020150040459A
Other languages
Korean (ko)
Other versions
KR20160114269A (en
Inventor
민덕기
구민오
김바울
조나연
예쉬화
Original Assignee
건국대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 건국대학교 산학협력단 filed Critical 건국대학교 산학협력단
Priority to KR1020150040459A priority Critical patent/KR101916809B1/en
Priority to PCT/KR2016/002985 priority patent/WO2016153288A1/en
Publication of KR20160114269A publication Critical patent/KR20160114269A/en
Application granted granted Critical
Publication of KR101916809B1 publication Critical patent/KR101916809B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명의 일 실시예에 따른 가상 클러스터 배치 방법이 제공된다. 가상 클러스터 배치 방법은 복수의 가상 머신을 포함하는 가상 클러스터 시스템에 대한 시스템 정보를 수신하는 단계, 복수의 가상 머신을 서브 그룹으로 분류하는 단계, 서브 그룹 사이의 관계 속성 또는 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 결정하는 단계 및 서브 그룹 사이의 관계 속성 또는 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성에 따라, 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계를 포함한다. 본 발명은 서로에 대한 관계 속성에 따라 가상 클러스터 내의 복수의 가상 머신 각각을 적합한 호스트들에 배치시킬 수 있는 가상 클러스터 배치 방법 및 이를 제공하기 위한 장치를 제공할 수 있다.A virtual cluster placement method according to an embodiment of the present invention is provided. The virtual cluster placement method includes receiving system information for a virtual cluster system including a plurality of virtual machines, classifying the plurality of virtual machines into subgroups, assigning a plurality of virtual machines And arranging one of the plurality of virtual machines in one of the plurality of hosts in accordance with a relationship attribute between the subgroups or a relation attribute between the plurality of virtual machines in the subgroup. The present invention can provide a virtual cluster placement method and an apparatus for providing the virtual cluster placement method, in which each of a plurality of virtual machines in a virtual cluster can be placed in suitable hosts according to a relationship property to each other.

Figure R1020150040459
Figure R1020150040459

Description

가상 클러스터 배치 방법 및 이를 제공하기 위한 장치{APPARATUS FOR PLACING VIRTUAL CLUSTER AND METHOD FOR PROVIDING THE SAME}TECHNICAL FIELD [0001] The present invention relates to a virtual cluster allocating method,

본 발명은 가상 클러스터 배치 방법 및 이를 제공하기 위한 장치에 관한 것으로서, 보다 상세하게는 가상 클러스터의 배치 효율성을 최대화하기 위한 가상 클러스터 배치 방법 및 이를 제공하기 위한 장치에 관한 것이다.The present invention relates to a virtual cluster placement method and apparatus for providing the same, and more particularly, to a virtual cluster placement method for maximizing placement efficiency of a virtual cluster and an apparatus for providing the same.

가상 머신 (Virtual Machine; VM) 기반의 가상 컴퓨팅 환경에서, 가상 머신 스케줄링은 요청된 가상 머신이 배치, 구동될 호스트를 결정하는 처리 과정이며, 가상 머신 스케줄러는 가상 머신 스케줄링을 수행하는 도구이다.In a virtual computing environment based on a virtual machine (VM), virtual machine scheduling is a process of determining a host to which a requested virtual machine is to be placed and operated, and a virtual machine scheduler is a tool performing virtual machine scheduling.

가상 머신들이 배치되거나 구동될 호스트를 결정하는 배치 방식은 하드웨어 자원의 활용 목적과 정책 및 사용자에게 제공할 서비스의 품질에 따라 다양하다. 종래 가상 머신의 배치는 예를 들어, FirstFit, RoundRobin, WorstFit, BestFit 등의 배치 방식을 사용하여 수행되었다.The deployment scheme that determines the hosts on which virtual machines are to be deployed or run depends on the purpose of the hardware resources, the policy, and the quality of the service to be provided to the user. Conventionally, the arrangement of the virtual machines has been performed using a layout method such as FirstFit, RoundRobin, WorstFit, BestFit, and the like.

가상 머신의 배치 방식은 일반적으로 필터링 (Filtering), 정렬 (Sorting), 선택 (Selecting) 의 세부 알고리즘 수행 단위로 구성된다. 예를 들어, OpenStack의 FilterScheduler의 경우, 크게, 호스트 리스트에서 요청된 가상 머신을 수용할 수 없는 호스트들을 먼저 필터링하고, 필터링된 호스트 리스트에서 특정 가중치에 따라 호스트를 정렬한 다음, 정렬된 호스트 리스트에서 호스트를 선택한다. 그러나, 이러한 최상의 배치 결과를 산출하기 위한 종래의 배치 방식에서는 배치 시간이 증가될 수 있으며, 이에 따라, 서비스 응답 시간의 지연을 야기할 수 있다.The arrangement method of a virtual machine is generally composed of a detailed algorithm execution unit of filtering, sorting, and selecting. For example, in the case of OpenStack's FilterScheduler, the hosts that can not accommodate the requested virtual machines in the host list are first filtered, the hosts are sorted according to specific weights in the filtered host list, Select the host. However, in a conventional layout scheme for calculating this best layout result, the layout time can be increased, which can cause a delay in the service response time.

나아가, 가상 컴퓨팅 시스템이 발전함에 따라, 2 이상의 가상 머신을 이용하여 가상 컴퓨팅을 수행할 수 있는 가상 클러스터 (Virtual Cluster; VC) 에 대한 요구가 증가하고 있다. 이에 따라, 복수의 가상 머신을 생성하는데 있어 더욱 효율적인 배치 방식이 더욱 요구되고 있다.Furthermore, as the virtual computing system evolves, there is an increasing demand for virtual clusters (VCs) that can perform virtual computing using two or more virtual machines. Accordingly, a more efficient arrangement method for creating a plurality of virtual machines is further demanded.

발명의 배경이 되는 기술은 본 발명에 대한 이해를 보다 용이하게 하기 위해 작성되었다. 발명의 배경이 되는 기술에 기재된 사항들이 선행기술로 존재한다고 인정하는 것으로 이해되어서는 안 된다.BACKGROUND OF THE INVENTION [0002] Techniques as a background of the invention have been made in order to facilitate understanding of the present invention. And should not be construed as an admission that the matters described in the technical background of the invention are present in the prior art.

가상 클러스터에서의 가상 머신들을 배치하는 것은 단순히 복수의 가상 머신을 순차적으로 배치하는 것과는 상이하다. 가상 클러스터 내의 가상 머신들의 배치에서는 회피 조건에 따른 분산 배치나 친밀 조건에 따른 통합 배치를 고려해야한다.Placing virtual machines in a virtual cluster is different from simply placing a plurality of virtual machines sequentially. In the arrangement of virtual machines in a virtual cluster, consideration should be given to distributed placement according to avoidance conditions and integrated placement according to intimacy conditions.

이러한 점들을 고려할 때 가상 머신의 배치 방식은 획일적인 필터링, 정렬, 선택의 알고리즘 수행 단위로 구성되지 않고, 다양한 알고리즘 수행 단위의 조합으로 이루어질 수 있다.Considering these points, the arrangement of virtual machines is not composed of uniform execution units of filtering, sorting, and selection algorithms, but can be made up of various combinations of algorithm execution units.

그러나, 종래의 가상 머신의 배치 방식은 가상 클러스터 내의 관계 속성에 대해서 전혀 인식하고 있지 못하므로, 다양한 알고리즘 수행 단위의 조합을 구현하거나 상황에 따라 최대한 효율적인 배치를 수행하지 못하였다.However, since the conventional virtual machine arrangement method is not aware of the relation attribute in the virtual cluster at all, it can not implement the combination of various algorithm execution units or perform the arrangement as efficiently as possible according to the situation.

이에 따라, 본 발명이 해결하고자 하는 과제는 상황에 따라 배치의 효율성을 최대화하기 위해, 가상 머신들의 배치에 있어서 다양한 알고리즘 수행 단위의 조합을 구현할 수 있는 가상 클러스터 배치 방법 및 이를 제공하기 위한 장치를 제공하는데 있다.Accordingly, a problem to be solved by the present invention is to provide a virtual cluster placement method capable of implementing various combinations of algorithm execution units in the arrangement of virtual machines to maximize placement efficiency according to a situation, and an apparatus for providing the same .

본 발명의 해결하고자 하는 다른 과제는 서로에 대한 관계 속성에 따라 가상 클러스터 내의 복수의 가상 머신 각각을 적합한 호스트들에 배치시킬 수 있는 가상 클러스터 배치 방법 및 이를 제공하기 위한 장치를 제공하는 것이다.Another object of the present invention is to provide a virtual cluster arrangement method and a device for providing the virtual cluster arrangement in which each of a plurality of virtual machines in a virtual cluster can be placed in suitable hosts according to the relationship property to each other.

본 발명의 해결하고자 하는 또 다른 과제는 가상 클러스터 내의 복수의 가상 머신들의 분류 또는 관계 속성의 결정을 보다 효율적으로 수행하고, 이를 재차 검증할 수 있는 가상 클러스터 배치 방법 및 이를 제공하기 위한 장치를 제공하는 것이다.Another object of the present invention is to provide a virtual cluster allocation method and a device for providing a virtual cluster allocation method capable of more efficiently performing a classification of a plurality of virtual machines in a virtual cluster or determining a relation attribute thereof, will be.

본 발명의 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problems of the present invention are not limited to the above-mentioned problems, and other problems not mentioned can be clearly understood by those skilled in the art from the following description.

전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법이 제공된다. 가상 클러스터 배치 방법은 복수의 가상 머신을 포함하는 가상 클러스터 시스템에 대한 시스템 정보를 수신하는 단계, 복수의 가상 머신을 서브 그룹으로 분류하는 단계, 서브 그룹 사이의 관계 속성 또는 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 결정하는 단계 및 서브 그룹 사이의 관계 속성 또는 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성에 따라, 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계를 포함한다. According to an aspect of the present invention, there is provided a method for arranging virtual clusters according to an embodiment of the present invention. The virtual cluster placement method includes receiving system information for a virtual cluster system including a plurality of virtual machines, classifying the plurality of virtual machines into subgroups, assigning a plurality of virtual machines And arranging one of the plurality of virtual machines in one of the plurality of hosts in accordance with a relationship attribute between the subgroups or a relation attribute between the plurality of virtual machines in the subgroup.

본 발명의 다른 특징에 따르면, 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계는, 복수의 가상 머신 중 일부를 복수의 호스트 중 서로 상이한 호스트들에 배치하는 단계를 포함한다.According to another aspect of the present invention, the step of placing one of the plurality of virtual machines in one of the plurality of hosts includes placing a part of the plurality of virtual machines in mutually different hosts among the plurality of hosts.

본 발명의 또 다른 특징에 따르면, 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계는 적어도 하나의 계산 모듈을 통해 복수의 가상 머신의 배치와 연관된 계산을 수행하는 단계를 포함하고, 적어도 하나의 계산 모듈 각각은, (a) 서브 그룹에 대한 정보를 핸들링하는 단계, (b) 서브 그룹을 파티셔닝하는 단계, (c) 호스트를 정렬하는 단계, (d) 호스트를 필터링하는 단계, (e) 호스트를 추출하는 단계; 또는 (f) 사용자 정의된 기능을 수행하는 단계 중 적어도 하나의 단계를 수행하도록 구성된다.According to another aspect of the present invention, placing one of the plurality of virtual machines on one of the plurality of hosts includes performing a calculation associated with placement of a plurality of virtual machines via at least one computing module, Wherein each of the at least one calculation module comprises the steps of: (a) handling information about the subgroup; (b) partitioning the subgroup; (c) sorting the host; (d) e) extracting the host; Or (f) performing a user-defined function.

본 발명의 또 다른 특징에 따르면, 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계는, 관계 속성에 따라 서로 상이한 계산 모듈의 조합을 이용하여 수행된다.According to another aspect of the present invention, the step of placing one of the plurality of virtual machines in one of the plurality of hosts is performed using a combination of calculation modules that are different from each other according to the relationship property.

본 발명의 또 다른 특징에 따르면, 서브 그룹 사이의 관계 속성 또는 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성은 분산 배치 또는 통합 배치이다.According to another aspect of the present invention, the relationship attribute between the subgroups or the relationship attribute between the plurality of virtual machines in the subgroup is distributed or integrated.

본 발명의 또 다른 특징에 따르면, 가상 클러스터 배치 방법은 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계 이후에, 가상 클러스터 시스템에 대한 배치 맵을 갱신하는 단계를 더 포함하고, 적어도 하나의 계산 모듈은 배치 맵에 액세스 가능하도록 구성된다.According to another aspect of the present invention, a virtual cluster placement method further includes the step of updating the placement map for the virtual cluster system after the step of placing one of the plurality of virtual machines on one of the plurality of hosts, One calculation module is configured to be accessible to the batch map.

본 발명의 또 다른 특징에 따르면, 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계는 가상 머신을 복수의 호스트 중 하나에 배치하도록 배치 맵에 기초하여 호스트를 선택하는 단계를 포함한다.According to another aspect of the present invention, placing one of the plurality of virtual machines in one of the plurality of hosts includes selecting the host based on the deployment map to place the virtual machine in one of the plurality of hosts .

본 발명의 또 다른 특징에 따르면, 복수의 가상 머신을 서브 그룹으로 분류하는 단계는 복수의 가상 머신의 자원요구사항에 기초하거나 사용자-정의에 기초하여 복수의 가상 머신을 서브 그룹으로 분류하는 단계이다.According to another aspect of the present invention, the step of classifying a plurality of virtual machines into subgroups includes classifying a plurality of virtual machines into subgroups based on resource requirements of a plurality of virtual machines or based on user-defined .

본 발명의 또 다른 특징에 따르면, 복수의 가상 머신을 서브 그룹으로 분류하는 단계는, 분류 기준에 따라 복수의 가상 머신을 서브 그룹으로 분류하는 단계이고, 분류 기준은 분류 히스토리 또는 기 저장된 분류 정보에 따라 결정된다. According to still another aspect of the present invention, the step of classifying a plurality of virtual machines into subgroups is a step of classifying a plurality of virtual machines into subgroups according to a classification criterion, and the classification criterion is a classification history .

본 발명의 또 다른 특징에 따르면, 서브 그룹 사이의 관계 속성 또는 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 결정하는 단계는, 관계 속성의 결정에 대한 히스토리 또는 기 저장된 결정 정보에 따라, 서브 그룹 사이의 관계 속성 또는 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 결정하는 단계이다.According to another aspect of the present invention, the step of determining the relationship attribute between the subgroups or the relationship attribute between the plurality of virtual machines in the subgroup includes: determining, based on the history of the determination of the relationship attribute or the previously stored determination information, Or a relationship attribute between a plurality of virtual machines in a subgroup.

본 발명의 또 다른 특징에 따르면, 가상 클러스터 배치 방법은 서브 그룹 사이의 관계 속성 또는 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 검증하는 단계를 더 포함한다.According to another aspect of the present invention, the virtual cluster placement method further includes the step of verifying a relationship attribute between the subgroups or a relationship attribute between the plurality of virtual machines in the subgroup.

전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 가상 클러스터 배치를 제공하기 위한 장치는 복수의 가상 머신을 포함하는 가상 클러스터 시스템에 대한 시스템 정보를 수신하기 위한 요청 수신부; 및 요청 수신부와 연결된 배치 엔진을 포함하고, 배치 엔진은, 복수의 가상 머신을 서브 그룹으로 분류하고, 서브 그룹 사이의 관계 속성 또는 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 결정하고, 서브 그룹 사이의 관계 속성 또는 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성에 따라, 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하도록 구성된다.According to an aspect of the present invention, there is provided an apparatus for providing a virtual cluster arrangement, the apparatus comprising: a request receiving unit for receiving system information about a virtual cluster system including a plurality of virtual machines; And a placement engine coupled to the request receiver, wherein the placement engine classifies the plurality of virtual machines into subgroups, determines a relationship attribute between the subgroups or a plurality of virtual machines in the subgroup, And one of the plurality of virtual machines is arranged in one of the plurality of hosts in accordance with a relationship attribute between the virtual machines and a relation attribute between the virtual machines in the subgroup.

본 발명의 다른 특징에 따르면, 배치 엔진은 적어도 하나의 계산 모듈을 통해 복수의 가상 머신 중 하나를 복수의 호스트에 배치하도록 구성되고, 적어도 하나의 계산 모듈 각각은, (a) 서브 그룹에 대한 정보를 핸들링하는 단계, (b) 서브 그룹을 파티셔닝하는 단계, (c) 호스트를 정렬하는 단계, (d) 호스트를 필터링하는 단계, (e) 호스트를 추출하는 단계; 또는 (f) 사용자 정의된 기능을 수행하는 단계 중 적어도 하나의 단계를 수행하도록 구성된다.According to another aspect of the present invention, a placement engine is arranged to place one of a plurality of virtual machines in a plurality of hosts via at least one calculation module, each of the at least one calculation module comprising: (a) (B) partitioning the subgroups; (c) sorting the hosts; (d) filtering the hosts; (e) extracting the hosts; Or (f) performing a user-defined function.

본 발명의 또 다른 특징에 따르면, 배치 엔진은, 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치한 후, 가상 클러스터 시스템에 대한 배치 맵을 갱신하도록 더 구성된다.According to another aspect of the present invention, the placement engine is further configured to deploy one of the plurality of virtual machines to one of the plurality of hosts, and then update the deployment map for the virtual cluster system.

본 발명의 또 다른 특징에 따르면, 배치 엔진은, 가상 머신을 복수의 호스트 중 하나에 배치하도록 배치 맵에 기초하여 호스트를 선택함으로써, 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하도록 구성된다.According to another aspect of the present invention, a placement engine is configured to place one of a plurality of virtual machines in one of a plurality of hosts by selecting a host based on a placement map so as to place the virtual machine in one of the plurality of hosts do.

기타 실시예의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.The details of other embodiments are included in the detailed description and drawings.

본 발명은 상황에 따라 배치의 효율성을 최대화하기 위해, 가상 머신들의 배치에 있어 다양한 알고리즘 수행 단위의 조합을 구현할 수 있는 가상 클러스터 배치 방법 및 이를 제공하기 위한 장치를 제공할 수 있는 효과가 있다.The present invention has the effect of providing a virtual cluster placement method capable of implementing various combinations of algorithm execution units in the arrangement of virtual machines and an apparatus for providing the same, in order to maximize the placement efficiency according to the situation.

또한, 본 발명은 서로에 대한 관계 속성에 따라 가상 클러스터 내의 복수의 가상 머신 각각을 적합한 호스트들에 배치시킬 수 있는 가상 클러스터 배치 방법 및 이를 제공하기 위한 장치를 제공할 수 있다.In addition, the present invention can provide a virtual cluster placement method and an apparatus for providing the virtual cluster placement method, in which each of a plurality of virtual machines in a virtual cluster can be placed in suitable hosts according to the relationship property to each other.

나아가 본 발명은 가상 클러스터 내의 복수의 가상 머신들의 분류 또는 관계 속성의 결정을 보다 효율적으로 수행하고, 이를 재차 검증할 수 있는 가상 클러스터 배치 방법 및 이를 제공하기 위한 장치를 제공할 수 있는 효과가 있다.Furthermore, the present invention provides a virtual cluster placement method and a device for providing the virtual cluster placement method that can more efficiently perform the classification or relational attribute determination of a plurality of virtual machines in a virtual cluster, and verify the same again.

본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.The effects according to the present invention are not limited by the contents exemplified above, and more various effects are included in the specification.

도 1은 본 발명의 일 실시예에 따른 가상 클러스터 배치를 위한 장치의 블록도를 예시적으로 도시한다.
도 2는 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법을 설명하기 위한 개략적인 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법을 설명하기 위한 개략도이다.
도 4a 및 4b는 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법의 구체적인 적용예를 설명하기 위한 개략도들이다.
도 5는 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법의 구체적인 적용예에서 복수의 가상 머신을 포함하는 가상 클러스터가 복수의 호스트에 배치되는 예시를 설명하기 위한 개념도이다.
도 6 내지 도 10은 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법이 나타내는 처리 성능과 성능 지표들을 설명하기 위한 도표들이다.
Figure 1 illustrates, by way of example, a block diagram of an apparatus for virtual cluster deployment according to an embodiment of the invention.
FIG. 2 is a schematic flowchart for explaining a virtual cluster arrangement method according to an embodiment of the present invention.
3 is a schematic diagram for explaining a virtual cluster arrangement method according to an embodiment of the present invention.
4A and 4B are schematic diagrams for explaining a specific application example of a virtual cluster arrangement method according to an embodiment of the present invention.
5 is a conceptual diagram for explaining an example in which a virtual cluster including a plurality of virtual machines is arranged in a plurality of hosts in a specific application example of a virtual cluster arrangement method according to an embodiment of the present invention.
FIGS. 6 to 10 are graphs for explaining the processing performance and the performance indexes of the virtual cluster placement method according to an embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention, and the manner of achieving them, will be apparent from and elucidated with reference to the embodiments described hereinafter in conjunction with the accompanying drawings. It should be understood, however, that the invention is not limited to the disclosed embodiments, but is capable of many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, To fully disclose the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims.

본 발명의 실시예를 설명하기 위한 도면에 개시된 형상, 크기, 비율, 각도, 개수 등은 예시적인 것이므로 본 발명이 도시된 사항에 한정되는 것은 아니다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. 또한, 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다. 본 명세서 상에서 언급된 “포함한다”, “갖는다”, “이루어진다” 등이 사용되는 경우 “~만”이 사용되지 않는 이상 다른 부분이 추가될 수 있다. 구성 요소를 단수로 표현한 경우에 특별히 명시적인 기재 사항이 없는 한 복수를 포함하는 경우를 포함한다.The shapes, sizes, ratios, angles, numbers, and the like disclosed in the drawings for describing the embodiments of the present invention are illustrative, and thus the present invention is not limited thereto. Like reference numerals refer to like elements throughout the specification. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail. Where "includes", "having", "done", etc. are used in the present specification, other portions may be added unless "only" is used. Unless the context clearly dictates otherwise, including the plural unless the context clearly dictates otherwise.

비록 제1, 제2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않는다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있다.Although the first, second, etc. are used to describe various components, these components are not limited by these terms. These terms are used only to distinguish one component from another. Therefore, the first component mentioned below may be the second component within the technical spirit of the present invention.

명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Like reference numerals refer to like elements throughout the specification.

본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.It is to be understood that each of the features of the various embodiments of the present invention may be combined or combined with each other partially or wholly and technically various interlocking and driving are possible and that the embodiments may be practiced independently of each other, It is possible.

도 1은 본 발명의 일 실시예에 따른 가상 클러스터 배치를 위한 장치의 블록도를 예시적으로 도시한다. 여기서, 가상 클러스터 (Virtual Cluster; 이하 VC) 배치 장치(100)는 가상 클러스터 스케줄링 프레임워크 (1000) 내의 일부일 수 있다. 가상 클러스터 스케줄링 프레임워크 (1000) 는 VC에 대한 제어 요청에 응답하여, 제어 요청을 스케줄링하고, 결정된 스케줄에 따라 VC 내의 가상 머신들에 대한 생성, 정지, 재개, 삭제 등을 수행하기 위한 VC 프레임워크이다. VC 프레임워크는 가상 머신들이 배치되는 호스트들을 외부의 가상 머신 관리 시스템을 통해 또는 직접 제어하도록 구성된다.Figure 1 illustrates, by way of example, a block diagram of an apparatus for virtual cluster deployment according to an embodiment of the invention. Here, a virtual cluster (VC) placement apparatus 100 may be a part of the virtual cluster scheduling framework 1000. The virtual cluster scheduling framework 1000 includes a VC framework for scheduling control requests in response to a control request for a VC and for creating, stopping, resuming, and deleting virtual machines in the VC according to the determined schedule to be. The VC framework is configured to directly control, or directly control, the hosts on which the virtual machines are placed, through an external virtual machine management system.

도 1을 참조하면, 가상 클러스터 스케줄링 프레임워크 (1000) 는 적어도 본 발명의 일 실시예에 따른 가상 클러스터 배치 장치 (100), VC 스케줄 관리부 (200) 및 정보 관리부 (300) 를 포함한다.Referring to FIG. 1, a virtual cluster scheduling framework 1000 includes at least a virtual cluster placement apparatus 100, a VC schedule management unit 200, and an information management unit 300 according to an embodiment of the present invention.

가상 클러스터 배치 장치 (100) 는 VC 내의 복수의 가상 머신들에 대한 제어 요청에 따라 복수의 가상 머신을 복수의 호스트에 배치하기 위한 장치이다. 가상 클러스터 배치 장치 (100) 는 독립된 장치로 구현될 수도 있으나, 사용자의 VC 생성 요청이 발생한 경우 VC 내의 가상 머신들에 대한 배치가 완료되도록 가상 머신들이 배치될 호스트들을 결정하기 위한, 컴퓨팅 디바이스에서 수행될 수 있는 모듈일 수 있다.The virtual cluster placement apparatus 100 is a device for placing a plurality of virtual machines in a plurality of hosts in response to a control request for a plurality of virtual machines in a VC. The virtual cluster placement apparatus 100 may be implemented as an independent apparatus, but may be implemented in a computing device for determining hosts to which virtual machines are to be placed so that placement of virtual machines in the VC is completed when a user's VC creation request is generated Lt; / RTI > module.

VC 스케줄 관리부 (200) 는 VC의 구동 스케줄의 생성, 변경 및 수정 등의 스케줄 관리 작업을 수행한다. VC 스케줄 관리부 (200) 는 가상 클러스터 배치 장치 (100) 와 연결되어, VC 제어 요청, 예컨대 VC 내의 가상 머신들의 생성 요청을 가상 클러스터 배치 장치 (100) 에 전달한다.The VC schedule management unit 200 performs schedule management tasks such as creation, change, and correction of the drive schedule of the VC. The VC schedule management unit 200 is connected to the virtual cluster placement apparatus 100 and transmits a VC control request, for example, a request for generating virtual machines in the VC to the virtual cluster placement apparatus 100. [

정보 관리부 (300) 는 가상 머신 및 호스트에 대한 정보를 관리한다. 정보 관리부 (300) 는 가상 클러스터 스케줄링 프레임워크 (1000) 내에서 배치에 필요한 가상 머신 및 호스트의 상세 정보를 가상 클러스터 배치 장치 (100) 에 제공한다. 또한, 정보 관리부 (300) 는 동기화 모듈들을 통해, 가상 머신 및 호스트에 대한 상세 정보를 주기적으로 수신하여 갱신할 수 있다.The information management unit 300 manages information on the virtual machine and the host. The information management unit 300 provides the virtual cluster placement apparatus 100 with the detailed information of the virtual machine and the host necessary for placement in the virtual cluster scheduling framework 1000. In addition, the information management unit 300 can periodically receive and update detailed information on the virtual machine and the host through the synchronization modules.

가상 클러스터 배치 장치 (100) 는 요청 수신부 (122), VC 배치 엔진 코어 (120), 인프라 자원 상태 계산부 (110), 자원 정보 제공부 (124), 전략 실행부 (130), VC 배치 전략 관리부 (140) 및 복수의 계산 모듈 (150) 을 포함한다.The virtual cluster placement apparatus 100 includes a request receiving unit 122, a VC placement engine core 120, an infrastructure resource state calculation unit 110, a resource information providing unit 124, a strategy execution unit 130, (140) and a plurality of calculation modules (150).

요청 수신부 (122) 는 가상 클러스터 배치 장치 (100) 외부의 각종 컴포넌트들, 예를 들어, VC 스케줄 관리부 (200) 로부터 VC 배치 요청을 수신하고, VC 배치 과정 중 발생한 다양한 정보를 다시 VC 스케줄 관리부 (200) 에 제공하는 역할을 수행한다. 정보는 예를 들어 VC 배치 결과와 배치 결과의 성공 유무 등을 포함할 수 있다. 요청 수신부 (122) 에 의해 수신된 VC 배치 요청은 VC 배치 엔진 코어 (120) 에 전달되어 VC 배치를 개시시킨다. VC 배치 작업이 완료될 경우, 배치 결과를 VC 스케줄 관리부 (200) 에 반환한다.The request reception unit 122 receives a VC placement request from various components outside the virtual cluster placement apparatus 100, for example, the VC schedule management unit 200, and transmits various information generated during the VC placement process to the VC schedule management unit 200). The information may include, for example, the VC placement result and whether the placement result is successful or not. The VC placement request received by the request receiver 122 is passed to the VC placement engine core 120 to initiate the VC placement. When the VC placement operation is completed, the placement result is returned to the VC schedule management unit 200.

VC 배치 엔진 코어 (120) 는 VC 내의 가상 머신들의 배치를 총괄하는 컴포넌트이다. VC 배치 엔진 코어 (120) 는 요청 수신부 (122), 전략 실행부 (130), 인프라 자원 상태 계산부 (110) 등과 같은 주변 컴포넌트들로부터 배치에 필요한 각종 정보들, 예를 들어, VC 배치 전략, 호스트의 정보 및 가상 머신의 정보 등을 수집한다. VC 배치 전략이란 VC 내의 가상 머신들을 배치하기 위한 방식을 의미한다. 호스트의 정보란 물리적인 호스트의 자원 정보, 예를 들어, CPU 코어의 수, 메모리 용량 등을 포함한다. 가상 머신의 정보란 가상 머신에 할당된 CPU 코어의 수, 메모리 용량, 가상 머신에 설치되는 OS (operating system), 설치되는 어플리케이션 등을 포함한다. VC 배치 엔진 코어 (120) 는 수집된 정보를 바탕으로 VC 사용자로부터 요청 받은 VC 배치를 전략 실행부 (130) 를 통하여 수행한다.VC placement engine core 120 is a component that governs the placement of virtual machines within a VC. The VC placement engine core 120 receives various information required for placement from neighboring components such as the request receiving unit 122, the strategy executing unit 130, the infrastructure resource state calculating unit 110 and the like, for example, Host information and virtual machine information. A VC deployment strategy is a method for deploying virtual machines within a VC. The information of the host includes resource information of the physical host, for example, the number of CPU cores, the memory capacity, and the like. The information of the virtual machine includes the number of CPU cores allocated to the virtual machine, the memory capacity, an operating system installed in the virtual machine, and an installed application. The VC placement engine core 120 performs the VC placement requested from the VC user through the strategy execution unit 130 based on the collected information.

전략 실행부 (130) 는 VC 배치 엔진 코어 (120) 로부터 요청 받은 VC의 배치를 VC 배치 전략을 이용하여 VC 배치 조건에 따라 배치 작업을 수행한다. 또한 VC 배치 과정에서 발생하는 각종 에러 상황, 예컨대 VC 배치 스케줄링 불가 에러를 VC 배치 엔진 코어 (120) 에 제공한다.The strategy execution unit 130 performs a batch operation according to the VC placement condition using the VC placement strategy, from the VC placement engine core 120 to the placement of the VCs requested. In addition, it provides the VC arrangement engine core 120 with various error conditions that occur in the VC arrangement process, for example, a VC arrangement scheduling unavailable error.

VC 배치 전략 관리부 (140) 는 VC 배치 엔진 코어 (120) 에 VC 배치 전략을 공급한다. VC 배치 전략 관리부 (140) 는 VC 배치 전략의 생명주기 (LifeCycle) 를 관리한다. VC 배치 전략 관리부 (140) 는 VC 배치 전략의 동적 추가, 수정 또는 삭제 등을 자동으로 인식하여 사용자에 발생된 VC 배치 전략의 변화를 감지하고, VC 배치 전략에 변화 발생 시, 자동화된 방법으로 VC 배치 전략을 동적으로 추가, 수정 또는 삭제한다.The VC placement strategy management unit 140 supplies a VC placement strategy to the VC placement engine core 120. [ The VC placement strategy management unit 140 manages the life cycle of the VC placement strategy. The VC placement strategy management unit 140 automatically recognizes the dynamic addition, modification, or deletion of the VC placement strategy, detects a change in the VC placement strategy generated by the user, and when the change occurs in the VC placement strategy, Dynamically add, modify, or delete placement strategies.

자원 정보 제공부 (124) 는 가상 클러스터 배치 장치 (100) 에 의해 진행되는 VC 배치를 위해 요구되는 각종 정보, 예를 들어, VC 내의 가상 머신들에 대한 자원 및 상태 정보, 호스트들의 자원 및 상태 정보 및 호스트들이 배치된 랙 정보 등을 VC 배치 엔진 코어 (120) 에 제공하며, 또한, 정보 관리부 (300) 에 제공하여, 정보 관리부 (300) 가 갱신된 정보를 가질 수 있게 한다.The resource information providing unit 124 supplies various information required for the VC arrangement performed by the virtual cluster placing apparatus 100, for example, resource and status information for virtual machines in the VC, resources and status information of the hosts And the rack information in which the hosts are arranged to the VC layout engine core 120 and also provides the information to the information management unit 300 so that the information management unit 300 can have the updated information.

인프라 자원 상태 계산부 (110) 는 VC 배치에 필요한 각종 정보들의 사전 계산 작업을 수행한다. 인프라 자원 상태 계산부 (110) 는 예를 들어 등록된 VC 및 가상 머신 스케줄들을 기초로, 특정 시점에서의 호스트 자원 상태를 계산할 수 있다. 특정 시점에서의 호스트 자원 상태는 가상 클러스터 스케줄링 프레임워크 (1000) 가 다양한 시간 조건을 기반으로 구동될 수 있도록 한다. 가상 클러스터 스케줄링 프레임워크 (1000) 는 예를 들어, VC 구동 시간 스케줄링 엔진(미도시)을 포함하고, 구동 시간 스케줄링 엔진에 특정 시점에서의 호스트 자원 상태를 제공할 수도 있다. 이에 따라, VC가 구동 시점에서 호스트 자원 부족으로 인한 구동 불가와 같은 문제를 사전에 예방할 수 있다.The infrastructure resource state calculation unit 110 performs a pre-calculation operation of various information required for VC placement. The infrastructure resource status calculation unit 110 can calculate the host resource status at a specific time point, for example, based on registered VCs and virtual machine schedules. The host resource state at a particular point in time allows the virtual cluster scheduling framework 1000 to be driven based on various time conditions. The virtual cluster scheduling framework 1000 may include, for example, a VC run time scheduling engine (not shown) and may provide the run time scheduling engine with a host resource state at a particular point in time. Accordingly, it is possible to prevent problems such as inability to drive due to insufficient host resources at the time of starting the VC.

복수의 계산 모듈 (150) 은 VC 배치 전략에 따라 배치 작업을 수행하기 위한 모듈들이다. 복수의 계산 모듈 (150) 은 예를 들어, VC 정보 핸들링 모듈, VC 서브 그룹화 모듈, VC 관계 속성 분석 모듈, VC 서브 그룹 정보 핸들링 모듈, VC 서브 그룹 파티셔닝 모듈, 호스트 정렬 모듈, 호스트 필터링 모듈, 호스트 추출 모듈, 호스트 선택 모듈, 호스트 상태 갱신 모듈, VC 배치 맵 갱신 모듈, VC 테이블 생성 모듈 및 사용자-정의 기능 모듈 등을 포함한다. 다양한 VC 배치 전략에 따라, 복수의 계산 모듈 (150) 들은 다양한 방식으로 조합될 수 있으며, 하나의 실시예에 의해 제한되지 않는다. 계산 모듈 (150) 들의 조합을 통해 복수의 가상 머신 중 하나를 복수의 호스트에 배치할 수 있다.The plurality of calculation modules 150 are modules for performing batch operations according to the VC placement strategy. The plurality of calculation modules 150 may include, for example, a VC information handling module, a VC subgrouping module, a VC relationship attribute analysis module, a VC subgroup information handling module, a VC subgroup partitioning module, a host sorting module, An extraction module, a host selection module, a host status update module, a VC layout map update module, a VC table generation module, and a user-defined function module. In accordance with the various VC placement strategies, the plurality of calculation modules 150 can be combined in various ways and are not limited by one embodiment. One of the plurality of virtual machines may be arranged in a plurality of hosts through the combination of the calculation modules 150. [

도 1에서는 편의를 위해 가상 클러스터 배치 장치 (100) 가 요청 수신부 (122), VC 배치 엔진 코어 (120), 인프라 자원 상태 계산부 (110), 자원 정보 제공부 (124), 전략 실행부 (130), VC 배치 전략 관리부 (140) 및 복수의 계산 모듈 (150) 를 포함하는 것으로 도시되었으나, 각각의 구성요소들은 구현 방법 또는 본 발명의 실시예에 따라 하나의 통합적인 형태 또는 분리적 형태로 설계 구현되는 것도 가능하다. 즉, 본 명세서에 기재된 모든 구성요소들 또는 모듈들은 범용 컴퓨터 또는 서버에 배치되는 저장부에 저장되고 이와 연결된 프로세서에 의해 동작될 수 있다.1, the virtual cluster placement apparatus 100 includes a request receiving unit 122, a VC placement engine core 120, an infrastructure resource state calculation unit 110, a resource information providing unit 124, a strategy execution unit 130 ), A VC placement strategy management unit 140, and a plurality of calculation modules 150, each of which may be designed in one integrated form or in a separate form, according to an implementation method or an embodiment of the present invention It is also possible to implement. That is, all of the elements or modules described herein may be stored in a general-purpose computer or a storage unit disposed in a server and operated by a processor connected thereto.

도 2는 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법을 설명하기 위한 개략적인 흐름도이다. 설명의 편의를 위해 도 1에서의 가상 클러스터 배치 장치 (100) 의 구성요소들을 참조하여 설명한다.FIG. 2 is a schematic flowchart for explaining a virtual cluster arrangement method according to an embodiment of the present invention. The description will be made with reference to the constituent elements of the virtual cluster placement apparatus 100 shown in FIG.

가상 클러스터 배치 방법은 가상 클러스터 배치 장치 (100) 의 요청 수신부 (122) 가 VC 스케줄 관리부 (200) 로부터 VC 배치 요청을 수신하면서 개시된다. 먼저, VC 배치 엔진 코어 (120) 는 VC 배치 요청에 응답하여, 복수의 가상 머신을 포함하는 VC 시스템에 대한 시스템 정보를 자원 정보 제공부 (124) 로부터 수신한다 (S210). VC 시스템에 대한 시스템 정보는 가상 머신의 리스트, 호스트의 리스트, 호스트들이 배치되는 랙의 리스트등을 포함한다. 가상 머신의 리스트 및 호스트의 리스트는 내부 가상 컴퓨팅 용과 공용 가상 컴퓨팅 용 가상 머신의 리스트 및 호스트의 리스트로 구분될 수 있다. 시스템 정보 수신 단계는 VC 배치를 위한 데이터 저장 공간 확보 및 각종 변수의 초기화 과정을 포함하는 초기화 단계를 수반할 수도 있다.The virtual cluster placement method is started when the request reception unit 122 of the virtual cluster placement apparatus 100 receives the VC placement request from the VC schedule management unit 200. [ First, in response to the VC placement request, the VC placement engine core 120 receives system information about the VC system including a plurality of virtual machines from the resource information providing unit 124 (S210). The system information for the VC system includes a list of virtual machines, a list of hosts, a list of racks in which hosts are located, and the like. The list of virtual machines and the list of hosts can be divided into a list of virtual machines for internal virtual computing, a list of virtual machines for shared virtual computing, and a list of hosts. The system information receiving step may involve an initialization step including securing a data storage space for VC placement and initializing various variables.

한편, VC 배치 엔진 코어 (120) 는 VC 배치 요청이 VC 이주에 대한 요청인 경우, 자원 정보 제공부 (124) 로부터 수신된 호스트 리스트에서 기 선택된 호스트들을 제거하는 단계를 추가적으로 포함할 수 있다.On the other hand, the VC placement engine core 120 may further include removing the pre-selected hosts from the host list received from the resource information providing unit 124 when the VC placement request is a request for VC migration.

또한, VC 배치 엔진 코어 (120) 는 인프라 자원 상태 계산부 (110) 에 VC가 구동될 시점에서의 호스트 자원 상태의 계산을 요청하고, 이를 수신할 수 있다. 이 경우, VC가 구동될 시점에서 다른 예약된 VC들로 인해 자원이 부족한 문제를 사전에 예방할 수 있다.In addition, the VC placement engine core 120 may request the infrastructure resource state calculation unit 110 to calculate the host resource state at the time when the VC is driven, and receive the calculation. In this case, it is possible to prevent a resource shortage problem due to other reserved VCs at the time when the VC is driven.

다음으로, VC 배치 엔진 코어 (120) 는 VC 배치 전략에 따라 VC 내의 복수의 가상 머신들을 배치한다. VC 배치 엔진 코어 (120) 는 디폴트 VC 배치 전략을 사용할 수 있으며, VC 전략 관리부(140)로부터 VC 배치 전략을 수신하고, 수신된 VC 배치 전략을 사용할 수도 있다.Next, the VC placement engine core 120 places a plurality of virtual machines in the VC according to the VC placement strategy. The VC placement engine core 120 may use the default VC placement strategy, receive the VC placement strategy from the VC strategy management unit 140, and use the received VC placement strategy.

이하에서, VC 배치에 따른 VC 내의 가상 머신들을 배치하는 동작들은 독립적인 계산 모듈 (150) 에 의해 수행되도록 구성된다. 예를 들어 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계는 적어도 다음의 계산 모듈 (150) (들) 을 통해 복수의 가상 머신의 배치와 연관된 계산을 수행한다. 여기서, 계산 모듈 (150) 각각은, 서브 그룹에 대한 정보를 핸들링하는 단계, 서브 그룹을 파티셔닝하는 단계, 호스트를 정렬하는 단계, 호스트를 필터링하는 단계, 호스트를 추출하는 단계 또는 사용자 정의된 기능을 수행하는 단계 중 적어도 하나의 단계를 수행하도록 구성될 수 있다. 복수의 계산 모듈 (150) 들은 다양하게 조합될 수 있으며, VC 배치 전략에 따라 사용되는 계산 모듈 (150) 들은 상이할 수 있다.Hereinafter, the operations of placing virtual machines in the VC according to the VC placement are configured to be performed by the independent calculation module 150. [ For example, placing one of the plurality of virtual machines on one of the plurality of hosts performs calculations associated with placement of the plurality of virtual machines through at least the following calculation module 150 (s). Here, each of the calculation modules 150 may be configured to perform the steps of: handling information about a subgroup, partitioning a subgroup, sorting the host, filtering the host, extracting the host, And performing at least one of the following steps. The plurality of calculation modules 150 can be variously combined, and the calculation modules 150 used according to the VC placement strategy can be different.

또한, 이하에서는 다양한 VC 배치 전략 중 예시적인 동적 VC 분할 배치 전략으로 VC 내의 가상 머신들을 배치하는 방법을 설명한다. 그러나, VC 배치 전략은 이에 제한되지 않고, 정적 VC 분할 기반 배치 전략일 수도 있다.In the following, a method of arranging virtual machines in a VC with an exemplary dynamic VC division placement strategy among various VC placement strategies will be described. However, the VC placement strategy is not limited thereto, and may be a static VC division-based placement strategy.

동적 VC 분할 배치 전략에 따라, 복수의 가상 머신은 서브 그룹으로 분류된다 (S220). 다음으로, 서브 그룹 사이의 관계 속성 또는 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성이 결정된다 (S230). 다음으로, 서브 그룹 사이의 관계 속성 또는 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성에 따라, 복수의 가상 머신 중 하나가 복수의 호스트 중 하나에 배치된다 (S240).In accordance with the dynamic VC partitioning strategy, a plurality of virtual machines are classified into subgroups (S220). Next, a relationship attribute between the subgroups or a relation attribute between a plurality of virtual machines in the subgroup is determined (S230). Next, one of the plurality of virtual machines is placed in one of the plurality of hosts in accordance with the relationship attribute between the subgroups or the relationship attribute between the plurality of virtual machines in the subgroup (S240).

다음으로, 모든 가상 머신에 대한 배치가 완료되었는지 판정되고 (S250), 모든 가상 머신이 배치되면, VC 배치는 종료된다. 모든 가상 머신이 배치되지 않은 경우, 단계 S240이 반복된다. 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계는 예를 들어, 복수의 가상 머신의 개수만큼 반복될 수 있고, 임의의 규모 예를 들어 2 또는 3개씩의 가상 머신이 복수의 호스트에 동시에 배치될 수 있다.Next, it is determined whether placement for all the virtual machines is completed (S250), and when all the virtual machines are disposed, the VC placement ends. If all of the virtual machines are not disposed, step S240 is repeated. The step of placing one of the plurality of virtual machines in one of the plurality of hosts can be repeated, for example, by the number of the plurality of virtual machines, and a virtual machine of any size, for example, two or three virtual machines, As shown in FIG.

배치 전략 실행부(130)는 내부 가상 컴퓨팅 자원 용 VC에 대한 배치를 마친 후, 배치 결과를 VC 배치 코어에 반환할 수 있다. VC 배치 엔진 코어(120)는 배치 결과가 성공적인 경우, 최종적으로 VC 배치 맵을 생성하여 VC 스케줄 관리부 (200) 에 테이블 형태로 전달한다. 그 후, 요청 받은 VC 내의 가상 머신 각각에 대해 구동될 호스트의 식별자가 부여된다. VC 배치 맵이란 VC 내에서 VM 들 및 VM 들이 배치된 호스트들을 나타낸다. VC 배치 맵은 VC 내에서의 각종 관계 특성을 고려하기 위해 제공된다. VM 배치와는 다르게 VC 내에서는 VM의 수가 많을수록 일회적인 배치 계산만으로 배치를 수행하기 어려울 수 있다. 이에 따라, VC 내의 VM들이 배치된 관계를 고려하여 다른 VM들의 배치가 결정될 수 있다. VC 배치 맵은 VM이 호스트에 배치될 때마다 지속적으로 갱신될 수 있다.The placement strategy execution unit 130 can return the placement result to the VC placement core after finishing the placement for the VC for the internal virtual computing resource. When the placement result is successful, the VC placement engine core 120 finally generates a VC placement map and delivers it to the VC schedule management unit 200 in the form of a table. Thereafter, an identifier of the host to be driven is assigned to each of the virtual machines in the requested VC. The VC placement map indicates hosts where VMs and VMs are placed in the VC. The VC layout map is provided for considering various relationship characteristics in the VC. Unlike VM placement, the larger the number of VMs in a VC, the more difficult it is to perform placement with only a single batch calculation. Accordingly, the arrangement of the other VMs can be determined in consideration of the relation in which the VMs in the VC are arranged. The VC placement map can be continuously updated whenever the VM is deployed on the host.

이하에서는, 단계 220 내지 250을 도 3 내지 도 5를 참조하여 구체적으로 설명한다. 도 3은 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법을 설명하기 위한 개략도이다. 도 4a 및 4b는 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법의 구체적인 적용예를 설명하기 위한 개략도들이다. 도 5는 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법의 구체적인 적용예에서 복수의 가상 머신을 포함하는 VC가 복수의 호스트에 배치되는 예시를 설명하기 위한 개념도이다.Hereinafter, steps 220 to 250 will be described in detail with reference to Figs. 3 to 5. Fig. 3 is a schematic diagram for explaining a virtual cluster arrangement method according to an embodiment of the present invention. 4A and 4B are schematic diagrams for explaining a specific application example of a virtual cluster arrangement method according to an embodiment of the present invention. 5 is a conceptual diagram for explaining an example in which a VC including a plurality of virtual machines is arranged in a plurality of hosts in a specific application example of a virtual cluster arrangement method according to an embodiment of the present invention.

도 3을 참조하면, VC 내의 가상 머신들이 구동될 호스트를 결정하기 위한 복수의 동작들이 도시된다. 각 동작들은 도 3에서와 같이 독립적인 모듈로 존재할 수도 있으나, 일부 또는 전부는 통합될 수도 있다. 복수의 모듈들은 전처리 흐름, 주 처리 흐름 및 후 처리 흐름으로 구성될 수 있다.Referring to FIG. 3, a plurality of operations for determining a host on which virtual machines in a VC are to run are shown. Each of the operations may exist as an independent module as in FIG. 3, but some or all of them may be integrated. The plurality of modules may be comprised of a pre-processing flow, a main processing flow, and a post-processing flow.

먼저, 전처리 흐름은 VC 정보 핸들링 모듈 (312), VC 서브 그룹화 모듈 (314), VC 관계 속성 분석 모듈 (316) 및 사용자-정의 기능 모듈 (318) 을 포함한다. 전처리 단계의 N1에서는 VC에 대한 정보가 제공되고, VC에 대한 정보가 처리되고, VC가 서브 그룹화된다.First, the preprocessing flow includes a VC information handling module 312, a VC subgrouping module 314, a VC relationship attribute analysis module 316, and a user-defined function module 318. In N1 of the preprocessing step, information about the VC is provided, information about the VC is processed, and the VCs are sub-grouped.

VC 정보 핸들링 모듈 (312) 은 VC 내 가상 머신들에 대한 정보의 수정 또는 변경을 위한 기능 모듈이며, VC의 서브 그룹화 모듈은 가상 머신들을 특정한 기준에 분류한다. 서브 그룹은 1개 또는 그 이상으로 생성될 수 있다. 여기서, 특정한 기준은 제한되지 않으며, 가상 머신들의 서브 그룹화는 사용자의 선택에 의해 수행될 수도 있으며, 분류 히스토리 또는 기 저장된 분류 정보에 기초하여 자동적으로 수행될 수도 있다. 서브 그룹 내 또는 서브 그룹 간 관계 속성은 VC 내 가상 머신들의 특성을 추출하고 분석하여 결정될 수 있다. 예를 들어, 서브 그룹은 가상 머신의 자원요구사항에 기초하여 분류될 수 있다. 나아가, 미리 결정된 기준에 따라 서브 그룹의 분류를 검증하는 단계가 더 포함될 수 있다.The VC information handling module 312 is a functional module for modifying or changing information on virtual machines in the VC, and the subgrouping module of the VC classifies the virtual machines into specific criteria. The subgroups may be generated by one or more. Here, the specific criteria are not limited, and the subgrouping of the virtual machines may be performed by the user's selection, and may be performed automatically based on the classification history or the stored classification information. The relationship attributes within a subgroup or between subgroups can be determined by extracting and analyzing the characteristics of the virtual machines in the VC. For example, the subgroups can be classified based on the resource requirements of the virtual machine. Further, the step of verifying the classification of the subgroup according to a predetermined criterion can be further included.

VC 관계 속성 분석 모듈 (316) 에서는 VC 내의 서브 그룹 간 또는 서브 그룹 내 가상 머신들 간의 관계 속성이 결정된다. 관계 속성이란, 호스트/랙/서비스지역 수준으로 가상 머신들 간의 통합 혹은 분산 배치가 요구되는지와 관련한다. 관계 속성은, VC 내의 가상 머신들의 배치 시 고려해야 할 사항들에 따라, 복수의 가상 머신을 같은 호스트로 배치하는 통합 배치 및 복수의 가상 머신 각각을 서로 다른 호스트로 배치하는 분산 배치로 나뉜다. 결정된 관계 속성은 주 처리 흐름에서 사용된다. 관계 속성은 사용자의 선택에 의해 결정될 수도 있으며, 분류 히스토리 또는 기 저장된 분류 정보에 기초하여 자동적으로 결정될 수도 있다. 예를 들어, 서브 그룹 내 또는 서브 그룹 간 관계 속성은 VC 내 가상 머신들의 특성이 추출되고 분석되어 결정될 수 있다. 사용자-정의 기능 모듈 (318) 은 그 외 서브 그룹과 관련한 기능을 수행하도록 구성될 수 있다. 나아가, 관계 속성은 미리 결정된 기준에 따라 검증될 수 있다.In the VC relationship property analysis module 316, the relation attributes between the virtual machines in the sub-group or the sub-group in the VC are determined. Relationship attributes are concerned with whether integration or distributed deployment between virtual machines at the host / rack / service area level is required. The relationship attribute is divided into an integrated layout in which a plurality of virtual machines are arranged in the same host and a distributed layout in which each of a plurality of virtual machines is arranged in different hosts, according to matters to be considered in placing virtual machines in the VC. The determined relationship attributes are used in the main process flow. The relationship attribute may be determined by the user's selection, and may be automatically determined based on the classification history or the previously stored classification information. For example, the relationship attributes within a subgroup or between subgroups can be determined by extracting and analyzing the characteristics of the virtual machines in the VC. The user-defined function module 318 may be configured to perform functions related to other subgroups. Furthermore, the relationship attribute can be verified according to a predetermined criterion.

도 4a를 참조하면, VC MyHadoopVC은 5 개의 가상 머신들 (440) 을 포함한다. 가상 머신들 (440) 중 NameNode_JobTracker들 (441, 442) 은 서브 그룹 Master로 분류되고, DataNode_TaskTracker들 (443, 444, 445) 은 서브 그룹 Slave01로 분류된다. 또한, 서브 그룹 Master 내에서의 NameNode_JobTracker들 (441, 442) 의 관계 속성은 분산 배치고, 서브 그룹 Slave01 내에서의 DataNode_TaskTracker들 (443, 444, 445) 의 관계 속성은 통합 배치 이다. 서브 그룹 Master와 서브 그룹 Slave01 사이의 관계 속성은 분산 배치다.Referring to FIG. 4A, VC MyHadoopVC includes five virtual machines 440. Among the virtual machines 440, NameNode_JobTrackers 441 and 442 are classified into a subgroup Master, and DataNode_TaskTrackers 443, 444, and 445 are classified into a subgroup Slave01. The relation attributes of NameNode_JobTrackers 441 and 442 in the subgroup Master are distributed and the relation attributes of DataNode_TaskTrackers 443, 444 and 445 in the subgroup Slave01 are integrated. The relationship attribute between subgroup Master and subgroup Slave01 is distributed.

이러한 관계 속성은 예를 들어, XML을 이용하여 식별되고 저장될 수 있다. 도 4b를 참조하면, VC의 id는 MyHadoop이며, VC 내의 서브 그룹의 id는 각각 Master, Slave01이다. 서브 그룹들은 분산 배치로 그루핑되어 있다. 도 4b에서는 예시적으로 분산 배치는 Availability로 표시된다. 서브 그룹 Master 내에서의 관계 속성은 분산 배치며, 서브 그룹 Master 내의 가상 머신 NameNode_JobTracker01, NameNode_JobTracker02은 이에 따라 서로 상이한 호스트에 마운트되도록 하는 관계 속성을 갖는다. 서브 그룹 Slave01 내에서의 관계 속성은 통합 배치이며, 예시적으로 Affinity_BestEffort로 표시된다. 서브 그룹 Slave01 내의 가상 머신 DataNode_TaskTracker01, DataNode_TaskTracker02, DataNode_TaskTracker03은 최대한 동일한 호스트에 마운트되도록 하는 관계 속성을 갖는다.These relationship attributes can be identified and stored using, for example, XML. Referring to FIG. 4B, the id of the VC is MyHadoop and the id of the subgroup in the VC is Master and Slave01, respectively. The subgroups are grouped in a distributed arrangement. In FIG. 4B, an exemplary distribution arrangement is indicated as Availability. The relational attributes in the subgroup Master are distributed and the virtual machines NameNode_JobTracker01 and NameNode_JobTracker02 in the subgroup Master have relationship attributes that allow them to be mounted on different hosts accordingly. The relationship attributes within the subgroup Slave01 are in an integrated arrangement and are illustratively represented by Affinity_BestEffort. The virtual machines DataNode_TaskTracker01, DataNode_TaskTracker02, DataNode_TaskTracker03 in the subgroup Slave01 have relationship attributes that allow them to be mounted on the same host as possible.

다시 도 3을 참조하면, N2에서의 서브 그룹에 대한 데이터 및 관계 속성이 주 처리 흐름에서 사용된다. 주 처리 흐름에서는 선택적으로 서브 그룹 단위의 정보 수정 정렬 등을 수행하기 위한 VC 서브 그룹 정보 핸들링 모듈 (321) 이 포함될 수 있다. 또한, 동적 VC 분할 배치 전략에서는 VC 서브 그룹 파티셔닝 모듈 (322) 이 포함된다. VC 서브 그룹 파티셔닝 모듈 (322) 은 VC 내의 가상 머신들을 특정 호스트에 배치하기 위한 분할 크기를 산출한다. 추가적으로, VC 서브 그룹 파티셔닝 모듈 (322) 을 포함하는 경우, 결정된 VC 분할 크기만큼의 가상 머신들이 특정 호스트에 배치 결정될 수 있다.Referring back to FIG. 3, data and relationship attributes for subgroups at N2 are used in the main process flow. In the main process flow, a VC subgroup information handling module 321 for selectively performing information modification sorting on a subgroup basis may be included. Also included in the dynamic VC partitioning strategy is a VC subgroup partitioning module 322. The VC subgroup partitioning module 322 calculates a partition size for placing virtual machines in the VC on a specific host. Additionally, if a VC subgroup partitioning module 322 is included, as many virtual machines as the determined VC partition size can be deployed to a particular host.

이외에도 호스트 리스트의 호스트들을 설정된 기준으로 정렬하기 위한 호스트 오더링 모듈 (323), 호스트들을 설정된 기준으로 필터링하기 위한 호스트 필터링 모듈 (324) 및 설정된 기준으로 호스트를 추출하기 위한 호스트 추출 모듈 (325) 및 호스트와 연관된 사용자-정의 기능 모듈 (326) 이 주 처리 흐름에 포함될 수 있다. N3에서 VC의 서브 그룹에 대한 데이터, 관계 속성, VC 서브 그룹의 분할 크기, 필터링/추출/정렬된 호스트 리스트가 제공된다.In addition, a host ordering module 323 for sorting the hosts in the host list based on the set criteria, a host filtering module 324 for filtering the hosts based on the set criterion, a host extraction module 325 for extracting hosts based on the set criterion, A user-defined function module 326 associated with the main process flow may be included in the main process flow. In N3, data for the subgroup of VCs, relationship attributes, partition size of the VC subgroup, and list of filtered / extracted / sorted hosts are provided.

다음으로, 주 처리 흐름에서는 호스트 선택 모듈 (327) 이 호스트 리스트에서 가상 머신이 배치될 특정 호스트를 선택한다. 호스트 선택 모듈 (327) 은 제공된 정보에 기초하여 호스트 선택 모듈이 구동되는 시점에서 가상 머신이 배치될 호스트를 결정한다. 다음으로, 호스트 상태 갱신 모듈 (328) 은, 가상 머신의 배치 후 구동될 호스트가 결정된 VC 내의 가상 머신에 대한 정보를 기초로 호스트의 자원 및 상태 정보를 갱신한다. 주 처리 흐름에서는 전술된 호스트 선택 모듈 (327) 과 호스트 상태 갱신 모듈 (328) 만으로 구성될 수도 있다.Next, in the main process flow, the host selection module 327 selects a specific host to which the virtual machine is to be placed in the host list. The host selection module 327 determines, based on the provided information, the host where the virtual machine is to be placed at the time when the host selection module is driven. Next, the host state update module 328 updates the resource and state information of the host based on the information about the virtual machine in the VC determined by the host to be driven after the placement of the virtual machine. In the main process flow, only the host selection module 327 and the host status update module 328 described above may be configured.

다음으로는 후처리 흐름에서 배치 스케줄링 요청된 VC 내 모든 가상 머신들에 대해 배치될 호스트들이 모두 계산되었는지를 검사하는 VC 배치 종료 검사 모듈 (331) 이 배치 종료 여부를 결정한다. 아직 배치할 가상 머신들이 남은 경우, VC 배치 맵 갱신 모듈 (332) 이 VC의 배치된 가상 머신들에 대한 맵을 갱신하고, 맵을 주 스케일링 처리 모듈들에 제공한다. 이에 따라, N2에서 다시 주 처리 흐름이 반복된다. 즉, 주 처리 흐름의 모듈들은 갱신된 배치 맵에 액세스 가능하도록 구성된다. 이에 따라 호스트 선택 모듈 (327) 은 관계 속성에 따라 가상 머신을 복수의 호스트 중 하나에 배치하도록 배치 맵에 기초하여 호스트를 선택한다. 가상 머신들의 배치가 반복되면서, 가상 머신들은 관계 속성에 따라 동일한 호스트에 배치될 수도 있으며, 서로 다른 호스트에 배치될 수도 있다. VC 내의 모든 가상 머신들에 대한 배치가 완료된 경우 VC 배치 맵 생성 모듈 (333) 이 VC 배치 테이블을 생성하게 되고, VC 배치 전략의 수행이 종료된다.Next, in the post-process flow, the VC batch termination checking module 331 which determines whether all the hosts to be placed for all the virtual machines in the VC requested in the batch scheduling have been calculated determines whether or not the batch is terminated. If there are still virtual machines to be placed, the VC placement map update module 332 updates the map of the virtual machines placed in the VC, and provides the map to the main scaling processing modules. Thereby, the main processing flow is repeated again at N2. That is, the modules of the main process flow are configured to be accessible to the updated batch map. Accordingly, the host selection module 327 selects a host based on the deployment map so that the virtual machine is placed in one of the plurality of hosts in accordance with the relationship attribute. As the placement of virtual machines is repeated, virtual machines may be placed on the same host or on different hosts depending on the relationship attributes. When the placement of all the virtual machines in the VC is completed, the VC placement map generation module 333 generates the VC placement table, and the execution of the VC placement strategy is terminated.

도 5를 참조하면, 복수의 가상 머신들 (430) 이 배치된 호스트들 (510, 520, 530) 이 도시된다. 도 4a 및 4b에서의 관계 속성에 따라, NameNode_JobTracker01 (441), NameNode_JobTracker02 (442) 는 서로 다른 호스트 (510, 520) 에 배치되었으며, DataNode_TaskTracker01 (443), DataNode_TaskTracker02 (444), DataNode_TaskTracker03 (445) 은 동일한 호스트 (530) 에 그러나 NameNode_JobTracker01 (441), NameNode_JobTracker02 (442) 과는 상이한 호스트 (530) 에 배치되었다. Referring to FIG. 5, hosts 510, 520, 530 in which a plurality of virtual machines 430 are located are shown. DataNode_TaskTracker01 443, DataNode_TaskTracker02 444 and DataNode_TaskTracker03 445 are located in different hosts 510 and 520, respectively, according to the relationship attributes in FIGS. 4A and 4B, NameNode_JobTracker01 441 and NameNode_JobTracker 02 442 are located in different hosts 510 and 520, (530) but is different from NameNode_JobTracker01 (441) and NameNodeJobTracker02 (442).

본 발명의 일 실시예에 따른 가상 클러스터 배치 방법에 따르면, VC의 가상 머신들은 그 동작 특성에 따라 최적화된 동작을 하도록 배치 결정되고 배치될 수 있다. 또한, 다양한 VC 배치 전략에 따라 독립된 계산 모듈의 조합으로 가상 클러스터 배치 방법이 수행될 수 있다. 또한, VC의 어플리케이션은 제한되지 않고, 하둡, R등을 포함할 수 있다.According to the virtual cluster placement method according to an embodiment of the present invention, the virtual machines of the VC can be arranged and arranged so as to perform an optimized operation according to their operating characteristics. In addition, a virtual cluster placement method can be performed with a combination of independent calculation modules according to various VC placement strategies. Further, the application of the VC is not limited, and may include Hadoop, R, and the like.

도 6 내지 도 10은 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법이 나타내는 처리 성능과 성능 지표들을 설명하기 위한 도표들이다.FIGS. 6 to 10 are graphs for explaining the processing performance and the performance indexes of the virtual cluster placement method according to an embodiment of the present invention.

도 6 내지 도 10에서는 실험을 통해 VC 배치 프레임워크에서 구현 가능한 다양한 VC 배치 알고리즘들이 나타내는 처리 성능, 서비스 대기 시간, 자원 활용률, 배치 계산 시간과 같은 성능 지표들을 측정하여 그 결과를 도시한다.6-10 show performance indicators such as processing performance, service latency, resource utilization rate and batch calculation time, which are shown by various VC placement algorithms that can be implemented in the VC placement framework through experiments.

본 실험을 위해 가상 클러스터 서비스 환경을 시뮬레이션하는 시뮬레이터를 구현하였으며, 시뮬레이터에서는 2000대로 구성된 중규모 내부 클라우드 (PrivateCloud) 에서 VC 사용자 (개인 혹은 집단) 가 사용할 VC에 대한 다양한 양적 조건 (VC 규모, VM 사양) 을 기반으로 가상 클러스터를 생성/사용/소멸하는 상황을 시뮬레이션하였다. 실험에서 사용된 각각의 가상화된 호스트들은 32코어 CPU에 메모리 64GB의 하드웨어 자원 사양을 가지고 있다. 따라서 본 실험에서의 가상 컴퓨팅 서비스 환경은 총 64,000CPU 코어와 128,000GB의 메모리 용량을 사용자들에게 제공한다.For this experiment, we implemented a simulator to simulate the virtual cluster service environment. In the simulator, various quantitative conditions (VC scale, VM specification) for VC to be used by VC users (individual or group) in a medium - sized inner cloud (PrivateCloud) And virtual cluster is created / used / destroyed based on the simulation result. Each virtualized host used in the experiment has a hardware resource specification of 64GB of memory on a 32-core CPU. Therefore, the virtual computing service environment in this experiment provides users with a total of 64,000 CPU cores and 128,000GB of memory capacity.

본 실험을 위해 적용된 배치 전략은 기존의 가상 머신 단위의 배치 알고리즘을 기반으로 한 VC 배치 전략 3종 (FirstFit-VM, NextFit-VM, Volume-VM) 과 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법의 일 실시예인 동적 가상 클러스터 분할 배치를 기반으로 하는 VC 배치 전략 3종 (FirstFit-VC, NextFit-VC, Volume-VC) 이며, 이 두군을 비교 평가한다.The placement strategies applied for this experiment are three kinds of VC placement strategies (FirstFit-VM, NextFit-VM, and Volume-VM) based on the existing placement method of virtual machine unit and the virtual cluster arrangement according to one embodiment of the present invention (FirstFit-VC, NextFit-VC, and Volume-VC) based on the dynamic virtual cluster partition arrangement, which is one embodiment of the method.

동적 VC 분할 기반 배치 전략들은 배치 중 동적으로 VC를 분할하며 배치를 수행한다. 예를 들어, FirstFit-VC의 경우, 첫 번째 가용 호스트 탐색 후 발견 시, 해당 호스트에 배치 가능한 가상 머신의 수만큼을 VC 분할 크기로 결정한 뒤, 해당 분할 크기로 배치 중인 VC를 분할하며 배치를 수행한다.Dynamic VC partition-based deployment strategies dynamically partition VCs during placement and perform deployment. For example, in the case of FirstFit-VC, after finding the first available host, the number of virtual machines that can be allocated to the host is determined as the VC partition size, do.

Volume-VM과 Volume-VC 배치 전략은 Bin-Packing 배치 알고리즘 중 Worst-Fit배치 알고리즘의 한 종류로서, 각 호스트 별 가용 자원에 대한 점수화 과정을 거친 뒤, 가장 점수가 높은 호스트 (가장 여유 자원이 많은 호스트) 에 배치 중인 가상 클러스터의 가상 머신을 분할하여 배치 결정한다. 호스트 점수화 과정에서 사용된 공식은 TimothyWood에 의해 창안된 호스트 점수화 공식을 활용했다. Volume-VM 배치 전략과 Volume-VC 배치 전략의 차이점은 가장 높은 점수를 가진 호스트에 가상 머신들을 최대한 배치하느냐 아니냐의 여부이다. 즉, Volume-VM 의 경우, 가장 높은 점수를 가진 호스트 발견 시 해당 호스트에 배치 중인 가상 클러스터 내 가상 머신들 중 1 대에 대한 배치 결정을 하고, 다시 호스트 점수화 과정을 수행하는 반면, Volume-VC의 경우 점수가 가장 높은 호스트 발견 시, 해당 호스트에 배치 가능한 가상 머신의 수를 산출 한 다음, 산출된 배치 가능한 가상 머신 수만큼 배치 중인 가상 머신들을 배치한 다음, 다시 호스트 점수화 과정을 수행한다.The Volume-VM and Volume-VC placement strategy is a type of Worst-Fit placement algorithm among the bin-packing placement algorithms. After scoring the available resources for each host, the highest score host The virtual machine of the virtual cluster being arranged in the virtual cluster is determined and placed. The formula used in the host scoring process utilized the host scoring formula developed by TimothyWood. The difference between a Volume-VM deployment strategy and a Volume-VC deployment strategy is whether or not to deploy the virtual machines to the highest score host. That is, in the case of Volume-VM, when a host having the highest score is found, one of the virtual machines in the virtual cluster being placed on the host is determined for placement, and the host scoring process is performed again. When the host having the highest score is found, the number of virtual machines that can be placed on the host is calculated. Then, the virtual machines are placed as many as the number of deployable virtual machines, and then the host scoring process is performed again.

본 실험에서, VC 사용자들은 VC 규모를 2대에서 256대까지 2의 N승으로 지정할 수 있으며, VC 내 VM 사양은 CPU의 경우, 1개에서 8개까지, 메모리 자원의 경우, 1GB에서 부터 16GB 메모리까지 지정할 수 있다.In this experiment, VC users can designate the VC scale from 2 to 256, with an N power of 2. In the VC, the VM specification is 1 to 8 for the CPU, 1 GB to 16 GB for the memory resource Memory can be specified up to.

또한 VC 사용자들은 일정 시간을 사용한 다음 가상 클러스터 사용 종료를 통해 가상 컴퓨팅 시설에 사용 중인 자원을 반환하는 방식을 취한다. FIFO 구조의 대기 큐 (WaitingQueue) 에 VC 생성 요청이 누적되며, FCFS 방법을 통해 가상 클러스터 배치 및 할당이 이루어진다. 따라서 시뮬레이션이 시작된 다음, 일정 시간이 지나게 되면, 자원 부족으로 인해, 신규 VC 사용자들은 앞서 자원을 점유한 VC 사용자들이 자원을 반환할 때까지 대기하게 되며, 이로 인해 대기 시간이 증가하게 된다.In addition, VC users take a certain amount of time and then return resources that are in use to the virtual computing facility through termination of the virtual cluster. VC generation requests are accumulated in the waiting queue of the FIFO structure, and virtual cluster placement and allocation are performed through the FCFS method. Therefore, after a certain period of time has elapsed after the simulation starts, due to a shortage of resources, new VC users wait until the VC users occupying resources ahead of them return resources, thereby increasing waiting time.

VC 사용자들이 요청하는 가상 클러스터의 크기, 가상 클러스터 내 가상 머신의 사양, 사용 시간, 요청 빈도 (Inter-ArrivalTime) 등은 Uniform 분포를 따른다고 가정하여 전반적으로 각 조건에 대해 고르게 VC 사용 요청을 형성하여 가상 클러스터 서비스를 사용하도록 실험을 설계/구현하였다. 또한 본 실험에서는 주어진 사용 시간 동안 사용하고 종료하는 것을 가정하였으며, 주어진 컴퓨팅 자원을 적극적으로 사용하는 경우, 생성 요청한 가상 클러스터에서 CPU 집약적인 처리 작업을 하는 것으로 가정한다. 그 이유는 네트워크 집약적인 처리 작업을 할 경우, 가상화 소프트웨어에 따라 각 호스트마다 구동하는 관리 가상 머신 (ManagementVM 또는 Dom0) 의 CPU 부하 및 네트워크 부하로 인해 사용자 가상 머신들 (UserVM 또는 DomU) 의 CPU 등의 주요 컴퓨팅 자원 사용에 영향을 줄 수 있기 때문이다. 이와 같은 맥락에서 각 호스트의 관리 가상 머신은 사용자 가상 머신의 CPU 사 용에 높은 영향을 줄 만큼 부하를 일으키지 않는 상태가 유지됨을 가정한다. 본 실험은 각 배치 알고리즘별로 총 30회 반복 실행하여 결과를 산출했다.It is assumed that the size of the virtual cluster requested by the VC users, the specification of the virtual machine in the virtual cluster, the usage time and the inter-arrival time follow the uniform distribution, so that the VC use request is uniformly formed for each condition Experiments were designed and implemented to use virtual cluster services. In this experiment, it is assumed that it is used and terminated for a given usage time, and when a given computing resource is actively used, it is assumed that a CPU-intensive processing operation is performed in a virtual cluster to be generated. Because of the CPU load and the network load of the management virtual machine (ManagementVM or Dom0) running on each host according to the virtualization software when the network intensive processing is performed, the CPU of the user virtual machine (User VM or DomU) This can affect the use of major computing resources. In this context, it is assumed that the management virtual machine of each host maintains a state that does not cause a load so as to have a high effect on the CPU usage of the user virtual machine. This experiment was repeated 30 times for each batch algorithm, and the result was calculated.

도 6은 VC 배치 전략 별, 분당 요청되는 VC 사용 요청의 수 (Workload의 수) 에 따른 처리량을 나타내며, 도 7은 서비스 응답 시간 (Response Time) 을 나타낸다. 도 6 및 도 7을 참조하면, VM 단위 배치 스케줄링을 수행하는 종래의 VC 배치 전략들은 대체적으로 분당 14개에서 18개 사이의 VC 사용 요청 발생 시점부터 서비스 응답 시간의 급격한 증가를 나타내었으며, 분당 처리량의 한계를 나타내었다. 특히, Volume-VM 배치 전략의 경우, 가장 낮은 처리 성능을 나타내었으며, 분당 14개 (시간 당 840개) 이상의 VC 사용 요청에 대한 급격한 서비스 응답 시간 증가를 보였다. FirstFit-VM과 NextFit-VM은 각각 분당 16개의 VC 사용 요청이 발생한 시점부터 서비스 응답 시간이 5분 이하로 증가하다가 18개 시점부터는 각각 약 8분과 15분으로 증가를 하며, 분당 20개의 VC 사용 요청이 도착할 경우, 급격한 서비스 응답 시간의 증가를 보였다. 뿐만 아니라, 앞서 언급한 분당 18개 시점부터는 처리량의 한계를 보였다.FIG. 6 shows throughputs according to the number of VC use requests (number of workloads) requested per minute per VC placement strategy, and FIG. 7 shows the response time of service. Referring to FIGS. 6 and 7, conventional VC placement strategies for performing VM-based placement scheduling have generally shown a sharp increase in service response time from the time of 14 to 18 VC usage requests per minute, Respectively. In particular, the Volume-VM deployment strategy showed the lowest throughput performance and showed a dramatic increase in service response times for more than 14 VCs (840 per hour) requests per minute. FirstFit-VM and NextFit-VM each increase the service response time to less than 5 minutes from the time when 16 VC requests per minute are generated, and then increase to about 8 minutes and 15 minutes respectively from 18, , There was a sharp increase in service response time. In addition, the throughput was limited from 18 points per minute mentioned above.

본 발명의 일 실시예에 따른 가상 클러스터 배치 방법로 구현된 배치 전략들은 분당 20개에서 24개 사이의 VC 사용 요청 발생 시점부터 분당 처리량의 한계를 보였다. 특히, Volume-VM 배치 전략에 대응하는 Voluem-VC 배치 전략은 분당 18개 시점부터 서비스 응답 시간이 증가하기 시작해서 20개를 기점으로 20개 이상의 분당 VC 사용 요청이 도착하는 상황에서 급격한 서비스 응답 시간 증가를 보였다. FirstFit-VC 배치 전략과 NextFit-VC 배치 전략은 분당 20개의 VC 사용 요청이 도착하는 시점에서 미미한 서비스 응답 시간의 증가가 일어나기 시작하다가 22개를 기점으로 22개 이상의 VC 사용 요청이 발생한 시점부터는 급격한 서비스 응답 시간의 증가와 분당 처리량의 한계를 보였다.The deployment strategies implemented with the virtual cluster placement method according to an embodiment of the present invention showed the limit of the throughput per minute from the point of time when 20 to 24 VC usage requests per minute occurred. In particular, the Voluem-VC deployment strategy corresponding to the Volume-VM deployment strategy starts to increase the service response time from 18 points per minute, and when 20 or more minute VC usage requests arrive from 20, Respectively. FirstFit-VC deployment strategy and NextFit-VC deployment strategy start to show a slight increase in service response time when 20 VC usage requests arrive per minute. From 22 VCs, The response time increases and the throughput per minute is limited.

분당 처리량의 경우, FirstFit-VC 배치 전략과 NextFit-VC 배치 전략은 기존의 배치 전략들과 비교하여 FirstFit-VM 배치 전략과 NextFit-VM 배치 전략에 비해 약 17%의 처리 성능 차이를 보였다. Volume-VC 배치 전략은 Volume-VM 배치 전략에 비해 약 46%의 처리 성능 차이를 보임으로써, 대응 배치 전략 간에 가장 큰 처리 성능 차이를 보였다.For the throughput per minute, the FirstFit-VC deployment strategy and the NextFit-VC deployment strategy showed about 17% performance difference compared to the existing deployment strategies compared to the FirstFit-VM deployment strategy and NextFit-VM deployment strategy. The volume-VC placement strategy showed about 46% difference in processing performance compared to Volume-VM placement strategy, showing the largest processing performance difference among the corresponding placement strategies.

도 8은 VC 배치 전략 별 자원 활용률을 나타내며, 자원 활용률은 CPU와 메모리 자원 사용량의 평균을 통해서 산출했다. 자원 활용률은 도 8에서 나타난 분당 처리량과 비슷한 양상을 보인다. 따라서 다양한 영향 요인 중 자원 활용률의 차이로 인해 성능 지표 중 하나인 분당 처리량의 차이가 발생됨을 알 수 있다. 더욱이, FirstFit-VC 배치 전략과 NextFit-VC 배치 전략 및 F기존의 irstFit-VM 배치 전략과 NextFit-VM 배치 전략은 상호간 비슷한 처리 성능과 자원 활용률 및 서비스 응답 시간을 보였다. 분당 처리 작업 규모 22개를 기준으로 대응 배치 전략들 간, 즉 FirstFit-VC과 FirstFit-VM 그리고 Next-VC과 NextFit-VM은 약 23%의 분당 처리량의 차이를 보였으며, Volume-VC과 Volume-VM은 약 43%의 분당 처리량의 차이를 나타냈다.FIG. 8 shows the resource utilization rate by the VC placement strategy, and the resource utilization rate is calculated by the average of CPU and memory resource usage. The resource utilization rate is similar to the throughput per minute shown in FIG. Therefore, it can be seen that the difference in throughput per minute, which is one of the performance indicators, occurs due to the difference in resource utilization rate among various influencing factors. Furthermore, the FirstFit-VC deployment strategy, NextFit-VC deployment strategy, and F's existing FirstFit-VM deployment strategy and NextFit-VM deployment strategy showed comparable throughput, resource utilization, and service response times. VC and Volume Next-V and NextFit-VM showed a difference of about 23% between per-minute throughput, ie, Volume-VC and Volume- The VM showed a difference in throughput of about 43% per minute.

배치 전략 간 성능 차이 발생의 가장 큰 이유는 앞서 언급한 바와 같이, 자원 활용률에서 그 원인을 찾을 수 있다. 부가적인 이유로는 동일한 배치 전략 사상을 기반으로 하더라도, 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법으로 구현된 동적 VC 분할 기반의 배치 전략의 경우, 단일 VM 단위로 VC를 분할하며 배치하는 전략에 비해 빠른 배치가 수행될 수 있다는 점이다. 도 9는 VC 배치 전략 별 VC 크기에 따른 배치 처리 시간을 나타낸다. 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법의 동적 VC 분할 기능을 사용하는 배치 전략들과 각각 대응하는 단일 가상 머신 단위 배치 전략들 사이의 배치 시간 차이는, 가상 클러스터 크기가 커질수록 점점 커진다.The main reason for the difference in performance between deployment strategies is that, as mentioned above, the cause of resource utilization can be found. For the additional reason, in the case of the placement strategy based on the dynamic VC division implemented by the virtual cluster placement method according to an embodiment of the present invention, even if based on the same placement strategy idea, The faster batch can be performed. 9 shows the batch processing time according to the VC size according to the VC placement strategy. The difference in placement time between the placement strategies using the dynamic VC partitioning function of the virtual cluster placement method according to one embodiment of the present invention and the corresponding single virtual machine placement strategies becomes larger as the virtual cluster size becomes larger.

가상 클러스터의 크기가 작을 경우, 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법의 배치 전략들은 배치 시간에 있어서 단일 가상 머신 단위 배치 전략들에 비해 배치 속도에 큰 차이가 없지만, 가상 클러스터 크기 16 에서부터 배치 시간의 격차가 점점 차이가 발생하기 시작해서 가상 클러스터 크기 256에 이르러서는 최대 3배 (Volume-VM과 Volume-VC 비교) 까지 배치 시간의 차이가 발생했다.When the size of the virtual cluster is small, the placement strategies of the virtual cluster placement method according to an embodiment of the present invention do not have a large difference in placement speed compared with the placement plans of a single virtual machine. However, The difference in deployment time started to increase and the difference in deployment time occurred up to 3 times (compared to Volume-VM and Volume-VC) when the virtual cluster size reached 256.

도 10은 분당 사용 요청의 수 22개, 가상 클러스터 크기 256을 처리하는 동안 각 배치 전략 별 VC 분할 크기를 나타낸다. 도 10에서 확인할 수 있는 바와 같이, 배치 처리 시간에 영향을 미치는 다양한 요인 중 가상 클러스터 분할 크기의 차이는 배치 속도에 영향을 미치는 중요한 요소임을 확인할 수 있다. 단일 가상 머신 단위 배치 전략들의 경우, 가상 클러스터 분할 크기는 배치 전략에 설계된 바와 같이 공통적으로 1인 반면, FirstFit-VC는 1.4개, NextFit-VC는 1.7개, Volume-VC는 2.9개이다. 기본적으로 가상 클러스터 분할 크기가 1이상 일 경우, 배치 횟수가 그 비율만큼 반감되는 것을 감안하면, Volume-VC가, 단일 가상 머신 단위 배치 전략인 Volume-VM에 비해 약 3배가량 더 큰 가상 클러스터 분할 크기를 바탕으로 약 3배가량 빠른 배치 스케줄링 처리 시간을 나타낸 이유가 설명된다.Figure 10 shows the VC partition sizes for each placement strategy while processing the number of requests per minute 22, virtual cluster size 256. As can be seen from FIG. 10, among the various factors affecting the batch processing time, the difference in virtual cluster partition size is an important factor affecting the placement speed. For single virtual machine unit deployment strategies, the virtual cluster partition size is 1 as designed in the deployment strategy, while 1.4 for FirstFit-VC, 1.7 for NextFit-VC, and 2.9 for Volume-VC. By default, if the virtual cluster partition size is greater than 1, the number of deployments is reduced by half, so Volume-VC is about 3 times larger than Volume-VM, a single virtual machine deployment strategy. The reason why the batch scheduling processing time is about three times as fast as the size is explained.

동일한 배치 전략과 배치 메커니즘 하에서도 가상 클러스터 분할 크기를 배치 스케줄링 시 고려하는 것은 중대형 가상 클러스터의 배치 처리 시간을 향상하기 위해 매우 중요하기 때문이다.It is important to consider the virtual cluster partition size in batch scheduling even under the same deployment strategy and deployment mechanism, because it is very important to improve batch processing time for medium and large virtual clusters.

이러한 배치 처리 시간 향상은 단순히 배치를 빠르게 하는 것에만 의미를 가지지 않는다. 배치 처리 시간 향상은 대규모 가상 컴퓨팅 환경 (또는 시설) 에서 다양한 규모의 가상 클러스터에 대한 보다 빠른 서비스를 제공하기 위해 배치 시간을 단축하기 위한 기본적인 요소이며, 자원의 활용성에도 영향을 미칠 수 있다. 가상 클러스터 사용자들이 일정 시간 뒤, 사용하던 자원을 반환하고 반환된 자원을 기반으로 새로운 가상 클러스터 사용자에게 재 할당하는 상황에서는 빠른 배치를 통해 낮아진 자원 활용률을 보다 빨리 향상시켜서 일정 수준을 유지해야 하므로 배치 처리 시간 향상은 자원 활용률 향상에 기여할 수 있는 요소 중 하나가 될 수 있다.This improvement in batch processing time is not only meaningful for speeding up batching. Improvement in batch processing time is a fundamental factor for shortening deployment time to provide faster service for virtual clusters of various sizes in a large virtual computing environment (or facility), and can also affect resource availability. In a situation where virtual cluster users return resources they have used after a certain period of time and reallocate them to new virtual cluster users based on the returned resources, it is necessary to maintain a certain level by improving the resource utilization rate faster through quick deployment. Time improvement can be one of the factors that contribute to the improvement of resource utilization rate.

또한, 가상 컴퓨팅 자원의 지속적인 추가 (호스트 증설 등) 로 컴퓨팅 자 원이 지속적으로 확장되는 환경에서는 사용 후 반환되는 자원에 대한 빠른 재할당과 더불어 신규로 추가되는 자원에 대한 빠른 할당을 동시에 처리해야 하므로 배치 처리 시간 향상은 그 중요성이 더욱 높아질 것이다. 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법은 가상 클러스터 배치 처리 시간 향상과 더불어 가상 클러스터 내 가상 머신들의 다양한 배치 모델을 실현할 수 있다.In the environment where computing resources are continuously expanded due to continuous addition of virtual computing resources (host expansion, etc.), fast reallocation of resources returned after use and quick allocation of newly added resources must be simultaneously performed Batch processing time improvement will become even more important. The virtual cluster placement method according to an embodiment of the present invention can realize various placement models of virtual machines in virtual clusters in addition to improving virtual cluster placement processing time.

이상 첨부된 도면을 참조하여 본 발명의 실시예들을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형 실시될 수 있다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
Although the embodiments of the present invention have been described in detail with reference to the accompanying drawings, it is to be understood that the present invention is not limited to those embodiments and various changes and modifications may be made without departing from the scope of the present invention. . Therefore, the embodiments disclosed in the present invention are intended to illustrate rather than limit the scope of the present invention, and the scope of the technical idea of the present invention is not limited by these embodiments. Therefore, it should be understood that the above-described embodiments are illustrative in all aspects and not restrictive. The scope of protection of the present invention should be construed according to the following claims, and all technical ideas within the scope of equivalents should be construed as falling within the scope of the present invention.

Claims (16)

복수의 가상 머신을 포함하는 가상 클러스터 시스템에 대한 시스템 정보를 수신하는 단계;
복수의 가상 머신의 자원요구사항을 고려하여, 상기 복수의 가상 머신을 서브 그룹으로 분류하는 단계;
상기 복수의 가상 머신을 서브 그룹으로 분류하는 단계 후에, 상기 서브 그룹 사이의 관계 속성 및 상기 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 결정하는 단계로서, 상기 관계 속성은 상기 서브 그룹 내의 복수의 가상 머신의 분산 배치 또는 통합 배치인, 상기 관계 속성을 결정하는 단계; 및
상기 서브 그룹 사이의 관계 속성 및 상기 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성 및 상기 서브 그룹의 분할 크기를 고려하여, 상기 서브 그룹 중 하나를 복수의 호스트 중 하나에 배치하거나 상기 서브 그룹 내의 상기 복수의 가상 머신 중 일부를 상기 복수의 호스트 중 하나와 상이한 호스트들에 배치하는 단계를 포함하고,
상기 관계 속성은 호스트 또는 랙 또는 서비스지역 수준인, 가상 클러스터 배치 방법.
Receiving system information for a virtual cluster system including a plurality of virtual machines;
Classifying the plurality of virtual machines into subgroups considering resource requirements of the plurality of virtual machines;
Determining a relationship attribute between the subgroups and a relationship attribute between a plurality of virtual machines in the subgroup, wherein the relationship attribute includes a plurality of virtual machines in the subgroup, Determining a relational attribute, which is a distributed or integrated deployment of virtual machines; And
One of the subgroups is allocated to one of the plurality of hosts in consideration of a relationship attribute between the subgroups, a relation attribute between the plurality of virtual machines in the subgroup, and a division size of the subgroup, Placing a portion of a plurality of virtual machines in hosts different than one of the plurality of hosts,
Wherein the relationship attribute is a host or rack or service area level.
삭제delete 제1항에 있어서,
상기 서브 그룹 중 하나를 복수의 호스트 중 하나에 배치하거나 상기 서브 그룹 내의 상기 복수의 가상 머신 중 일부를 상기 복수의 호스트 중 하나와 상이한 호스트들에 배치하는 단계는 적어도 하나의 계산 모듈을 통해 상기 서브 그룹 또는 상기 서브 그룹 내의 가상 머신 중 일부의 배치와 연관된 계산을 수행하는 단계를 포함하고,
상기 적어도 하나의 계산 모듈 각각은,
(a) 상기 서브 그룹에 대한 정보를 핸들링하는 단계;
(b) 상기 서브 그룹을 파티셔닝하는 단계;
(c) 상기 호스트를 정렬하는 단계;
(d) 상기 호스트를 필터링하는 단계;
(e) 상기 호스트를 추출하는 단계; 또는
(f) 사용자 정의된 기능을 수행하는 단계 중 적어도 하나의 단계를 수행하도록 구성된, 가상 클러스터 배치 방법.
The method according to claim 1,
Wherein placing one of the subgroups in one of the plurality of hosts or placing a portion of the plurality of virtual machines in the subgroup in hosts different from one of the plurality of hosts comprises: Performing a computation associated with the group or placement of some of the virtual machines in the subgroup,
Wherein each of the at least one calculation module comprises:
(a) handling information about the subgroup;
(b) partitioning the subgroup;
(c) aligning the host;
(d) filtering the host;
(e) extracting the host; or
and (f) performing a user-defined function.
제3항에 있어서,
상기 서브 그룹 중 하나를 복수의 호스트 중 하나에 배치하거나 상기 서브 그룹 내의 상기 복수의 가상 머신 중 일부를 상기 복수의 호스트 중 하나와 상이한 호스트들에 배치하는 단계는, 상기 관계 속성에 따라 서로 상이한 계산 모듈의 조합을 이용하여 수행되는, 가상 클러스터 배치 방법.
The method of claim 3,
Wherein placing one of the subgroups in one of the plurality of hosts or placing a portion of the plurality of virtual machines in the subgroup in hosts different from one of the plurality of hosts comprises: A method of virtual cluster placement, wherein the virtual cluster placement is performed using a combination of modules.
삭제delete 제3항에 있어서,
상기 서브 그룹 중 하나를 복수의 호스트 중 하나에 배치하거나 상기 서브 그룹 내의 상기 복수의 가상 머신 중 일부를 상기 복수의 호스트 중 하나와 상이한 호스트들에 배치하는 단계 이후에, 상기 가상 클러스터 시스템에 대한 배치 맵을 갱신하는 단계를 더 포함하고,
상기 적어도 하나의 계산 모듈은 상기 배치 맵에 액세스 가능하도록 구성된, 가상 클러스터 배치 방법.
The method of claim 3,
After placing one of the subgroups in one of the plurality of hosts or placing some of the plurality of virtual machines in the subgroup in hosts different from one of the plurality of hosts, Further comprising the step of updating the map,
Wherein the at least one computing module is configured to be accessible to the deployment map.
제1항에 있어서,
상기 서브 그룹 중 하나를 복수의 호스트 중 하나에 배치하거나 상기 서브 그룹 내의 상기 복수의 가상 머신 중 일부를 상기 복수의 호스트 중 하나와 상이한 호스트들에 배치하는 단계 이후에, 상기 가상 클러스터 시스템에 대한 배치 맵을 갱신하는 단계를 더 포함하는, 가상 클러스터 배치 방법.
The method according to claim 1,
After placing one of the subgroups in one of the plurality of hosts or placing some of the plurality of virtual machines in the subgroup in hosts different from one of the plurality of hosts, Further comprising the step of updating the map.
제7항에 있어서,
상기 서브 그룹 중 하나를 복수의 호스트 중 하나에 배치하거나 상기 서브 그룹 내의 상기 복수의 가상 머신 중 일부를 상기 복수의 호스트 중 하나와 상이한 호스트들에 배치하는 단계는 상기 서브 그룹 또는 상기 서브 그룹 내의 상기 복수의 가상 머신 중 일부를 상기 복수의 호스트 중 하나에 배치하도록 상기 배치 맵에 기초하여 호스트를 선택하는 단계를 포함하는, 가상 클러스터 배치 방법.
8. The method of claim 7,
Wherein placing one of the subgroups in one of the plurality of hosts or placing a part of the plurality of virtual machines in the subgroup in hosts different from one of the plurality of hosts comprises: Selecting a host based on the placement map to place a portion of the plurality of virtual machines in one of the plurality of hosts.
삭제delete 제1항에 있어서,
상기 복수의 가상 머신을 서브 그룹으로 분류하는 단계는,
상기 복수의 가상 머신의 자원요구사항에 더하여, 분류 히스토리 또는 기 저장된 분류 정보를 고려하는, 가상 클러스터 배치 방법.
The method according to claim 1,
Wherein the step of classifying the plurality of virtual machines into subgroups comprises:
And considering the classification history or the previously stored classification information, in addition to the resource requirements of the plurality of virtual machines.
제1항에 있어서,
상기 서브 그룹 사이의 관계 속성 또는 상기 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 결정하는 단계는,
관계 속성의 결정에 대한 히스토리 또는 기 저장된 결정 정보에 따라, 상기 서브 그룹 사이의 관계 속성 또는 상기 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 결정하는 단계인, 가상 클러스터 배치 방법.
The method according to claim 1,
Wherein determining a relationship attribute between the subgroups or a relationship attribute between a plurality of virtual machines in the subgroup comprises:
Determining a relationship attribute between the subgroups or a relationship attribute between a plurality of virtual machines in the subgroup according to a history of the determination of a relationship attribute or previously stored decision information.
제11항에 있어서,
상기 서브 그룹 사이의 관계 속성 또는 상기 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 검증하는 단계를 더 포함하는, 가상 클러스터 배치 방법.
12. The method of claim 11,
Further comprising verifying a relationship attribute between the subgroups or a relationship attribute between a plurality of virtual machines in the subgroup.
복수의 가상 머신을 포함하는 가상 클러스터 시스템에 대한 시스템 정보를 수신하기 위한 요청 수신부; 및
상기 요청 수신부와 연결된 배치 엔진을 포함하고,
상기 배치 엔진은,
복수의 가상 머신의 자원요구사항을 고려하여 상기 복수의 가상 머신을 서브 그룹으로 분류하고,
상기 복수의 가상 머신을 서브 그룹으로 분류한 후에, 상기 서브 그룹 사이의 관계 속성 및 상기 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 결정하고,
상기 관계 속성은 서브 그룹 내의 복수의 가상 머신의 분산 배치 또는 통합 배치이고,
상기 서브 그룹 사이의 관계 속성 및 상기 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성 및 상기 서브 그룹의 분할 크기를 고려하여, 상기 서브 그룹 중 하나를 복수의 호스트 중 하나에 배치하거나 상기 서브 그룹 내의 상기 복수의 가상 머신 중 일부를 상기 복수의 호스트 중 하나와 상이한 호스트들에 배치하도록 구성되고, 그리고
상기 관계 속성은 호스트 또는 랙 또는 서비스지역 수준인, 가상 클러스터 배치를 제공하기 위한 장치.
A request receiving unit for receiving system information about a virtual cluster system including a plurality of virtual machines; And
And a placement engine coupled to the request receiver,
Wherein the placement engine comprises:
Classifying the plurality of virtual machines into subgroups considering resource requirements of a plurality of virtual machines,
After classifying the plurality of virtual machines into subgroups, determining a relationship attribute between the subgroups and a relation attribute between a plurality of virtual machines in the subgroup,
Wherein the relational attribute is a distributed or integrated placement of a plurality of virtual machines in a subgroup,
One of the subgroups is allocated to one of the plurality of hosts in consideration of a relationship attribute between the subgroups, a relation attribute between the plurality of virtual machines in the subgroup, and a division size of the subgroup, To place some of the plurality of virtual machines in hosts different from one of the plurality of hosts, and
Wherein the relationship attribute is a host or rack or service area level.
제13항에 있어서,
상기 배치 엔진은 적어도 하나의 계산 모듈을 통해 상기 서브 그룹 중 하나를 복수의 호스트에 배치하거나 상기 서브 그룹 내의 상기 복수의 가상 머신 중 일부를 상기 복수의 호스트 중 하나와 상이한 호스트들에 배치하도록 구성되고,
상기 적어도 하나의 계산 모듈 각각은,
(a) 상기 서브 그룹에 대한 정보를 핸들링하는 단계;
(b) 상기 서브 그룹을 파티셔닝하는 단계;
(c) 상기 호스트를 정렬하는 단계;
(d) 상기 호스트를 필터링하는 단계;
(e) 상기 호스트를 추출하는 단계; 또는
(f) 사용자 정의된 기능을 수행하는 단계 중 적어도 하나의 단계를 수행하도록 구성된, 가상 클러스터 배치를 제공하기 위한 장치.
14. The method of claim 13,
Wherein the placement engine is arranged to place one of the subgroups in a plurality of hosts via at least one computing module or to place a part of the plurality of virtual machines in the subgroup in hosts different from one of the plurality of hosts ,
Wherein each of the at least one calculation module comprises:
(a) handling information about the subgroup;
(b) partitioning the subgroup;
(c) aligning the host;
(d) filtering the host;
(e) extracting the host; or
and (f) performing a user-defined function. < Desc / Clms Page number 21 >
제13항에 있어서,
상기 배치 엔진은, 상기 서브 그룹 중 하나를 복수의 호스트 중 하나에 배치하거나 상기 서브 그룹 내의 상기 복수의 가상 머신 중 일부를 상기 복수의 호스트 중 하나와 상이한 호스트들에 배치한 후, 상기 가상 클러스터 시스템에 대한 배치 맵을 갱신하도록 더 구성된, 가상 클러스터 배치를 제공하기 위한 장치.
14. The method of claim 13,
Wherein the placement engine places one of the subgroups in one of a plurality of hosts or places some of the plurality of virtual machines in the subgroup in hosts different from one of the plurality of hosts, And to update the deployment map for the virtual cluster.
제15항에 있어서,
상기 배치 엔진은, 상기 서브 그룹 또는 상기 서브 그룹 내의 상기 복수의 가상 머신 중 일부를 상기 복수의 호스트 중 하나에 배치하도록 상기 배치 맵에 기초하여 호스트를 선택함으로써, 상기 서브 그룹 중 하나를 복수의 호스트 중 하나에 배치하거나 상기 서브 그룹 내의 상기 복수의 가상 머신 중 일부를 상기 복수의 호스트 중 하나와 상이한 호스트들에 배치하도록 구성된, 가상 클러스터 배치를 제공하기 위한 장치.
16. The method of claim 15,
Wherein the placement engine selects one of the subgroups based on the placement map so that a portion of the plurality of virtual machines in the subgroup or subgroup is located in one of the plurality of hosts, Or place some of the plurality of virtual machines in the sub-group in hosts that are different from one of the plurality of hosts.
KR1020150040459A 2015-03-24 2015-03-24 Apparatus for placing virtual cluster and method for providing the same Active KR101916809B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150040459A KR101916809B1 (en) 2015-03-24 2015-03-24 Apparatus for placing virtual cluster and method for providing the same
PCT/KR2016/002985 WO2016153288A1 (en) 2015-03-24 2016-03-24 Virtual cluster management system and method for controlling same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150040459A KR101916809B1 (en) 2015-03-24 2015-03-24 Apparatus for placing virtual cluster and method for providing the same

Publications (2)

Publication Number Publication Date
KR20160114269A KR20160114269A (en) 2016-10-05
KR101916809B1 true KR101916809B1 (en) 2018-11-08

Family

ID=57153748

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150040459A Active KR101916809B1 (en) 2015-03-24 2015-03-24 Apparatus for placing virtual cluster and method for providing the same

Country Status (1)

Country Link
KR (1) KR101916809B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10990450B2 (en) * 2018-07-23 2021-04-27 Vmware, Inc. Automatic cluster consolidation for efficient resource management

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140047444A1 (en) * 2011-04-20 2014-02-13 Nec Corporation Virtual machine managing apparatus, virtual machine managing method, and program thereof
KR101474872B1 (en) 2014-01-09 2014-12-19 성균관대학교산학협력단 Method for elastic virtual cluster management for efficient construction of virtual clusters on cloud, apparatus for elastic virtual cluster management and cloud system using the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140047444A1 (en) * 2011-04-20 2014-02-13 Nec Corporation Virtual machine managing apparatus, virtual machine managing method, and program thereof
KR101474872B1 (en) 2014-01-09 2014-12-19 성균관대학교산학협력단 Method for elastic virtual cluster management for efficient construction of virtual clusters on cloud, apparatus for elastic virtual cluster management and cloud system using the same

Also Published As

Publication number Publication date
KR20160114269A (en) 2016-10-05

Similar Documents

Publication Publication Date Title
CN112416585B (en) Deep learning-oriented GPU resource management and intelligent scheduling method
TWI786564B (en) Task scheduling method and apparatus, storage media and computer equipment
CN114356543B (en) A multi-tenant machine learning task resource scheduling method based on Kubernetes
US20240036937A1 (en) Workload placement for virtual gpu enabled systems
WO2024021489A1 (en) Task scheduling method and apparatus, and kubernetes scheduler
US12314851B2 (en) Microservice-based training systems in heterogeneous graphic processor unit (GPU) cluster and operating method thereof
US12229602B2 (en) Memory-aware request placement for virtual GPU enabled systems
US20160196157A1 (en) Information processing system, management device, and method of controlling information processing system
CN114625500B (en) Topology-aware microservice application scheduling method and application in cloud environment
CN108132827B (en) Network slice resource mapping method, related equipment and system
KR101557747B1 (en) System and method for allocating virtual machine for effective use of multi resource in cloud
CN113672391A (en) Parallel computing task scheduling method and system based on Kubernetes
CN104199739A (en) Speculation type Hadoop scheduling method based on load balancing
CN116610422A (en) Task scheduling method, device and system
US20210089534A1 (en) System and method for dynamically reallocating resources among multiple task groups in a database system
CN112905317A (en) Task scheduling method and system under rapid reconfigurable signal processing heterogeneous platform
CN118708533B (en) Optimal communication scheduling method and system for multi-machine and multi-card GPUs for K8s
CN111666158A (en) Kubernetes-based container scheduling method and device, storage medium and electronic equipment
CN104866375B (en) A kind of method and device for migrating virtual machine
CN115361349B (en) Resource usage method and apparatus
CN110084507B (en) A hierarchical-aware scientific workflow scheduling optimization method in cloud computing environment
CN112527450B (en) Super-fusion self-adaptive method, terminal and system based on different resources
KR20140044597A (en) Apparatus and method for processing task
KR101916809B1 (en) Apparatus for placing virtual cluster and method for providing the same
CN118569358A (en) Distributed computation scheduling method, device and equipment for model and storage medium

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

R17-X000 Change to representative recorded

St.27 status event code: A-3-3-R10-R17-oth-X000

A201 Request for examination
PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

AMND Amendment
E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

E601 Decision to refuse application
PE0601 Decision on rejection of patent

St.27 status event code: N-2-6-B10-B15-exm-PE0601

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

T13-X000 Administrative time limit extension granted

St.27 status event code: U-3-3-T10-T13-oth-X000

AMND Amendment
E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PX0901 Re-examination

St.27 status event code: A-2-3-E10-E12-rex-PX0901

PX0701 Decision of registration after re-examination

St.27 status event code: A-3-4-F10-F13-rex-PX0701

X701 Decision to grant (after re-examination)
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 7

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000