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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling 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.
Description
본 발명은 가상 클러스터 배치 방법 및 이를 제공하기 위한 장치에 관한 것으로서, 보다 상세하게는 가상 클러스터의 배치 효율성을 최대화하기 위한 가상 클러스터 배치 방법 및 이를 제공하기 위한 장치에 관한 것이다.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)
도 1을 참조하면, 가상 클러스터 스케줄링 프레임워크 (1000) 는 적어도 본 발명의 일 실시예에 따른 가상 클러스터 배치 장치 (100), VC 스케줄 관리부 (200) 및 정보 관리부 (300) 를 포함한다.Referring to FIG. 1, a virtual
가상 클러스터 배치 장치 (100) 는 VC 내의 복수의 가상 머신들에 대한 제어 요청에 따라 복수의 가상 머신을 복수의 호스트에 배치하기 위한 장치이다. 가상 클러스터 배치 장치 (100) 는 독립된 장치로 구현될 수도 있으나, 사용자의 VC 생성 요청이 발생한 경우 VC 내의 가상 머신들에 대한 배치가 완료되도록 가상 머신들이 배치될 호스트들을 결정하기 위한, 컴퓨팅 디바이스에서 수행될 수 있는 모듈일 수 있다.The virtual
VC 스케줄 관리부 (200) 는 VC의 구동 스케줄의 생성, 변경 및 수정 등의 스케줄 관리 작업을 수행한다. VC 스케줄 관리부 (200) 는 가상 클러스터 배치 장치 (100) 와 연결되어, VC 제어 요청, 예컨대 VC 내의 가상 머신들의 생성 요청을 가상 클러스터 배치 장치 (100) 에 전달한다.The VC
정보 관리부 (300) 는 가상 머신 및 호스트에 대한 정보를 관리한다. 정보 관리부 (300) 는 가상 클러스터 스케줄링 프레임워크 (1000) 내에서 배치에 필요한 가상 머신 및 호스트의 상세 정보를 가상 클러스터 배치 장치 (100) 에 제공한다. 또한, 정보 관리부 (300) 는 동기화 모듈들을 통해, 가상 머신 및 호스트에 대한 상세 정보를 주기적으로 수신하여 갱신할 수 있다.The
가상 클러스터 배치 장치 (100) 는 요청 수신부 (122), VC 배치 엔진 코어 (120), 인프라 자원 상태 계산부 (110), 자원 정보 제공부 (124), 전략 실행부 (130), VC 배치 전략 관리부 (140) 및 복수의 계산 모듈 (150) 을 포함한다.The virtual
요청 수신부 (122) 는 가상 클러스터 배치 장치 (100) 외부의 각종 컴포넌트들, 예를 들어, VC 스케줄 관리부 (200) 로부터 VC 배치 요청을 수신하고, VC 배치 과정 중 발생한 다양한 정보를 다시 VC 스케줄 관리부 (200) 에 제공하는 역할을 수행한다. 정보는 예를 들어 VC 배치 결과와 배치 결과의 성공 유무 등을 포함할 수 있다. 요청 수신부 (122) 에 의해 수신된 VC 배치 요청은 VC 배치 엔진 코어 (120) 에 전달되어 VC 배치를 개시시킨다. VC 배치 작업이 완료될 경우, 배치 결과를 VC 스케줄 관리부 (200) 에 반환한다.The
VC 배치 엔진 코어 (120) 는 VC 내의 가상 머신들의 배치를 총괄하는 컴포넌트이다. VC 배치 엔진 코어 (120) 는 요청 수신부 (122), 전략 실행부 (130), 인프라 자원 상태 계산부 (110) 등과 같은 주변 컴포넌트들로부터 배치에 필요한 각종 정보들, 예를 들어, VC 배치 전략, 호스트의 정보 및 가상 머신의 정보 등을 수집한다. VC 배치 전략이란 VC 내의 가상 머신들을 배치하기 위한 방식을 의미한다. 호스트의 정보란 물리적인 호스트의 자원 정보, 예를 들어, CPU 코어의 수, 메모리 용량 등을 포함한다. 가상 머신의 정보란 가상 머신에 할당된 CPU 코어의 수, 메모리 용량, 가상 머신에 설치되는 OS (operating system), 설치되는 어플리케이션 등을 포함한다. VC 배치 엔진 코어 (120) 는 수집된 정보를 바탕으로 VC 사용자로부터 요청 받은 VC 배치를 전략 실행부 (130) 를 통하여 수행한다.VC
전략 실행부 (130) 는 VC 배치 엔진 코어 (120) 로부터 요청 받은 VC의 배치를 VC 배치 전략을 이용하여 VC 배치 조건에 따라 배치 작업을 수행한다. 또한 VC 배치 과정에서 발생하는 각종 에러 상황, 예컨대 VC 배치 스케줄링 불가 에러를 VC 배치 엔진 코어 (120) 에 제공한다.The
VC 배치 전략 관리부 (140) 는 VC 배치 엔진 코어 (120) 에 VC 배치 전략을 공급한다. VC 배치 전략 관리부 (140) 는 VC 배치 전략의 생명주기 (LifeCycle) 를 관리한다. VC 배치 전략 관리부 (140) 는 VC 배치 전략의 동적 추가, 수정 또는 삭제 등을 자동으로 인식하여 사용자에 발생된 VC 배치 전략의 변화를 감지하고, VC 배치 전략에 변화 발생 시, 자동화된 방법으로 VC 배치 전략을 동적으로 추가, 수정 또는 삭제한다.The VC placement
자원 정보 제공부 (124) 는 가상 클러스터 배치 장치 (100) 에 의해 진행되는 VC 배치를 위해 요구되는 각종 정보, 예를 들어, VC 내의 가상 머신들에 대한 자원 및 상태 정보, 호스트들의 자원 및 상태 정보 및 호스트들이 배치된 랙 정보 등을 VC 배치 엔진 코어 (120) 에 제공하며, 또한, 정보 관리부 (300) 에 제공하여, 정보 관리부 (300) 가 갱신된 정보를 가질 수 있게 한다.The resource
인프라 자원 상태 계산부 (110) 는 VC 배치에 필요한 각종 정보들의 사전 계산 작업을 수행한다. 인프라 자원 상태 계산부 (110) 는 예를 들어 등록된 VC 및 가상 머신 스케줄들을 기초로, 특정 시점에서의 호스트 자원 상태를 계산할 수 있다. 특정 시점에서의 호스트 자원 상태는 가상 클러스터 스케줄링 프레임워크 (1000) 가 다양한 시간 조건을 기반으로 구동될 수 있도록 한다. 가상 클러스터 스케줄링 프레임워크 (1000) 는 예를 들어, VC 구동 시간 스케줄링 엔진(미도시)을 포함하고, 구동 시간 스케줄링 엔진에 특정 시점에서의 호스트 자원 상태를 제공할 수도 있다. 이에 따라, VC가 구동 시점에서 호스트 자원 부족으로 인한 구동 불가와 같은 문제를 사전에 예방할 수 있다.The infrastructure resource
복수의 계산 모듈 (150) 은 VC 배치 전략에 따라 배치 작업을 수행하기 위한 모듈들이다. 복수의 계산 모듈 (150) 은 예를 들어, VC 정보 핸들링 모듈, VC 서브 그룹화 모듈, VC 관계 속성 분석 모듈, VC 서브 그룹 정보 핸들링 모듈, VC 서브 그룹 파티셔닝 모듈, 호스트 정렬 모듈, 호스트 필터링 모듈, 호스트 추출 모듈, 호스트 선택 모듈, 호스트 상태 갱신 모듈, VC 배치 맵 갱신 모듈, VC 테이블 생성 모듈 및 사용자-정의 기능 모듈 등을 포함한다. 다양한 VC 배치 전략에 따라, 복수의 계산 모듈 (150) 들은 다양한 방식으로 조합될 수 있으며, 하나의 실시예에 의해 제한되지 않는다. 계산 모듈 (150) 들의 조합을 통해 복수의 가상 머신 중 하나를 복수의 호스트에 배치할 수 있다.The plurality of
도 1에서는 편의를 위해 가상 클러스터 배치 장치 (100) 가 요청 수신부 (122), VC 배치 엔진 코어 (120), 인프라 자원 상태 계산부 (110), 자원 정보 제공부 (124), 전략 실행부 (130), VC 배치 전략 관리부 (140) 및 복수의 계산 모듈 (150) 를 포함하는 것으로 도시되었으나, 각각의 구성요소들은 구현 방법 또는 본 발명의 실시예에 따라 하나의 통합적인 형태 또는 분리적 형태로 설계 구현되는 것도 가능하다. 즉, 본 명세서에 기재된 모든 구성요소들 또는 모듈들은 범용 컴퓨터 또는 서버에 배치되는 저장부에 저장되고 이와 연결된 프로세서에 의해 동작될 수 있다.1, the virtual
도 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
가상 클러스터 배치 방법은 가상 클러스터 배치 장치 (100) 의 요청 수신부 (122) 가 VC 스케줄 관리부 (200) 로부터 VC 배치 요청을 수신하면서 개시된다. 먼저, VC 배치 엔진 코어 (120) 는 VC 배치 요청에 응답하여, 복수의 가상 머신을 포함하는 VC 시스템에 대한 시스템 정보를 자원 정보 제공부 (124) 로부터 수신한다 (S210). VC 시스템에 대한 시스템 정보는 가상 머신의 리스트, 호스트의 리스트, 호스트들이 배치되는 랙의 리스트등을 포함한다. 가상 머신의 리스트 및 호스트의 리스트는 내부 가상 컴퓨팅 용과 공용 가상 컴퓨팅 용 가상 머신의 리스트 및 호스트의 리스트로 구분될 수 있다. 시스템 정보 수신 단계는 VC 배치를 위한 데이터 저장 공간 확보 및 각종 변수의 초기화 과정을 포함하는 초기화 단계를 수반할 수도 있다.The virtual cluster placement method is started when the
한편, VC 배치 엔진 코어 (120) 는 VC 배치 요청이 VC 이주에 대한 요청인 경우, 자원 정보 제공부 (124) 로부터 수신된 호스트 리스트에서 기 선택된 호스트들을 제거하는 단계를 추가적으로 포함할 수 있다.On the other hand, the VC
또한, VC 배치 엔진 코어 (120) 는 인프라 자원 상태 계산부 (110) 에 VC가 구동될 시점에서의 호스트 자원 상태의 계산을 요청하고, 이를 수신할 수 있다. 이 경우, VC가 구동될 시점에서 다른 예약된 VC들로 인해 자원이 부족한 문제를 사전에 예방할 수 있다.In addition, the VC
다음으로, VC 배치 엔진 코어 (120) 는 VC 배치 전략에 따라 VC 내의 복수의 가상 머신들을 배치한다. VC 배치 엔진 코어 (120) 는 디폴트 VC 배치 전략을 사용할 수 있으며, VC 전략 관리부(140)로부터 VC 배치 전략을 수신하고, 수신된 VC 배치 전략을 사용할 수도 있다.Next, the VC
이하에서, 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
또한, 이하에서는 다양한 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
이하에서는, 단계 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
VC 정보 핸들링 모듈 (312) 은 VC 내 가상 머신들에 대한 정보의 수정 또는 변경을 위한 기능 모듈이며, VC의 서브 그룹화 모듈은 가상 머신들을 특정한 기준에 분류한다. 서브 그룹은 1개 또는 그 이상으로 생성될 수 있다. 여기서, 특정한 기준은 제한되지 않으며, 가상 머신들의 서브 그룹화는 사용자의 선택에 의해 수행될 수도 있으며, 분류 히스토리 또는 기 저장된 분류 정보에 기초하여 자동적으로 수행될 수도 있다. 서브 그룹 내 또는 서브 그룹 간 관계 속성은 VC 내 가상 머신들의 특성을 추출하고 분석하여 결정될 수 있다. 예를 들어, 서브 그룹은 가상 머신의 자원요구사항에 기초하여 분류될 수 있다. 나아가, 미리 결정된 기준에 따라 서브 그룹의 분류를 검증하는 단계가 더 포함될 수 있다.The VC
VC 관계 속성 분석 모듈 (316) 에서는 VC 내의 서브 그룹 간 또는 서브 그룹 내 가상 머신들 간의 관계 속성이 결정된다. 관계 속성이란, 호스트/랙/서비스지역 수준으로 가상 머신들 간의 통합 혹은 분산 배치가 요구되는지와 관련한다. 관계 속성은, VC 내의 가상 머신들의 배치 시 고려해야 할 사항들에 따라, 복수의 가상 머신을 같은 호스트로 배치하는 통합 배치 및 복수의 가상 머신 각각을 서로 다른 호스트로 배치하는 분산 배치로 나뉜다. 결정된 관계 속성은 주 처리 흐름에서 사용된다. 관계 속성은 사용자의 선택에 의해 결정될 수도 있으며, 분류 히스토리 또는 기 저장된 분류 정보에 기초하여 자동적으로 결정될 수도 있다. 예를 들어, 서브 그룹 내 또는 서브 그룹 간 관계 속성은 VC 내 가상 머신들의 특성이 추출되고 분석되어 결정될 수 있다. 사용자-정의 기능 모듈 (318) 은 그 외 서브 그룹과 관련한 기능을 수행하도록 구성될 수 있다. 나아가, 관계 속성은 미리 결정된 기준에 따라 검증될 수 있다.In the VC relationship
도 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,
이러한 관계 속성은 예를 들어, 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
이외에도 호스트 리스트의 호스트들을 설정된 기준으로 정렬하기 위한 호스트 오더링 모듈 (323), 호스트들을 설정된 기준으로 필터링하기 위한 호스트 필터링 모듈 (324) 및 설정된 기준으로 호스트를 추출하기 위한 호스트 추출 모듈 (325) 및 호스트와 연관된 사용자-정의 기능 모듈 (326) 이 주 처리 흐름에 포함될 수 있다. N3에서 VC의 서브 그룹에 대한 데이터, 관계 속성, VC 서브 그룹의 분할 크기, 필터링/추출/정렬된 호스트 리스트가 제공된다.In addition, a
다음으로, 주 처리 흐름에서는 호스트 선택 모듈 (327) 이 호스트 리스트에서 가상 머신이 배치될 특정 호스트를 선택한다. 호스트 선택 모듈 (327) 은 제공된 정보에 기초하여 호스트 선택 모듈이 구동되는 시점에서 가상 머신이 배치될 호스트를 결정한다. 다음으로, 호스트 상태 갱신 모듈 (328) 은, 가상 머신의 배치 후 구동될 호스트가 결정된 VC 내의 가상 머신에 대한 정보를 기초로 호스트의 자원 및 상태 정보를 갱신한다. 주 처리 흐름에서는 전술된 호스트 선택 모듈 (327) 과 호스트 상태 갱신 모듈 (328) 만으로 구성될 수도 있다.Next, in the main process flow, the
다음으로는 후처리 흐름에서 배치 스케줄링 요청된 VC 내 모든 가상 머신들에 대해 배치될 호스트들이 모두 계산되었는지를 검사하는 VC 배치 종료 검사 모듈 (331) 이 배치 종료 여부를 결정한다. 아직 배치할 가상 머신들이 남은 경우, VC 배치 맵 갱신 모듈 (332) 이 VC의 배치된 가상 머신들에 대한 맵을 갱신하고, 맵을 주 스케일링 처리 모듈들에 제공한다. 이에 따라, N2에서 다시 주 처리 흐름이 반복된다. 즉, 주 처리 흐름의 모듈들은 갱신된 배치 맵에 액세스 가능하도록 구성된다. 이에 따라 호스트 선택 모듈 (327) 은 관계 속성에 따라 가상 머신을 복수의 호스트 중 하나에 배치하도록 배치 맵에 기초하여 호스트를 선택한다. 가상 머신들의 배치가 반복되면서, 가상 머신들은 관계 속성에 따라 동일한 호스트에 배치될 수도 있으며, 서로 다른 호스트에 배치될 수도 있다. VC 내의 모든 가상 머신들에 대한 배치가 완료된 경우 VC 배치 맵 생성 모듈 (333) 이 VC 배치 테이블을 생성하게 되고, VC 배치 전략의 수행이 종료된다.Next, in the post-process flow, the VC batch
도 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.
본 발명의 일 실시예에 따른 가상 클러스터 배치 방법에 따르면, 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
동일한 배치 전략과 배치 메커니즘 하에서도 가상 클러스터 분할 크기를 배치 스케줄링 시 고려하는 것은 중대형 가상 클러스터의 배치 처리 시간을 향상하기 위해 매우 중요하기 때문이다.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.
상기 서브 그룹 중 하나를 복수의 호스트 중 하나에 배치하거나 상기 서브 그룹 내의 상기 복수의 가상 머신 중 일부를 상기 복수의 호스트 중 하나와 상이한 호스트들에 배치하는 단계는 적어도 하나의 계산 모듈을 통해 상기 서브 그룹 또는 상기 서브 그룹 내의 가상 머신 중 일부의 배치와 연관된 계산을 수행하는 단계를 포함하고,
상기 적어도 하나의 계산 모듈 각각은,
(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.
상기 서브 그룹 중 하나를 복수의 호스트 중 하나에 배치하거나 상기 서브 그룹 내의 상기 복수의 가상 머신 중 일부를 상기 복수의 호스트 중 하나와 상이한 호스트들에 배치하는 단계는, 상기 관계 속성에 따라 서로 상이한 계산 모듈의 조합을 이용하여 수행되는, 가상 클러스터 배치 방법.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.
상기 서브 그룹 중 하나를 복수의 호스트 중 하나에 배치하거나 상기 서브 그룹 내의 상기 복수의 가상 머신 중 일부를 상기 복수의 호스트 중 하나와 상이한 호스트들에 배치하는 단계 이후에, 상기 가상 클러스터 시스템에 대한 배치 맵을 갱신하는 단계를 더 포함하고,
상기 적어도 하나의 계산 모듈은 상기 배치 맵에 액세스 가능하도록 구성된, 가상 클러스터 배치 방법.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.
상기 서브 그룹 중 하나를 복수의 호스트 중 하나에 배치하거나 상기 서브 그룹 내의 상기 복수의 가상 머신 중 일부를 상기 복수의 호스트 중 하나와 상이한 호스트들에 배치하는 단계 이후에, 상기 가상 클러스터 시스템에 대한 배치 맵을 갱신하는 단계를 더 포함하는, 가상 클러스터 배치 방법.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.
상기 서브 그룹 중 하나를 복수의 호스트 중 하나에 배치하거나 상기 서브 그룹 내의 상기 복수의 가상 머신 중 일부를 상기 복수의 호스트 중 하나와 상이한 호스트들에 배치하는 단계는 상기 서브 그룹 또는 상기 서브 그룹 내의 상기 복수의 가상 머신 중 일부를 상기 복수의 호스트 중 하나에 배치하도록 상기 배치 맵에 기초하여 호스트를 선택하는 단계를 포함하는, 가상 클러스터 배치 방법.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.
상기 복수의 가상 머신을 서브 그룹으로 분류하는 단계는,
상기 복수의 가상 머신의 자원요구사항에 더하여, 분류 히스토리 또는 기 저장된 분류 정보를 고려하는, 가상 클러스터 배치 방법.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.
상기 서브 그룹 사이의 관계 속성 또는 상기 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 결정하는 단계는,
관계 속성의 결정에 대한 히스토리 또는 기 저장된 결정 정보에 따라, 상기 서브 그룹 사이의 관계 속성 또는 상기 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 결정하는 단계인, 가상 클러스터 배치 방법.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.
상기 서브 그룹 사이의 관계 속성 또는 상기 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 검증하는 단계를 더 포함하는, 가상 클러스터 배치 방법.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.
상기 배치 엔진은 적어도 하나의 계산 모듈을 통해 상기 서브 그룹 중 하나를 복수의 호스트에 배치하거나 상기 서브 그룹 내의 상기 복수의 가상 머신 중 일부를 상기 복수의 호스트 중 하나와 상이한 호스트들에 배치하도록 구성되고,
상기 적어도 하나의 계산 모듈 각각은,
(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 >
상기 배치 엔진은, 상기 서브 그룹 중 하나를 복수의 호스트 중 하나에 배치하거나 상기 서브 그룹 내의 상기 복수의 가상 머신 중 일부를 상기 복수의 호스트 중 하나와 상이한 호스트들에 배치한 후, 상기 가상 클러스터 시스템에 대한 배치 맵을 갱신하도록 더 구성된, 가상 클러스터 배치를 제공하기 위한 장치.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.
상기 배치 엔진은, 상기 서브 그룹 또는 상기 서브 그룹 내의 상기 복수의 가상 머신 중 일부를 상기 복수의 호스트 중 하나에 배치하도록 상기 배치 맵에 기초하여 호스트를 선택함으로써, 상기 서브 그룹 중 하나를 복수의 호스트 중 하나에 배치하거나 상기 서브 그룹 내의 상기 복수의 가상 머신 중 일부를 상기 복수의 호스트 중 하나와 상이한 호스트들에 배치하도록 구성된, 가상 클러스터 배치를 제공하기 위한 장치.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.
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)
| 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)
| 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 |
-
2015
- 2015-03-24 KR KR1020150040459A patent/KR101916809B1/en active Active
Patent Citations (2)
| 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 |