KR101557747B1 - System and method for allocating virtual machine for effective use of multi resource in cloud - Google Patents

System and method for allocating virtual machine for effective use of multi resource in cloud Download PDF

Info

Publication number
KR101557747B1
KR101557747B1 KR1020140012932A KR20140012932A KR101557747B1 KR 101557747 B1 KR101557747 B1 KR 101557747B1 KR 1020140012932 A KR1020140012932 A KR 1020140012932A KR 20140012932 A KR20140012932 A KR 20140012932A KR 101557747 B1 KR101557747 B1 KR 101557747B1
Authority
KR
South Korea
Prior art keywords
virtual machine
node
nodes
performance
matrix
Prior art date
Application number
KR1020140012932A
Other languages
Korean (ko)
Other versions
KR20150092492A (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 KR1020140012932A priority Critical patent/KR101557747B1/en
Publication of KR20150092492A publication Critical patent/KR20150092492A/en
Application granted granted Critical
Publication of KR101557747B1 publication Critical patent/KR101557747B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템 및 방법에 관한 것으로서, 노드 성능 데이터베이스, 상기 노드 성능 데이터베이스에서 불러온 노드 리스트를 가지며 데이터센터를 관리하는 데이터센터 브로커 및 상기 노드 리스트에서 가상머신을 할당하기에 최적의 노드에 가상머신을 생성하는 가상머신 생성 제어기와 가상머신의 이주를 제어하는 가상머신 이주 제어기를 포함하는 가상머신 할당 제어 시스템으로 구성되는 서비스 제공자 하이퍼바이저(Service Provider's Hypervisor); 및 노드들 및 상기 노드들의 성능을 분석하고 평가하여 상기 노드 성능 데이터베이스에 저장하는 노드 성능 분석기를 포함하는 데이터센터를 포함함으로써, 고성능 노드의 사용률을 증가시켜 전체 컴퓨터 자원을 효율적으로 사용하고, 노드들의 메모리 관리를 통해 단편화 현상을 줄일 뿐 아니라 신속한 가상머신의 할당이 가능하다.The present invention relates to a virtual machine allocation system and method for efficient utilization of multiple resources in a cloud, the system comprising: a node performance database; a data center broker having a node list retrieved from the node performance database and managing a data center; A service provider's hypervisor, which consists of a virtual machine creation controller that creates a virtual machine on the optimal node to allocate a virtual machine and a virtual machine allocation control system that includes a virtual machine migration controller that controls the migration of the virtual machine. ); And a node performance analyzer for analyzing and evaluating the performance of the nodes and the nodes, and storing the nodes in the node performance database, thereby increasing the utilization rate of the high performance nodes to efficiently use the entire computer resources, Memory management not only reduces fragmentation, but also allows rapid allocation of virtual machines.

Description

클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템 및 방법{SYSTEM AND METHOD FOR ALLOCATING VIRTUAL MACHINE FOR EFFECTIVE USE OF MULTI RESOURCE IN CLOUD}TECHNICAL FIELD The present invention relates to a virtual machine allocation system and method for effectively utilizing multiple resources in a cloud,

본 발명은 가상머신 할당 시스템 및 방법에 관한 것으로, 더욱 상세하게는 데이터센터에서 관리하는 노드들의 성능을 분석하고 가상머신이 할당될 때 분석한 결과를 바탕으로 할당할 노드를 선택하고 관리하여 클라우드 서비스에서 노드들을 효율적으로 사용하는 가상머신 할당 시스템 및 방법에 관한 것이다.
The present invention relates to a virtual machine allocation system and method, and more particularly, to a virtual machine allocation system and a virtual machine allocation method. More particularly, the present invention relates to a virtual machine allocation system and method, And more particularly, to a system and method for allocating virtual machines efficiently.

소셜 네트워크 서비스 등의 발달로 개인에 의해 생성 및 전달되는 정보의 양이 방대해짐으로 인해 발생하는 트래픽 초과 등의 문제는 소비자들마저 직접 느낄 수 있을 정도로 심각해지고 있다. 이를 대처하기 위해 많은 기업들은 클라우드 컴퓨팅을 통해 부하 분산과 비용 문제의 해결 방안으로 사용하고 있다. 뿐만 아니라 개인에게 고사양의 자원을 서비스의 형태로 편의성을 제공하는 등 클라우드 컴퓨팅은 더 이상 IT 전공자들만의 전유물이 아니게 되었다.Social network service, etc., the problem of excess traffic caused by the increase in the amount of information generated and transmitted by individuals is becoming serious enough to be felt by consumers. To cope with this, many companies are using cloud computing to solve load balancing and cost problems. In addition, cloud computing is no longer the exclusive category of IT majors, providing individuals with high-quality resources in the form of services.

클라우드 컴퓨팅에서는 컴퓨팅자원을 가상화하여 사용자의 요구를 처리하는 가상머신을 생성하고 이를 데이터센터에 등록된 노드에 할당한다. 이 과정에서 노드의 공정한 사용과 사용자 요구사항을 충족시키기 위해 FCFS, 라운드로빈 등의 가상머신 할당 기법을 사용한다.In cloud computing, virtualization of computing resources creates a virtual machine that handles the user's needs and assigns it to the nodes registered in the data center. In this process, FCFS, round-robin, and other virtual machine allocation techniques are used to satisfy the node's fair use and user requirements.

구체적으로 살펴보면, 가상머신 할당 시스템에서 가상머신을 생성하는데 중요한 기술인 가상화는 사용자가 이용하는 물리적 자원에서 논리적인 형태를 가진 자원을 나타낸다.Specifically, virtualization, which is an important technology for creating a virtual machine in a virtual machine allocation system, represents a resource having a logical form in a physical resource used by a user.

클라우드 컴퓨팅에서는 사용자의 요구사항을 충족시키기 위한 서비스를 제공하기 위해 자원을 추상화하는 기술을 통해 가상화된 컴퓨터 리소스를 가상머신을 통해 제공한다. 가상화의 목적은 서비스와 컴퓨터 자원 사이에 레이어를 통해 컴퓨터 자원에 대한 접근 및 인프라 관리를 간편하게 하는 것이다.In cloud computing, virtualized computer resources are provided through virtual machines through technologies that abstract resources to provide services to meet user needs. The goal of virtualization is to simplify access and infrastructure management of computer resources through layers between services and computer resources.

클라우드 컴퓨팅에서 서비스를 제공하기 위해선 프로바이더는 가상화 기술을 이용한 가상머신을 통해 컴퓨팅 자원을 논리적인 게스트 OS(Operation System)를 생성하는데, 게스트 OS를 생성할 호스트 OS를 선택하는 것은 서비스 품질에 크게 반영된다. 클라우드 인프라 시스템이 요구되는 컴퓨팅 자원에 의해 선택된 호스트 OS가 성능 부족의 이유로 게스트 OS의 생성이 불가능하다면 서비스 제공이 불가능하고 클라우드 서비스의 장점인 효율성, 경제적 부담 감소 등의 효과를 얻을 수 없다.To provide services in cloud computing, a provider creates a logical operating system (OS) through a virtual machine using virtualization technology. Choosing a host OS to create a guest OS is largely reflected in the quality of service do. If the host OS selected by the computing resources required by the cloud infrastructure system is not capable of generating the guest OS due to lack of performance, the service can not be provided and the efficiency and economical burden of the cloud service can not be reduced.

기존의 클라우딩 컴퓨터에서 가상화된 자원들의 할당을 위해 연구된 내용으로는 FCFS(First Come First Serve), 라운드로빈(Round-Robin), 매치메이킹(Match-Making)이 있다.In order to allocate the virtualized resources in the existing cloud computing computer, there are FCFS (First Come First Serve), Round-Robin, and Match-Making.

첫째, FCFS(First Come First Serve)는 비선점형 스케줄링으로 먼저 들어온 서비스를 먼저 처리하는 FIFO(First In First Out)로 작동하는 간단한 스케줄링이다. 대표적인 예로 자료구조 중 Queue가 FCFS의 형태로 구현된다.First, First Come First Serve (FCFS) is a simple scheduling that operates as a FIFO (First In First Out) that processes the first incoming service with non-linear scheduling. As a representative example, Queue among data structures is implemented in the form of FCFS.

도 5는 FCFS의 구조도로서, FCFS는 빠른 응답을 요구하는 대화식 시스템에는 적합하지 않으며, 일괄처리 시스템에 매우 효율적이다. FCFS의 단점은 노드의 구분이나 분석하는 과정이 없기 때문에 처리를 기다리는 가상머신이 노드에서 처리중인 가상머신이 끝나기만을 기다리는 호위효과(Convoy Effect)가 발생할 수 있다는 점이다. 이는 프로세서의 균형이 맞지 않는 불균형 현상을 일으킨다는 의미이다.Fig. 5 is a structural view of FCFS. FCFS is not suitable for an interactive system requiring fast response, and is very efficient for a batch processing system. The disadvantage of FCFS is that there is no process of distinguishing or analyzing nodes, so that a virtual machine waiting for processing can wait for the virtual machine being processed by the node to end, resulting in a convoy effect. This means that the processor has an unbalanced imbalance.

작업이 이루어지지 않는 노드에 먼저 들어온 사용자의 요청을 처리하는 형태이지만, 클라우드 컴퓨팅에서 노드에 가상머신을 할당하는데 사용되는 FCFS는 데이터센터에 등록된 순서대로 사용되지 않는 노드에 가상머신 할당을 요청한다.FCFS, which is used to assign a virtual machine to a node in the cloud computing, requests a virtual machine allocation to an unused node in the order registered in the data center .

FCFS는 구현이 단순하지만, 데이터센터에 노드가 등록된 순서에 따라 사용자의 요청을 처리하는 가상머신을 할당하기 때문에 처리량이 많은 사용자의 요구의 경우 저사양 노드에 할당이 되더라도 모두 처리될 때 까지 기다려야하기 때문에 작업의 처리 속도가 전체적으로 증가한다.Although FCFS is simple to implement, it allocates virtual machines that process user requests in the order in which the nodes are registered in the data center. Therefore, even if the requests of users with high throughput are allocated to the low-level nodes, As a result, the overall processing speed of the operation increases.

FCFS를 기반으로 연구된 대표적인 가상머신 할당 시스템은 클라우드심에서 기본으로 제공되는 가상머신 할당 스케줄링이 있다. 클라우드심에서는 가상머신의 할당 요청이 들어오면 사용자가 데이터센터 내에 등록된 노드들 중 사용되지 않는 코어의 수가 가장 많은 노드에 차례로 가상머신을 할당한다.The representative virtual machine allocation system studied based on FCFS has virtual machine allocation scheduling provided in the cloud sim. In the cloud core, when a virtual machine allocation request is received, the user sequentially assigns the virtual machine to the node having the largest number of unused cores among the registered nodes in the data center.

도 6은 'Xen 환경에서 스케줄링 지연을 고려한 가상머신 우선순위 할당 기법' 연구의 가상머신 할당 시스템으로서, 이는 물리적 자원의 가상화 기술을 논리적으로 구현한 가상머신의 모니터링 기술을 제공하는 Xen에서 사용하는 SEDF(Simple Earliest Deadline First)를 기반으로 하여 처리가 종료된 가상머신을 반환한 노드가 미처리 중인 가상머신을 가진 노드에서 미처리된 가상머신을 가져와 대신 처리하는 가상머신 할당 기법을 제안한다. 이 기법에서 종료된 가상머신을 반환한 노드는 미처리된 가상머신을 가져와 FCFS로 가상머신을 처리한다.FIG. 6 is a diagram illustrating a virtual machine allocation system of a virtual machine prioritization scheme considering a scheduling delay in a Xen environment. The virtual machine allocation system includes a SEDF (Simple Earliest Deadline First), we propose a virtual machine allocation scheme in which a node that has returned a processed virtual machine fetches an unprocessed virtual machine from a node that has an unprocessed virtual machine and processes it instead. In this technique, a node that returns a terminated virtual machine fetches an unprocessed virtual machine and processes the virtual machine with FCFS.

둘째, 라운드로빈(Round-Robin, 순환할당)은 선점형 스케줄링으로 요청된 작업에 별도의 우선순위를 두지 않고 시간 단위로 번갈아가면서 가상머신을 할당하는 스케줄링이다. 모든 노드들에 우선순위 등에 제약을 받지 않고 번갈아가며 노드들을 사용한다.Second, round-robin (scheduling) is a scheduling in which a virtual machine is allocated in a time-by-time manner without assigning a priority to a task requested by preemption-type scheduling. All nodes use alternate nodes without being restricted by priority or the like.

라운드로빈이 가상머신을 다른 노드에 할당하기 위해서는 가상머신이 노드에 머무는 시간인 규정시간량을 정하고 해당 노드에서 가상머신의 실행이 규정시간을 지나면 다음 노드로 가상머신을 할당한다. 라운드로빈의 성능은 규정시간량에 크게 영향을 받는다. 대표적인 OS인 리눅스에서는 우선순위와 동작에 따라 규정시간량의 크기가 변동되며 100ms를 기준으로 하며, 윈도우XP에서는 전면 또는 후면 작업에 따라 크기가 변동되며 20ms를 기준으로 한다. 규정시간량이 1μsec인 경우 라운드로빈을 프로세서 공유(Processor Sharing)라고 칭하며, 프로세서 속도가

Figure 112014011238969-pat00001
(
Figure 112014011238969-pat00002
: 프로세스 개수)로 실행되는 것처럼 보이는 것을 말한다.In order for the round robin to allocate the virtual machine to another node, the amount of time that the virtual machine stays in the node is set and the virtual machine is assigned to the next node when the execution of the virtual machine at the node passes the specified time. The performance of the round robin is greatly influenced by the specified amount of time. In Linux, which is a typical OS, the size of the specified time amount varies according to the priority and operation, and it is based on 100 ms. In the case of Windows XP, the size varies according to the front or rear operation, and is based on 20 ms. If the defined amount of time is 1μsec, the round robin is called Processor Sharing,
Figure 112014011238969-pat00001
(
Figure 112014011238969-pat00002
: Number of processes).

도 7은 라운드로빈의 구조도이며, 클라우드 컴퓨팅에서 라운드로빈을 가상머신 할당을 위해 쓰는 대표적인 시스템으로 유칼립투스 시스템(Eucalyputes Systems)의 유칼립투스(Eucalyptus)가 있다. 유칼립투스에서는 가상머신 할당이 가능한 노드들을 번갈아가며 사용하고, 할당 가능한 다른 노드가 발견될 때까지 계속 한 노드에서 작업을 진행한다.FIG. 7 is a schematic diagram of a round robin. In Eucalyptus Systems, Eucalyptus is a representative system in which round robin is used for virtual machine allocation in cloud computing. In Eucalyptus, we use alternate nodes that are able to allocate virtual machines, and continue to work on one node until another assignable node is found.

유칼립투스에는 라운드로빈 외에 가상머신의 할당과 실행이 가능한 가장 먼저 발견된 노드를 선택하는 그리디(Greedy)와 사용되지 않는 슬립 상태의 노드들 중 가만 먼저 Wake-Up되는 노드를 선택하는 Power-Save 등이 있다.In addition to round robin, eucalyptus includes Greedy to select the first node found to be able to allocate and execute a virtual machine, and Power-Save to select a node to be woken up first, .

셋째, 매치메이킹(Match-Making)은 분산 컴퓨팅 환경에서 대용량계산을 지원하기 위해 미국의 Wisconsin University에서 시작한 프로젝트 중 하나이다. 매치메이킹은 가상머신의 요구사항을 만족하는 노드에 연결하기 위해 가장 적합한 노드를 찾은 후 가상머신을 할당한다.Third, Match-Making is one of the projects initiated at Wisconsin University in the United States to support large-scale calculations in distributed computing environments. Matchmaking finds the best node to connect to a node that meets the requirements of the virtual machine and allocates the virtual machine.

도 8은 매치메이킹의 구조도로서, 도 8을 참조하면, 제공자(Provider)가 매치메이커에 데이터센터의 노드들이 정보를 전달(과정 ①)한다. 요청자(Requester)가 자원을 요청을 하면 가상머신에 자원을 할당할 노드를 선정하기 위해 매치메이커에 서비스를 요청(과정 ②)한다. 매치메이커에서는 요청자가 자원을 요구하면 제공자를 통해 받은 노드의 정보 중 가상머신이 요구하는 자원에 적합한 노드의 정보를 제공(과정 ③)하면, 요청자는 제공자에게 가상머신 할당 서비스를 요청(과정 ④)하고, 제공자는 요청자의 요구에 맞는 노드에 가상머신을 할당(과정 ⑤)하여 서비스를 제공한다. 여기서 매치메이커는 요구사항 해결은 제공자와 요청자 사이에서 직접 해결하도록 노드 정보만을 제공하며, 중계역할은 하지 않는다.FIG. 8 is a structure diagram of matchmaking. Referring to FIG. 8, a provider transmits information (process 1) to nodes of a data center to a match maker. When a requester requests a resource, it requests a matchmaker to select a node to allocate resources to the virtual machine (process ②). In the match maker, when the requester requests a resource, the requestor requests the provider a virtual machine allocation service (process (4)) when providing the information of the node suitable for the resource requested by the virtual machine among the information of the node received through the provider, , And the provider allocates a virtual machine to the node that meets the request of the requester (step 5) to provide the service. Here, the matchmaker provides only the node information to resolve directly between the provider and the requester, and does not act as a relay.

클라우드 컴퓨팅에서 매치메이킹은 가상머신의 요구사항을 만족하는 노드들의 정보를 분류하여 사용자의 요구에 맞는 노드들에 순차적으로 가상머신을 할당한다. 매치메이킹을 가상머신 할당 시스템으로 이용하는 대표적인 클라우드 서비스 시스템에는 오픈네뷸라(OpenNebula)가 있다. 오픈네뷸라에서는 CPU 사용량이 가상머신의 요구사항을 만족할 수 있는 노드들의 정보를 제공하여 가상머신을 할당한다.In cloud computing, matchmaking classifies information of nodes satisfying the requirements of a virtual machine, and sequentially assigns virtual machines to nodes that meet the user's request. OpenNebula is a typical cloud service system that uses matchmaking as a virtual machine allocation system. Open Nebula allocates virtual machines by providing information about the nodes whose CPU usage can satisfy the requirements of the virtual machine.

살펴본 바와 같이, 기존에 연구되었던 가상머신 할당 시스템은 전체 노드의 사용률의 차이를 최소화하여 장비의 공정한 사용을 목표로 하였다. 그러나 클라우드 시스템의 장기간 사용을 고려하지 않아 장비가 추가되었을 때, 노드들의 성능 차이를 반영하지 못해 고성능의 노드가 공정한 사용의 기준에 의해 자주 쓰이지 못하는 현상이 발생하게 되었다.
As we have seen, the existing virtual machine allocation system aims at fair use of the equipment by minimizing the difference in the usage rate of all nodes. However, since the cloud system is not considered for long-term use, when the equipment is added, the performance difference of the nodes is not reflected, and high-performance nodes are frequently used due to the fair use standard.

대한민국 공개특허공보 제10-2010-0092850호(공개일 2010.08.23.)Korean Patent Publication No. 10-2010-0092850 (published on Aug. 23, 2010) 대한민국 공개특허공보 제10-2012-0071979호(공개일 2012.07.03.)Korean Patent Laid-Open Publication No. 10-2012-0071979 (published July 23, 2012)

따라서, 본 발명은 상기한 종래 기술의 문제점을 해결하기 위해 이루어진 것으로서, 본 발명의 목적은 데이터센터 내의 노드들을 분석하여 고성능의 노드가 우선적으로 선택될 수 있도록 우선순위를 부여함으로써 고성능 노드의 사용률을 늘려 클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템 및 방법을 제공하는데 있다.
SUMMARY OF THE INVENTION The present invention has been made in order to solve the problems of the prior art described above, and it is an object of the present invention to provide a method and apparatus for analyzing nodes in a data center to prioritize high- And to provide a virtual machine allocation system and method for efficient utilization of multiple resources in the cloud.

상기와 같은 목적을 달성하기 위한 본 발명의 클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템은, 노드 성능 데이터베이스, 상기 노드 성능 데이터베이스에서 불러온 노드 리스트를 가지며 데이터센터를 관리하는 데이터센터 브로커, 및 상기 노드 리스트에서 가상머신을 할당하기에 최적의 노드에 가상머신을 생성하는 가상머신 생성 제어기와 가상머신의 이주를 제어하는 가상머신 이주 제어기를 포함하는 가상머신 할당 제어 시스템으로 구성되는 서비스 제공자 하이퍼바이저(Service Provider's Hypervisor); 및 노드들, 및 상기 노드들의 성능을 분석하고 평가하여 상기 노드 성능 데이터베이스에 저장하는 노드 성능 분석기를 포함하는 데이터센터를 포함하는 것을 특징으로 한다.According to another aspect of the present invention, there is provided a virtual machine allocation system for efficiently utilizing multiple resources in a cloud, including a node performance database, a data center broker having a node list loaded from the node performance database and managing a data center, And a virtual machine assignment control system including a virtual machine creation controller for creating a virtual machine in a node optimal for allocating a virtual machine in the node list and a virtual machine migration controller for controlling migration of the virtual machine, Service Provider's Hypervisor; And a data center including nodes, and a node performance analyzer for analyzing and evaluating the performance of the nodes and storing them in the node performance database.

한편, 본 발명의 클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 방법은, 클라우드 서비스가 시작되면, 노드들의 성능 분석을 위해 데이터센터 내의 노드들을 탐색하는 단계; 상기 성능 분석 결과에 가중치를 부여하여 노드 성능 분석 데이터베이스에 저장하는 단계; 사용자로부터 가상머신 할당 요청이 들어오면, 상기 노드 성능 분석 데이터베이스로부터 불러온 노드 리스트에서 노드 정보를 조회하는 단계; 상기 노드 리스트에서 가상머신을 할당하기에 최적의 노드를 선택하는 단계; 및 상기 최적의 노드에 가상머신을 할당하는 단계를 포함하는 것을 특징으로 한다.
Meanwhile, a virtual machine allocation method for efficient utilization of multiple resources in a cloud of the present invention includes: searching nodes in a data center for performance analysis of nodes when a cloud service is started; Assigning weights to the performance analysis results and storing them in a node performance analysis database; Querying node information from a node list loaded from the node performance analysis database when a virtual machine allocation request is received from a user; Selecting an optimal node for allocating a virtual machine in the node list; And allocating a virtual machine to the optimal node.

상술한 바와 같이, 본 발명에 의한 클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템 및 방법에 따르면, 새로운 노드가 추가되었을 때 데이터센터에서 관리하는 노드들의 성능을 분석하고, 분석된 결과를 기준으로 최적의 노드에 사용자의 요구사항이 적용된 가상머신을 할당하도록 설계함으로써, 이를 통해 고성능 노드의 사용률을 증가시켜 전체 컴퓨팅 자원을 효율적으로 사용하고, 노드들의 메모리 관리를 통해 단편화 현상을 줄일 뿐 아니라 신속한 가상머신의 할당이 가능하다.
As described above, according to the virtual machine allocation system and method for efficient utilization of multiple resources in the cloud according to the present invention, when the new node is added, the performance of the nodes managed in the data center is analyzed, , It is possible to increase the utilization rate of high performance nodes by efficiently allocating the entire computing resources and to reduce the fragmentation phenomenon through the memory management of the nodes, Virtual machines can be allocated.

도 1은 본 발명의 일 실시예에 따른 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템의 전체 구성도이다.
도 2는 본 발명의 일 실시예에 따른 가상 머신 할당이 이루어지는 과정을 나타내는 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 노드의 성능을 분석하기 위한 알고리즘이다.
도 4는 본 발명의 일 실시예에 따른 노드 리스트에서 가상머신을 할당하기에 최적의 노드를 찾기 위한 알고리즘이다.
도 5는 종래 가상머신 할당 시스템인 FCFS의 구조도이다.
도 6을 Xen 환경에서 스케줄링 지연을 고려한 가상머신 우선순위 할당 기법을 사용하는 가상머신 할당 시스템의 구조도이다.
도 7은 종래 가상머신 할당 시스템인 라운드로빈의 구조도이다.
도 8은 종래 가상머신 할당 시스템인 매치메이킹의 구조도이다.
1 is an overall configuration diagram of a virtual machine allocation system for efficiently utilizing multiple resources according to an embodiment of the present invention.
2 is a flowchart illustrating a process of allocating a virtual machine according to an embodiment of the present invention.
3 is an algorithm for analyzing performance of a node according to an embodiment of the present invention.
4 is an algorithm for finding an optimal node for allocating a virtual machine in a node list according to an embodiment of the present invention.
5 is a structural diagram of FCFS which is a conventional virtual machine allocation system.
FIG. 6 is a structural diagram of a virtual machine allocation system using a virtual machine priority allocation scheme considering a scheduling delay in a Xen environment.
7 is a structural diagram of a round robin which is a conventional virtual machine allocation system.
8 is a structure diagram of match making, which is a conventional virtual machine assignment system.

이하, 본 발명의 클라우드에서 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템 및 방법에 대하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.Hereinafter, a virtual machine allocation system and method for efficient utilization of multiple resources in a cloud according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 다중 자원의 효율적인 활용을 위한 가상머신 할당 시스템의 전체 구성도이다.1 is an overall configuration diagram of a virtual machine allocation system for efficiently utilizing multiple resources according to an embodiment of the present invention.

도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 가상머신 할당 시스템(1)은 노드 성능 분석기(Node Performance Analyzer)(11) 및 노드들(12)을 포함하는 데이터센터(10)와; 노드 성능 데이터베이스(Node Performance Database)(21), 데이터센터 브로커(22) 및 가상머신 할당 제어 시스템(23)으로 구성되는 서비스 제공자 하이퍼바이저(Service Provider's Hypervisor)(20)를 포함한다.1, a virtual machine allocation system 1 according to an embodiment of the present invention includes a data center 10 including a node performance analyzer 11 and nodes 12, ; A service provider's hypervisor 20 configured with a node performance database 21, a data center broker 22 and a virtual machine allocation control system 23.

먼저, 시스템(1)은 클라우드 서비스가 시작되면 NC(Network Computer)와 연결된 모든 데이터센터 내의 노드들(nodes)(12)을 탐색한다. 그 후, 시스템(1)은 사용자가 자원을 요구하면 노드 성능 데이터베이스(21)에서 노드들의 정보를 불러온다.First, the system 1 searches for nodes 12 in all data centers connected to a network computer (NC) when a cloud service is started. Then, the system 1 retrieves information of the nodes from the node performance database 21 when the user requests resources.

다음으로, 데이터센터(10)는 노드 성능 분석기(Node Performance Analyzer)(11)와, 노드들(12)을 포함한다.Next, the data center 10 includes a node performance analyzer 11 and nodes 12. [

노드 성능 분석기(11)는 시스템(1)이 노드를 탐색하는 동안 LU 분해 등을 이용하여 노드들(12)의 성능을 분석을 하고, 분석된 결과를 소정의 성능 평가 기준을 통해 고성능 순으로 재 정렬하며, 이를 노드 성능 데이터베이스(21)에 저장한다. 노드 성능 분석기(11)의 자세한 동작은 아래에서 구체적으로 설명된다.The node performance analyzer 11 analyzes the performance of the nodes 12 using the LU decomposition or the like while the system 1 searches for the nodes and analyzes the analyzed results in a high performance order And stores it in the node performance database 21. The detailed operation of the node performance analyzer 11 will be described in detail below.

마지막으로, 서비스 제공자 하이퍼바이저(20)는 노드 성능 데이터베이스(Node Performance Database)(21)와, 데이터센터 브로커(DataCenter Broker)(22)와, 가상머신 할당 제어 시스템(Virtual Machine Allocate Control System)(23)을 포함한다.Finally, the service provider hypervisor 20 includes a node performance database 21, a data center broker 22, a virtual machine allocate control system 23 ).

데이터센터 브로커(22)는 클라우드 시스템에서 데이터센터를 관리하고 중재하는 역할을 한다. 데이터센터 브로커(22)는 노드 성능 데이터베이스(21)에서 불러온 노드 리스트(node list)를 가지며, 이러한 노드 리스트는 노드 성능 데이터베이스(21)에 있는 모든 데이터센터의 노드 정보로 구성된다.The data center broker 22 is responsible for managing and arbitrating the data center in the cloud system. The data center broker 22 has a node list retrieved from the node performance database 21 and this node list is composed of node information of all data centers in the node performance database 21. [

가상머신 할당 제어 시스템(23)은 가상머신 생성 제어기(Virtual Machine Created Controller)(25) 및 가상머신 이주 제어기(Virtual Machine Migrated Controller)(24)를 포함하며, 가상머신 할당의 생성과 이주 등 모든 것을 제어한다. 가상머신 생성 제어기(25)는 사용자가 자원을 요구하면 사용자가 요구한 자원을 가상화하여 가상머신을 생성하고, 가상머신 이주 제어기(24)는 시스템 작동 중 특수 상황에 의해 다른 노드로 이주를 할 때 가상머신의 이주를 제어한다. 이때, 가상머신 생성 제어기(25)와 가상머신 이주 제어기(24)는 시스템에 변동 사항을 제어할 때 데이터센터 브로커(22)에 있는 노드 리스트로부터 노드 정보를 참고하여 필요한 정보를 얻는다. 또한, 본 가상머신 할당 제어 시스템(23)에서는 가상머신을 할당할 노드를 선택하기 위해 고성능 순으로 정렬된 노드 리스트 중 요구 조건에 만족하는 노드 리스트를 별도로 생성하여 그 중 가장 최적의 노드 혹은 사용자 레벨에 적합한 노드에 가상머신을 생성한다.The virtual machine allocation control system 23 includes a virtual machine creation controller 25 and a virtual machine migration controller 24 and is responsible for all of the creation and migration of virtual machine allocations . When the user requests a resource, the virtual machine creation controller 25 creates a virtual machine by virtualizing the resource requested by the user, and when the virtual machine migration controller 24 migrates to another node in a special situation during system operation Control migration of virtual machines. At this time, the virtual machine creation controller 25 and the virtual machine migration controller 24 refer to the node information from the node list in the data center broker 22 to obtain necessary information when controlling the change in the system. In addition, in the virtual machine assignment control system 23, a node list satisfying the requirement among the node lists sorted in high-performance order is separately generated to select the node to which the virtual machine is to be allocated, A virtual machine is created in the appropriate node.

여기서, 데이터센터(10)의 노드 성능 분석기(11)에 대해 구체적으로 설명하면, 노드 성능 분석기(11)는 데이터센터(10)에서 관리하는 노드들(12)의 성능을 분석하고 평가한다.Here, the node performance analyzer 11 of the data center 10 will be described in detail. The node performance analyzer 11 analyzes and evaluates the performance of the nodes 12 managed by the data center 10.

먼저, 본 발명의 일 실시예에 따른 노드 성능 분석기(11)는

Figure 112014011238969-pat00003
분해(Decomposition)와 가우시안 소거법(Gaussian Elimination)을 이용한 역행렬을 구하는 과정을 이용하여 노드를 평가하기 위한 지표를 정한다.
Figure 112014011238969-pat00004
분해는 행렬
Figure 112014011238969-pat00005
를 하 삼각행렬
Figure 112014011238969-pat00006
과 상 삼각행렬
Figure 112014011238969-pat00007
로 분해하는 방법이다. 즉,First, the node performance analyzer 11 according to an embodiment of the present invention
Figure 112014011238969-pat00003
The index for evaluating the node is determined by using the decomposition and Gaussian elimination inverse matrix calculation.
Figure 112014011238969-pat00004
The decomposition is a matrix
Figure 112014011238969-pat00005
Lower triangular matrix
Figure 112014011238969-pat00006
Over-triangular matrix
Figure 112014011238969-pat00007
. In other words,

Figure 112014011238969-pat00008
Figure 112014011238969-pat00008

의 모양을 가지는 행렬

Figure 112014011238969-pat00009
를Matrix with the shape of
Figure 112014011238969-pat00009
To

Figure 112014011238969-pat00010
Figure 112014011238969-pat00010

의 모양으로 변형하여 문제를 해결한다.

Figure 112014011238969-pat00011
분해는 역행렬을 구하는 것 뿐아니라 연립방정식의 해를 구할 때도 사용된다.To solve the problem.
Figure 112014011238969-pat00011
Decomposition is used not only to find the inverse matrix but also to solve the simultaneous equations.

Figure 112014011238969-pat00012
Figure 112014011238969-pat00012

상 삼각행렬 U는 행렬 A의 행 사다리꼴(RREF, Reduced Row Echelon Form)로 구성되며 하 삼각행렬 L은 상 삼각행렬 U의 성분을 구하면서 사용되는 값으로 구성된다. 행 사다리꼴은 표 1과 같은 성질을 만족한다.An upper triangular matrix U is composed of a row of the matrix A trapezoidal (RREF, Reduced Row Echelon Form) and a lower triangular matrix L is configured to obtain the value to be used as component of the upper triangular matrix U. The row trapezoid satisfies the properties shown in Table 1.

LU분해는 행렬 A를 A= LU로 분해하는 방법에 따라 Doolittle 알고리즘과 Crout 알고리즘으로 구분된다. Doolittle 알고리즘은 하 삼각행렬 L의 대각성분이 1이 되도록 분해한다. Doolittle 알고리즘으로 행렬을 분해할 때 상 삼각행렬 U는 가우스 소거법의 전진소거를 통해 행 사다리꼴이 되고, A=LU을 역으로 이용하여 하 삼각행렬 L을 구한다. The LU decomposition is divided into the Doolittle algorithm and the Crout algorithm according to the method of decomposing the matrix A into A = LU . The Doolittle algorithm decomposes the diagonal elements of the lower triangular matrix L to 1. When decomposing a matrix using the Doolittle algorithm, the upper triangular matrix U becomes a trapezoidal row by forward elimination of the Gaussian elimination method, and a lower triangular matrix L is obtained by using A = LU in reverse.

Crout 알고리즘은 상 삼각행렬 U의 대각성분이 1이 되도록 분해한다. 상 삼각행렬 U의 성분은 행렬 A의 성분을 하 삼각행렬 L에서 행의 첫 번째 성분으로 나눈 것으로 구할 수 있다. 하 삼각행렬 L은 첫 열은 행렬 A에서 복사하고 두 번째 열부터는 L의 앞 열의 성분과 U의 해당 행의 첫 번째 성분을 곱한 값을 행렬 A의 성분에서 빼는 과정으로 값을 구한다. 이를 수식화하면 다음과 같다.The Crout algorithm decomposes the diagonal elements of the upper triangular matrix U to 1. The components of the upper triangular matrix U can be obtained by dividing the components of the matrix A by the lower triangular matrix L and the first component of the row. A lower triangular matrix L is the first column is the value obtained by subtracting the process value copied from the matrix A and obtained by multiplying the first two components of the line in the U component and the front row of the second column starting from the L component of the matrix A. The formula is as follows.

Figure 112014011238969-pat00013
은 하 삼각행렬 L의 각 행의 첫 번째 요소, 즉 첫 번째 열로 행렬 A의 각 행의 첫 번째 요소
Figure 112014011238969-pat00014
을 가진다. 삼 삼각행렬 U의 첫 번째 행
Figure 112014011238969-pat00015
는 하 삼각행렬 L의 (1,1) 요소를 행렬 A의 첫 번째 행렬의 각 요소에 나눠준 값이다. 여기서 j는 상 삼각행렬 U의 각 열의 번호이다.
Figure 112014011238969-pat00013
The first element of each row of the lower triangular matrix L , that is, the first column, the first element of each row of matrix A
Figure 112014011238969-pat00014
. First row of trilinear matrix U
Figure 112014011238969-pat00015
Is the value obtained by dividing the (1,1) element of the lower triangular matrix L by each element of the first matrix of the matrix A. Where j is the number of each column of the upper triangular matrix U.

Figure 112014011238969-pat00016
Figure 112014011238969-pat00016

하 삼각행렬 L의 첫 번째 열을 제외한 나머지 값

Figure 112014011238969-pat00017
는 행렬 A의 요소에 하 삼각행렬 Li번째 행의 j-1번째까지의 요소와 상 삼각행렬 Uj열의 j-1번째까지의 요소를 곱한 것의 합을 뺀 값이다.The remaining values except for the first column of the lower triangular matrix L
Figure 112014011238969-pat00017
Is a value obtained by subtracting the sum of the elements of the matrix A up to the j- 1th element of the i- th row of the lower triangular matrix L and the elements up to the j- 1th element of the j- th column of the upper triangular matrix U.

Figure 112014011238969-pat00018
는 먼저 상 삼각행렬 Li번째 행의 i-1까지, 하 삼각행렬 j번째 열의 Ui-1까지의 각 요소를 곱한 것들의 합에서 행렬
Figure 112014011238969-pat00019
값을 빼고, 하 삼각행렬 L의 대각요소로 나눈 값이다.
Figure 112014011238969-pat00018
The first upper triangular matrix L i to i-1 of the second row, the lower triangular matrix in the matrix, j the sum of those multiplied by a respective element to the i-1-th column of U
Figure 112014011238969-pat00019
And subtracting the value and dividing it by the diagonal elements of the lower triangular matrix L.

본 발명에서는 보편적으로 사용되는 Doolittle 알고리즘을 채택하여 행렬 AA= LU 형태로 변환 후 역행렬을 구할 수 있다.LU 분해를 활용하여 역행렬을 구하는 과정은 표 2와 같다.In the present invention, by adopting a commonly used Doolittle algorithm, a matrix A is defined as A = LU And the inverse matrix can be obtained. LU Table 2 shows the process of obtaining the inverse matrix using decomposition.

Figure 112014011238969-pat00020
Figure 112014011238969-pat00020

Figure 112014011238969-pat00021
Figure 112014011238969-pat00021

행렬을 LU 분해 후 역행렬을 구하면 역행렬을 구하는 기본적인 기법인 가우스 소거법을 사용하는 방법보다 행렬식(Determinant)을 구하는 것이 훨씬 쉽기 때문에 행렬의 크기가 커지더라도 상대적으로 연산시간의 증가가 눈에 띄지 않는다.Matrix to LU Since the determinant is much easier to obtain than the method of Gauss elimination, which is a basic technique for obtaining the inverse matrix after decomposition, the increase in the calculation time is not noticeable even if the matrix size is large.

그 뿐 아니라 삼각행렬의 행렬식은 모든 대각원소의 곱이기 때문에 가우스 소거법의 연산시간을 대폭적으로 줄일 수 있다. 표 3은 가우스 소거법과 LU 분해 후 가우스 소거법의 연산속도를 비교한 것으로서, 행렬의 크기가 커질수록 일반적인 가우스 소거법보다 LU 분해 후 가우스 소거법의 연산 속도 차이가 커지는 것을 확인할 수 있다.
In addition, since the determinant of the triangular matrix is a product of all diagonal elements, the computation time of the Gaussian elimination method can be greatly reduced. Table 3 shows the Gaussian elimination method and the LU And the calculation speed of the Gaussian elimination method after decomposition is compared. As the matrix size increases, the LU It can be confirmed that the difference in the operation speed of the Gaussian elimination method after decomposition becomes large.

다음으로, 노드 성능 분석기(11)는 노드의 성능을 분석하기 위해 각 노드가 주어진 연산을 얼마나 빠르고 정확하게 처리하는지 평가한다. 노드의 성능 평가에 참조되는 자원은 CPU, 메모리, 스토리지이며 이를 평가하는 기준은 표 4와 같다Next, the node performance analyzer 11 evaluates how quickly and accurately each node processes a given operation to analyze the performance of the node. The resources referred to in the node performance evaluation are CPU, memory, and storage, and the criteria for evaluating them are shown in Table 4

Figure 112014011238969-pat00022
Figure 112014011238969-pat00022

CPU의 연산 처리 속도를 평가하기 위해서 상기에서 설명한 LU 분해를 이용한 역행렬을 구하고 이 연산을 처리하는데 소요되는 시간을 추출한다. 본 명세서에서는 LU 분해를 활용하여 역행렬을 구하는 과정을 함수화(Functionalization)했으며 다음과 같은 식을 가진다. LU described above to evaluate the arithmetic processing speed of the CPU Find the inverse matrix using decomposition and extract the time required to process this computation. In this specification LU The process of obtaining the inverse matrix using decomposition is functionalized and has the following equation.

Figure 112014011238969-pat00023
Figure 112014011238969-pat00023

상기 식은 행렬 A를 lowerMat() 함수를 통한 하 삼각행렬 L과 upperMat() 함수를 통한 상 삼각행렬 U로 분해하고 역행렬을 구하는 과정으로

Figure 112014011238969-pat00024
는 하 삼각행렬 L의 역행렬을,
Figure 112014011238969-pat00025
는 상 삼각행렬 U의 역행렬을 의미한다. 행렬의 역행렬은 inverseMat() 함수를 이용하여 구할 수 있다.The above equation is a process of decomposing a matrix A into a lower triangular matrix L through a lowerMat () function and an upper triangular matrix U through an upperMat () function and obtaining an inverse matrix
Figure 112014011238969-pat00024
Represents the inverse matrix of the lower triangular matrix L ,
Figure 112014011238969-pat00025
Denotes an inverse matrix of an upper triangular matrix U. The inverse matrix of a matrix can be obtained by using the inverseMat () function.

LU의 역행렬이 구해지면 두 행렬의 곱을 통해 행렬 A의 역행렬을 구할 수 있다. 하 삼각행렬 L과 상 삼각행렬 U의 역행렬 이용하여 행렬 A의 역행렬

Figure 112014011238969-pat00026
을 구하는 식은 다음과 같다. When the inverse of L and U is obtained, the inverse of matrix A can be obtained through the product of the two matrices. The inverse of the matrix A using the inverse of the lower triangular matrix L and the upper triangular matrix U
Figure 112014011238969-pat00026
Is obtained as follows.

Figure 112014011238969-pat00027
Figure 112014011238969-pat00027

CPU의 연산 처리를 평가하기 위해 위의 연산을 노드에서 직접 처리하고 처리하는데 소요되는 시간인

Figure 112014011238969-pat00028
Figure 112014011238969-pat00029
을 기준으로 CPU의 성능
Figure 112014011238969-pat00030
을 정의한다.In order to evaluate the operation processing of the CPU, the time required to process and process the above operation directly at the node
Figure 112014011238969-pat00028
Wow
Figure 112014011238969-pat00029
CPU performance based on
Figure 112014011238969-pat00030
.

Figure 112014011238969-pat00031
Figure 112014011238969-pat00031

이와 같은 방법으로 메모리의 성능도 평가할 수 있다. 동적 메모리 할당을 통해 역행렬을 구하는데 필요로 하는 행렬의 공간을 확보하고 동적 메모리 할당을 받을 수 있는 최대 크기를 노드의 메모리가 할당 할 수 있는 최대 크기의 공간으로 정의한다. 이 과정은 OS가 사용 중인 메모리를 제외한 실제 사용 가능한 메모리 공간을 파악할 수 있고 동적 메모리 할당 시 소요되는 시간을 통해 메모리의 요청 처리 시간을 알 수 있다.

Figure 112014011238969-pat00032
는 리소스가 가지는 최대 메모리 크기,
Figure 112014011238969-pat00033
는 사용 중인 메모리 크기로
Figure 112014011238969-pat00034
은 현재 사용 가능한 메모리 크기로 정의된다.In this way, the performance of the memory can also be evaluated. The dynamic memory allocation is used to obtain the matrix space needed to obtain the inverse matrix and define the maximum size that can be allocated for the dynamic memory allocation to be the maximum size that the node memory can allocate. This process can determine the actual available memory space, excluding the memory that the OS is using, and it can know the processing time of the memory through the time required to allocate the dynamic memory.
Figure 112014011238969-pat00032
Is the maximum memory size of the resource,
Figure 112014011238969-pat00033
Is the amount of memory in use.
Figure 112014011238969-pat00034
Is defined as the current available memory size.

Figure 112014011238969-pat00035
Figure 112014011238969-pat00035

마지막으로, 노드 성능 분석기(11)는 상기와 같이 성능 분석을 통해 각 노드들의 성능이 분석되면 이를 반영하여 노드들의 상대적 평가를 한다. 본 발명에서는 노드의 성능으로 판단한 CPU, 메모리, 스토리지에 일정 가중치를 부여하고 할당하기에 최적의 노드를 선정할 수 있다. 가중치가 부여되는 속성은 CPU의 코어수, CPU의 연산 처리 속도 및 메모리의 잔여량이다.Finally, the node performance analyzer 11 analyzes the performance of each node through the performance analysis as described above, and relays the nodes to reflect the performance of the nodes. In the present invention, it is possible to select a node optimal for assigning and assigning a predetermined weight to CPU, memory, and storage determined as the performance of the node. The weighted attributes are the number of cores of the CPU, the processing speed of the CPU, and the remaining amount of memory.

노드들의 상대적 평가를 위해 데이터센터(10)에서 관리 중인 전체 노드 중 가장 높은 고성능의 수치(

Figure 112014011238969-pat00036
)와 현재 노드의 성능을 비교한 후 각 속성별로 가중치를 부여한다.For the relative evaluation of the nodes, the highest high performance value of all the nodes under management in the data center 10 (
Figure 112014011238969-pat00036
) Is compared with the performance of the current node, and weight is assigned to each attribute.

Figure 112014011238969-pat00037
Figure 112014011238969-pat00037

Figure 112014011238969-pat00038
는 데이터센터에서 관리 중인 노드들의 코어 수 중 가장 큰 값을 가지는
Figure 112014011238969-pat00039
에 상대적인 현재 노드의 코어 수를 수치화하여 가진다. 예를 들어,
Figure 112014011238969-pat00038
Has the largest number of cores in the nodes being managed in the data center
Figure 112014011238969-pat00039
The number of cores of the current node relative to the number of cores. E.g,

Figure 112014011238969-pat00040
Figure 112014011238969-pat00040

일 경우 코어 수가 가장 큰 노드는

Figure 112014011238969-pat00041
Figure 112014011238969-pat00042
의 4 이므로, The node with the largest number of cores
Figure 112014011238969-pat00041
and
Figure 112014011238969-pat00042
Of 4

Figure 112014011238969-pat00043
Figure 112014011238969-pat00043

가 된다. 제안된 수치화 공식에 따라

Figure 112014011238969-pat00044
의 코어의 수를 수치화한 값은. According to the proposed formula
Figure 112014011238969-pat00044
The numerical value of the number of cores of

Figure 112014011238969-pat00045
Figure 112014011238969-pat00045

가 되며 나머지 노드들의 수치 값을 구하면 다음과 같다.And the numerical values of the remaining nodes are obtained as follows.

Figure 112014011238969-pat00046
Figure 112014011238969-pat00046

코어의 수 뿐 아니라 CPU의 연산 처리 속도와 메모리 잔여량에도 같은 알고리즘이 적용된다.The same algorithm applies to the number of cores as well as the CPU's processing speed and memory footprint.

각 노드들이 속성별로 수치 값이 구해지면 가중치를 부여하여 최종적으로 노드의 성능을 수치화한다.When each node obtains a numerical value for each attribute, it assigns a weight to finally quantify the performance of the node.

Figure 112014011238969-pat00047
Figure 112014011238969-pat00047

정확한 노드의 분석을 위한 최적의 가중치를 결정하기 위해 아래와 같은 실험을 진행하였다.The following experiments were conducted to determine the optimal weight for the analysis of the correct node.

Figure 112014011238969-pat00048
Figure 112014011238969-pat00048

표 5는 속성별 가중치의 비율차가 최소 0.5 이상인 경우이다. 모든 노드의 성능에 차이가 있고 Case 1의 경우 메모리, Case 2는 처리 속도, Case 3은 코어의 개수에 큰 비중을 둔다고 가정하였다.Table 5 shows the case in which the difference in weight ratio by attribute is at least 0.5. It is assumed that there is a difference in the performance of all nodes, that Case 1 has memory, Case 2 has processing speed, and Case 3 has a large number of cores.

Figure 112014011238969-pat00049
Figure 112014011238969-pat00049

Host #1은 CPU의 처리 속도가 상대적으로 빠르지만 코어의 수는 적은편이다. 메모리 역시 상대적으로 적은 크기를 가지기 때문에 처리해야할 양이 많은 가상머신을 처리하는데 적합하다. Host #3은 Host #1과는 반대로 CPU 처리 속도는 느리지만 코어를 8개나 보유하고 있다. 따라서 가벼운 가상머신 여러 개를 할당할 수 있어 보급형 가상머신에 적합하다. 표 6은 가중치 비율차가 0.5 이상인 경우 케이스별 노드 평가 결과를 나타내는 표 7 실험의 노드 성능표이다.Host # 1 has relatively fast CPU processing speed but fewer cores. Memory is also relatively small, making it suitable for handling large amounts of virtual machines to process. Host # 3 has 8 cores, though CPU processing speed is slow as opposed to Host # 1. This allows you to allocate multiple lightweight virtual machines, making them ideal for entry-level virtual machines. Table 6 shows the node performance table of Table 7 which shows the results of case-by-case node evaluation when the weight ratio difference is 0.5 or more.

Figure 112014011238969-pat00050
Figure 112014011238969-pat00050

Case 2에서 Host #4는 CPU 처리 속도의 비중이 높지만 상대적으로 다른 노드에 비해 처리 속도가 좋지 않기 때문에 높은 점수를 받지 못하였다. 그렇지만 Case 1을 적용하면 코어 8개를 보유하고 있기 때문에 0.925라는 높은 점수를 받게 된다. 표 7의 오른쪽 그래프는 Case 별로 노드를 어떻게 평가했는지를 볼 수 있다.In Case 2, Host # 4 has a high percentage of CPU processing speed, but has not received a high score because its processing speed is relatively slow compared to other nodes. However, if you apply Case 1, you will get a high score of 0.925 because you have 8 cores. The graph on the right in Table 7 shows how the node was evaluated per case.

실험 결과 가중치의 비율차가 지나치게 크기 때문에 공정한 성능 평가가 진행이 어렵다는 것을 확인할 수 있었다. CPU처리 속도의 비율이 높은 Case 2의 경우 Host #1의 메모리와 코어가 Host #4보다 현저히 부족하지만 더 좋은 노드로 인식하여 다량의 코어와 메모리를 효율적으로 사용하지 못하기 때문에 단편화 문제가 발생한다.As a result of the experiment, it is confirmed that the fair performance evaluation is difficult to proceed because the weight difference ratio is too large. In Case 2, which has a high rate of CPU processing speed, the memory and core of Host # 1 are significantly shorter than Host # 4, but they are recognized as a better node and can not efficiently use a large amount of core and memory. .

Figure 112014011238969-pat00051
Figure 112014011238969-pat00051

Figure 112014011238969-pat00052
Figure 112014011238969-pat00052

지나친 비율차로 발생하는 문제를 줄이고자 표 8의 경우 가중치의 비율차를 최소 0.3 이하로 줄이는 경우로 실험하였다. 실험 결과는 표 10과 같다.In order to reduce the problems caused by excessive ratio difference, in Table 8, the experiment was performed in which the weight ratio difference was reduced to at least 0.3. The experimental results are shown in Table 10.

Figure 112014011238969-pat00053
Figure 112014011238969-pat00053

앞선 실험에 비해 노드 평가 결과의 차이가 줄어든 것을 확인할 수 있다. 평가 결과 차이가 적음으로써 환경의 변화에 안정적으로 가중치를 적용시킬 수 있다. 표 7의 경우 가중치의 비율차가 크기 때문에 자원에 변경이 있을 경우 변경되는 값이 커서 불안정적인 평가 결과를 가질 수밖에 없다. 비율차를 줄인 표 10의 경우 가중치의 비율차가 적기 때문에 자원의 변경이 있더라도 변경되는 값이 크지 않기 때문에 안정적인 평가 결과를 유지할 수 있다. 이로 인해 노드의 단편화를 줄일 수 있고 안정적인 서비스를 제공할 수 있다.
It can be seen that the difference of the node evaluation result is reduced compared to the previous experiment. By reducing the difference in the evaluation results, the weight can be applied stably to changes in the environment. In Table 7, since the difference in the ratio of the weights is large, when there is a change in the resource, the value to be changed is large, and therefore, the result is unstable. In Table 10, in which the ratio difference is reduced, since the difference in the ratio of the weights is small, the value to be changed is not large even if the resource is changed, so that the stable evaluation result can be maintained. This can reduce node fragmentation and provide stable service.

그러면, 여기서 상기와 같이 구성된 시스템을 이용한 본 발명의 다중 자원의 효율적인 활용을 위한 가상머신 할당 방법에 대해 설명하기로 한다.Hereinafter, a virtual machine allocation method for efficiently utilizing multiple resources of the present invention using the system configured as described above will be described.

도 2는 본 발명의 일 실시예에 따른 가상 머신 할당이 이루어지는 과정을 나타내는 흐름도이다.2 is a flowchart illustrating a process of allocating a virtual machine according to an embodiment of the present invention.

클라우드 서비스 플랫폼이 시작되면 시스템(1)은 데이터센터(10)에서 관리하는 노드들(12)의 성능 분석을 위해 NC와 연결된 모든 데이터센터(10) 내 노드들(12)을 탐색한다(S201).When the cloud service platform is started, the system 1 searches all the nodes 12 in the data center 10 connected to the NC for performance analysis of the nodes 12 managed in the data center 10 (S201) .

여기서, 노드의 성능을 분석하기 위한 알고리즘은 도 3과 같다. 도 3의 알고리즘에서는 행렬의 역행렬을 구하는 과정을 가지는 InverMatrix() 메소드를 통해 노드의 성능을 분석한다. InvertMatrix()에서는 메모리 능력을 평가하기 위해 행렬과 역행렬을 저장할 메모리 공간 확보 가능 여부를 확인하고 확보된 메모리에 임의의 행렬을 생성한다. 이러한 과정을 통해 메모리의 적재 능력과 적재 속도 등을 평가할 수 있다. 임의의 행렬이 적재된 노드는 행렬의 역행렬을 구하기 위해 CPU의 연산 처리를 사용한다. 연산이 종료되면 연산 처리 속도와 정확도를 알 수 있고, 이를 현재 시간을 반환하는 Times()를 이용하여

Figure 112014011238969-pat00054
Figure 112014011238969-pat00055
의 차이를 이용하여 CPU의 성능을 평가한
Figure 112014011238969-pat00056
에 저장한다.
Figure 112014011238969-pat00057
i번째 노드의 성능을 분석결과에 가중치를 부여하여 수치화한 값으로, 이는 노드 성능 분석 데이터베이스(21)에 저장된다.Here, an algorithm for analyzing the performance of a node is shown in FIG. In the algorithm of FIG. 3, the performance of a node is analyzed through an InverMatrix () method having a process of obtaining an inverse matrix of a matrix. InvertMatrix () checks memory availability to store the matrix and inverse matrix in order to evaluate the memory capability, and creates an arbitrary matrix in the allocated memory. Through this process, the capacity of the memory and the loading speed can be evaluated. A node loaded with an arbitrary matrix uses the computational processing of the CPU to obtain the inverse matrix of the matrix. When the operation is completed, the computation speed and accuracy can be known, and using Times (), which returns the current time,
Figure 112014011238969-pat00054
Wow
Figure 112014011238969-pat00055
To evaluate the performance of the CPU
Figure 112014011238969-pat00056
.
Figure 112014011238969-pat00057
Is a value obtained by weighting the performance of the i < th > node by weighting the analysis result, and this value is stored in the node performance analysis database 21. [

살펴본 바와 같이, 플랫폼의 최초 실행 시 단계 S201에서 상기 메모리 능력 평가 및 CPU 성능 평가의 두 가지 평가를 모든 노드에 적용하고 반환받은 수치화된CPU 성능과 메모리 성능을 적재한다(S202). 저장한 결과는 추후 자원의 요청이 들어왔을 때 가상머신의 할당이 가능한 노드들의 리스트들 중 고성능을 가진 노드를 선택하는데 사용하며, 선택된 노드에 가상머신을 할당함으로써 효율성을 반영한다.As described above, in the first execution of the platform, the evaluation of the memory capability and the performance of the CPU are applied to all the nodes in step S201, and the returned CPU performance and memory performance are loaded (S202). The stored result is used to select a node with high performance among the lists of nodes that can be allocated to a virtual machine when a resource request is received in the future, and reflects efficiency by allocating a virtual machine to the selected node.

시스템이 시작한 후 노드의 성능 분석이 완료되면 사용자의 요구를 처리할 준비가 완료된다. 사용자로부터 자원의 요구가 들어오면(S203), 가상머신을 생성하고 할당, 이주 등을 관리하는 가상머신 할당 제어 시스템(23)이 자원의 가상화를 통한 가상머신을 생성한 후 노드 정보를 조회하여(S204) 노드 리스트에서 가상머신을 할당하기에 적합한 노드를 선택하고(S205) 최적의 노드에 가상머신을 할당한다(S206).After the system is started and the performance analysis of the node is completed, the user's request is ready to be processed. When a request for a resource is received from a user (S203), a virtual machine assignment control system 23 for creating a virtual machine and managing allocation, migration, and the like generates a virtual machine through virtualization of resources, S204) A node suitable for allocating a virtual machine in the node list is selected (S205) and a virtual machine is allocated to the optimal node (S206).

이때, 노드 리스트에서 최적의 노드를 찾기 위한 알고리즘은 도 4와 같다. 도 4의 알고리즘에서 첫 번째 for문에서는 사용자의 요구를 만족시킬 수 있고 현재 상태와 요구 충족 여부를 반영한 노드들의 리스트인 availableNodeList를 준비한다. N은 데이터센터(10)에서 관리하는 모든 노드이다. 모든 노드를 탐색한 후 할당 가능한 리스트가 확정되면 고성능과 빠른 노드 선택을 위해 이를 정렬한다.At this time, an algorithm for finding an optimal node in the node list is shown in FIG. In the algorithm of FIG. 4, the first for statement prepares availableNodeList, which is a list of nodes that can satisfy the user's request and reflect the current status and whether the request is satisfied or not. N is all the nodes managed by the data center 10. After all the nodes are searched and the assignable list is determined, it is sorted for high performance and fast node selection.

그 후, 가상머신이 생성되었으면 availableNodeList에 등록된 노드 중 첫 번째 노드에 가상머신을 할당하고 가상머신의 할당 정보를 가지는 vmtable에 가상머신이 선택된 노드에 할당이 되었음을 저장한다. 만약 가상머신이 노드에 할당되지 않았을 경우, availableNodeList에 등록된 다음 노드에 가상머신을 할당한다.
Then, when the virtual machine is created, it assigns the virtual machine to the first node among the registered nodes in the availableNodeList, and stores the virtual machine assigned to the selected node in the vmtable having the virtual machine allocation information. If the virtual machine is not assigned to a node, assign the virtual machine to the next node registered in availableNodeList.

이하에서는, 본 발명에서 제안하는 가상머신 할당 시스템(1)의 타당성을 기존의 할당 시스템과의 비교 실험을 통해 증명한다.Hereinafter, the validity of the virtual machine allocation system 1 proposed by the present invention is verified through a comparative experiment with an existing allocation system.

본 발명의 실험예에서는 다양한 가상머신 할당 시스템과의 비교와 다량의 가상머신 환경을 위해 호주의 Melbourne University의 Computer Science and Software Engineering과 소속 The Could Computing and Distributed System(CLOUDS) 연구실에서 개발한 클라우드 컴퓨팅 에뮬레이터인 클라우드심(CloudSim) 내에서 실험하였다. 클라우드심은 모델링, 시뮬레이션 및 클라우드 컴퓨팅 인프라와 응용 프로그램 서비스의 실험을 가능하게하고 확장 가능한 시뮬레이션 프레임 워크를 제공하는 것을 목적으로 한다. 표 11은 클라우드심의 기능을 설명한다.In the experimental example of the present invention, the cloud computing emulator developed by the Laboratory of Computer Science and Software Engineering of Melbourne University and the Could Computing and Distributed System (CLOUDS) laboratory of Australia for comparison with various virtual machine allocation systems and a large amount of virtual machine environment In-cloud sim (CloudSim). CloudSim aims to enable modeling, simulation and experimentation of cloud computing infrastructure and application services and to provide a scalable simulation framework. Table 11 describes the cloud simulation functions.

Figure 112014011238969-pat00058
Figure 112014011238969-pat00058

클라우드심은 대규모 클라우드 컴퓨팅 데이터센터의 모델링과 시뮬레이션을 지원하며 가상머신에 노드 자원의 프로비저닝에 대한 사용자 정의 정책과 가상 서버 노드의 모델링 및 시뮬레이션을 지원한다. 또한 가상 머신에 노드 자원을 할당을 위한 가상머신과 노드 할당에 대한 사용자 정의 정책을 지원해주기 때문에 본 논문에서 제안하는 가상머신 할당 시스템을 실험하기에 적합하다. 표 12는 클라우드심 레이어 아키텍처이다.CloudSim supports modeling and simulation of large cloud computing data centers and supports customization policies and virtual server node modeling and simulation for provisioning node resources to virtual machines. In addition, since it supports a virtual machine for assigning node resources to a virtual machine and a user-defined policy for node allocation, it is suitable for experimenting with the virtual machine allocation system proposed in this paper. Table 12 shows the cloud seam layer architecture.

Figure 112014011238969-pat00059
Figure 112014011238969-pat00059

본 명세서의 실험예에서는 자원의 노드의 성능의 제약이나 거스름 없는 환경에서 다양한 실험을 요구하기 때문에 노드들은 실험마다 다른 성능을 가진다. 실험은 크게 모든 노드들이 같은 성능을 가졌을 경우와 다른 성능을 가졌을 경우로 구분하여 진행하였다.In the experimental example of the present specification, nodes require different experiments in the environment of the resources of the nodes or the constraints of the performance of the resources. Experiments were carried out by dividing all nodes into the same performance and different performance.

본 발명의 일 실시예에 따른 가상머신 할당 시스템과 실험을 통해 비교되는 다른 시스템은 클라우드심에서 제공되는 기본 스케줄링과 유칼립투스의 기본 스케줄링인 사용되는 라운드로빈이다.Another system that is experimentally compared with the virtual machine allocation system according to an embodiment of the present invention is the round robin used, which is basic scheduling provided in the cloud core and eucalyptus basic scheduling.

클라우드심에서 제공되는 기본 스케줄링은 가상머신의 자원 요청이 들어왔을 때 노드에서 가지고 있는 사용되지 않는 호스트의 수가 많은 노드에 최우선적으로 가상머신을 할당한다.The basic scheduling provided in the cloud shim assigns virtual machines to the nodes that have a large number of unused hosts in the node when the virtual machine resource request is received.

라운드로빈은 시스템 내에 설정된 노드의 순서대로 가상머신의 자원 요청을 해결이 가능한 노드에 가상머신을 할당한다.Round robin assigns virtual machines to nodes that can resolve resource requests of virtual machines in the order of the nodes set in the system.

실험예Experimental Example 1 : 모든 노드들이 다른 성능을 가졌을 경우 1: All nodes have different performance

실험예 1은 모든 노드들이 다른 성능을 가졌을 경우로서, 본 실험은 다중 자원에서 제안하는 시스템이 얼마나 효율적으로 자원을 사용하는지를 증명하기 위해 노드의 성능이 다른 경우에 클라우드심 기본 스케줄링, 라운드로빈과 비교 실험을 해보았다.Experimental Example 1 is a case where all nodes have different performance. In order to prove how efficiently the system proposed by the multiple resources uses resources, in the case where the performance of the node is different, it is compared with the cloud core basic scheduling, round robin I have experimented.

첫 번째 실험에서는 노드 5개의 성능은 다르지만 할당을 요청하는 가상머신들의 성능은 동일하게 설정하였다. 첫 번째 실험의 노드 성능은 표 13과 같다.In the first experiment, the performances of the virtual machines requesting allocation are set to the same although the performance of the node 5 is different. Table 13 shows the node performance of the first experiment.

Figure 112014011238969-pat00060
Figure 112014011238969-pat00060

Host #1과 Host #4, Host #2와 Host #5은 코어의 수는 같지만 CPU의 연산 처리 능력은 약 2배정도 차이를 보이며 코어가 1개인 경우 코어가 4개인 경우에 비해 연산처리능력이 최대 3배 이상 좋도록 설정하였다. 이는 상기에서 설명한 노드의 성능 분석 방법의 효과를 증명하기 위해 눈대중으로는 평가하기 애매한 경우를 설정한 것이다.Host # 1 and Host # 4, Host # 2 and Host # 5 have the same number of cores, but the processing power of the CPU is about twice that of the core. 3 times or more. In order to prove the effect of the performance analysis method of the node described above, the ambiguous case for evaluating the eyes is set.

표 14는 첫 번째 실험에서 노드에 할당을 요청하는 같은 성능을 가지는 가상머신 20개의 성능이다.Table 14 shows the performance of 20 virtual machines with the same performance that request allocation to nodes in the first experiment.

Figure 112014011238969-pat00061
Figure 112014011238969-pat00061

두 번째 실험은 노드 5개의 성능 뿐 아니라 가상머신이 요청하는 자원량도 각각 다른 경우이다. 5개의 노드 성능은 첫 번째 실험과 동일하며 20개의 가상머신이 요청하는 자원량은 표 15와 같다.In the second experiment, not only the performance of the node 5 but also the amount of resources required by the virtual machine are different. The performance of the five nodes is the same as the first experiment, and the resource amounts requested by the 20 virtual machines are shown in Table 15.

Figure 112014011238969-pat00062
Figure 112014011238969-pat00062

세 번째 실험은 두 번째 실험에서 노드의 수와 자원을 요청하는 가상머신의 수를 증가시킨 것으로 추가된 노드의 성능은 표 16, 가상머신이 요청한 자원량은 표 17과 같이 설정하였다.In the third experiment, the number of nodes and the number of virtual machines requesting resources are increased in the second experiment. Table 16 shows the performance of the added nodes, and Table 17 shows the resource amounts requested by the virtual machines.

Figure 112014011238969-pat00063
Figure 112014011238969-pat00063

Figure 112014011238969-pat00064
Figure 112014011238969-pat00064

실험예Experimental Example 2 : 모든 노드들이 같은 성능을 가졌을 경우 2: All nodes have the same performance

실험예 2는 모든 노드들이 같은 성능을 가졌을 경우를 가정한 것이다.Experimental Example 2 assumes that all nodes have the same performance.

노드에 가상머신을 할당하기 위한 많은 스케줄링 연구들은 소수의 노드와 가상머신을 사용하기 때문에 대부분 같은 노드들의 성능을 전제로 실험 환경을 구축한다. 본 발명에서는 자원들의 성능 차이에 따른 이점을 극대화시키는 것이 목적이지만, 다른 연구들과의 비교를 위해 모든 노드들이 같은 성능을 가졌을 경우를 실험해보았다. 네 번째 실험의 노드 성능은 표 18과 같으며, 가상머신 요청 자원은 두 번째 실험의 가상머신 요청 자원과 같다Many scheduling studies for assigning virtual machines to nodes use a small number of nodes and virtual machines, so we construct an experimental environment based on the performance of most nodes. In the present invention, the purpose of maximizing the advantage according to the performance difference of the resources is maximized. However, in order to compare with other researches, all the nodes have the same performance. Node performance of the fourth experiment is shown in Table 18, and the virtual machine request resource is the same as the virtual machine request resource of the second experiment

Figure 112014011238969-pat00065
Figure 112014011238969-pat00065

본 발명에서는 모든 노드들이 다른 성능을 가졌을 경우와 같은 성능을 가졌을 경우를 실제 클라우드 플랫폼 시스템에서 사용되는 가상머신 할당 시스템과의 비교를 통해 클라우드 컴퓨팅 환경에서 가상머신의 할당 성공률과 단편화 현상 최소화를 증명하고자한다. 본 발명에서 제안하는 가상머신 할당 시스템과 비교되는 가상머신 할당 시스템은 클라우드심에서 제공되는 FCFS 기반의 가상머신 할당 시스템과 유칼립투스의 가상머신 할당 시스템인 라운드로빈이다.In the present invention, it is proved that a virtual machine allocation success rate and a fragmentation minimization in a cloud computing environment are compared with a virtual machine allocation system used in an actual cloud platform system when all the nodes have the same performance as those having different performance do. The virtual machine allocation system compared with the virtual machine allocation system proposed in the present invention is a round robin which is a virtual machine allocation system based on FCFS and a virtual machine allocation system of Eucalyptus provided in the cloud core.

표 19는 실험 결과로 각 스케줄링 별로 노드에 할당 성공한 가상머신들의 분포도를 보여준다.Table 19 shows the distribution of virtual machines that have been successfully allocated to nodes by each scheduling result.

Figure 112014011238969-pat00066
Figure 112014011238969-pat00066

클라우드심의 기본 스케줄러는 노드에서 미사용중인 코어의 수를 중요시하기 때문에 Host #5번과 Host #2번이 우선적으로 할당되는 것을 확인할 수 있다. 반면에 라운드로빈의 경우 노드가 등록된 순서인 Host #5→#4→#3→#2→#1 순으로 할당되며 VM #13부터 가상머신 요구사항을 만족할 수 없어 할당이 불가능한 노드에는 할당하지 않는 것을 확인할 수 있다. 그에 비해 제안하는 기법은 본 발명의 상기 노드의 성능 분석 방법을 기반으로 노드들의 성능을 분석하고, 노드들 중 가장 고사양이라고 평가되는 노드인 Host #2에 우선적으로 가상머신을 할당하는 것을 확인할 수 있다.Since the basic scheduler of the cloud core places importance on the number of unused cores in the node, it can be confirmed that Host # 5 and Host # 2 are assigned preferentially. On the other hand, round robin is allocated in the order of Host # 5 → # 4 → # 3 → # 2 → # 1, which is the order in which nodes are registered, and can not be allocated to nodes that can not satisfy the virtual machine requirements since VM # 13 . On the contrary, the proposed method analyzes the performance of the nodes based on the performance analysis method of the node of the present invention, and confirms that the virtual machine is preferentially allocated to Host # 2 which is the highest evaluated node among the nodes .

각 스케줄링 별로 가상머신의 할당 요청을 성공적으로 처리한 비율은 표 20과 같다.Table 20 shows the ratio of successfully processed virtual machine allocation requests for each scheduling.

Figure 112014011238969-pat00067
Figure 112014011238969-pat00067

첫 번째, 네 번째 실험의 경우 자원을 요구하는 가상머신들의 성능에 차이가 거의 없기 때문에 세 가상머신 할당 시스템들의 가상머신 할당 성공률이 같았다. 그렇지만 가상머신들의 성능에 차이가 있는 두 번째 세 번째 실험의 경우 라운드로빈에 비해 본 발명에서 제안하는 가상머신 할당 시스템이 더 높은 성공률을 보임을 확인할 수 있었다. 이는 더 많은 요구사항을 처리함으로 노드들을 효율적으로 사용하여 처리할 수 있는 요구사항의 양의 증가되었다는 것을 설명한다.In the first and fourth experiments, the virtual machine allocation success rate of the three virtual machine allocation systems was the same because there was little difference in the performance of the virtual machines requiring resources. However, in the case of the second experiment in which the performance of the virtual machines is different, it is confirmed that the virtual machine allocation system proposed by the present invention has a higher success rate than the round robin. This explains that the processing of more requirements has increased the amount of requirements that can be efficiently used to process the nodes.

Figure 112014011238969-pat00068
Figure 112014011238969-pat00068

Figure 112014011238969-pat00069
Figure 112014011238969-pat00069

표 21과 표 22는 각 노드별로 가상머신 할당 횟수이다. 노드들은 첫 번째 실험에서 사용한 노드들로 성능은 표 13과 같다. Host #4는 1개의 코어를 가지지만 CPU의 성능점수가 2000으로 Host #3이 가지는 2개의 코어와 CPU 성능점수 300보다 더 많은 양의 요구사항을 빠르게 처리할 수 있다. 클라우드심의 가상머신 할당시스템과 라운드로빈의 경우 빠른 처리속도에 상관없이 코어의 수가 더 많은 Host #3에 우선적으로 가상머신을 할당함으로써 요구사항의 빠른 처리가 불가능하다. 그렇지만 제안기법은 노드의 코어 수 뿐 아니라 노드가 가지고 있는 CPU의 연산처리 속도와 메모리 성능을 반영하여 가상머신을 할당할 노드를 결정하기 때문에 Host #4의 가상머신 할당 횟수가 더 많은 것을 확인할 수 있다. 이로 인해 같은 시간동안 작업을 하더라도 클라우드심의 가상머신 할당 시스템과 라운드로빈에 비해 요구사항의 처리 속도가 빠를 뿐 아니라 같은 시간동안 작업을 하더라도 상대적으로 더 많은 가상머신의 요구사항을 처리할 수 있다. 또 노드를 균형적인 사용을 보여 노드의 부하를 줄이고자 함을 보여준다.Table 21 and Table 22 show the number of virtual machine allocations per node. The nodes are the nodes used in the first experiment. Host # 4 has one core, but with a CPU performance score of 2000, it can quickly handle more than two cores of Host # 3 and a CPU performance score of 300. In the case of the cloud virtual machine allocation system and round robin, it is impossible to process requests quickly because the virtual machines are assigned to Host # 3 with a higher number of cores, regardless of the fast processing speed. However, since the proposed method determines the node to allocate the virtual machine to reflect not only the number of cores of the node but also the processing speed and memory performance of the CPU of the node, it is confirmed that the number of virtual machine allocation of Host # 4 is larger . This allows for faster processing of requirements than the virtual machine allocation system and round robin of the cloud core, and even more virtual machine requirements for the same amount of time. It also shows that the node is used in a balanced manner and the load of the node is reduced.

표 23은 가상머신의 할당 성공률이 거의 같은 클라우드심의 가상머신 할당 기법과 제안기법의 가상머신들의 자원 요청을 처리한 후 노드에 남은 메모리양을 비교한 것이다.Table 23 compares the amount of memory remaining in the node after processing the resource requests of the virtual machines of the proposed scheme and the virtual machine allocation scheme of the cloud sim that have almost the same success rate of virtual machines.

다른 결과와 마찬가지로 가상머신의 성능 차이가 없는 첫 번째 실험과 네 번째 실험은 클라우드심의 가상머신 할당 시스템과 제안기법의 결과가 같다. 가상머신의 성능 차이가 있는 두 번째 실험과 세 번째 실험의 경우 두 할당 시스템의 차이를 보인다. 두 번째 실험의 경우 클라우드심 가상머신 할당 시스템에 비해 제안기법이 더 많은 메모리를 남길 뿐 아니라 잔여 메모리양이 집합되어있어 더 많은 가상머신의 요청을 처리할 수 있다. 이를 통하여 본 발명에서 제안하는 가상머신 할당 기법에서는 노드의 메모리의 단편화를 최소화함으로 노드의 성능을 효율적으로 활용할 수 있음을 보여준다.As with the other results, the first experiment and the fourth experiment, which have no difference in the performance of the virtual machines, are the same as those of the virtual machine allocation system and the proposed technique. In the case of the second experiment with the performance difference of the virtual machine and the third experiment, the difference between the two allocation systems is shown. In the second experiment, compared with the cloud sim virtual machine allocation system, the proposed technique not only leaves more memory but also collects the remaining memory amount so that more virtual machine requests can be processed. In this way, the virtual machine allocation scheme proposed in the present invention minimizes the fragmentation of the memory of the node, thereby making it possible to efficiently utilize the performance of the node.

Figure 112014011238969-pat00070
Figure 112014011238969-pat00070

이상에서 몇 가지 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것이 아니고 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the invention.

1 : 가상머신 할당 시스템
10 : 데이터센터
11 : 노드 성능 분석기
12 : 노드
20 : 서비스 제공자 하이퍼바이저
21 : 노드 성능 데이터베이스
22 : 데이터센터 브로커
23 : 가상머신 할당 제어 시스템
24 : 가상머신 이주 제어기
25 : 가상머신 생성 제어기
30 : 클라우드 서비스 제공자
1: Virtual Machine Allocation System
10: Data center
11: Node Performance Analyzer
12: Node
20: Service Provider Hypervisor
21: Node Performance Database
22: Data center broker
23: Virtual Machine Allocation Control System
24: Virtual Machine Migration Controller
25: Virtual Machine Creation Controller
30: Cloud service provider

Claims (4)

가상머신 할당 시스템에 있어서,
상기 가상머신 할당 시스템은, 서비스 제공자 하이퍼바이저 및 데이터 센터를 포함하고,
상기 서비스 제공자 하이퍼바이저는,
노드 성능 데이터 베이스,
상기 노드 성능 데이터베이스에서 불러온 노드 리스트를 가지는 데이터센터 브로커 및
상기 노드 리스트에서 가상머신을 할당하기에 최적의 노드에 가상머신을 생성하는 가상머신 생성 제어기와 상기 가상머신의 이주를 제어하는 가상머신 이주 제어기를 포함하는 가상머신 할당 제어 시스템을 포함하고,
상기 데이터 센터는,
노드들 및
상기 노드들의 성능을 분석하고 평가하여 상기 노드 성능 데이터베이스에 저장하는 노드 성능 분석기를 포함하며,
상기 노드 성능 분석기는, 상기 노드들의 성능을 분석하기 위해 임의로 행렬을 생성하고, 상기 노드들이 상기 행렬의 역행렬을 구하는데 소요된 연산시간을 각각 추출하며, 상기 연산시간의 길고 짧음으로 상기 노드들의 성능을 각각 평가함으로써 상기 연산시간이 짧은 노드 순서로 가상머신을 우선 할당하고,
상기 데이터센터 브로커는, 상기 데이터센터를 관리하는,
가상머신 할당 시스템.
In a virtual machine allocation system,
Wherein the virtual machine assignment system comprises a service provider hypervisor and a data center,
The service provider hypervisor,
Node performance database,
A data center broker having a node list retrieved from the node performance database and
And a virtual machine allocation control system including a virtual machine creation controller for creating a virtual machine in a node optimal for allocating a virtual machine in the node list and a virtual machine migration controller for controlling migration of the virtual machine,
The data center comprises:
Nodes and
And a node performance analyzer for analyzing and evaluating the performance of the nodes and storing the nodes in the node performance database,
Wherein the node performance analyzer randomly generates a matrix for analyzing the performance of the nodes and extracts an operation time spent by the nodes to obtain an inverse matrix of the matrix, Respectively, so that the virtual machines are first allocated in the order of the nodes having the short computation time,
Wherein the data center broker comprises:
Virtual machine allocation system.
제1항에서,
상기 노드 성능 분석기는,
상기 노드들의 성능으로 판단한 CPU, 메모리 및 스토리지에 일정 가중치를 부여하여 상기 최적의 노드를 선정하고,
상기 가중치는 CPU의 코어수, CPU의 연산 처리 속도 및 메모리의 잔여량에 따라 부여되는,
가상머신 할당 시스템.
The method of claim 1,
Wherein the node performance analyzer comprises:
Allocating a predetermined weight to a CPU, memory, and storage determined as the performance of the nodes to select the optimal node,
The weight is given in accordance with the number of cores of the CPU, the computation processing speed of the CPU, and the remaining amount of memory,
Virtual machine allocation system.
노드들의 성능 분석을 위해 서비스 제공자 하이퍼바이저가 데이터센터 내의 노드들을 탐색하는 단계;
상기 성능 분석의 결과에 가중치를 부여하여 노드 성능 분석기가 상기 가중치를 노드 성능 분석 데이터베이스에 저장하는 단계;
사용자로부터 가상머신 할당 요청이 들어오면, 데이터센터 브로커가 상기 노드 성능 분석 데이터베이스로부터 불러온 노드 리스트에서 노드 정보를 조회하는 단계;
서비스 제공자 하이퍼바이저가 상기 노드 리스트에서 가상머신을 할당하기에 최적의 노드를 선택하는 단계; 및
가상 머신 할당 제어 시스템이 상기 최적의 노드에 가상머신을 할당하는 단계;를 포함하고,
상기 노드 성능 분석기는, 상기 노드들의 성능을 분석하기 위해 임의로 행렬을 생성하고, 상기 노드들이 상기 행렬의 역행렬을 구하는데 소요된 연산시간을 각각 추출하며, 상기 연산시간의 길고 짧음으로 상기 노드들의 성능을 각각 평가함으로써 상기 연산시간이 짧은 노드 순서로 가상머신을 우선 할당하는,
가상머신 할당 방법.
Searching for nodes in the data center by the service provider hypervisor for performance analysis of the nodes;
Assigning weights to the results of the performance analysis and storing the weights in a node performance analysis database;
When a virtual machine allocation request is received from a user, the data center broker inquires node information from a node list loaded from the node performance analysis database;
The service provider hypervisor selecting an optimal node for allocating a virtual machine in the node list; And
And allocating a virtual machine to the optimal node by the virtual machine allocation control system,
Wherein the node performance analyzer randomly generates a matrix for analyzing the performance of the nodes and extracts an operation time spent by the nodes to obtain an inverse matrix of the matrix, And assigning the virtual machines to the nodes in the order of the nodes having the shortest computation time,
Virtual machine allocation method.
제3항에서,
상기 노드들을 탐색하는 단계는,
행렬의 역행렬을 구하고 각 노드가 주어진 연산을 처리하는데 소요되는 시간을 추출하여 상기 노드들의 성능을 분석하는,
가상머신 할당 방법.
4. The method of claim 3,
The step of searching for the nodes comprises:
The inverse matrix of the matrix is obtained, and the time required for each node to process a given operation is extracted to analyze the performance of the nodes.
Virtual machine allocation method.
KR1020140012932A 2014-02-05 2014-02-05 System and method for allocating virtual machine for effective use of multi resource in cloud KR101557747B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140012932A KR101557747B1 (en) 2014-02-05 2014-02-05 System and method for allocating virtual machine for effective use of multi resource in cloud

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140012932A KR101557747B1 (en) 2014-02-05 2014-02-05 System and method for allocating virtual machine for effective use of multi resource in cloud

Publications (2)

Publication Number Publication Date
KR20150092492A KR20150092492A (en) 2015-08-13
KR101557747B1 true KR101557747B1 (en) 2015-10-19

Family

ID=54056762

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140012932A KR101557747B1 (en) 2014-02-05 2014-02-05 System and method for allocating virtual machine for effective use of multi resource in cloud

Country Status (1)

Country Link
KR (1) KR101557747B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102129389B1 (en) * 2018-12-20 2020-07-08 경희대학교 산학협력단 Method and Apparatus for VM placement based on multi-objective in cloud computing environment
KR20220062836A (en) * 2020-11-09 2022-05-17 숭실대학교산학협력단 Service migration system in edge computing environment

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101886317B1 (en) * 2017-04-28 2018-08-08 울산과학기술원 Apparatus and method for selecting placement of virtual machine
KR102319172B1 (en) * 2019-11-29 2021-10-29 주식회사 데브스택 Platform providing system based on cloud computing and platform provision method using the same
KR102247629B1 (en) * 2019-12-17 2021-05-04 부산대학교 산학협력단 Apparatus and method for optimizing cloud virtual machine resources based on machine-learning
US10817328B1 (en) * 2020-01-30 2020-10-27 Coupang Corp. Systems and methods for virtual server resource usage metric evaluation and performance tracking

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130067090A1 (en) 2011-09-12 2013-03-14 Microsoft Corporation Coordination engine for cloud selection

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130067090A1 (en) 2011-09-12 2013-03-14 Microsoft Corporation Coordination engine for cloud selection

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102129389B1 (en) * 2018-12-20 2020-07-08 경희대학교 산학협력단 Method and Apparatus for VM placement based on multi-objective in cloud computing environment
KR20220062836A (en) * 2020-11-09 2022-05-17 숭실대학교산학협력단 Service migration system in edge computing environment
KR102486602B1 (en) 2020-11-09 2023-01-09 숭실대학교산학협력단 Service migration system in edge computing environment

Also Published As

Publication number Publication date
KR20150092492A (en) 2015-08-13

Similar Documents

Publication Publication Date Title
Agarwal et al. Efficient optimal algorithm of task scheduling in cloud computing environment
Saleh et al. IPSO task scheduling algorithm for large scale data in cloud computing environment
KR101557747B1 (en) System and method for allocating virtual machine for effective use of multi resource in cloud
Chien et al. Load balancing algorithm based on estimating finish time of services in cloud computing
Lin et al. Bandwidth‐aware divisible task scheduling for cloud computing
Lee et al. Performance analysis based resource allocation for green cloud computing
US8930541B2 (en) System, method and program product for cost-aware selection of templates for provisioning shared resources
Aladwani Types of task scheduling algorithms in cloud computing environment
Dhari et al. An efficient load balancing scheme for cloud computing
US11307802B2 (en) NVMe queue management multi-tier storage systems
Rani et al. An efficient and scalable hybrid task scheduling approach for cloud environment
Sonkar et al. A review on resource allocation and VM scheduling techniques and a model for efficient resource management in cloud computing environment
Pattanaik et al. Performance study of some dynamic load balancing algorithms in cloud computing environment
Rani et al. Study on fundamental usage of CloudSim simulator and algorithms of resource allocation in cloud computing
WO2013123650A1 (en) Method for virtual machine assignment and device for virtual machine assignment
Kaur et al. Improved max-min scheduling algorithm
Manikandan et al. Virtualized load balancer for hybrid cloud using genetic algorithm
Seth et al. Dynamic threshold-based dynamic resource allocation using multiple VM migration for cloud computing systems
Joshi et al. Evaluating the performance of load balancing algorithm for heterogeneous cloudlets using HDDB algorithm
He et al. A two-stage scheduling method for deadline-constrained task in cloud computing
Himthani et al. Comparative analysis of VM scheduling algorithms in cloud environment
Komarasamy et al. ScHeduling of jobs and Adaptive Resource Provisioning (SHARP) approach in cloud computing
JP2018037047A (en) Resource allocation device, resource allocation method and resource allocation program
Gupta et al. Load balancing using genetic algorithm in mobile cloud computing
Pradeep et al. A review on task scheduling using optimization algorithm in clouds

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20181002

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191001

Year of fee payment: 5