KR20180062403A - Method and apparatus for perforiming migration of virtual machine - Google Patents

Method and apparatus for perforiming migration of virtual machine Download PDF

Info

Publication number
KR20180062403A
KR20180062403A KR1020170161564A KR20170161564A KR20180062403A KR 20180062403 A KR20180062403 A KR 20180062403A KR 1020170161564 A KR1020170161564 A KR 1020170161564A KR 20170161564 A KR20170161564 A KR 20170161564A KR 20180062403 A KR20180062403 A KR 20180062403A
Authority
KR
South Korea
Prior art keywords
virtual machine
computer
resource
difference value
computer node
Prior art date
Application number
KR1020170161564A
Other languages
Korean (ko)
Other versions
KR102010152B1 (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 PCT/KR2017/013801 priority Critical patent/WO2018101736A1/en
Publication of KR20180062403A publication Critical patent/KR20180062403A/en
Application granted granted Critical
Publication of KR102010152B1 publication Critical patent/KR102010152B1/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; 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
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

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)
  • Hardware Redundancy (AREA)

Abstract

Disclosed is a method of transmitting the resource difference value of a first virtual machine driven by a first device for providing an application service to a second device at a remote location to be migrated, determining when to stop the application service performed in a virtual machine based on network state information between a first device and a second device, as the configuration state of a first virtual machine is copied to a second virtual machine running on the second device, based on the resource difference value of the first virtual machine, and allowing the first device which deactivates the first virtual machine at the determined stop time to perform the migration of the virtual machine. It is possible to perform the dynamic migration of the virtual machine.

Description

가상머신의 마이그레이션을 수행하기 위한 방법 및 장치 {METHOD AND APPARATUS FOR PERFORIMING MIGRATION OF VIRTUAL MACHINE}[0001] METHOD AND APPARATUS FOR PERFORMANCE MIGRATION OF VIRTUAL MACHINE [0002]

개시된 실시예는 가상머신의 마이그레이션을 수행하기 위한 방법, 장치 및 그 방법을 컴퓨터에서 실행시키기 위한 프로그램에 관한다.The disclosed embodiments relate to a method, an apparatus, and a program for causing a computer to execute a migration of a virtual machine.

최근 페이스북과 같은 SNS(Social Network Service)에서의 실시간 비디오 스트리밍과 같은 서비스는 클라우드 기반의 가상머신 서버 시스템을 통해 응용서비스를 제공할 수 있도록 기술 발전을 이룩하였다. 한편, SNS 서비스와 같이 대규모 사용자들이 동시에 이용하는 서비스의 경우, 서비스를 이용하는 사용자들의 특성에 따라 특정 지역 또는 특정 시간대에 사용자가 밀집되는 문제점이 발생할 수 있다. Recently, services such as real-time video streaming in SNS (Social Network Service) such as Facebook have developed technology to provide application service through a cloud-based virtual machine server system. Meanwhile, in the case of a service such as an SNS service, which is used by a large number of users at the same time, there may arise a problem that users are concentrated in a specific region or a specific time zone depending on the characteristics of users using the service.

이러한 경우, 서비스를 이용하는 사용자의 개별적인 요건을 고려하기 보다는 대규모 사용자들이 위치한 지역으로 가상머신 서버를 마이그레이션(migration) 시켜서 지연 등과 같은 실시간 스트리밍에 필요한 품질 요건을 맞출 매커니즘이 필요하다. 가상머신의 마이그레이션은 주로 LAN(Local Area Network) 환경에서 고려되었으나, SDN(Software Defined Network)/NFV(Network Function Virtualization)에 따른 클라우드에 기반한 환경의 변화요인으로 인해 WAN(Wide Area Network) 환경에서의 마이그레이션에 대한 기술 개발이 활발히 이루어지고 있다. In this case, rather than considering the individual requirements of the users who use the service, a mechanism is needed to migrate the virtual machine server to the area where large users are located, and to meet the quality requirements for real-time streaming such as delay. Migration of virtual machines has been considered mainly in LAN (Local Area Network) environment, but due to cloud-based environment change due to Software Defined Network (SDN) / Network Function Virtualization (NFV) Technology development for migration is actively being carried out.

개시되는 실시예들은 클라우드 시스템 환경에서 가상머신의 동적 마이그레이션 (dynamic migration) 을 수행하기 위한 수단을 개시한다. 다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.The disclosed embodiments disclose a means for performing dynamic migration of a virtual machine in a cloud system environment. It should be understood, however, that the technical scope of the present invention is not limited to the above-described technical problems, and other technical problems may exist.

일 실시예에 따라, 제 1 디바이스가 가상머신의 마이그레이션을 수행하는 방법은, 애플리케이션 서비스 제공을 위해 상기 제 1 디바이스에서 구동되는 제 1 가상머신의 리소스 차이값을, 마이그레이션 시킬 원격 위치의 제 2 디바이스에 전송하는 단계; 제 1 가상머신의 리소스 차이값을 기초로, 제 1 가상머신의 구성 상태가 제 2 디바이스에서 구동되는 제 2 가상머신에 복제됨에 따라, 제 1 디바이스와 제 2 디바이스 간의 네트워크 상태 정보를 기초로 제 1 가상머신에서 수행되는 애플리케이션 서비스의 중단 시점을 결정하는 단계; 결정된 중단 시점에 제 1 가상머신을 비활성화하는 단계를 포함한다. According to one embodiment, a method for a first device to perform a migration of a virtual machine comprises: comparing a resource difference value of a first virtual machine running on the first device for application service provision to a second device ; Based on the network state information between the first device and the second device, as the configuration state of the first virtual machine is copied to the second virtual machine running on the second device, based on the resource difference value of the first virtual machine, 1 determining a point-in-time of an application service performed in a virtual machine; And deactivating the first virtual machine at the determined pause time.

일 실시예에 따라, 제 1 디바이스가 가상머신의 마이그레이션을 수행하는 방법에 있어서, 리소스 차이값은, 제 1 가상머신과 제 2 가상머신 간의 메모리, 프로세스 및 디스크의 상태 값 중 적어도 하나의 차이값을 포함한다. According to one embodiment, there is provided a method for a first device to perform a migration of a virtual machine, the resource difference value comprising at least one of a memory, a process, and a status value of a disk between a first virtual machine and a second virtual machine .

일 실시예에 따라, 제 1 디바이스가 가상머신의 마이그레이션을 수행하는 방법에 있어서, 중단 시점은, 제 1 디바이스와 제 2 디바이스 간의 패킷 전달 지연 시간을 기초로 결정된다. According to one embodiment, in a method for a first device to perform a migration of a virtual machine, the point of interruption is determined based on a packet delivery delay time between the first device and the second device.

일 실시예에 따라, 제 1 디바이스가 가상머신의 마이그레이션을 수행하는 방법에 있어서, 제 1 디바이스에서 제공되는 애플리케이션 서비스의 QoS(Quality of Service) 값을 산출하는 단계를 더 포함하고, 전송하는 단계는, 산출된 QoS 값이 기 설정된 임계값 미만인 경우, 제 1 가상머신의 리소스 차이값을 제 2 디바이스에 전송한다. According to one embodiment, there is provided a method for a first device to perform a migration of a virtual machine, the method further comprising calculating a Quality of Service (QoS) value of an application service provided in the first device, , And transmits the resource difference value of the first virtual machine to the second device when the calculated QoS value is less than the preset threshold value.

일 실시예에 따라, 제 2 디바이스가 가상머신의 마이그레이션을 수행하는 방법은, 애플리케이션 서비스의 제공을 위해 제 1 디바이스에서 구동되는 제 1 가상머신의 리소스 차이값을 수신하는 단계; 제 1 가상머신의 리소스 차이값을 기초로, 제 1 가상머신의 구성 상태를 제 2 디바이스에서 구동되는 제 2 가상머신에 복제하는 단계; 및 제 1 디바이스와 제 2 디바이스 간의 네트워크 상태 정보를 기초로 결정된 서비스 시작 시점에 애플리케이션 서비스를 수행하는 단계를 포함한다. According to one embodiment, a method for a second device to perform a migration of a virtual machine comprises: receiving a resource difference value of a first virtual machine running on a first device for provision of an application service; Duplicating the configuration status of the first virtual machine to a second virtual machine running on the second device, based on the resource difference value of the first virtual machine; And performing an application service at a service start point determined based on network state information between the first device and the second device.

일 실시예에 따라, 제 2 디바이스가 가상머신의 마이그레이션을 수행하는 방법에 있어서, 리소스 차이값은, 제 1 가상머신과 제 2 가상머신 간의 메모리, 프로세스 및 디스크의 상태 값 중 적어도 하나의 차이값을 포함한다. According to one embodiment, there is provided a method for a second device to perform a migration of a virtual machine, the resource difference value comprising at least one of a memory value between the first virtual machine and the second virtual machine, .

일 실시예에 따라, 제 2 디바이스가 가상머신의 마이그레이션을 수행하는 방법에 있어서, 서비스 시작 시점은, 제 1 디바이스와 제 2 디바이스 간의 패킷 전달 지연 시간을 기초로 결정된다. According to one embodiment, in a method for a second device to perform a migration of a virtual machine, the service start time is determined based on a packet delivery delay time between the first device and the second device.

일 실시예에 따라, 제 2 디바이스가 가상머신의 마이그레이션을 수행하는 방법은, 제 1 디바이스와 제 2 디바이스 간에 공유되는 저장소로부터 제 1 가상머신의 이미지를 획득하는 단계를 더 포함하고, 복제하는 단계는, 획득된 제 1 가상머신의 이미지 및 리소스 차이값을 기초로 제 1 가상머신의 구성 상태를 제 2 가상머신에 복제한다.According to one embodiment, a method for a second device to perform a migration of a virtual machine further comprises acquiring an image of a first virtual machine from a repository that is shared between the first device and the second device, Replicates the configuration state of the first virtual machine to the second virtual machine based on the obtained image of the first virtual machine and the resource difference value.

일 실시예에 따라, 가상머신의 마이그레이션을 수행하는 제 1 디바이스는, 애플리케이션 서비스 제공을 위해 제 1 디바이스에서 구동되는 제 1 가상머신의 리소스 차이값을, 마이그레이션 시킬 원격 위치의 제 2 디바이스에 전송하는 통신부; 제 1 가상머신의 리소스 차이값을 기초로, 제 1 가상머신의 구성 상태가 제 2 디바이스에서 구동되는 제 2 가상머신에 복제됨에 따라, 제 1 디바이스와 제 2 디바이스 간의 네트워크 상태 정보를 기초로 제 1 가상머신에서 수행되는 애플리케이션 서비스의 중단 시점을 결정하고, 결정된 중단 시점에 상기 제 1 가상머신을 비활성화하는 프로세서를 포함한다. According to one embodiment, a first device performing a migration of a virtual machine transfers a resource difference value of a first virtual machine running on a first device for application service provision to a second device at a remote location to migrate A communication unit; Based on the network state information between the first device and the second device, as the configuration state of the first virtual machine is copied to the second virtual machine running on the second device, based on the resource difference value of the first virtual machine, 1 < / RTI > virtual machine, and deactivating the first virtual machine at a determined pause time.

일 실시예에 따라, 가상머신의 마이그레이션을 수행하는 제 1 디바이스에 있어서, 리소스 차이값은, 제 1 가상머신과 제 2 가상머신 간의 메모리, 프로세스 및 디스크의 상태 값 중 적어도 하나의 차이값을 포함한다. According to one embodiment, in a first device that performs a migration of a virtual machine, the resource difference value includes a difference value of at least one of a memory, a process, and a status value of the disk between the first virtual machine and the second virtual machine do.

일 실시예에 따라, 가상머신의 마이그레이션을 수행하는 제 1 디바이스에 있어서, 중단 시점은, 제 1 디바이스와 제 2 디바이스 간의 패킷 전달 지연 시간을 기초로 결정된다. According to one embodiment, in a first device that performs migration of a virtual machine, the point of interruption is determined based on a packet delivery delay time between the first device and the second device.

일 실시예에 따라, 가상머신의 마이그레이션을 수행하는 제 1 디바이스에 있어서, 프로세서는, 제 1 디바이스에서 제공되는 애플리케이션 서비스의 QoS(Quality of Service) 값을 산출하고, 통신부는, 산출된 QoS 값이 기 설정된 임계값 미만인 경우, 제 1 가상머신의 리소스 차이값을 제 2 디바이스에 전송한다. According to one embodiment, in a first device that performs migration of a virtual machine, the processor calculates a Quality of Service (QoS) value of an application service provided in the first device, And transmits the resource difference value of the first virtual machine to the second device when the difference is less than the preset threshold value.

일 실시예에 따라, 가상머신의 마이그레이션을 수행하는 제 2 디바이스는,애플리케이션 서비스의 제공을 위해 제 1 디바이스에서 구동되는 제 1 가상머신의 리소스 차이값을 수신하는 통신부; 및 제 1 가상머신의 리소스 차이값을 기초로, 제 1 가상머신의 구성 상태를 제 2 디바이스에서 구동되는 제 2 가상머신에 복제하고, 제 1 디바이스와 제 2 디바이스 간의 네트워크 상태 정보를 기초로 결정된 서비스 시작 시점에 애플리케이션 서비스를 수행하는 프로세서를 포함한다. According to an embodiment, a second device for performing migration of a virtual machine includes: a communication unit for receiving a resource difference value of a first virtual machine running on a first device for providing an application service; And copying the configuration state of the first virtual machine to a second virtual machine driven by the second device based on the resource difference value of the first virtual machine, And a processor that performs application services at the start of the service.

일 실시예에 따라, 가상머신의 마이그레이션을 수행하는 제 2 디바이스에 있어서, 리소스 차이값은, 제 1 가상머신과 제 2 가상머신 간의 메모리, 프로세스 및 디스크의 상태 값 중 적어도 하나의 차이값을 포함한다. According to one embodiment, in a second device performing a migration of a virtual machine, the resource difference value includes a difference value of at least one of a memory, a process, and a status value of a disk between the first virtual machine and the second virtual machine do.

일 실시예에 따라, 가상머신의 마이그레이션을 수행하는 제 2 디바이스에 있어서, 서비스 시작 시점은, 제 1 디바이스와 제 2 디바이스 간의 패킷 전달 지연 시간을 기초로 결정된다. According to one embodiment, in a second device that performs migration of a virtual machine, a service start time is determined based on a packet transfer delay time between the first device and the second device.

일 실시예에 따라, 가상머신의 마이그레이션을 수행하는 제 2 디바이스에 있어서, 통신부는, 제 1 디바이스와 제 2 디바이스 간에 공유되는 저장소로부터 제 1 가상머신의 이미지를 획득하고, 프로세서는, 획득된 제 1 가상머신의 이미지 및 리소스 차이값을 기초로 제 1 가상머신의 구성 상태를 제 2 가상머신에 복제한다.According to one embodiment, in a second device for performing a migration of a virtual machine, the communication unit acquires an image of the first virtual machine from a storage shared between the first device and the second device, 1 replicates the configuration state of the first virtual machine to the second virtual machine based on the image and resource difference value of the virtual machine.

일 실시예에 따른 방법은: 복수의 컴퓨터 노드들로부터 자원 이용도 정보를 수신하는 단계; 상기 수신된 자원 이용도 정보에 기초하여 상기 복수의 컴퓨터 노드들 중 오버로드된 (overloaded) 컴퓨터 노드를 검출하는 단계; 상기 검출된 컴퓨터 노드에서 활성화된 복수의 가상머신들 중 오버로드된 적어도 하나의 가상머신을 선택하는 단계; 상기 복수의 컴퓨터 노드들 중에서, 상기 선택된 적어도 하나의 가상머신이 마이그레이션될 컴퓨터 노드를 결정하는 단계; 및 상기 검출된 컴퓨터 노드로부터 상기 결정된 컴퓨터 노드로, 상기 선택된 적어도 하나의 가상머신을 마이그레이션하는 단계를 포함할 수 있다.A method according to an embodiment includes: receiving resource availability information from a plurality of computer nodes; Detecting overloaded computer nodes of the plurality of computer nodes based on the received resource utilization information; Selecting at least one overloaded virtual machine among a plurality of virtual machines activated at the detected computer node; Determining, among the plurality of computer nodes, the computer node to which the selected at least one virtual machine is to be migrated; And migrating the selected at least one virtual machine from the detected computer node to the determined computer node.

일 실시예에 따라, 상기 자원 이용도 정보는 CPU 이용도 정보를 포함할 수 있고, 상기 검출하는 단계는, 상기 복수의 컴퓨터 노드들 중 CPU 이용도가 임계값을 초과한 컴퓨터 노드를 상기 오버로드된 컴퓨터 노드로서 검출하는 단계를 포함할 수 있다.According to one embodiment, the resource utilization information may include CPU utilization information, and the detecting may include: determining whether a computer node in the plurality of computer nodes whose CPU utilization exceeds a threshold value, Lt; RTI ID = 0.0 > computer node. ≪ / RTI >

일 실시예에 따라, 상기 자원 이용도 정보는 CPU 이용도 정보를 포함하고, 상기 검출하는 단계는, 소정의 횟수로 측정된 CPU 이용도의 평균값에 기초하여, 상기 복수의 컴퓨터 노드들 중 상기 오버로드된 컴퓨터 노드를 검출하는 단계를 포함할 수 있다.According to one embodiment, the resource utilization information includes CPU utilization information, and the detecting comprises: determining, based on an average value of CPU utilization measured in a predetermined number of times, And detecting the loaded computer node.

일 실시예에 따라, 상기 자원 이용도 정보는 가상머신 CPU 이용도 정보를 포함하고, 상기 선택하는 단계는, 소정의 횟수로 측정된 가상머신 CPU 이용도의 평균값에 기초하여, 상기 복수의 가상머신들 중 상기 오버로드된 적어도 하나의 가상머신을 선택하는 단계를 포함할 수 있다.According to one embodiment, the resource utilization information includes virtual machine CPU utilization information, and the selecting comprises selecting, based on the average value of the virtual machine CPU utilization measured in a predetermined number of times, And selecting at least one of the overloaded virtual machines.

일 실시예에 따라, 상기 자원 이용도 정보는 가상머신 RAM 이용도 정보를 포함하고, 상기 선택하는 단계는, 상기 복수의 가상머신들 중 가상머신 RAM 이용도에 기초하여 선택된 일부의 가상머신들 중에서, 상기 오버로드된 적어도 하나의 가상머신을 선택하는 단계를 포함할 수 있다.According to one embodiment, the resource availability information includes virtual machine RAM utilization information, and the selecting comprises selecting, among some of the plurality of virtual machines selected based on virtual machine RAM utilization of the plurality of virtual machines, , And selecting the at least one overloaded virtual machine.

일 실시예에 따라, 상기 자원 이용도 정보는 가상머신 CPU 이용도 정보 및 가상머신 RAM 이용도 정보를 포함하고, 상기 선택하는 단계는, 상기 복수의 가상머신들 중 가상머신 RAM 이용도에 기초하여 선택된 일부의 가상머신들 중에서, 상기 오버로드된 적어도 하나의 가상머신을 소정의 횟수로 측정된 가상머신 CPU 이용도의 평균값에 기초하여 선택하는 단계를 포함할 수 있다.According to one embodiment, the resource availability information includes virtual machine CPU utilization information and virtual machine RAM utilization information, wherein the selecting comprises: determining, based on the virtual machine RAM utilization of the plurality of virtual machines Selecting at least one of the overloaded virtual machines from among the selected virtual machines based on the average value of the virtual machine CPU utilization measured a predetermined number of times.

일 실시예에 따라, 상기 결정하는 단계는, 상기 복수의 컴퓨터 노드들의 자원 가용성을 순차적으로 측정함으로써, 상기 컴퓨터 노드를 결정하는 단계를 포함할 수 있다.According to one embodiment, the determining may comprise determining the computer node by sequentially measuring resource availability of the plurality of computer nodes.

일 실시예에 따라, 상기 자원 이용도 정보는 CPU 이용도 정보 및 RAM 이용도 정보를 포함하고, 상기 결정하는 단계는, 상기 복수의 컴퓨터 노드들 중에서 CPU 이용도 및 RAM 이용도에 기초하여 상기 컴퓨터 노드를 결정하는 단계를 포함할 수 있다.According to one embodiment, the resource utilization information includes CPU utilization information and RAM utilization information, and the determining comprises determining, based on CPU utilization and RAM utilization among the plurality of computer nodes, And determining the node.

일 실시예에 따라, 상기 마이그레이션하는 단계는 상기 복수의 컴퓨터 노드들을 관리하는 클라우드 애플리케이션 프로그래밍 인터페이스 (application programming interface: API) 를 통해 수행될 수 있다.According to one embodiment, the step of migrating may be performed through a cloud application programming interface (API) for managing the plurality of computer nodes.

일 실시예에 따라, 상기 검출된 오버로드된 컴퓨터 노드는 상기 결정된 컴퓨터 노드와 서로 상이하다.According to one embodiment, the detected overloaded computer node is different from the determined computer node.

일 실시예에 따른 디바이스는: 인스트럭션들을 저장하는 메모리; 및 상기 인스트럭션들을 실행하여: 복수의 컴퓨터 노드들로부터 자원 이용도 정보를 수신하는 단계; 상기 수신된 자원 이용도 정보에 기초하여 상기 복수의 컴퓨터 노드들 중 오버로드된 (overloaded) 컴퓨터 노드를 검출하는 단계; 상기 검출된 컴퓨터 노드에서 활성화된 복수의 가상머신들 중 오버로드된 적어도 하나의 가상머신을 선택하는 단계; 상기 복수의 컴퓨터 노드들 중에서, 상기 선택된 적어도 하나의 가상머신이 마이그레이션될 컴퓨터 노드를 결정하는 단계; 및 상기 검출된 컴퓨터 노드로부터 상기 결정된 컴퓨터 노드로, 상기 선택된 적어도 하나의 가상머신을 마이그레이션하는 단계를 수행하도록 구성된 적어도 하나의 프로세서를 포함할 수 있다.A device according to an embodiment comprises: a memory for storing instructions; And executing the instructions to: receive resource availability information from a plurality of computer nodes; Detecting overloaded computer nodes of the plurality of computer nodes based on the received resource utilization information; Selecting at least one overloaded virtual machine among a plurality of virtual machines activated at the detected computer node; Determining, among the plurality of computer nodes, the computer node to which the selected at least one virtual machine is to be migrated; And migrating the selected at least one virtual machine from the detected computer node to the determined computer node.

일 실시예에 따른 가상머신의 마이그레이션을 수행하는 방법 및 장치를 통해 가상머신으로부터 제공되는 서비스가 중단되지 않고 연속적으로 제공될 수 있도록 가상머신의 마이그레이션을 수행함으로써, 사용자가 가상머신의 마이그레이션을 인지하지 못하게 하면서도 서비스 품질을 향상시킬 수 있다는 효과를 제공할 수 있다. By performing the migration of the virtual machine so that the service provided from the virtual machine can be continuously provided without interruption through the method and apparatus for performing the migration of the virtual machine according to an embodiment, It is possible to improve the quality of service while preventing it from being damaged.

일 실시예에 따르면, 클라우드 환경에서 가상머신의 자원 이용도에 기반한 동적 마이그레이션이 수행될 수 있다.According to one embodiment, dynamic migration based on resource utilization of virtual machines in a cloud environment can be performed.

도 1은 일 실시예에 따라 가상머신의 마이그레이션을 수행하는 시스템을 설명하기 위한 도면이다.
도 2는 일 실시예에 따라 제 1 디바이스에서 가상머신의 마이그레이션을 수행하는 방법을 설명하기 위한 흐름도이다.
도 3은 일 실시예에 따라 제 2 디바이스에서 가상머신의 마이그레이션을 수행하는 방법을 설명하기 위한 흐름도이다.
도 4는 일 실시예에 따른 가상머신의 마이그레이션을 수행하는 제 1 디바이스의 블록도이다.
도 5는 일 실시예에 따른 가상머신의 마이그레이션을 수행하는 제 2 디바이스의 블록도이다.
도 6은 일 실시예에 따른, 제어 노드를 통해 컴퓨터 노드들 간의 가상머신 마이그레이션을 수행하는 시스템을 설명하기 위한 도면이다.
도 7은 일 실시예에 따른, 제어 노드를 통해 컴퓨터 노드들 간의 가상머신 마이그레이션을 수행하는 시스템을 설명하기 위한 흐름도이다.
1 is a diagram for explaining a system for performing a migration of a virtual machine according to an embodiment.
2 is a flowchart illustrating a method of performing migration of a virtual machine in a first device according to an exemplary embodiment of the present invention.
3 is a flowchart illustrating a method of performing migration of a virtual machine in a second device according to an exemplary embodiment of the present invention.
4 is a block diagram of a first device that performs migration of a virtual machine according to one embodiment.
5 is a block diagram of a second device that performs migration of a virtual machine according to one embodiment.
6 is a diagram illustrating a system for performing a virtual machine migration between computer nodes via a control node, according to an embodiment.
7 is a flow diagram illustrating a system for performing virtual machine migration between computer nodes via a control node, in accordance with one embodiment.

본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다. The terms used in this specification will be briefly described, and the present invention will be described in detail.

본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 해당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다. While the present invention has been described in connection with what is presently considered to be the most practical and preferred embodiment, it is to be understood that the invention is not limited to the disclosed embodiments. Also, in certain cases, there may be a term selected arbitrarily by the applicant, in which case the meaning thereof will be described in detail in the description of the corresponding invention. Therefore, the term used in the present invention should be defined based on the meaning of the term, not on the name of a simple term, but on the entire contents of the present invention.

명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.When an element is referred to as "including" an element throughout the specification, it is to be understood that the element may include other elements as well, without departing from the spirit or scope of the present invention. Also, the terms "part," " module, "and the like described in the specification mean units for processing at least one function or operation, which may be implemented in hardware or software or a combination of hardware and software .

명세서 전체에서 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서 이하에서 언급되는 "제1 구성요소"는 실시예의 기술적 사상 내에서 "제2 구성요소"일 수도 있음은 물론이다.Although "first "," second "and the like are used throughout the specification to describe various components, it goes without saying that these components are not limited by these terms. These terms are used only to distinguish one component from another. It goes without saying that the "first component" mentioned below may be a "second component" within the technical concept of the embodiment.

명세서 전체에서 "하이퍼바이저 (hypervisor)"는 하나의 하드웨어에서 복수의 운영 체제 (Operating Systems) 를 동시에 구동하기 위한 논리적 플랫폼을 의미한다. 하이퍼바이저는 하나의 하드웨어에서 독립적으로 운영되는 복수의 가상 머신을 생성하고, 하드웨어의 자원을 가상화할 수 있다. 생성된 가상 머신은 각각의 운영 체제에 의해 운영될 수 있으며, VirtIO와 같은 I/O 가상 구현 프레임워크를 이용하여 하이퍼바이저와 통신할 수 있으며, 하이퍼바이저를 통해 하드웨어를 액세스 (access) 할 수 있다.Throughout the specification, a "hypervisor" refers to a logical platform for simultaneously operating a plurality of operating systems in one piece of hardware. The hypervisor can create multiple virtual machines running independently on one hardware and virtualize the hardware resources. The generated virtual machine can be operated by each operating system, can communicate with the hypervisor using an I / O virtual implementation framework such as VirtIO, and can access the hardware through the hypervisor .

하이퍼바이저로서, KVM (Kernel Virtual Machine), QEMU (Quick EMUlator), Xen, "Citrix사"의 XenServer, "Sun사"의 Logical Domain Hypervisor, "Hitachi사"의 Virtage Hypervisor, "VMware사"의 VMware ESX Server, VMware Server, VMware Workstation, 및 VMware Fusion, "마이크로소프트사"의 Hyper-V, Parallel Server, Virtual PC, 및 Virtual Server, "Oracle & SUN Microsystems사"의 Virtual Box, "SWsoft사"의 Parallels Workstation 및 Parallels Desktop 등과 같은 다양한 소프트웨어들이 이용될 수 있으나, 이에 제한되지 않는다.As a hypervisor, you can use KVM (Virtual Machine), QEMU (Quick EMUlator), Xen, XenServer of Citrix, Logical Domain Hypervisor of Sun, Virtue Hypervisor of Hitachi, VMware ESX of VMware Server, VMware Server, VMware Workstation, and VMware Fusion, Hyper-V, Parallel Server, Virtual PC and Virtual Server from Microsoft, Virtual Box from Oracle & SUN Microsystems, Parallels Workstation from SWsoft And Parallels Desktop, but the present invention is not limited thereto.

명세서 전체에서 "가상머신(Virtual Machine)" 이란, 가상화 환경에서 수행되는 운영체제 및 애플리케이션을 통칭할 수 있다. 가상머신은 고유의 CPU, 메모리, 하드 디스크 및 네트워크 등의 컴퓨팅 리소스를 가질 수 있다.Throughout the specification, the term "virtual machine" refers to an operating system and an application that are executed in a virtualized environment. A virtual machine may have computing resources such as its own CPU, memory, hard disk, and network.

또한, 명세서 전체에서 가상머신이 실행되는 실제의 물리적인 장치는 디바이스로 언급될 수 있다. 예를 들어, 제 1 가상머신이 실행되는 물리적인 장치는 제 1 디바이스로 언급되고 제 2 가상머신이 실행되는 물리적인 장치는 제 2 디바이스로 언급될 수 있다. 하나의 물리적인 장치에서 복수의 가상머신들이 활성화되어 실행될 수 있으며, 제 1 디바이스에서 실행되는 가상머신들은 제 1 가상머신들, 제 2 디바이스에서 실행되는 가상머신들은 제 2 가상머신들로 지칭될 수 있다.In addition, the actual physical device on which the virtual machine is executed throughout the specification may be referred to as a device. For example, the physical device on which the first virtual machine is running may be referred to as the first device, and the physical device on which the second virtual machine is running may be referred to as the second device. A plurality of virtual machines in one physical device can be activated and executed and the virtual machines running on the first device can be referred to as first virtual machines and the virtual machines running on the second device can be referred to as second virtual machines have.

또한, 명세서 전체에서 "가상머신의 마이그레이션(migration)"이란, 하나의 물리적인 서버 또는 디바이스로부터 다른 물리적인 서버 또는 디바이스로 가상머신이 이동하는 것을 의미할 수 있다. Also, throughout the specification, "migration of a virtual machine" may mean that a virtual machine moves from one physical server or device to another physical server or device.

이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

도 1은 일 실시예에 따라 가상머신의 마이그레이션을 수행하는 시스템(10)을 설명하기 위한 도면이다. FIG. 1 is a diagram for explaining a system 10 for performing a migration of a virtual machine according to an embodiment.

도 1을 참조하면, 가상머신의 마이그레이션을 수행하는 시스템(10)의 각 구성 요소들은 일반적으로 네트워크(network)를 통해 연결된다. 네트워크는 네트워크 장치들 간에 정보 교환이 가능한 연결 구조를 의미한다. Referring to FIG. 1, each component of the system 10 performing the migration of a virtual machine is generally connected through a network. A network refers to a connection structure capable of exchanging information between network devices.

또한, 일 실시예에 따른 가상머신의 마이그레이션을 수행하는 시스템(10)은 제 1 디바이스(100), 제 2 디바이스(200) 및 저장소(50)를 포함할 수 있으나, 이는 일 실시예일 뿐 가상머신의 마이그레이션을 수행하는 시스템(10)의 구성 요소들이 전술한 예에 한정되는 것은 아니다. The system 10 performing the migration of a virtual machine according to an exemplary embodiment may include the first device 100, the second device 200, and the storage 50, The components of the system 10 performing the migration of the system 10 are not limited to the above-described examples.

제 1 디바이스(100)는 제 1 디바이스(100) 내에 구동 중인 제 1 가상머신을 통해 애플리케이션 서비스를 제공할 수 있다. 예를 들어, 제 1 디바이스(100)는 제 1 가상머신을 통해 비디오 스트리밍 서비스와 같이 멀티미디어에 관한 애플리케이션 서비스를 제공할 수 있다. The first device 100 may provide application services through the first virtual machine running in the first device 100. [ For example, the first device 100 may provide application services related to multimedia, such as a video streaming service, through the first virtual machine.

일 실시예에 따른 제 1 디바이스(100)는 애플리케이션 서비스의 품질을 일정 수준으로 유지하기 위해, 현재 제공하고 있는 애플리케이션 서비스의 QoS(Quality of Service)를 주기적으로 산출할 수 있다. 여기에서, QoS는 연결 설정 지연, 연결 설정 실패 확률, 전송률, 전송 지연 및 전송 오류율 등의 파라미터를 기초로 산출될 수 있다. 한편, 제 1 디바이스(100)는 산출된 QoS가 기 설정된 임계값 미만인 경우, 제 1 가상머신의 마이그레이션을 수행할 수 있다. 예를 들어, 애플리케이션 서비스를 이용하는 대규모 사용자가 특정 장소 또는 특정 시간에 밀집하는 경우, 애플리케이션 서비스의 QoS가 임계값 미만으로 떨어질 수 있다. 이러한 경우, 제 1 디바이스(100)는 제 1 디바이스(100)에 구동되는 제 1 가상머신의 마이그레이션을 결정할 수 있다. In order to maintain the quality of the application service at a predetermined level, the first device 100 according to an exemplary embodiment may periodically calculate the QoS (Quality of Service) of the application service currently provided. Here, QoS can be calculated based on parameters such as connection setup delay, connection establishment failure probability, transmission rate, transmission delay, and transmission error rate. Meanwhile, the first device 100 may perform the migration of the first virtual machine when the calculated QoS is less than a preset threshold value. For example, if a large user using an application service is crowded at a specific place or at a certain time, the QoS of the application service may fall below the threshold value. In this case, the first device 100 can determine the migration of the first virtual machine, which is driven by the first device 100.

제 1 디바이스(100)는 제 1 가상머신의 마이그레이션이 결정됨에 따라, 제 1 가상머신을 마이그레이션시킬 원격의 장소에 위치한 적어도 하나의 디바이스 중 제 2 디바이스(200)를 선택할 수 있다. 제 1 디바이스(100)와 제 2 디바이스(200)는 저장소(50)와 같이 데이터를 저장 및 공유할 수 있는 장치에 연결되어 있는 것으로 가정한다. 저장소(50)는 예를 들어, 서버, 클라우드 서버 및 메모리 장치 등이 포함될 수 있으나, 이는 일 실시예일 뿐, 본 발명의 저장소(50)가 전술한 예에 한정되는 것은 아니다. The first device 100 may select the second device 200 of at least one device located at a remote location to migrate the first virtual machine as the migration of the first virtual machine is determined. It is assumed that the first device 100 and the second device 200 are connected to a device capable of storing and sharing data, such as the storage 50. The storage 50 may include, for example, a server, a cloud server, and a memory device, but this is only an embodiment, and the storage 50 of the present invention is not limited to the above-described example.

제 1 디바이스(100)는 애플리케이션 서비스 제공을 위해, 제 1 디바이스(100)에서 구동되는 제 1 가상머신의 리소스 차이값을 선택된 제 2 디바이스(200)에 전송할 수 있다. 여기에서, 리소스 차이값은 제 1 가상머신과 제 2 가상머신 간의 메모리, 프로세스 및 디스크의 상태 값 중 적어도 하나에 관한 차이값을 포함할 수 있다. The first device 100 may send the resource difference value of the first virtual machine running in the first device 100 to the selected second device 200 for application service provisioning. Here, the resource difference value may include a difference value between at least one of the memory, the process, and the status value of the disk between the first virtual machine and the second virtual machine.

한편, 제 2 디바이스(200)는 제 1 디바이스(100)로부터 제 1 가상머신의 리소스 차이값을 수신함에 따라, 제 2 디바이스(200)에서 구동되는 제 2 가상머신에 제 1 가상머신의 구성 상태를 복제할 수 있다. 예를 들어, 제 2 디바이스(200)는 제 1 가상머신의 CPU, GPU, RAM 및 하드 디스크에 관한 정보를 복제할 수 있다. 또한, 다른 실시예에 따라 제 2 디바이스(200)는 저장소(50)를 통해 공유되는 제 1 가상머신의 이미지에 리소스 차이값을 적용하여 제 1 가상머신의 구성 상태를 복제할 수도 있다. On the other hand, as the second device 200 receives the resource difference value of the first virtual machine from the first device 100, the second virtual machine, which is driven by the second device 200, . ≪ / RTI > For example, the second device 200 may replicate information about the CPU, GPU, RAM, and hard disk of the first virtual machine. Also, according to another embodiment, the second device 200 may replicate the configuration state of the first virtual machine by applying a resource difference value to the image of the first virtual machine shared via the repository 50. [

일 실시예에 따른 제 2 디바이스(200)는 제 1 가상머신의 복제가 완료됨에 따라, 제 1 디바이스(100)와 제 2 디바이스(200) 간의 네트워크 상태 정보를 기초로 제 1 가상머신에서 수행되었던 애플리케이션 서비스의 시작 시점을 결정할 수 있다. 예를 들어, 제 2 디바이스(200)는 제 1 디바이스(100)와 제 2 디바이스(200) 간의 패킷 전달 지연 시간을 기초로 애플리케이션 서비스의 시작 시점을 결정할 수 있다. The second device 200 according to one embodiment may be configured to perform a first virtual machine execution based on the network state information between the first device 100 and the second device 200, You can determine when to start an application service. For example, the second device 200 may determine the start time of the application service based on the packet transmission delay time between the first device 100 and the second device 200. [

또한, 제 1 디바이스(100)는 제 2 디바이스(200)에서 결정된 애플리케이션 서비스의 시작 시점과 대응되는 시점을 제 1 가상머신의 중단 시점으로 결정할 수 있다. 이에 따라, 제 1 디바이스(100)는 결정된 중단 시점에 제 1 가상 머신을 비활성화할 수 있다. Also, the first device 100 may determine the point of time corresponding to the start point of the application service determined by the second device 200 as the point of time when the first virtual machine is stopped. Thus, the first device 100 can deactivate the first virtual machine at the determined pause time.

도 2는 일 실시예에 따라 제 1 디바이스(100)에서 가상머신의 마이그레이션을 수행하는 방법을 설명하기 위한 흐름도이다. 2 is a flowchart illustrating a method of performing a migration of a virtual machine in the first device 100 according to an exemplary embodiment of the present invention.

단계 S210에서, 제 1 디바이스(100)는 애플리케이션 서비스 제공을 위해제 1 디바이스(100)에서 구동되는 제 1 가상머신의 리소스 차이값을, 마이그레이션 시킬 원격 위치의 제 2 디바이스(200)에 전송할 수 있다. In step S210, the first device 100 may send the resource difference value of the first virtual machine running on the first device 100 to the second device 200 at the remote location to be migrated for application service provisioning .

일 실시예에 따른 제 1 디바이스(100)는 제공 중인 애플리케이션 서비스의 QoS가 기 설정된 임계값 미만인 것으로 판단되는 경우, 제 1 가상머신의 마이그레이션을 결정할 수 있다. 이에 따라, 제 1 디바이스(100)는 제 1 가상머신의 리소스 차이값을 제 2 디바이스(200)에 전송할 수 있다. The first device 100 according to one embodiment may determine the migration of the first virtual machine when it is determined that the QoS of the application service being provided is below a predetermined threshold. Accordingly, the first device 100 may transmit the resource difference value of the first virtual machine to the second device 200. [

단계 S220에서, 제 1 디바이스(100)는 제 1 가상머신의 리소스 차이값을 기초로, 제 1 가상머신의 구성 상태가 제 2 디바이스(200)에서 구동되는 제 2 가상머신에 복제됨에 따라, 제 1 디바이스(100)와 제 2 디바이스(200) 간의 네트워크 상태 정보를 기초로 제 1 가상머신에서 수행되는 애플리케이션 서비스의 중단 시점을 결정할 수 있다. In step S220, the first device 100, based on the resource difference value of the first virtual machine, replicates the configuration state of the first virtual machine to the second virtual machine driven in the second device 200, Based on the network status information between the first device 100 and the second device 200, it is possible to determine an abort point of the application service performed in the first virtual machine.

일 실시예에 따른 제 1 디바이스(100)의 리소스 차이값이 제 2 디바이스(200)에 수신됨에 따라, 제 2 디바이스(200)는 제 1 가상머신의 구성 상태를 복제할 수 있다. 또한, 제 2 디바이스(200)는 저장소(50)의 공유 등을 통해 제 1 가상머신과 동일한 이미지를 획득할 수 있다. 제 2 디바이스(200)는 획득된 이미지와 리소스 차이값을 기초로 제 1 가상머신의 구성 상태를 복제할 수 있다. As the resource difference value of the first device 100 according to an embodiment is received by the second device 200, the second device 200 may replicate the configuration state of the first virtual machine. In addition, the second device 200 can acquire the same image as the first virtual machine through the sharing of the storage 50 and the like. The second device 200 may replicate the configuration state of the first virtual machine based on the acquired image and the resource difference value.

한편, 일 실시예에 따른 제 1 디바이스(100)는 가상머신의 마이그레이션이 수행되더라고, 애플리케이션 서비스가 연속적으로 수행될 수 있도록 제 1 가상머신에서 제공되는 애플리케이션 서비스의 중단 시점을 결정할 수 있다. 여기에서, 중단 시점은 제 2 가상머신에서 애플리케이션 서비스가 시작되는 시점과 대응될 수 있다. 제 2 가상머신에서 애플리케이션 서비스가 시작되는 시점은 다음의 수학식 1에 따라 결정될 수 있다. Meanwhile, the first device 100 according to an embodiment can determine the stopping point of the application service provided in the first virtual machine so that the migration of the virtual machine is performed and the application service can be continuously performed. Here, the stopping point may correspond to the time point at which the application service is started in the second virtual machine. The time at which the application service is started in the second virtual machine may be determined according to the following equation (1).

[수학식 1][Equation 1]

ts = tc + 2Dt s = t c + 2D

상기의 수학식 1에서, tc는 마이그레이션이 수행되고 있는 현재의 시점을 나타내고, D는 1 디바이스(100)와 제 2 디바이스(200) 간의 패킷 전달 지연 시간을 나타낸다. 또한, ts는 제 2 가상머신에서 애플리케이션 서비스가 시작되는 시점을 나타낸다. In Equation (1), t c represents a current time point at which the migration is being performed, and D represents a packet transmission delay time between one device 100 and the second device 200. Also, t s indicates a point in time when the application service is started in the second virtual machine.

또한, 제 1 디바이스(100)는 멀티미디어 스트리밍 서비스를 제공하는 경우, 각 멀티미디어 스트림에 결정된 중단 시점인 ts를 설정할 수 있다. In addition, when the first device 100 provides the multimedia streaming service, the first device 100 can set the determined interruption time t s in each multimedia stream.

단계 S230에서, 제 1 디바이스(100)는 결정된 중단 시점에 제 1 가상머신을 비활성화 할 수 있다. 예를 들어, 제 1 디바이스(100)는 결정된 중단 시점에 애플리케이션 서비스의 제공을 중단할 수 있다. In step S230, the first device 100 may deactivate the first virtual machine at the determined pause time. For example, the first device 100 may stop providing application services at a determined pause time.

일 실시예에 따른 제 1 디바이스(100)는 마이그레이션이 수행되고 있는 시점 및 제 1 디바이스(100)와 제 2 디바이스(200)간의 네트워크 상태를 고려하여, 애플리케이션 서비스의 중단 시점을 결정함으로써, 애플리케이션 서비스를 끊김 없이 제공할 수 있다. The first device 100 according to an embodiment determines the point of time when the migration is being performed and the network state between the first device 100 and the second device 200 to determine the point of time when the application service is stopped, Can be provided seamlessly.

도 3은 일 실시예에 따라 제 2 디바이스(200)에서 가상머신의 마이그레이션을 수행하는 방법을 설명하기 위한 흐름도이다. 3 is a flowchart illustrating a method of performing a migration of a virtual machine in a second device 200 according to an exemplary embodiment of the present invention.

단계 S310에서, 제 2 디바이스(200)는 애플리케이션 서비스의 제공을 위해 제 1 디바이스(100)에서 구동되는 제 1 가상머신의 리소스 차이값을 수신할 수 있다. In step S310, the second device 200 may receive the resource difference value of the first virtual machine running on the first device 100 for provision of the application service.

단계 S320에서, 제 2 디바이스(200)는 제 1 가상머신의 리소스 차이값을기초로, 제 1 가상머신의 구성 상태를 제 2 디바이스(200)에서 구동되는 제 2 가상머신에 복제할 수 있다. In step S320, the second device 200 may copy the configuration status of the first virtual machine to the second virtual machine running in the second device 200, based on the resource difference value of the first virtual machine.

예를 들어, 제 2 디바이스(200)는 리소스 차이값에 포함된 메모리, 프로세스 및 디스크 상태 값 등의 차이값을 기초로 제 1 가상머신의 구성 상태를 복제할 수 있다. 또한, 제 2 디바이스(200)는 저장소(50)의 공유 등을 통해 획득된 제 1 가상머신과 동일한 이미지와 리소스 차이값을 기초로 제 1 가상머신의 구성 상태를 복제할 수 있다. For example, the second device 200 may replicate the configuration state of the first virtual machine based on a difference value such as a memory, a process, and a disk state value included in the resource difference value. In addition, the second device 200 may duplicate the configuration state of the first virtual machine based on the same image and resource difference value as the first virtual machine obtained through sharing of the repository 50 or the like.

단계 S330에서, 제 2 디바이스(200)는 제 1 디바이스(100)와 제 2 디바이스(200) 간의 네트워크 상태 정보를 기초로 결정된 서비스 시작 시점에 애플리케이션 서비스를 수행할 수 있다. In step S330, the second device 200 can perform the application service at the service start time determined based on the network status information between the first device 100 and the second device 200. [

한편, 여기에서, 서비스 시작 시점을 결정하는 방법은 도 2의 단계 S220을 참고하여 전술한 수학식 1에 따라 결정될 수 있다.Here, the method of determining the service start time may be determined according to Equation (1) described above with reference to step S220 of FIG.

또한, 제 2 디바이스(200)는 멀티미디어 스트리밍 서비스를 제공하는 경우, 각 멀티미디어 스트림에 서비스 시작 시점인

Figure pat00001
를 설정할 수 있다.In addition, when the second device 200 provides the multimedia streaming service,
Figure pat00001
Can be set.

도 4는 일 실시예에 따른 가상머신의 마이그레이션을 수행하는 제 1 디바이스(100)의 블록도이다. 4 is a block diagram of a first device 100 that performs migration of a virtual machine according to one embodiment.

도 4에 도시된 제 1 디바이스(100)에는 본 실시예와 관련된 구성 요소들만이 도시되어 있다. 도 4에 도시된 바와 같이, 일 실시예에 따른 제 1 디바이스(100)는 통신부(110), 프로세서(120) 및 메모리(130)를 포함할 수 있다. 그러나 도시된 구성요소 모두가 필수구성요소인 것은 아니다. 도시된 구성요소보다 많은 구성요소에 의해 제 1 디바이스(100)가 구현될 수도 있고, 그보다 적은 구성요소에 의해서도 제 1 디바이스(100)는 구현될 수 있다.Only the components related to the present embodiment are shown in the first device 100 shown in Fig. 4, a first device 100 according to an embodiment may include a communication unit 110, a processor 120, and a memory 130. [ However, not all illustrated components are required. The first device 100 may be implemented by more components than the components shown, and the first device 100 may be implemented by fewer components.

통신부(110)는 제 1 디바이스(100)와 외부 디바이스(예를 들어, 제 2 디바이스(200)) 간의 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. The communication unit 110 may include one or more components that allow communication between the first device 100 and an external device (e.g., the second device 200).

일 실시예에 따른 통신부(110)는 애플리케이션 서비스 제공을 위해 제 1 디바이스(100)에서 구동되는 제 1 가상머신의 리소스 차이값을, 마이그레이션 시킬 원격 위치의 제 2 디바이스(200)에 전송할 수 있다. 예를 들어, 통신부(110)는 프로세서(120)에서 산출된 QoS값이 기 설정된 임계값 미만인 경우, 제 1 가상머신의 리소스 차이값을 제 2 디바이스(200)에 전송할 수 있다. The communication unit 110 according to an embodiment may transmit the resource difference value of the first virtual machine driven by the first device 100 to the second device 200 at the remote location to be migrated. For example, the communication unit 110 may transmit the resource difference value of the first virtual machine to the second device 200 when the QoS value calculated by the processor 120 is less than a preset threshold value.

또한, 통신부(110)는 제 1 가상머신의 이미지를 다른 디바이스와 공유하기 위해, 저장소(50)에 제 1 가상머신의 이미지를 전송할 수 있다. In addition, the communication unit 110 may transmit the image of the first virtual machine to the storage 50 in order to share the image of the first virtual machine with another device.

또한, 통신부(110)는 제 2 디바이스(200)와 가상머신의 마이그레이션을 위해 필요한 정보를 포함한 적어도 하나의 패킷을 송수신할 수 있다. Also, the communication unit 110 can transmit and receive at least one packet including information necessary for migration of the second device 200 and the virtual machine.

프로세서(120)는 통상적으로 제 1 디바이스(100)의 전반적인 동작을 제어한다. The processor 120 typically controls the overall operation of the first device 100.

프로세서(120)는 제 1 가상머신의 리소스 차이값을 기초로, 제 1 가상머신의 구성 상태가 제 2 디바이스(200)에서 구동되는 제 2 가상머신에 복제됨에 따라, 제 1 디바이스와 제 2 디바이스(200) 간의 네트워크 상태 정보를 기초로 제 1 가상머신에서 수행되는 애플리케이션 서비스의 중단 시점을 결정할 수 있다. As the configuration state of the first virtual machine is copied to the second virtual machine running on the second device 200 based on the resource difference value of the first virtual machine, Based on the network state information between the first virtual machine and the second virtual machine.

프로세서(120)는 제 2 디바이스(200)에서 제 1 가상머신의 복제가 완료되는 경우, 제 1 가상머신의 복제가 완료되었음을 알리는 정보를 수신할 수 있다. 또한, 프로세서(120)는 제 2 디바이스(200)로부터 결정된 중단 시점에 관한 정보를 수신할 수도 있다. The processor 120 may receive information indicating that the replication of the first virtual machine is complete when the replication of the first virtual machine is completed in the second device 200. [ In addition, the processor 120 may receive information about the determined point-in-time from the second device 200. [

또한, 프로세서(120)는 결정된 중단 시점에 제 1 가상머신을 비활성화할 수 있다. 예를 들어, 프로세서(120)는 결정된 중단 시점에 제 1 가상머신을 통한 애플리케이션 서비스의 제공을 중단할 수 있다. In addition, the processor 120 may deactivate the first virtual machine at a determined pause time. For example, the processor 120 may stop providing application services through the first virtual machine at a determined pause time.

메모리(130)는 프로세서(120)의 처리 및 제어를 위한 프로그램을 저장할 수도 있고, 입/출력되는 데이터들(예를 들어, 리소스 차이값)을 저장할 수도 있다. The memory 130 may store a program for processing and control of the processor 120 and may store input / output data (e.g., resource difference values).

일 실시예에 따른 메모리(130)는 운영체제 및 애플리케이션 등을 저장할 수 있다. 또한, 메모리(130)는 애플리케이션 서비스 실행에 필요한 명령어 등을 저장할 수 있다.The memory 130 according to one embodiment may store an operating system, an application, and the like. In addition, the memory 130 may store a command or the like necessary for executing an application service.

또한, 메모리(130)는 제 1 디바이스(100)에서 구동되는 제 1 가상머신의 리소스 차이값을 저장할 수 있다. 예를 들어, 메모리(130)는 제 1 가상머신과 제 2 가상머신 간의 메모리, 프로세스 및 디스크의 상태 값 중 적어도 하나에 관한 차이값을 저장할 수 있다. Also, the memory 130 may store the resource difference value of the first virtual machine driven by the first device 100. [ For example, the memory 130 may store a difference value between at least one of the memory, process, and disk status values between the first virtual machine and the second virtual machine.

도 5는 일 실시예에 따른 가상머신의 마이그레이션을 수행하는 제 2 디바이스(200)의 블록도이다. 5 is a block diagram of a second device 200 that performs migration of a virtual machine according to one embodiment.

도 5에 도시된 제 2 디바이스(200)에는 본 실시예와 관련된 구성 요소들만이 도시되어 있다. 도 5에 도시된 바와 같이, 일 실시예에 따른 제 2 디바이스(200)는 통신부(210), 프로세서(220) 및 메모리(230)를 포함할 수 있다. 그러나 도시된 구성요소 모두가 필수구성요소인 것은 아니다. 도시된 구성요소보다 많은 구성요소에 의해 제 2 디바이스(200)가 구현될 수도 있고, 그보다 적은 구성요소에 의해서도 제 2 디바이스(200)는 구현될 수 있다.Only the components related to the present embodiment are shown in the second device 200 shown in Fig. 5, the second device 200 according to an embodiment may include a communication unit 210, a processor 220, and a memory 230. [ However, not all illustrated components are required. The second device 200 may be implemented by more components than the components shown, and the second device 200 may be implemented by fewer components.

통신부(210)는 제 2 디바이스(200)와 외부 디바이스(예를 들어, 제 1 디바이스(100)) 간의 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. The communication unit 210 may include one or more components that allow communication between the second device 200 and an external device (e.g., the first device 100).

일 실시예에 따른 통신부(210)는 애플리케이션 서비스 제공을 위해 제 1 디바이스(100)에서 구동되는 제 1 가상머신의 리소스 차이값을 수신할 수 있다. 또한, 통신부(210)는 제 1 가상머신의 복제를 위해 저장소(50)로부터 제 1 가상머신의 이미지를 수신할 수 있다. The communication unit 210 may receive the resource difference value of the first virtual machine running on the first device 100 for application service provisioning. In addition, the communication unit 210 can receive the image of the first virtual machine from the repository 50 for the replication of the first virtual machine.

또한, 통신부(210)는 제 1 디바이스(100)와 가상머신의 마이그레이션을 위해 필요한 정보를 포함한 적어도 하나의 패킷을 송수신할 수 있다. Also, the communication unit 210 can transmit and receive at least one packet including information necessary for migration of the first device 100 and the virtual machine.

프로세서(220)는 통상적으로 제 2 디바이스(200)의 전반적인 동작을 제어한다. The processor 220 typically controls the overall operation of the second device 200.

프로세서(220)는 제 1 가상머신의 리소스 차이값을 기초로, 제 1 가상머신의 구성 상태를 제 2 디바이스에서 구동되는 제 2 가상머신에 복제할 수 있다. 또한, 프로세서(220)는 통신부(210)를 통해 획득된 제 1 가상머신의 이미지 및 리소스 차이값을 기초로 제 1 가상머신의 구성 상태를 제 2 가상머신에 복제할 수도 있다. The processor 220 may copy the configuration status of the first virtual machine to the second virtual machine running on the second device based on the resource difference value of the first virtual machine. The processor 220 may also copy the configuration status of the first virtual machine to the second virtual machine based on the image and resource difference value of the first virtual machine obtained through the communication unit 210. [

또한, 프로세서(220)는 제 1 디바이스와 상기 제 2 디바이스 간의 네트워크 상태 정보를 기초로 서비스 시작 시점을 결정할 수 있다. 프로세서(220)는 결정된 서비스 시작 시점에 애플리케이션 서비스를 수행할 수 있다. In addition, the processor 220 may determine a service start time based on network status information between the first device and the second device. The processor 220 may perform the application service at the determined service start time.

메모리(230)는 프로세서(220)의 처리 및 제어를 위한 프로그램을 저장할 수도 있고, 입/출력되는 데이터들(예를 들어, 리소스 차이값)을 저장할 수도 있다. The memory 230 may store programs for processing and control of the processor 220 and may store input / output data (e.g., resource difference values).

일 실시예에 따른 메모리(230)는 운영체제 및 애플리케이션 등을 저장할 수 있다. 또한, 메모리(230)는 애플리케이션 서비스 실행에 필요한 명령어 등을 저장할 수 있다. 또한, 메모리(230)는 제 1 디바이스(100)로부터 수신한 제 1 가상머신의 리소스 차이값 및 제 1 가상머신의 이미지를 저장할 수 있다. The memory 230 according to one embodiment may store an operating system, an application, and the like. Also, the memory 230 may store a command or the like necessary for executing the application service. The memory 230 may also store the resource difference value of the first virtual machine received from the first device 100 and the image of the first virtual machine.

도 6은 일 실시예에 따른, 제어 노드를 통해 컴퓨터 노드들 간의 가상머신 마이그레이션을 수행하는 시스템을 설명하기 위한 도면이다.6 is a diagram illustrating a system for performing a virtual machine migration between computer nodes via a control node, according to an embodiment.

시스템 (600) 은 제어 노드 (610) 및 컴퓨터 노드들 (620) 을 포함할 수 있다. 시스템 (600) 은 클라우드 시스템일 수 있고, 이러한 클라우드 시스템은 클라우드 환경은 "IBM사"의 블루 클라우드 (Blue Cloud), "Microsoft사"의 아주르 (Azure), "Amazon사"의 일래스틱 컴퓨터 클라우드 (Elastic Compute Cloud: EC2), 오픈소스의 오픈스택 (OpenStack) 등에 의해 구현될 수 있으나, 이에 제한되지 않는다.The system 600 may include a control node 610 and computer nodes 620. The system 600 may be a cloud system and the cloud environment may be a cloud environment such as "Blue Cloud" from "IBM Corporation", Azure from "Microsoft Corporation", or "Elastic Computer Cloud" Elastic Compute Cloud (EC2), Open Source OpenStack, and the like.

제어 노드 (610) 및 컴퓨터 노드들 (620) 은 물리적인 장치를 가리키고, 시스템 (600), 예를 들어, 클라우드 시스템의 컴포넌트들로서 기능한다. 예를 들어, 제어 노드 (610) 에서는 네트워크를 통해 컴퓨터 노드들 (620) 의 관리가 수행될 수 있고, 컴퓨터 노드들 (620) 각각에서는 하이퍼바이저가 실행될 수 있다.Control node 610 and computer nodes 620 refer to a physical device and function as components of system 600, e.g., a cloud system. For example, at the control node 610, management of computer nodes 620 may be performed over the network, and at each of the computer nodes 620 a hypervisor may be executed.

제어 노드 (610) 는 통계 애그리게이터 (Stats Aggregator) (612), 통계 DB (614), 마이그레이션 매니져 (616), 및 알고리즘 저장소 (618) 를 포함할 수 있다. 통계 애그리게이터 (612), 통계 DB (614), 마이그레이션 매니져 (616), 및 알고리즘 저장소 (618) 는 제어 노드 (610) 에 포함된 프로그램 모듈을 가리킬 수 있으며, 개별적인 물리적인 컴포넌트로만 이해되어서는 아니 된다. 또한, 제어 노드 (610) 의 각 모듈에 의해 수행되는 기능은 다른 모듈에 의해 수행될 수도 있다.The control node 610 may include a statistics aggregator 612, a statistics DB 614, a migration manager 616, and an algorithm store 618. The statistical aggregator 612, the statistics DB 614, the migration manager 616, and the algorithm store 618 may refer to program modules included in the control node 610 and are not understood to be individual physical components do. Further, the functions performed by each module of the control node 610 may be performed by other modules.

컴퓨터 노드들 (620) 은 제 1 컴퓨터 노드 (620a), 제 2 컴퓨터 노드 (620b), … 제 n 컴퓨터 노드 (620n) 를 포함할 수 있다. 컴퓨터 노드들 (620) 은 서로 네트워크를 통해 연결될 수 있다. Computer nodes 620 include a first computer node 620a, a second computer node 620b, ... Lt; / RTI > computer node 620n. The computer nodes 620 may be connected to each other via a network.

제어 노드 (610) 를 통해 컴퓨터 노드들 (620) 간의 가상머신 마이그레이션을 수행하는 방법을 설명하기 위해, 도 7을 참조한다.To illustrate how to perform a virtual machine migration between the computer nodes 620 via the control node 610, refer to FIG.

도 7은 일 실시예에 따른, 제어 노드 (610) 를 통해 컴퓨터 노드들 (620) 간의 가상머신 마이그레이션을 수행하는 시스템을 설명하기 위한 흐름도이다.7 is a flow diagram illustrating a system for performing a virtual machine migration between computer nodes 620 via a control node 610, according to one embodiment.

단계 S700 에서, 복수의 컴퓨터 노드들 (620) 은 제어 노드 (610) 에게 자원 이용도 정보를 전송할 수 있다.In step S700, the plurality of computer nodes 620 may transmit resource availability information to the control node 610. [

복수의 컴퓨터 노드들 (620) 각각의 자원 이용도 정보는 제어 노드 (610) 의 통계 애그리게이터 (612) 에 의해 수집될 수 있다. 수집된 자원 이용도 정보는 제어 노드 (610) 의 통계 DB (614) 에게 전달될 수 있다. 통계 DB (614) 에게 전달된 자원 이용도 정보는 다른 컴포넌트에게 공유될 수 있다.The resource availability information of each of the plurality of computer nodes 620 may be collected by the statistical aggregator 612 of the control node 610. The collected resource utilization information may be transmitted to the statistical DB 614 of the control node 610. The resource utilization information transmitted to the statistical DB 614 may be shared with other components.

일 실시예에서, 제어 노드 (610) 의 통계 애그리게이터 (612) 는 자원 이용도 정보를 주기적으로 수집할 수 있다.In one embodiment, the statistical aggregator 612 of the control node 610 may periodically collect resource availability information.

단계 S710 에서, 제어 노드 (610) 는 복수의 컴퓨터 노드들 (620) 중에서 오버로드된 컴퓨터 노드를 검출할 수 있다.In step S710, the control node 610 may detect an overloaded computer node among a plurality of computer nodes 620. [

일 실시예에서, 제어 노드 (610) 의 마이그레이션 매니저 (616) 에 의해, 복수의 컴퓨터 노드들 (620) 로부터 수집된 자원 이용도 정보에 기초하여 오버로드된 컴퓨터 노드가 검출될 수 있다. 마이그레이션 매니저 (616) 가 컴퓨터 노드를 검출하는 기준은 알고리즘 저장소에 저장된 알고리즘에 의해 결정될 수 있다.In one embodiment, overloaded computer nodes may be detected based on the resource availability information collected from the plurality of computer nodes 620 by the migration manager 616 of the control node 610. [ The criteria by which the migration manager 616 detects the computer node may be determined by the algorithm stored in the algorithm store.

일 실시예에서, 자원 이용도 정보는 컴퓨터 노드들 (620) 의 CPU 이용도 정보를 포함할 수 있다. 컴퓨터 노드들 (620) 각각에서는 복수의 가상머신들이 구동될 수 있고, 컴퓨터 노드들 (620) 각각의 CPU 이용도 정보는, 해당 컴퓨터 노드에서 구동되는 가상머신들의 CPU 이용도 정보 (이하,"가상머신 CPU 이용도 정보") 를 포함할 수 있다. 즉, 컴퓨터 노드의 CPU 이용도는, 해당 컴퓨터 노드에서 구동되는 가상머신들 각각의 CPU 이용도에 의해 결정될 수 있다.In one embodiment, the resource availability information may include CPU utilization information of the computer nodes 620. In each of the computer nodes 620, a plurality of virtual machines can be driven, and the CPU utilization information of each of the computer nodes 620 can be obtained by using CPU utilization degree information (hereinafter referred to as & Machine CPU utilization information "). That is, the CPU utilization of the computer node can be determined by the CPU utilization of each of the virtual machines driven by the corresponding computer node.

일 실시예에서, 마이그레이션 매니저 (616) 는 복수의 컴퓨터 노드들 (620) 중에서 CPU 이용도가 임계값을 초과하는 노드를 오버로드된 컴퓨터 노드로 검출할 수 있다.In one embodiment, the migration manager 616 may detect, among the plurality of computer nodes 620, a node whose CPU utilization exceeds a threshold value, as an overloaded computer node.

일 실시예에서, 마이그레이션 매니저 (616) 는 복수의 컴퓨터 노드들 (620) 중에서 CPU 이용도가 임계값을 초과하는 노드를 오버로드된 컴퓨터 노드로서 검출할 수 있다.In one embodiment, the migration manager 616 may detect, among the plurality of computer nodes 620, a node whose CPU utilization exceeds a threshold value as an overloaded computer node.

컴퓨터 노드의 CPU 이용도는 순간적으로 상승 (spike) 할 수 있으므로, CPU 이용도가 임계값을 초과하는 노드를 오버로드된 컴퓨터 노드로서 검출하는 것은 부정확할 수 있다. 이에 따라, 일 실시예에서는 마이그레이션 매니저 (616) 가 복수의 컴퓨터 노드들 (620) 에서 소정의 횟수로 측정된 CPU 이용도의 평균값에 기초하여 오버로드된 컴퓨터 노드를 검출할 수 있다. 오버로드된 컴퓨터 노드는 CPU 이용도의 평균값이 복수의 컴퓨터 노드들 (620) 중 가장 높을 수 있다. 소정의 횟수는 가장 최근에 측정된 CPU 이용도를 기준으로 기산될 수 있으며, 소정의 횟수는 소정의 시간 간격을 기준으로 결정될 수도 있다.Since the CPU utilization of a computer node may spike momentarily, it may be inaccurate to detect a node whose CPU utilization exceeds a threshold value as an overloaded computer node. Thus, in one embodiment, the migration manager 616 may detect an overloaded computer node based on the average value of CPU utilization measured at a predetermined number of times at a plurality of computer nodes 620. [ The overloaded computer node may have the highest average CPU utilization among the plurality of computer nodes 620. [ The predetermined number of times may be calculated based on the most recently measured CPU utilization, and the predetermined number may be determined based on a predetermined time interval.

일 실시예에서, 마이그레이션 매니저 (616) 는 복수의 컴퓨터 노드들 (620) 중에서 RAM 이용도가 임계값을 초과하는 노드를 오버로드된 컴퓨터 노드로 검출할 수 있다.In one embodiment, the migration manager 616 may detect, among a plurality of computer nodes 620, a node whose RAM availability exceeds a threshold value, as an overloaded computer node.

단계 S720 에서, 제어 노드 (610) 는 단계 S710 에서 결정된 컴퓨터 노드로부터 마이그레이션되는 가상머신을 선택할 수 있다.In step S720, the control node 610 may select a virtual machine to be migrated from the computer node determined in step S710.

결정된 컴퓨터 노드는 오버로드된 상태이고, 오버로드는 해당 컴퓨터 노드에서 실행되어 있는 가상머신들에 의해 발생한다. 따라서, 결정된 컴퓨터 노드에서 활성화되어 있는 가상머신들 중에서 오버로드를 유발하는 가상머신이 선택되어 다른 컴퓨터 노드로 마이그레이션될 수 있다. 오버로드된 컴퓨터 노드로부터 가상머신이 마이그레이션됨으로써, 해당 컴퓨터 노드의 오버로드는 저감될 수 있고, 이로써, 클라우드 시스템 (600) 의 전체적인 효율이 향상될 수 있다.The determined computer node is overloaded and the overload is caused by the virtual machines running on that computer node. Accordingly, a virtual machine that causes an overload among virtual machines activated in the determined computer node can be selected and migrated to another computer node. By migrating the virtual machine from the overloaded computer node, the overload of that computer node can be reduced, thereby improving the overall efficiency of the cloud system 600. [

마이그레이션 매니저 (616) 가 가상머신을 선택하는 기준은 알고리즘 저장소에 저장된 알고리즘에 의해 결정될 수 있다.The criteria by which the migration manager 616 selects a virtual machine may be determined by the algorithm stored in the algorithm store.

일 실시예에서, 복수의 컴퓨터 노드들 (620) 로부터 전송되는 자원 이용도 정보는 컴퓨터 노드들 (620) 의 가상머신 CPU 이용도 정보를 포함할 수 있다. 마이그레이션 매니저 (616) 는 복수의 가상머신들중에서, CPU 이용도가 임계값을 초과하는 적어도 하나의 가상머신을 선택할 수 있다. 일 실시예에서, 마이그레이션 매니저 (616) 는 복수의 가상머신들에서 소정의 횟수로 측정된 CPU 이용도의 평균값에 기초하여, 마이그레이션될 적어도 하나의 가상머신을 선택할 수 있다. 소정의 횟수는 가장 최근에 측정된 CPU 이용도를 기준으로 기산될 수 있고, 소정의 시간 간격을 기준으로 결정될 수도 있다.In one embodiment, the resource availability information transmitted from the plurality of computer nodes 620 may include virtual machine CPU utilization information of the computer nodes 620. The migration manager 616 may select among the plurality of virtual machines at least one virtual machine whose CPU utilization exceeds the threshold. In one embodiment, the migration manager 616 may select at least one virtual machine to be migrated, based on the average value of the CPU utilization measured in a predetermined number of times in the plurality of virtual machines. The predetermined number of times may be calculated based on the most recently measured CPU utilization, and may be determined based on a predetermined time interval.

일 실시예에서, 복수의 컴퓨터 노드들 (620) 로부터 전송되는 자원 이용도 정보는 컴퓨터 노드의 RAM 이용도 정보를 포함할 수 있고, 컴퓨터 노드들 (620) 각각의 RAM 이용도 정보는, 해당 컴퓨터 노드에서 구동되는 가상머신들의 RAM 이용도 정보 (이하,"가상머신 RAM 이용도 정보") 를 포함할 수 있다. 즉, 컴퓨터 노드의 RAM 이용도는, 해당 컴퓨터 노드에서 구동되는 가상머신들 각각의 RAM 이용도에 의해 결정될 수 있다. 마이그레이션 매니저 (616) 는 복수의 가상머신들 중에서 RAM 이용도가 임계값을 초과하는 적어도 하나의 가상머신을 선택할 수 있다.In one embodiment, the resource availability information transmitted from the plurality of computer nodes 620 may include RAM usage information of the computer node, and the RAM availability information of each of the computer nodes 620 may be stored in the corresponding computer RAM utilization information (hereinafter, referred to as "virtual machine RAM utilization information") of virtual machines driven at the node. That is, the RAM utilization of the computer node may be determined by the RAM utilization of each of the virtual machines driven by the corresponding computer node. The migration manager 616 may select at least one virtual machine among the plurality of virtual machines whose RAM utilization exceeds a threshold value.

일 실시예에서, 마이그레이션 매니저 (616) 는 복수의 가상머신들 중에서 RAM 이용도에 기초하여 일부의 가상머신들을 선택하고, 선택된 일부의 가상머신들 중에서 CPU 이용도에 기초하여 마이그레이션될 가상머신을 선택할 수 있다. 예를 들어, 복수의 가상머신들 중에서 RAM 이용도가 임계값을 초과하는 일부의 가상머신들이 선택되고, 선택된 일부의 가상머신들 중에서 CPU 이용도가 임계값을 초과하는 가상머신 또는 소정의 횟수로 측정된 CPU 이용도의 평균값이 가장 높은 가상머신이 마이그레이션될 가상머신으로서 선택될 수 있다.In one embodiment, the migration manager 616 selects some of the virtual machines based on RAM utilization among the plurality of virtual machines, selects a virtual machine to be migrated based on CPU utilization among selected virtual machines . For example, some virtual machines whose RAM utilization exceeds a threshold value among a plurality of virtual machines are selected, and among the selected virtual machines, the CPU utilization exceeds a threshold value or a predetermined number of times The virtual machine having the highest average value of the measured CPU usages can be selected as the virtual machine to be migrated.

일 실시예에서, 마이그레이션 매니저 (616) 는 복수의 가상머신들 중에서 RAM 이용도가 임계값을 초과하지 않는 일부의 가상머신들을 선택하고, 선택된 일부의 가상머신들 중에서 CPU 이용도가 임계값을 초과하는 가상머신 또는 소정의 횟수로 측정된 CPU 이용도의 평균값이 가장 높은 가상머신이 마이그레이션될 가상머신으로서 선택될 수도 있다. RAM 이용도가 낮은 가상머신이 마이그레이션되므로, 가상머신의 마이그레이션 시간이 단축될 수 있다.In one embodiment, the migration manager 616 selects some of the plurality of virtual machines for which the RAM utilization does not exceed a threshold, and if CPU utilization among selected virtual machines exceeds the threshold The virtual machine having the highest average value of the CPU utilization measured in the predetermined number of times may be selected as the virtual machine to be migrated. Since the virtual machine with low RAM utilization is migrated, the migration time of the virtual machine can be shortened.

일 실시예에서, 마이그레이션 매니저 (616) 는 복수의 가상머신들 중 마이그레이션될 가상머신을 임의로 선택할 수도 있다.In one embodiment, the migration manager 616 may arbitrarily select a virtual machine to be migrated among a plurality of virtual machines.

단계 S730 에서, 제어 노드 (610) 는 복수의 컴퓨터 노드들 (620) 중에서, 단계 S720 에서 선택된 가상머신을 로드할 컴퓨터 노드를 결정할 수 있다.In step S730, the control node 610 may determine, among the plurality of computer nodes 620, a computer node to load the virtual machine selected in step S720.

복수의 컴퓨터 노드들 (620) 중에서 상대적으로 리소스의 가용성이 높은 노드가 가상머신을 로드할 컴퓨터 노드로 결정될 수 있다.A node having a relatively high resource availability among a plurality of computer nodes 620 may be determined as a computer node to load the virtual machine.

일 실시예에서, 제어 노드 (610) 의 마이그레이션 매니저 (616) 는 복수의 컴퓨터 노드들 (620) 의 자원 가용성을 순차적으로 측정함으로써, 가상머신을 로드할 컴퓨터 노드를 결정할 수 있다.In one embodiment, the migration manager 616 of the control node 610 may determine the computer node to load the virtual machine by sequentially measuring the resource availability of the plurality of computer nodes 620.

일 실시예에서, 마이그레이션 매니저 (616) 는 복수의 컴퓨터 노드들 (620) 의 자원 이용도 정보에 기초하여, 가상머신을 로드할 컴퓨터 노드를 결정할 수 있다. 예를 들어, CPU 이용도의 평균값 및 RAM 이용도의 평균값에 기초하여 복수의 컴퓨터 노드들 (620) 중에서 컴퓨터 노드가 결정될 수 있고, 로드될 가상머신이 점유하는 CPU 이용도 및 RAM 이용도보다 큰 자원 가용성을 가지는 컴퓨터 노드가 복수의 컴퓨터 노드들 (620) 중에서 결정될 수 있다.In one embodiment, the migration manager 616 may determine a computer node to load the virtual machine based on the resource availability information of the plurality of computer nodes 620. [ For example, a computer node among a plurality of computer nodes 620 can be determined based on the average value of the CPU utilization and the average value of the RAM utilization, and the CPU utilization and RAM utilization occupied by the virtual machine to be loaded A computer node having resource availability may be determined among a plurality of computer nodes 620. [

마이그레이션 매니저 (616) 가 컴퓨터 노드를 결정하는 기준은 알고리즘 저장소에 저장된 알고리즘에 의해 결정될 수 있다.The criteria by which the migration manager 616 determines the computer node may be determined by the algorithm stored in the algorithm store.

단계 S740 에서, 제어 노드 (610) 는 단계 S730 에서 결정된 컴퓨터 노드로 단계 S720 에서 선택된 가상머신을 마이그레이션할 수 있다.In step S740, the control node 610 may migrate the virtual machine selected in step S720 to the computer node determined in step S730.

일 실시예에서, 가상머신의 마이그레이션은 복수의 컴퓨터 노드들 (620) 을 관리하기 위한 클라우드 애플리케이션 프로그래밍 인터페이스 (application programming interface: API) 를 통해 수행될 수 있으나, 이에 제한되지 않는다.In one embodiment, the migration of the virtual machine may be performed through a cloud application programming interface (API) for managing a plurality of computer nodes 620, but is not limited thereto.

단계 S720 에서 선택된 가상머신이 오버로드된 컴퓨터 노드로부터, 단계 S730 에서 결정된 컴퓨터 노드로 마이그레이션됨으로써, 오버로드된 컴퓨터 노드의 로드가 저감될 수 있고, 나아가, 클라우드 시스템 (600) 의 효율이 향상될 수 있다. The virtual machine selected in step S720 is migrated from the overloaded computer node to the computer node determined in step S730 so that the load of the overloaded computer node can be reduced and further the efficiency of the cloud system 600 can be improved have.

본 발명에 따른 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. An apparatus according to the present invention may include a processor, a memory for storing and executing program data, a permanent storage such as a disk drive, a communication port for communicating with an external device, a user interface such as a touch panel, a key, Devices, and the like.

소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다. Methods implemented with software modules or algorithms may be stored on a computer readable recording medium as computer readable codes or program instructions executable on the processor. Here, the computer-readable recording medium may be a magnetic storage medium such as a read-only memory (ROM), a random-access memory (RAM), a floppy disk, a hard disk, ), And a DVD (Digital Versatile Disc). The computer-readable recording medium may be distributed over networked computer systems so that computer readable code can be stored and executed in a distributed manner. The medium is readable by a computer, stored in a memory, and executable on a processor.

본 발명에서 인용하는 공개 문헌, 특허 출원, 특허 등을 포함하는 모든 문헌들은 각 인용 문헌이 개별적으로 및 구체적으로 병합하여 나타내는 것 또는 본 발명에서 전체적으로 병합하여 나타낸 것과 동일하게 본 발명에 병합될 수 있다.All documents, including publications, patent applications, patents, etc., cited in the present invention may be incorporated into the present invention in the same manner as each cited document is shown individually and specifically in conjunction with one another, .

본 발명의 이해를 위하여, 도면에 도시된 바람직한 실시 예들에서 참조 부호를 기재하였으며, 본 발명의 실시 예들을 설명하기 위하여 특정 용어들을 사용하였으나, 특정 용어에 의해 본 발명이 한정되는 것은 아니며, 본 발명은 당업자에 있어서 통상적으로 생각할 수 있는 모든 구성 요소들을 포함할 수 있다. In order to facilitate understanding of the present invention, reference will be made to the preferred embodiments shown in the drawings, and specific terminology is used to describe the embodiments of the present invention. However, the present invention is not limited to the specific terminology, Lt; / RTI > may include all elements commonly conceivable by those skilled in the art.

본 발명은 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 발명은 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. The present invention may be represented by functional block configurations and various processing steps. These functional blocks may be implemented in a wide variety of hardware and / or software configurations that perform particular functions. For example, the present invention may include integrated circuit configurations, such as memory, processing, logic, look-up tables, etc., that may perform various functions by control of one or more microprocessors or other control devices Can be adopted.

본 발명에의 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 발명은 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 발명은 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. "매커니즘", "요소", "수단", "구성"과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.Similar to the components of the present invention that may be implemented with software programming or software components, the present invention may be implemented as a combination of C, C ++, and C ++, including various algorithms implemented with data structures, processes, routines, , Java (Java), assembler, and the like. Functional aspects may be implemented with algorithms running on one or more processors. Further, the present invention can employ conventional techniques for electronic environment setting, signal processing, and / or data processing. Terms such as "mechanism", "element", "means", "configuration" may be used broadly and are not limited to mechanical and physical configurations. The term may include the meaning of a series of routines of software in conjunction with a processor or the like.

본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, "필수적인", "중요하게" 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.The specific acts described in the present invention are, by way of example, not intended to limit the scope of the invention in any way. For brevity of description, descriptions of conventional electronic configurations, control systems, software, and other functional aspects of such systems may be omitted. Also, the connections or connecting members of the lines between the components shown in the figures are illustrative of functional connections and / or physical or circuit connections, which may be replaced or additionally provided by a variety of functional connections, physical Connection, or circuit connections. Also, unless explicitly mentioned, such as "essential "," importantly ", etc., it may not be a necessary component for application of the present invention.

본 발명의 명세서(특히 특허청구범위에서)에서 "상기"의 용어 및 이와 유사한 지시 용어의 사용은 단수 및 복수 모두에 해당하는 것일 수 있다. 또한, 본 발명에서 범위(range)를 기재한 경우 상기 범위에 속하는 개별적인 값을 적용한 발명을 포함하는 것으로서(이에 반하는 기재가 없다면), 발명의 상세한 설명에 상기 범위를 구성하는 각 개별적인 값을 기재한 것과 같다. 마지막으로, 본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어(예들 들어, 등등)의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.The use of the terms "above" and similar indication words in the specification of the present invention (particularly in the claims) may refer to both singular and plural. In addition, in the present invention, when a range is described, it includes the invention to which the individual values belonging to the above range are applied (unless there is contradiction thereto), and each individual value constituting the above range is described in the detailed description of the invention The same. Finally, the steps may be performed in any suitable order, unless explicitly stated or contrary to the description of the steps constituting the method according to the invention. The present invention is not necessarily limited to the order of description of the above steps. The use of all examples or exemplary language (e.g., etc.) in this invention is for the purpose of describing the invention in detail and is not to be construed as a limitation on the scope of the invention, It is not. It will also be appreciated by those skilled in the art that various modifications, combinations, and alterations may be made depending on design criteria and factors within the scope of the appended claims or equivalents thereof.

Claims (20)

애플리케이션 서비스 제공을 위해 상기 제 1 디바이스에서 구동되는 제 1 가상머신의 리소스 차이값을, 마이그레이션 시킬 원격 위치의 제 2 디바이스에 전송하는 단계;
상기 제 1 가상머신의 리소스 차이값을 기초로, 상기 제 1 가상머신의 구성 상태가 상기 제 2 디바이스에서 구동되는 제 2 가상머신에 복제됨에 따라, 상기 제 1 디바이스와 상기 제 2 디바이스 간의 네트워크 상태 정보를 기초로 상기 제 1 가상머신에서 수행되는 애플리케이션 서비스의 중단 시점을 결정하는 단계;
상기 결정된 중단 시점에 상기 제 1 가상머신을 비활성화하는 단계를 포함하는, 가상머신의 마이그레이션을 수행하는 방법.
Transmitting a resource difference value of a first virtual machine driven by the first device to a second device at a remote location to be migrated to provide an application service;
The network state between the first device and the second device is changed as the configuration state of the first virtual machine is copied to the second virtual machine driven by the second device based on the resource difference value of the first virtual machine, Determining an abort point of the application service performed in the first virtual machine based on the information;
And deactivating the first virtual machine at the determined pause time.
제 1 항에 있어서, 상기 리소스 차이값은,
상기 제 1 가상머신과 상기 제 2 가상머신 간의 메모리, 프로세스 및 디스크의 상태 값 중 적어도 하나의 차이값을 포함하는 가상머신의 마이그레이션을 수행하는 방법.
2. The method of claim 1,
And a difference value of at least one of a memory, a process, and a status value of a disk between the first virtual machine and the second virtual machine.
제 1 항에 있어서, 상기 중단 시점은,
상기 제 1 디바이스와 상기 제 2 디바이스 간의 패킷 전달 지연 시간을 기초로 결정되는 가상머신의 마이그레이션을 수행하는 방법.
The method according to claim 1,
And determining a packet transfer delay time between the first device and the second device.
제 3 항에 있어서, 상기 중단 시점은,
상기 패킷 전달 지연 시간의 2배가 현재 시점에 가산된 시점으로 결정되는 가상머신의 마이그레이션을 수행하는 방법.
4. The method according to claim 3,
Wherein a time at which the packet transfer delay time is doubled is added to the current time point.
제 1 항에 있어서,
상기 제 1 디바이스에서 제공되는 애플리케이션 서비스의 QoS(Quality of Service) 값을 산출하는 단계를 더 포함하고,
상기 전송하는 단계는,
상기 산출된 QoS 값이 기 설정된 임계값 미만인 경우, 상기 제 1 가상머신의 리소스 차이값을 상기 제 2 디바이스에 전송하는 가상머신의 마이그레이션을 수행하는 방법.
The method according to claim 1,
Further comprising calculating a quality of service (QoS) value of an application service provided by the first device,
Wherein the transmitting comprises:
And transmitting the resource difference value of the first virtual machine to the second device when the calculated QoS value is less than a preset threshold value.
애플리케이션 서비스의 제공을 위해 제 1 디바이스에서 구동되는 제 1 가상머신의 리소스 차이값을 수신하는 단계;
상기 제 1 가상머신의 리소스 차이값을 기초로, 상기 제 1 가상머신의 구성 상태를 상기 제 2 디바이스에서 구동되는 제 2 가상머신에 복제하는 단계; 및
상기 제 1 디바이스와 상기 제 2 디바이스 간의 네트워크 상태 정보를 기초로 결정된 서비스 시작 시점에 상기 애플리케이션 서비스를 수행하는 단계를 포함하는 가상머신의 마이그레이션을 수행하는 방법.
Receiving a resource difference value of a first virtual machine running on a first device for providing an application service;
Copying the configuration status of the first virtual machine to a second virtual machine running on the second device based on the resource difference value of the first virtual machine; And
And performing the application service at a service start point determined based on network state information between the first device and the second device.
복수의 컴퓨터 노드들로부터 자원 이용도 정보를 수신하는 단계;
상기 수신된 자원 이용도 정보에 기초하여 상기 복수의 컴퓨터 노드들 중 오버로드된 (overloaded) 컴퓨터 노드를 검출하는 단계;
상기 검출된 컴퓨터 노드에서 활성화된 복수의 가상머신들 중 오버로드된 적어도 하나의 가상머신을 선택하는 단계;
상기 복수의 컴퓨터 노드들 중에서, 상기 선택된 적어도 하나의 가상머신이 마이그레이션될 컴퓨터 노드를 결정하는 단계; 및
상기 검출된 컴퓨터 노드로부터 상기 결정된 컴퓨터 노드로, 상기 선택된 적어도 하나의 가상머신을 마이그레이션하는 단계를 포함하는 방법.
Receiving resource availability information from a plurality of computer nodes;
Detecting overloaded computer nodes of the plurality of computer nodes based on the received resource utilization information;
Selecting at least one overloaded virtual machine among a plurality of virtual machines activated at the detected computer node;
Determining, among the plurality of computer nodes, the computer node to which the selected at least one virtual machine is to be migrated; And
Migrating the selected at least one virtual machine from the detected computer node to the determined computer node.
제 7 항에 있어서,
상기 자원 이용도 정보는 CPU 이용도 정보를 포함하고,
상기 검출하는 단계는,
상기 복수의 컴퓨터 노드들 중 CPU 이용도가 임계값을 초과한 컴퓨터 노드를 상기 오버로드된 컴퓨터 노드로서 검출하는 단계를 포함하는 방법.
8. The method of claim 7,
Wherein the resource availability information includes CPU utilization information,
Wherein the detecting comprises:
Detecting a computer node of the plurality of computer nodes that has exceeded a threshold of CPU utilization as the overloaded computer node.
제 7 항에 있어서,
상기 자원 이용도 정보는 CPU 이용도 정보를 포함하고,
상기 검출하는 단계는,
소정의 횟수로 측정된 CPU 이용도의 평균값에 기초하여, 상기 복수의 컴퓨터 노드들 중 상기 오버로드된 컴퓨터 노드를 검출하는 단계를 포함하는 방법.
8. The method of claim 7,
Wherein the resource availability information includes CPU utilization information,
Wherein the detecting comprises:
Detecting the overloaded computer node of the plurality of computer nodes based on an average value of CPU utilization measured a predetermined number of times.
제 7 항에 있어서,
상기 자원 이용도 정보는 가상머신 CPU 이용도 정보를 포함하고,
상기 선택하는 단계는,
소정의 횟수로 측정된 가상머신 CPU 이용도의 평균값에 기초하여, 상기 복수의 가상머신들 중 상기 오버로드된 적어도 하나의 가상머신을 선택하는 단계를 포함하는 방법.
8. The method of claim 7,
Wherein the resource utilization information includes virtual machine CPU utilization information,
Wherein the selecting comprises:
Selecting at least one overloaded virtual machine of the plurality of virtual machines based on an average value of virtual machine CPU utilization measured a predetermined number of times.
제 7 항에 있어서,
상기 자원 이용도 정보는 가상머신 RAM 이용도 정보를 포함하고,
상기 선택하는 단계는,
상기 복수의 가상머신들 중 가상머신 RAM 이용도에 기초하여 선택된 일부의 가상머신들 중에서, 상기 오버로드된 적어도 하나의 가상머신을 선택하는 단계를 포함하는 방법.
8. The method of claim 7,
Wherein the resource availability information includes virtual machine RAM utilization information,
Wherein the selecting comprises:
Selecting at least one virtual machine overloaded from among a plurality of virtual machines selected from among a plurality of virtual machines based on virtual machine RAM utilization.
제 7 항에 있어서,
상기 자원 이용도 정보는 가상머신 CPU 이용도 정보 및 가상머신 RAM 이용도 정보를 포함하고,
상기 선택하는 단계는,
상기 복수의 가상머신들 중 가상머신 RAM 이용도에 기초하여 선택된 일부의 가상머신들 중에서, 상기 오버로드된 적어도 하나의 가상머신을 소정의 횟수로 측정된 가상머신 CPU 이용도의 평균값에 기초하여 선택하는 단계를 포함하는 방법.
8. The method of claim 7,
Wherein the resource availability information includes virtual machine CPU utilization information and virtual machine RAM utilization information,
Wherein the selecting comprises:
Selecting at least one virtual machine overloaded from among a plurality of virtual machines based on virtual machine RAM utilization based on an average value of virtual machine CPU utilization measured in a predetermined number of times ≪ / RTI >
제 7 항에 있어서,
상기 결정하는 단계는,
상기 복수의 컴퓨터 노드들의 자원 가용성을 순차적으로 측정함으로써, 상기 컴퓨터 노드를 결정하는 단계를 포함하는 방법.
8. The method of claim 7,
Wherein the determining comprises:
And determining the computer node by sequentially measuring resource availability of the plurality of computer nodes.
제 7 항에 있어서,
상기 자원 이용도 정보는 CPU 이용도 정보 및 RAM 이용도 정보를 포함하고,
상기 결정하는 단계는,
상기 복수의 컴퓨터 노드들 중에서 CPU 이용도 및 RAM 이용도에 기초하여 상기 컴퓨터 노드를 결정하는 단계를 포함하는 방법.
8. The method of claim 7,
Wherein the resource availability information includes CPU utilization information and RAM utilization information,
Wherein the determining comprises:
Determining the computer node based on CPU utilization and RAM utilization among the plurality of computer nodes.
제 7 항에 있어서,
상기 마이그레이션하는 단계는 상기 복수의 컴퓨터 노드들을 관리하는 클라우드 애플리케이션 프로그래밍 인터페이스 (application programming interface: API) 를 통해 수행되는 방법.
8. The method of claim 7,
Wherein the migrating is performed through a cloud application programming interface (API) that manages the plurality of computer nodes.
제 7 항에 있어서,
상기 검출된 오버로드된 컴퓨터 노드는 상기 결정된 컴퓨터 노드와 서로 상이한 방법.
8. The method of claim 7,
Wherein the detected overloaded computer node is different from the determined computer node.
제 1 디바이스로서:
애플리케이션 서비스 제공을 위해 상기 제 1 디바이스에서 구동되는 제 1 가상머신의 리소스 차이값을, 마이그레이션 시킬 원격 위치의 제 2 디바이스에 전송하는 통신부;
상기 제 1 가상머신의 리소스 차이값을 기초로, 상기 제 1 가상머신의 구성 상태가 상기 제 2 디바이스에서 구동되는 제 2 가상머신에 복제됨에 따라, 상기 제 1 디바이스와 상기 제 2 디바이스 간의 네트워크 상태 정보를 기초로 상기 제 1 가상머신에서 수행되는 애플리케이션 서비스의 중단 시점을 결정하고, 상기 결정된 중단 시점에 상기 제 1 가상머신을 비활성화하는 프로세서를 포함하는, 가상머신의 마이그레이션을 수행하는 제 1 디바이스.
As a first device:
A communication unit for transmitting a resource difference value of a first virtual machine driven by the first device to a second device at a remote location to be migrated to provide an application service;
The network state between the first device and the second device is changed as the configuration state of the first virtual machine is copied to the second virtual machine driven by the second device based on the resource difference value of the first virtual machine, A processor for determining a point-in-time of an application service performed in the first virtual machine based on the information, and deactivating the first virtual machine at the determined pause time.
제 2 디바이스로서:
애플리케이션 서비스의 제공을 위해 제 1 디바이스에서 구동되는 제 1 가상머신의 리소스 차이값을 수신하는 통신부; 및
상기 제 1 가상머신의 리소스 차이값을 기초로, 상기 제 1 가상머신의 구성 상태를 상기 제 2 디바이스에서 구동되는 제 2 가상머신에 복제하고, 상기 제 1 디바이스와 상기 제 2 디바이스 간의 네트워크 상태 정보를 기초로 결정된 서비스 시작 시점에 상기 애플리케이션 서비스를 수행하는 프로세서를 포함하는 가상머신의 마이그레이션을 수행하는 제 2 디바이스.
As a second device:
A communication unit for receiving a resource difference value of a first virtual machine driven by a first device for providing an application service; And
The second virtual machine is configured to copy the configuration state of the first virtual machine to a second virtual machine driven by the second device based on the resource difference value of the first virtual machine, And a processor for performing the application service at a service start point determined based on the service start point.
인스트럭션들을 저장하는 메모리; 및
상기 인스트럭션들을 실행하여:
복수의 컴퓨터 노드들로부터 자원 이용도 정보를 수신하는 단계;
상기 수신된 자원 이용도 정보에 기초하여 상기 복수의 컴퓨터 노드들 중 오버로드된 (overloaded) 컴퓨터 노드를 검출하는 단계;
상기 검출된 컴퓨터 노드에서 활성화된 복수의 가상머신들 중 오버로드된 적어도 하나의 가상머신을 선택하는 단계;
상기 복수의 컴퓨터 노드들 중에서, 상기 선택된 적어도 하나의 가상머신이 마이그레이션될 컴퓨터 노드를 결정하는 단계; 및
상기 검출된 컴퓨터 노드로부터 상기 결정된 컴퓨터 노드로, 상기 선택된 적어도 하나의 가상머신을 마이그레이션하는 단계를 수행하도록 구성된 적어도 하나의 프로세서를 포함하는 디바이스.
A memory for storing instructions; And
Executing the instructions to:
Receiving resource availability information from a plurality of computer nodes;
Detecting overloaded computer nodes of the plurality of computer nodes based on the received resource utilization information;
Selecting at least one overloaded virtual machine among a plurality of virtual machines activated at the detected computer node;
Determining, among the plurality of computer nodes, the computer node to which the selected at least one virtual machine is to be migrated; And
And at least one processor configured to perform the step of migrating the selected at least one virtual machine from the detected computer node to the determined computer node.
제 1 항 내지 제 16 항 및 중 어느 하나의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.A computer-readable recording medium having recorded thereon a program for causing a computer to execute the method according to any one of claims 1 to 16.
KR1020170161564A 2016-11-30 2017-11-29 Method and apparatus for perforiming migration of virtual machine KR102010152B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2017/013801 WO2018101736A1 (en) 2016-11-30 2017-11-29 Method and apparatus for migrating virtual machine

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20160160966 2016-11-30
KR1020160160966 2016-11-30

Publications (2)

Publication Number Publication Date
KR20180062403A true KR20180062403A (en) 2018-06-08
KR102010152B1 KR102010152B1 (en) 2019-08-12

Family

ID=62600203

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170161564A KR102010152B1 (en) 2016-11-30 2017-11-29 Method and apparatus for perforiming migration of virtual machine

Country Status (1)

Country Link
KR (1) KR102010152B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102467522B1 (en) * 2022-08-29 2022-11-17 주식회사 시스원 High Availability System of Global Sharing Virtualization Resource for Cloud Infrastructure

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102328173B1 (en) 2021-07-05 2021-11-17 (주)다윈아이씨티 Method, device and system for processing migration of application

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008225546A (en) * 2007-03-08 2008-09-25 Nec Corp Virtual device configuration system and its method
KR20120125039A (en) * 2011-05-06 2012-11-14 주식회사 케이티 Apparatus of migrating disk of virtual machine and method thereof
KR20120126549A (en) * 2011-05-12 2012-11-21 성균관대학교산학협력단 Virtual machine migration processing apparatus and method thereof
JP2016004432A (en) * 2014-06-17 2016-01-12 富士通株式会社 Virtual machine migration program, virtual machine migration system and virtual machine migration method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008225546A (en) * 2007-03-08 2008-09-25 Nec Corp Virtual device configuration system and its method
KR20120125039A (en) * 2011-05-06 2012-11-14 주식회사 케이티 Apparatus of migrating disk of virtual machine and method thereof
KR20120126549A (en) * 2011-05-12 2012-11-21 성균관대학교산학협력단 Virtual machine migration processing apparatus and method thereof
JP2016004432A (en) * 2014-06-17 2016-01-12 富士通株式会社 Virtual machine migration program, virtual machine migration system and virtual machine migration method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
김진석 외 2명. '데이터센터 환경에서 서비스 품질을 고려한 가상머신 마이그레이션 기법'. 한국정보과학회 2008 가을 학술발표논문집 제35권 제2호(A), 2008.10, pp.287-288. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102467522B1 (en) * 2022-08-29 2022-11-17 주식회사 시스원 High Availability System of Global Sharing Virtualization Resource for Cloud Infrastructure

Also Published As

Publication number Publication date
KR102010152B1 (en) 2019-08-12

Similar Documents

Publication Publication Date Title
US9886300B2 (en) Information processing system, managing device, and computer readable medium
US10891162B2 (en) Methods and apparatus to improve external resource allocation for hyper-converged infrastructures based on costs analysis
US11507435B2 (en) Rack-level scheduling for reducing the long tail latency using high performance SSDs
US11431788B2 (en) Pairwise comparison and migration of workloads for load balancing
JP6005795B2 (en) Reliable deterministic live migration of virtual machines
US9569245B2 (en) System and method for controlling virtual-machine migrations based on processor usage rates and traffic amounts
US9413683B2 (en) Managing resources in a distributed system using dynamic clusters
US9363192B2 (en) Automatic remediation in a distributed computer system with multiple clusters of host computers
US9582303B2 (en) Extending placement constraints for virtual machine placement, load balancing migrations, and failover without coding
US20140115162A1 (en) Providing automated quality-of-service ('qos') for virtual machine migration across a shared data center network
US20150309828A1 (en) Hypervisor manager for virtual machine management
JP2018503275A (en) Method, apparatus, and system for exploring application topology relationships
US10489208B1 (en) Managing resource bursting
US9417927B2 (en) Runtime capacity planning in a simultaneous multithreading (SMT) environment
CN107967164B (en) Method and system for live migration of virtual machine
US20160203030A1 (en) Load calculation method, load calculation program, and load calculation apparatus
JP2011180889A (en) Network resource management system, device, method and program
US20210373968A1 (en) Load leveling device, load leveling method, and load leveling program
KR102010152B1 (en) Method and apparatus for perforiming migration of virtual machine
US20190286468A1 (en) Efficient control of containers in a parallel distributed system
US9836342B1 (en) Application alerting system and method for a computing infrastructure
US11875175B2 (en) Providing physical host hardware state information to virtual machines deployed on the physical host
JP5905412B2 (en) Virtual computer system and processor performance measurement method
JP6349786B2 (en) Virtual machine management apparatus, virtual machine management method, and virtual machine management program
US20170134238A1 (en) Physical machine management device and physical machine management method

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
GRNT Written decision to grant