KR20180062403A - Method and apparatus for perforiming migration of virtual machine - Google Patents
Method and apparatus for perforiming migration of virtual machine Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution 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
Description
개시된 실시예는 가상머신의 마이그레이션을 수행하기 위한 방법, 장치 및 그 방법을 컴퓨터에서 실행시키기 위한 프로그램에 관한다.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
도 1을 참조하면, 가상머신의 마이그레이션을 수행하는 시스템(10)의 각 구성 요소들은 일반적으로 네트워크(network)를 통해 연결된다. 네트워크는 네트워크 장치들 간에 정보 교환이 가능한 연결 구조를 의미한다. Referring to FIG. 1, each component of the
또한, 일 실시예에 따른 가상머신의 마이그레이션을 수행하는 시스템(10)은 제 1 디바이스(100), 제 2 디바이스(200) 및 저장소(50)를 포함할 수 있으나, 이는 일 실시예일 뿐 가상머신의 마이그레이션을 수행하는 시스템(10)의 구성 요소들이 전술한 예에 한정되는 것은 아니다. The
제 1 디바이스(100)는 제 1 디바이스(100) 내에 구동 중인 제 1 가상머신을 통해 애플리케이션 서비스를 제공할 수 있다. 예를 들어, 제 1 디바이스(100)는 제 1 가상머신을 통해 비디오 스트리밍 서비스와 같이 멀티미디어에 관한 애플리케이션 서비스를 제공할 수 있다. The
일 실시예에 따른 제 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
제 1 디바이스(100)는 제 1 가상머신의 마이그레이션이 결정됨에 따라, 제 1 가상머신을 마이그레이션시킬 원격의 장소에 위치한 적어도 하나의 디바이스 중 제 2 디바이스(200)를 선택할 수 있다. 제 1 디바이스(100)와 제 2 디바이스(200)는 저장소(50)와 같이 데이터를 저장 및 공유할 수 있는 장치에 연결되어 있는 것으로 가정한다. 저장소(50)는 예를 들어, 서버, 클라우드 서버 및 메모리 장치 등이 포함될 수 있으나, 이는 일 실시예일 뿐, 본 발명의 저장소(50)가 전술한 예에 한정되는 것은 아니다. The
제 1 디바이스(100)는 애플리케이션 서비스 제공을 위해, 제 1 디바이스(100)에서 구동되는 제 1 가상머신의 리소스 차이값을 선택된 제 2 디바이스(200)에 전송할 수 있다. 여기에서, 리소스 차이값은 제 1 가상머신과 제 2 가상머신 간의 메모리, 프로세스 및 디스크의 상태 값 중 적어도 하나에 관한 차이값을 포함할 수 있다. The
한편, 제 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
일 실시예에 따른 제 2 디바이스(200)는 제 1 가상머신의 복제가 완료됨에 따라, 제 1 디바이스(100)와 제 2 디바이스(200) 간의 네트워크 상태 정보를 기초로 제 1 가상머신에서 수행되었던 애플리케이션 서비스의 시작 시점을 결정할 수 있다. 예를 들어, 제 2 디바이스(200)는 제 1 디바이스(100)와 제 2 디바이스(200) 간의 패킷 전달 지연 시간을 기초로 애플리케이션 서비스의 시작 시점을 결정할 수 있다. The
또한, 제 1 디바이스(100)는 제 2 디바이스(200)에서 결정된 애플리케이션 서비스의 시작 시점과 대응되는 시점을 제 1 가상머신의 중단 시점으로 결정할 수 있다. 이에 따라, 제 1 디바이스(100)는 결정된 중단 시점에 제 1 가상 머신을 비활성화할 수 있다. Also, the
도 2는 일 실시예에 따라 제 1 디바이스(100)에서 가상머신의 마이그레이션을 수행하는 방법을 설명하기 위한 흐름도이다. 2 is a flowchart illustrating a method of performing a migration of a virtual machine in the
단계 S210에서, 제 1 디바이스(100)는 애플리케이션 서비스 제공을 위해제 1 디바이스(100)에서 구동되는 제 1 가상머신의 리소스 차이값을, 마이그레이션 시킬 원격 위치의 제 2 디바이스(200)에 전송할 수 있다. In step S210, the
일 실시예에 따른 제 1 디바이스(100)는 제공 중인 애플리케이션 서비스의 QoS가 기 설정된 임계값 미만인 것으로 판단되는 경우, 제 1 가상머신의 마이그레이션을 결정할 수 있다. 이에 따라, 제 1 디바이스(100)는 제 1 가상머신의 리소스 차이값을 제 2 디바이스(200)에 전송할 수 있다. The
단계 S220에서, 제 1 디바이스(100)는 제 1 가상머신의 리소스 차이값을 기초로, 제 1 가상머신의 구성 상태가 제 2 디바이스(200)에서 구동되는 제 2 가상머신에 복제됨에 따라, 제 1 디바이스(100)와 제 2 디바이스(200) 간의 네트워크 상태 정보를 기초로 제 1 가상머신에서 수행되는 애플리케이션 서비스의 중단 시점을 결정할 수 있다. In step S220, the
일 실시예에 따른 제 1 디바이스(100)의 리소스 차이값이 제 2 디바이스(200)에 수신됨에 따라, 제 2 디바이스(200)는 제 1 가상머신의 구성 상태를 복제할 수 있다. 또한, 제 2 디바이스(200)는 저장소(50)의 공유 등을 통해 제 1 가상머신과 동일한 이미지를 획득할 수 있다. 제 2 디바이스(200)는 획득된 이미지와 리소스 차이값을 기초로 제 1 가상머신의 구성 상태를 복제할 수 있다. As the resource difference value of the
한편, 일 실시예에 따른 제 1 디바이스(100)는 가상머신의 마이그레이션이 수행되더라고, 애플리케이션 서비스가 연속적으로 수행될 수 있도록 제 1 가상머신에서 제공되는 애플리케이션 서비스의 중단 시점을 결정할 수 있다. 여기에서, 중단 시점은 제 2 가상머신에서 애플리케이션 서비스가 시작되는 시점과 대응될 수 있다. 제 2 가상머신에서 애플리케이션 서비스가 시작되는 시점은 다음의 수학식 1에 따라 결정될 수 있다. Meanwhile, the
[수학식 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
또한, 제 1 디바이스(100)는 멀티미디어 스트리밍 서비스를 제공하는 경우, 각 멀티미디어 스트림에 결정된 중단 시점인 ts를 설정할 수 있다. In addition, when the
단계 S230에서, 제 1 디바이스(100)는 결정된 중단 시점에 제 1 가상머신을 비활성화 할 수 있다. 예를 들어, 제 1 디바이스(100)는 결정된 중단 시점에 애플리케이션 서비스의 제공을 중단할 수 있다. In step S230, the
일 실시예에 따른 제 1 디바이스(100)는 마이그레이션이 수행되고 있는 시점 및 제 1 디바이스(100)와 제 2 디바이스(200)간의 네트워크 상태를 고려하여, 애플리케이션 서비스의 중단 시점을 결정함으로써, 애플리케이션 서비스를 끊김 없이 제공할 수 있다. The
도 3은 일 실시예에 따라 제 2 디바이스(200)에서 가상머신의 마이그레이션을 수행하는 방법을 설명하기 위한 흐름도이다. 3 is a flowchart illustrating a method of performing a migration of a virtual machine in a
단계 S310에서, 제 2 디바이스(200)는 애플리케이션 서비스의 제공을 위해 제 1 디바이스(100)에서 구동되는 제 1 가상머신의 리소스 차이값을 수신할 수 있다. In step S310, the
단계 S320에서, 제 2 디바이스(200)는 제 1 가상머신의 리소스 차이값을기초로, 제 1 가상머신의 구성 상태를 제 2 디바이스(200)에서 구동되는 제 2 가상머신에 복제할 수 있다. In step S320, the
예를 들어, 제 2 디바이스(200)는 리소스 차이값에 포함된 메모리, 프로세스 및 디스크 상태 값 등의 차이값을 기초로 제 1 가상머신의 구성 상태를 복제할 수 있다. 또한, 제 2 디바이스(200)는 저장소(50)의 공유 등을 통해 획득된 제 1 가상머신과 동일한 이미지와 리소스 차이값을 기초로 제 1 가상머신의 구성 상태를 복제할 수 있다. For example, the
단계 S330에서, 제 2 디바이스(200)는 제 1 디바이스(100)와 제 2 디바이스(200) 간의 네트워크 상태 정보를 기초로 결정된 서비스 시작 시점에 애플리케이션 서비스를 수행할 수 있다. In step S330, the
한편, 여기에서, 서비스 시작 시점을 결정하는 방법은 도 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)는 멀티미디어 스트리밍 서비스를 제공하는 경우, 각 멀티미디어 스트림에 서비스 시작 시점인 를 설정할 수 있다.In addition, when the
도 4는 일 실시예에 따른 가상머신의 마이그레이션을 수행하는 제 1 디바이스(100)의 블록도이다. 4 is a block diagram of a
도 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
통신부(110)는 제 1 디바이스(100)와 외부 디바이스(예를 들어, 제 2 디바이스(200)) 간의 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. The communication unit 110 may include one or more components that allow communication between the
일 실시예에 따른 통신부(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
또한, 통신부(110)는 제 1 가상머신의 이미지를 다른 디바이스와 공유하기 위해, 저장소(50)에 제 1 가상머신의 이미지를 전송할 수 있다. In addition, the communication unit 110 may transmit the image of the first virtual machine to the
또한, 통신부(110)는 제 2 디바이스(200)와 가상머신의 마이그레이션을 위해 필요한 정보를 포함한 적어도 하나의 패킷을 송수신할 수 있다. Also, the communication unit 110 can transmit and receive at least one packet including information necessary for migration of the
프로세서(120)는 통상적으로 제 1 디바이스(100)의 전반적인 동작을 제어한다. The processor 120 typically controls the overall operation of the
프로세서(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
프로세서(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
또한, 프로세서(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
도 5는 일 실시예에 따른 가상머신의 마이그레이션을 수행하는 제 2 디바이스(200)의 블록도이다. 5 is a block diagram of a
도 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
통신부(210)는 제 2 디바이스(200)와 외부 디바이스(예를 들어, 제 1 디바이스(100)) 간의 통신을 하게 하는 하나 이상의 구성요소를 포함할 수 있다. The communication unit 210 may include one or more components that allow communication between the
일 실시예에 따른 통신부(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
또한, 통신부(210)는 제 1 디바이스(100)와 가상머신의 마이그레이션을 위해 필요한 정보를 포함한 적어도 하나의 패킷을 송수신할 수 있다. Also, the communication unit 210 can transmit and receive at least one packet including information necessary for migration of the
프로세서(220)는 통상적으로 제 2 디바이스(200)의 전반적인 동작을 제어한다. The processor 220 typically controls the overall operation of the
프로세서(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
도 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
제어 노드 (610) 및 컴퓨터 노드들 (620) 은 물리적인 장치를 가리키고, 시스템 (600), 예를 들어, 클라우드 시스템의 컴포넌트들로서 기능한다. 예를 들어, 제어 노드 (610) 에서는 네트워크를 통해 컴퓨터 노드들 (620) 의 관리가 수행될 수 있고, 컴퓨터 노드들 (620) 각각에서는 하이퍼바이저가 실행될 수 있다.
제어 노드 (610) 는 통계 애그리게이터 (Stats Aggregator) (612), 통계 DB (614), 마이그레이션 매니져 (616), 및 알고리즘 저장소 (618) 를 포함할 수 있다. 통계 애그리게이터 (612), 통계 DB (614), 마이그레이션 매니져 (616), 및 알고리즘 저장소 (618) 는 제어 노드 (610) 에 포함된 프로그램 모듈을 가리킬 수 있으며, 개별적인 물리적인 컴포넌트로만 이해되어서는 아니 된다. 또한, 제어 노드 (610) 의 각 모듈에 의해 수행되는 기능은 다른 모듈에 의해 수행될 수도 있다.The
컴퓨터 노드들 (620) 은 제 1 컴퓨터 노드 (620a), 제 2 컴퓨터 노드 (620b), … 제 n 컴퓨터 노드 (620n) 를 포함할 수 있다. 컴퓨터 노드들 (620) 은 서로 네트워크를 통해 연결될 수 있다.
제어 노드 (610) 를 통해 컴퓨터 노드들 (620) 간의 가상머신 마이그레이션을 수행하는 방법을 설명하기 위해, 도 7을 참조한다.To illustrate how to perform a virtual machine migration between the
도 7은 일 실시예에 따른, 제어 노드 (610) 를 통해 컴퓨터 노드들 (620) 간의 가상머신 마이그레이션을 수행하는 시스템을 설명하기 위한 흐름도이다.7 is a flow diagram illustrating a system for performing a virtual machine migration between
단계 S700 에서, 복수의 컴퓨터 노드들 (620) 은 제어 노드 (610) 에게 자원 이용도 정보를 전송할 수 있다.In step S700, the plurality of
복수의 컴퓨터 노드들 (620) 각각의 자원 이용도 정보는 제어 노드 (610) 의 통계 애그리게이터 (612) 에 의해 수집될 수 있다. 수집된 자원 이용도 정보는 제어 노드 (610) 의 통계 DB (614) 에게 전달될 수 있다. 통계 DB (614) 에게 전달된 자원 이용도 정보는 다른 컴포넌트에게 공유될 수 있다.The resource availability information of each of the plurality of
일 실시예에서, 제어 노드 (610) 의 통계 애그리게이터 (612) 는 자원 이용도 정보를 주기적으로 수집할 수 있다.In one embodiment, the
단계 S710 에서, 제어 노드 (610) 는 복수의 컴퓨터 노드들 (620) 중에서 오버로드된 컴퓨터 노드를 검출할 수 있다.In step S710, the
일 실시예에서, 제어 노드 (610) 의 마이그레이션 매니저 (616) 에 의해, 복수의 컴퓨터 노드들 (620) 로부터 수집된 자원 이용도 정보에 기초하여 오버로드된 컴퓨터 노드가 검출될 수 있다. 마이그레이션 매니저 (616) 가 컴퓨터 노드를 검출하는 기준은 알고리즘 저장소에 저장된 알고리즘에 의해 결정될 수 있다.In one embodiment, overloaded computer nodes may be detected based on the resource availability information collected from the plurality of
일 실시예에서, 자원 이용도 정보는 컴퓨터 노드들 (620) 의 CPU 이용도 정보를 포함할 수 있다. 컴퓨터 노드들 (620) 각각에서는 복수의 가상머신들이 구동될 수 있고, 컴퓨터 노드들 (620) 각각의 CPU 이용도 정보는, 해당 컴퓨터 노드에서 구동되는 가상머신들의 CPU 이용도 정보 (이하,"가상머신 CPU 이용도 정보") 를 포함할 수 있다. 즉, 컴퓨터 노드의 CPU 이용도는, 해당 컴퓨터 노드에서 구동되는 가상머신들 각각의 CPU 이용도에 의해 결정될 수 있다.In one embodiment, the resource availability information may include CPU utilization information of the
일 실시예에서, 마이그레이션 매니저 (616) 는 복수의 컴퓨터 노드들 (620) 중에서 CPU 이용도가 임계값을 초과하는 노드를 오버로드된 컴퓨터 노드로 검출할 수 있다.In one embodiment, the
일 실시예에서, 마이그레이션 매니저 (616) 는 복수의 컴퓨터 노드들 (620) 중에서 CPU 이용도가 임계값을 초과하는 노드를 오버로드된 컴퓨터 노드로서 검출할 수 있다.In one embodiment, the
컴퓨터 노드의 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
일 실시예에서, 마이그레이션 매니저 (616) 는 복수의 컴퓨터 노드들 (620) 중에서 RAM 이용도가 임계값을 초과하는 노드를 오버로드된 컴퓨터 노드로 검출할 수 있다.In one embodiment, the
단계 S720 에서, 제어 노드 (610) 는 단계 S710 에서 결정된 컴퓨터 노드로부터 마이그레이션되는 가상머신을 선택할 수 있다.In step S720, the
결정된 컴퓨터 노드는 오버로드된 상태이고, 오버로드는 해당 컴퓨터 노드에서 실행되어 있는 가상머신들에 의해 발생한다. 따라서, 결정된 컴퓨터 노드에서 활성화되어 있는 가상머신들 중에서 오버로드를 유발하는 가상머신이 선택되어 다른 컴퓨터 노드로 마이그레이션될 수 있다. 오버로드된 컴퓨터 노드로부터 가상머신이 마이그레이션됨으로써, 해당 컴퓨터 노드의 오버로드는 저감될 수 있고, 이로써, 클라우드 시스템 (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
마이그레이션 매니저 (616) 가 가상머신을 선택하는 기준은 알고리즘 저장소에 저장된 알고리즘에 의해 결정될 수 있다.The criteria by which the
일 실시예에서, 복수의 컴퓨터 노드들 (620) 로부터 전송되는 자원 이용도 정보는 컴퓨터 노드들 (620) 의 가상머신 CPU 이용도 정보를 포함할 수 있다. 마이그레이션 매니저 (616) 는 복수의 가상머신들중에서, CPU 이용도가 임계값을 초과하는 적어도 하나의 가상머신을 선택할 수 있다. 일 실시예에서, 마이그레이션 매니저 (616) 는 복수의 가상머신들에서 소정의 횟수로 측정된 CPU 이용도의 평균값에 기초하여, 마이그레이션될 적어도 하나의 가상머신을 선택할 수 있다. 소정의 횟수는 가장 최근에 측정된 CPU 이용도를 기준으로 기산될 수 있고, 소정의 시간 간격을 기준으로 결정될 수도 있다.In one embodiment, the resource availability information transmitted from the plurality of
일 실시예에서, 복수의 컴퓨터 노드들 (620) 로부터 전송되는 자원 이용도 정보는 컴퓨터 노드의 RAM 이용도 정보를 포함할 수 있고, 컴퓨터 노드들 (620) 각각의 RAM 이용도 정보는, 해당 컴퓨터 노드에서 구동되는 가상머신들의 RAM 이용도 정보 (이하,"가상머신 RAM 이용도 정보") 를 포함할 수 있다. 즉, 컴퓨터 노드의 RAM 이용도는, 해당 컴퓨터 노드에서 구동되는 가상머신들 각각의 RAM 이용도에 의해 결정될 수 있다. 마이그레이션 매니저 (616) 는 복수의 가상머신들 중에서 RAM 이용도가 임계값을 초과하는 적어도 하나의 가상머신을 선택할 수 있다.In one embodiment, the resource availability information transmitted from the plurality of
일 실시예에서, 마이그레이션 매니저 (616) 는 복수의 가상머신들 중에서 RAM 이용도에 기초하여 일부의 가상머신들을 선택하고, 선택된 일부의 가상머신들 중에서 CPU 이용도에 기초하여 마이그레이션될 가상머신을 선택할 수 있다. 예를 들어, 복수의 가상머신들 중에서 RAM 이용도가 임계값을 초과하는 일부의 가상머신들이 선택되고, 선택된 일부의 가상머신들 중에서 CPU 이용도가 임계값을 초과하는 가상머신 또는 소정의 횟수로 측정된 CPU 이용도의 평균값이 가장 높은 가상머신이 마이그레이션될 가상머신으로서 선택될 수 있다.In one embodiment, the
일 실시예에서, 마이그레이션 매니저 (616) 는 복수의 가상머신들 중에서 RAM 이용도가 임계값을 초과하지 않는 일부의 가상머신들을 선택하고, 선택된 일부의 가상머신들 중에서 CPU 이용도가 임계값을 초과하는 가상머신 또는 소정의 횟수로 측정된 CPU 이용도의 평균값이 가장 높은 가상머신이 마이그레이션될 가상머신으로서 선택될 수도 있다. RAM 이용도가 낮은 가상머신이 마이그레이션되므로, 가상머신의 마이그레이션 시간이 단축될 수 있다.In one embodiment, the
일 실시예에서, 마이그레이션 매니저 (616) 는 복수의 가상머신들 중 마이그레이션될 가상머신을 임의로 선택할 수도 있다.In one embodiment, the
단계 S730 에서, 제어 노드 (610) 는 복수의 컴퓨터 노드들 (620) 중에서, 단계 S720 에서 선택된 가상머신을 로드할 컴퓨터 노드를 결정할 수 있다.In step S730, the
복수의 컴퓨터 노드들 (620) 중에서 상대적으로 리소스의 가용성이 높은 노드가 가상머신을 로드할 컴퓨터 노드로 결정될 수 있다.A node having a relatively high resource availability among a plurality of
일 실시예에서, 제어 노드 (610) 의 마이그레이션 매니저 (616) 는 복수의 컴퓨터 노드들 (620) 의 자원 가용성을 순차적으로 측정함으로써, 가상머신을 로드할 컴퓨터 노드를 결정할 수 있다.In one embodiment, the
일 실시예에서, 마이그레이션 매니저 (616) 는 복수의 컴퓨터 노드들 (620) 의 자원 이용도 정보에 기초하여, 가상머신을 로드할 컴퓨터 노드를 결정할 수 있다. 예를 들어, CPU 이용도의 평균값 및 RAM 이용도의 평균값에 기초하여 복수의 컴퓨터 노드들 (620) 중에서 컴퓨터 노드가 결정될 수 있고, 로드될 가상머신이 점유하는 CPU 이용도 및 RAM 이용도보다 큰 자원 가용성을 가지는 컴퓨터 노드가 복수의 컴퓨터 노드들 (620) 중에서 결정될 수 있다.In one embodiment, the
마이그레이션 매니저 (616) 가 컴퓨터 노드를 결정하는 기준은 알고리즘 저장소에 저장된 알고리즘에 의해 결정될 수 있다.The criteria by which the
단계 S740 에서, 제어 노드 (610) 는 단계 S730 에서 결정된 컴퓨터 노드로 단계 S720 에서 선택된 가상머신을 마이그레이션할 수 있다.In step S740, the
일 실시예에서, 가상머신의 마이그레이션은 복수의 컴퓨터 노드들 (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
단계 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
본 발명에 따른 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(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 디바이스에서 구동되는 제 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 가상머신과 상기 제 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 디바이스와 상기 제 2 디바이스 간의 패킷 전달 지연 시간을 기초로 결정되는 가상머신의 마이그레이션을 수행하는 방법. The method according to claim 1,
And determining a packet transfer delay time between the first device and the second device.
상기 패킷 전달 지연 시간의 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 디바이스에서 제공되는 애플리케이션 서비스의 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 가상머신의 구성 상태를 상기 제 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.
상기 자원 이용도 정보는 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.
상기 자원 이용도 정보는 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.
상기 자원 이용도 정보는 가상머신 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.
상기 자원 이용도 정보는 가상머신 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.
상기 자원 이용도 정보는 가상머신 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 >
상기 결정하는 단계는,
상기 복수의 컴퓨터 노드들의 자원 가용성을 순차적으로 측정함으로써, 상기 컴퓨터 노드를 결정하는 단계를 포함하는 방법.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.
상기 자원 이용도 정보는 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.
상기 마이그레이션하는 단계는 상기 복수의 컴퓨터 노드들을 관리하는 클라우드 애플리케이션 프로그래밍 인터페이스 (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.
상기 검출된 오버로드된 컴퓨터 노드는 상기 결정된 컴퓨터 노드와 서로 상이한 방법.8. The method of claim 7,
Wherein the detected overloaded computer node is different from the determined computer node.
애플리케이션 서비스 제공을 위해 상기 제 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.
애플리케이션 서비스의 제공을 위해 제 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.
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)
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)
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)
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 |
-
2017
- 2017-11-29 KR KR1020170161564A patent/KR102010152B1/en active IP Right Grant
Patent Citations (4)
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)
Title |
---|
김진석 외 2명. '데이터센터 환경에서 서비스 품질을 고려한 가상머신 마이그레이션 기법'. 한국정보과학회 2008 가을 학술발표논문집 제35권 제2호(A), 2008.10, pp.287-288. * |
Cited By (1)
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 |