KR102532641B1 - An apparatus for relocating virtual machines and method thereof - Google Patents

An apparatus for relocating virtual machines and method thereof Download PDF

Info

Publication number
KR102532641B1
KR102532641B1 KR1020160033920A KR20160033920A KR102532641B1 KR 102532641 B1 KR102532641 B1 KR 102532641B1 KR 1020160033920 A KR1020160033920 A KR 1020160033920A KR 20160033920 A KR20160033920 A KR 20160033920A KR 102532641 B1 KR102532641 B1 KR 102532641B1
Authority
KR
South Korea
Prior art keywords
communication
level
virtual machines
amount
delay time
Prior art date
Application number
KR1020160033920A
Other languages
Korean (ko)
Other versions
KR20170109832A (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 KR1020160033920A priority Critical patent/KR102532641B1/en
Publication of KR20170109832A publication Critical patent/KR20170109832A/en
Application granted granted Critical
Publication of KR102532641B1 publication Critical patent/KR102532641B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • 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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Abstract

가상화 환경에서, 장치 및 이의 가상 머신(virtual machine) 재배치 방법이 개시된다. 본 발명의 일 실시 예에 따른, 장치의 가상 머신 재배치 방법에 의하면, 가상 머신들 사이의 통신 패턴을 확인하는 단계, 확인 결과에 기반하여 가상 머신들 사이의 통신 패턴을 나타내는 맵(map)을 생성하는 단계 및 생성된 맵을 기반으로 가상 머신들을 재배치하는 단계를 포함할 수 있다. In a virtualization environment, a device and its virtual machine relocation method are disclosed. According to a virtual machine relocation method of an apparatus according to an embodiment of the present invention, checking a communication pattern between virtual machines, generating a map indicating a communication pattern between virtual machines based on the checking result. and rearranging the virtual machines based on the created map.

Description

장치 및 이의 가상 머신 재배치 방법 {AN APPARATUS FOR RELOCATING VIRTUAL MACHINES AND METHOD THEREOF }Apparatus and its virtual machine relocation method {AN APPARATUS FOR RELOCATING VIRTUAL MACHINES AND METHOD THEREOF }

가상화 환경에서 장치 및 이의 가상 머신(virtual machine) 재배치 방법이 개시된다. 보다 구체적으로, 본 발명에서는 가상 머신 사이의 통신 패턴에 따라 가상 머신을 재배치하는 방법 및 장치를 제안한다. A device and a method for relocating a virtual machine thereof in a virtualization environment are disclosed. More specifically, the present invention proposes a method and apparatus for rearranging virtual machines according to communication patterns between virtual machines.

클라우드(cloud)와 같은 가상화 환경에는 다양한 가상 어플리케이션(virtual application)의 여러 종류의 복수의 가상 머신들이 존재한다. 가상화 환경의 물리적 자원에 가상 머신들을 배치하는 방법 중에는 임의의 가상 머신들이 특정 물리적 자원에 동시에 위치하는 것을 금지하기 위한 anti-affinity rule이 있다. A plurality of virtual machines of various types of various virtual applications exist in a virtualization environment such as a cloud. Among the methods for arranging virtual machines on physical resources in a virtualization environment, there is an anti-affinity rule for prohibiting certain virtual machines from being simultaneously located on specific physical resources.

예를 들면, 어플리케이션의 이중화 구조를 위한 활성 가상 머신(active VM) 및 대기 가상 머신(standby VM)은 상기 anti-affinity rule에 따라, 서로 다른 서버에 배치될 수 있다. For example, according to the anti-affinity rule, an active virtual machine (active VM) and a standby virtual machine (standby VM) for a dual structure of an application may be disposed on different servers.

반면, 임의의 가상 머신들이 특정 물리적 자원에 위치하는 것을 선호하는 affinity rule은 다양하게 적용되지 않는다. 그러므로 서로 통신이 활발한 가상 머신들도 affinity rule에 따라 배치되지 않는다는 문제점이 있다. On the other hand, the affinity rule that prefers arbitrary virtual machines to be located on a specific physical resource is not applied in various ways. Therefore, there is a problem in that virtual machines that communicate actively with each other are not arranged according to the affinity rule.

따라서, 가상 머신들이 통신을 수행하는 동안 스위치 자원과 같은 물리적인 네트워크 자원을 적게 사용하고 지연시간(latency)이 감소하도록, affinity rule 등을 이용하여, 가상 머신들을 재배치할 필요성이 대두하였다. Therefore, there is a need to relocate virtual machines using an affinity rule or the like so that less physical network resources such as switch resources are used and latency is reduced while the virtual machines are communicating.

본 발명은 상술한 필요성에 따라 안출된 것으로, 본 발명의 목적은 복수의 가상 머신 사이의 통신 패턴을 확인하고, 상기 확인된 통신 패턴에 따라, 가상 머신들이 통신하면서 발생할 수 있는 비용 및 지연이 최소화되도록 상기 가상 머신들의 위치를 재배치하는 방법을 제공함에 있다. The present invention has been made in response to the above-described needs, and an object of the present invention is to identify a communication pattern between a plurality of virtual machines, and to minimize costs and delays that may occur while virtual machines communicate according to the identified communication pattern. It is an object of the present invention to provide a method of rearranging the locations of the virtual machines as much as possible.

상기 목적을 달성하기 위한 본 발명의 일 실시 예에 따른, 가상화 환경에서, 장치의 가상 머신(virtual machine) 재배치 방법은 가상 머신들 사이의 통신 패턴을 확인하는 단계, 상기 확인 결과에 기반하여 상기 가상 머신들 사이의 통신 패턴을 나타내는 맵(map)을 생성하는 단계 및 상기 생성된 맵을 기반으로 상기 가상 머신들을 재배치하는 단계를 포함할 수 있다. According to an embodiment of the present invention for achieving the above object, in a virtualization environment, a method for relocating a virtual machine of a device includes checking a communication pattern between virtual machines, and based on the check result, the virtual machine The method may include generating a map representing a communication pattern between machines and rearranging the virtual machines based on the generated map.

본 발명의 일 실시 예에 따른 가상화 환경에서, 가상 머신(virtual machine) 재배치하기 위한 장치는, 신호를 송수신하는 송수신부; 및 가상 머신들 사이의 통신 패턴을 확인하고, 상기 확인 결과에 기반하여 상기 가상 머신들 사이의 통신 패턴을 나타내는 맵(map)을 생성하며, 상기 생성된 맵을 기반으로 상기 가상 머신들을 재배치하는 제어부를 포함할 수 있다. In a virtualization environment according to an embodiment of the present invention, an apparatus for relocating a virtual machine includes a transceiver for transmitting and receiving signals; and a control unit that checks a communication pattern between virtual machines, creates a map representing the communication pattern between the virtual machines based on the checking result, and rearranges the virtual machines based on the created map. can include

본 발명의 실시 예에 따르면, 가상 머신 사이의 통신에 의해 발생할 수 있는 비용 및 지연이 최소화될 수 있다. According to an embodiment of the present invention, costs and delays that may occur due to communication between virtual machines can be minimized.

도 1은 본 발명의 일 실시 예에 따른, 복수의 가상 머신을 포함하는 가상화 환경의 구성을 도시한 블록도,
도 2는 본 발명의 일 실시 예에 따른, 가상 머신들을 재배치하는 방법을 나타낸 흐름도,
도 3은 본 발명의 일 실시 예에 따른, 가상 머신들의 통신 패턴에 따른 맵을 생성하는 방법을 나타낸 흐름도,
도 4는 본 발명의 일 실시 예에 따른, 가상 머신들의 통신 패턴에 따른 레벨을 결정하는 방법을 나타낸 흐름도,
도 5는 본 발명의 일 실시 예에 따른, 생성된 맵을 나타낸 도면,
도 6은 본 발명의 일 실시 예에 따른, 가상 머신들을 통신 패턴에 따른 레벨을 기반으로, 재배치하는 방법을 나타낸 흐름도, 그리고
도 7a 및 도 7b는 본 발명의 일 실시 예에 따른, 재배치에 의해 가상 머신을 이동하는 방법을 나타낸 도면이다.
1 is a block diagram showing the configuration of a virtualization environment including a plurality of virtual machines according to an embodiment of the present invention;
2 is a flowchart illustrating a method of relocating virtual machines according to an embodiment of the present invention;
3 is a flowchart illustrating a method of generating a map according to communication patterns of virtual machines according to an embodiment of the present invention;
4 is a flowchart illustrating a method of determining a level according to a communication pattern of virtual machines according to an embodiment of the present invention;
5 is a diagram showing a generated map according to an embodiment of the present invention;
6 is a flowchart illustrating a method of rearranging virtual machines based on a level according to a communication pattern according to an embodiment of the present invention; and
7A and 7B are diagrams illustrating a method of moving a virtual machine by relocation according to an embodiment of the present invention.

본 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 개시된 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예들을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. Since the present embodiments can apply various transformations and have various embodiments, specific embodiments will be illustrated in the drawings and described in detail in the detailed description. However, this is not intended to limit the scope to specific embodiments, and should be understood to include all transformations, equivalents, and substitutes included in the spirit and scope of technology disclosed. In describing the embodiments, if it is determined that a detailed description of a related known technology may obscure the subject matter, the detailed description will be omitted.

제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. Terms such as first and second may be used to describe various components, but the components should not be limited by the terms. Terms are only used to distinguish one component from another.

본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 권리범위를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다." 또는 "구성되다." 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in this application are only used to describe specific embodiments, and are not intended to limit the scope of rights. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this application, "comprising." or "made up." The terms such as are intended to specify that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, but one or more other features or numbers, steps, operations, components, parts, or It should be understood that it does not preclude the possibility of existence or addition of combinations thereof.

실시 예에 있어서 ‘모듈’ 혹은 ‘부’는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의‘모듈’ 혹은 복수의‘부’는 특정한 하드웨어로 구현될 필요가 있는 ‘모듈’ 혹은 ‘부’를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.
In an embodiment, a 'module' or 'unit' performs at least one function or operation, and may be implemented with hardware or software, or a combination of hardware and software. In addition, a plurality of 'modules' or a plurality of 'units' are integrated into at least one module and implemented by at least one processor (not shown), except for 'modules' or 'units' that need to be implemented with specific hardware. It can be.

도 1은 본 발명의 일 실시 예에 따른, 복수의 가상 머신을 포함하는 가상화 환경(1000)의 구성을 도시한 블록도이다. 도 1에 도시된 바와 같이, 가상화 환경(1000)을 전반적으로 제어하는 제어부(100), 각종 데이터를 저장하는 저장부(110), 상기 제어부(100)의 가상화 환경 제어 명령을 전송하는 인터페이스부(120) 및 가상 머신을 설치 및 운영하기 위한 자원을 포함할 수 있다. 1 is a block diagram showing the configuration of a virtualization environment 1000 including a plurality of virtual machines according to an embodiment of the present invention. As shown in FIG. 1, a control unit 100 for overall control of a virtualization environment 1000, a storage unit 110 for storing various data, and an interface unit for transmitting virtual environment control commands of the control unit 100 ( 120) and resources for installing and operating virtual machines.

가상 머신을 설치 및 운영하기 위한 자원은 복수의 서버(131, 132, 133, 141, 142, 143, 151, 152, 153)를 포함할 수 있다. 또한, 상기 복수의 서버(131, 132, 133, 141, 142, 143, 151, 152, 153) 중 임의의 서버들은 하나의 탑 오브 랙 스위치(top of rack(ToR) switch)를 통해 연결될 수 있다. Resources for installing and operating virtual machines may include a plurality of servers 131 , 132 , 133 , 141 , 142 , 143 , 151 , 152 , and 153 . In addition, any of the plurality of servers 131, 132, 133, 141, 142, 143, 151, 152, and 153 may be connected through a single top of rack (ToR) switch. .

상기 ToR switch는 복수의 서버들이 하나의 서버 군을 이루어, 통신을 수행할 수 있도록 하기 위한 스위치이다. 일반적으로, ToR 스위치는 랙(rack) 내의 서버 간 네트워크 연결을 위한 스위치로, 랙 상단에 위치할 수 있다. 본 발명에서는, 복수의 서버들이 하나의 서버 군을 이루는 경우, ToR 스위치는 상기 서버군 내의 서버 간 네트워크를 연결하는데 사용될 수 있다. The ToR switch is a switch for enabling a plurality of servers to form a server group and perform communication. In general, a ToR switch is a switch for network connection between servers in a rack, and may be located at the top of the rack. In the present invention, when a plurality of servers form one server group, a ToR switch may be used to connect a network between servers in the server group.

예를 들면, 도 1에 도시된 바와 같이, 제1 서버 군(131, 132, 133)은 ToR switch 0(130)을 통해 서로 연결될 수 있고, 제2 서버 군(141, 142, 143)은 ToR switch 1(140)을 통해 서로 연결될 수 있으며, 제n 서버 군(151, 152, 153)은 ToR switch n(150)를 통해 서로 연결될 수 있다. For example, as shown in FIG. 1, the first server group 131, 132, and 133 may be connected to each other through the ToR switch 0 130, and the second server group 141, 142, and 143 may be connected to each other through the ToR switch 0 130. They can be connected to each other through switch 1 (140), and the nth server group (151, 152, 153) can be connected to each other through ToR switch n (150).

상술한 ToR switch에 의해, 동일한 서버군 내의 서버 및 가상 머신은 빠르게 통신을 수행할 수 있다. 예를 들면, 상기 ToR switch 0(130)을 통해 연결된 서버 0(131) 및 서버 1(132) 사이의 통신 속도는 상기 ToR switch 0(130)의 서버 0(131) 및 ToR switch 1(140)의 서버 1(142) 사이의 통신 속도보다 빠를 수 있다. With the ToR switch described above, servers and virtual machines in the same server group can quickly communicate. For example, the communication speed between server 0 (131) and server 1 (132) connected through the ToR switch 0 (130) is higher than that of server 0 (131) and ToR switch 1 (140) of the ToR switch 0 (130). It may be faster than the communication speed between server 1 (142) of

임의의 서버 내에는 가상 머신(virtual machine)이 복수 개 배치될 수 있다. 일반적으로, 가상 머신들은 anti-affinity rule을 만족하면서 배치될 수 있다. anti-affinity rule은 어플리케이션의 이중화 구조를 위한 활성 가상 머신(active VM) 및 대기 가상 머신(standby VM)이 서로 다른 서버에 배치되도록 하기 위한 규칙이다. 따라서, 제어부(100)는 상기 anti-affinity rule에 따라, 가상 머신들이 배치되도록 제어할 수 있다. A plurality of virtual machines may be deployed in an arbitrary server. In general, virtual machines can be deployed while satisfying the anti-affinity rule. The anti-affinity rule is a rule for disposing an active virtual machine (active VM) and a standby virtual machine (standby VM) for a dual structure of an application on different servers. Accordingly, the controller 100 may control virtual machines to be arranged according to the anti-affinity rule.

한편, 제어부(100)는 가상 머신들 간의 통신 패턴을 확인하고, 확인된 통신 패턴에 따라 가상 머신들을 재배치할 수 있다. 예를 들면, 제어부(100)는 가상 머신들 간의 통신량, 통신 횟수 또는 통신 지연 시간(latency) 중 적어도 하나를 측정하고, 상기 측정한 값을 바탕으로 통신 패턴을 나타내는 맵을 생성할 수 있다. 그리고 제어부(100)는 상기 생성된 맵을 바탕으로 가상 머신들을 재배치할 수 있다. Meanwhile, the controller 100 may check a communication pattern between virtual machines and rearrange the virtual machines according to the checked communication pattern. For example, the controller 100 may measure at least one of the amount of communication between virtual machines, the number of times of communication, or communication latency, and create a map representing a communication pattern based on the measured value. Also, the controller 100 may rearrange virtual machines based on the created map.

구체적으로, 제어부(100)는 통신 패턴 확인부(101), 맵(map) 생성부(102) 및 재배치 제어부(103)와 같은 구성요소를 포함할 수 있다. 상기 제어부(100)의 구성 요소 통신 패턴 확인부(101), 맵(map) 생성부(102) 및 재배치 제어부(103)는 일 실시 예에 불과 할뿐, 제어부(100)의 구성 요소가 이에 한정되는 것은 아니다. Specifically, the controller 100 may include components such as a communication pattern checker 101, a map generator 102, and a relocation controller 103. Components of the control unit 100 The communication pattern checking unit 101, the map generating unit 102, and the relocation control unit 103 are merely examples, and the components of the control unit 100 are limited thereto. it is not going to be

또한, 상기 통신 패턴 확인부(101), 맵(map) 생성부(102) 및 재배치 제어부(103)는 제어부(100) 내에 포함된 별도의 하드웨어로 구현될 수 있으나, 이는 일 실시 예에 불과할 뿐, 상기 통신 패턴 확인부(101), 맵(map) 생성부(102) 및 재배치 제어부(103)는 어플리케이션과 같은 소프트웨어로 구현될 수도 있다. In addition, the communication pattern checking unit 101, the map generating unit 102, and the relocation control unit 103 may be implemented as separate hardware included in the control unit 100, but this is only an example. , The communication pattern checking unit 101, the map generating unit 102, and the relocation control unit 103 may be implemented as software such as applications.

통신 패턴 확인부(101)는 가상 머신들 사이의 통신 패턴을 확인하기 위한 구성요소이다. 예를 들면, 통신 패턴 확인부(101)는 가상 머신들 중에서 두 개의 가상 머신 사이의 통신량, 통신 횟수 또는 통신 지연 시간(latency) 중 적어도 하나를 측정할 수 있다. 그리고 통신 패턴 확인부(101)는 상기 측정된 통신량, 통신 횟수 또는 통신 지연 시간(latency) 중 적어도 하나의 값을 바탕으로 상기 통신 패턴을 결정할 수 있다. The communication pattern checking unit 101 is a component for checking a communication pattern between virtual machines. For example, the communication pattern checking unit 101 may measure at least one of a communication amount, a communication number, or a communication latency between two virtual machines among virtual machines. Further, the communication pattern checking unit 101 may determine the communication pattern based on at least one value of the measured communication amount, number of times of communication, or communication latency.

한편, 통신 패턴 확인부(101)는 확인한 통신 패턴을 맵 생성부(102)로 전송할 수 있다. 예를 들면, 통신 패턴 확인부(101)는 상기 측정된 통신량, 통신 횟수 또는 통신 지연 시간(latency) 중 적어도 하나의 값을 맵 생성부(102)로 전송할 수도 있다. Meanwhile, the communication pattern checking unit 101 may transmit the checked communication pattern to the map generating unit 102 . For example, the communication pattern checking unit 101 may transmit at least one value of the measured communication volume, number of times of communication, or communication latency to the map generator 102 .

맵 생성부(102)는 통신 패턴 확인부(101)가 확인한 통신 패턴을 바탕으로 맵을 생성할 수 있다. 예를 들면, 맵 생성부(102)는 통신 패턴 확인부(101)가 측정한 통신량, 통신 횟수 또는 통신 지연 시간(latency) 중 적어도 하나의 값을 수신하면, 상기 수신된 값을 임계값과 비교할 수 있다. 그리고 비교 결과에 따라, 맵 생성부(102)는 가상 머신들 간의 통신 패턴의 레벨을 결정할 수 있다. 맵 생성부(102)는 상기 결정된 레벨을 나타내는 맵을 생성할 수 있다. The map generator 102 may generate a map based on the communication pattern confirmed by the communication pattern checker 101 . For example, when the map generator 102 receives at least one value of the amount of communication, the number of times of communication, or the communication latency measured by the communication pattern checker 101, the map generator 102 compares the received value with a threshold value. can And according to the comparison result, the map generator 102 may determine the level of the communication pattern between the virtual machines. The map generator 102 may generate a map representing the determined level.

구체적으로, 맵 생성부(102)는 상기 통신량, 상기 통신 횟수 또는 상기 통신 지연 시간 중 적어도 하나의 값을 제1 임계값과 비교할 수 있다. 그리고 상기 통신량, 상기 통신 횟수 또는 상기 통신 지연 시간 중 적어도 하나의 값이 상기 제1 임계값을 초과하는 경우, 상기 통신 패턴의 레벨을 상(high category)으로 결정할 수 있다. Specifically, the map generator 102 may compare at least one of the communication amount, the number of communication times, and the communication delay time with a first threshold value. When at least one of the communication amount, the number of communication times, and the communication delay time exceeds the first threshold value, the level of the communication pattern may be determined as a high category.

또한, 맵 생성부(102)는 상기 통신량, 상기 통신 횟수 또는 상기 통신 지연 시간 중 적어도 하나의 값이 상기 제1 임계값 이하인 경우, 상기 통신량, 상기 통신 횟수 또는 상기 통신 지연 시간 중 적어도 하나의 값을 제2 임계값과 비교할 수 있다. 그리고 상기 통신량, 상기 통신 횟수 또는 상기 통신 지연 시간 중 적어도 하나의 값이 상기 제1 임계값 이하이고 상기 제2 임계값을 초과하는 경우, 상기 통신 패턴의 레벨을 중(medium category)으로 결정할 수 있다. In addition, the map generator 102 determines at least one value of the amount of communication, the number of times of communication, or the delay time when at least one value of the amount of communication, the number of times of communication, or the delay time of communication is equal to or less than the first threshold value. may be compared with the second threshold. In addition, when at least one of the communication amount, the communication number, and the communication delay time is equal to or less than the first threshold value and exceeds the second threshold value, the level of the communication pattern may be determined as medium category. .

한편, 맵 생성부(102)는 상기 통신량, 상기 통신 횟수 또는 상기 통신 지연 시간 중 적어도 하나의 값이 상기 제2 임계값 이하인 경우, 상기 통신 패턴의 레벨을 하(low category)로 결정할 수 있다. Meanwhile, the map generator 102 may determine the level of the communication pattern as a low category when at least one of the amount of communication, the number of times of communication, and the communication delay time is equal to or less than the second threshold.

상기 결정된 통신 패턴의 레벨을 가상 머신들 간의 친밀도(proximity) 레벨로 정의할 수 있다. 예를 들면, 가상 머신들 간의 친밀도(proximity) 레벨이 높을수록 상기 가상 머신들 간의 통신량이 많고, 통신 횟수가 빈번한 것으로 판단될 수 있다. The level of the determined communication pattern may be defined as a proximity level between virtual machines. For example, it can be determined that the higher the proximity level between the virtual machines, the greater the amount of communication between the virtual machines and the higher the number of times of communication.

한편, 통신 패턴의 레벨은 맵 생성부(102)에서 결정되는 것으로 설명하였으나, 이는 일 실시 예에 불과할 뿐, 통신 패턴의 레벨은 통신 패턴 확인부(101)에 의해 결정될 수도 있다. 이때, 통신 패턴 확인부(101)는 각 가상 머신들 간의 통신 패턴의 레벨을 결정하고, 결정된 통신 패턴의 레벨을 맵 생성부(102)로 전달하면, 맵 생성부(102)는 수신된 통신 패턴의 레벨에 따라 맵을 생성할 수도 있다. Meanwhile, although it has been described that the level of the communication pattern is determined by the map generating unit 102, this is merely an example, and the level of the communication pattern may be determined by the communication pattern checking unit 101. At this time, the communication pattern checking unit 101 determines the level of the communication pattern between each virtual machine, and when the level of the determined communication pattern is transmitted to the map generator 102, the map generator 102 transmits the received communication pattern. You can also create a map according to the level of

한편, 맵 생성부(102)가 생성된 맵을 재배치 제어부(103)로 전송하면, 상기 재배치 제어부(103)는 상기 생성된 맵을 바탕으로, 가상 머신들을 재배치할 수 있다. Meanwhile, when the map creation unit 102 transmits the created map to the relocation control unit 103, the relocation control unit 103 may rearrange the virtual machines based on the generated map.

예를 들면, 재배치 제어부(103)는 상기 맵에서, 상기 통신량, 상기 통신 횟수 또는 상기 통신 지연 시간 중 적어도 하나의 값의 레벨이 임계 레벨 이상이면, 상기 가상 머신들이 근접하도록 재배치할 수 있다. For example, the relocation control unit 103 may relocate the virtual machines so that they are close to each other if the level of at least one of the amount of communication, the number of times of communication, and the communication delay time is equal to or greater than a threshold level in the map.

구체적으로, 재배치 제어부(103)는 서로 다른 서버에 위치하고 레벨이 임계 수준 이상인 제1 가상 머신 및 제2 가상 머신을 동일한 서버에 위치하도록 재배치할 수 있다. 예를 들어 도 1에서, 재배치 제어부(103)는 상기 제1 가상 머신 및 제2 가상 머신을 ToR switch 0을 통해 연결된 서버 중 서버 0(131)에 위치하도록 상기 제1 가상 머신 또는 제2 가상 머신 중 적어도 하나의 가상 머신을 재배치할 수 있다. Specifically, the relocation control unit 103 may relocate the first virtual machine and the second virtual machine located in different servers and having a level equal to or higher than a threshold level to be located in the same server. For example, in FIG. 1 , the relocation control unit 103 places the first virtual machine and the second virtual machine on server 0 131 among servers connected through a ToR switch 0 to the first virtual machine or the second virtual machine. At least one of the virtual machines can be relocated.

또한, 상기 제1 가상 머신 및 제2 가상 머신을 동일한 서버로 재배치할 수 없는 경우, 재배치 제어부(103)는 상기 제1 가상 머신 및 제2 가상 머신을 동일한 ToR switch를 사용하는 서버에 위치하도록 재배치할 수 있다. In addition, when it is impossible to relocate the first virtual machine and the second virtual machine to the same server, the relocation control unit 103 relocates the first virtual machine and the second virtual machine to a server using the same ToR switch. can do.

예를 들어 도 1에서, 상기 제1 가상 머신 또는 제2 가상 머신 중 하나의 가상 머신은 ToR switch 0을 통해 연결된 서버 중 서버 0(131)에 위치하도록 배치하였으나, 다른 하나의 가상 머신은 서버 0(131)에 위치하도록 배치할 수 없는 경우, 재배치 제어부(103)는 상기 다른 하나의 가상 머신은 ToR switch 0을 통해 연결된 다른 서버인 서버 1(132) 또는 서버 n(133)에 위치하도록 재배치할 수 있다. For example, in FIG. 1, one of the first virtual machine and the second virtual machine is arranged to be located on server 0 (131) among servers connected through ToR switch 0, but the other virtual machine is located on server 0. If it cannot be located at (131), the relocation control unit 103 will relocate the other virtual machine so that it is located at server 1 (132) or server n (133), which is another server connected through ToR switch 0. can

상기 제1 가상 머신 및 제2 가상 머신을 동일한 ToR switch를 사용하는 서버에 위치하도록 재배치할 수도 없는 경우, 재배치 제어부(103)는 상기 제1 가상 머신 및 제2 가상 머신을 동일한 클라우드 포드(cloud pod)에 위치하도록 재배치할 수 있다. When it is impossible to relocate the first virtual machine and the second virtual machine to be located in a server using the same ToR switch, the relocation control unit 103 sets the first virtual machine and the second virtual machine to the same cloud pod. ) can be rearranged.

클라우드 포드는 일종의 서버군일 수 있다. 예를 들면, 천 대의 서버를 포함하는 데이터 센터에서 서버 관리를 용이하게 하기 위해 서버 백 대를 하나의 포드(point of delivery, pod)로 관리할 수 있다. 상기, 클라우드 포드는 상기 백 대의 서버를 연결하여 통신이 가능하도록 할 수 있으며, 상기 데이터 센터의 관리를 받을 수도 있다. 상기 천 대 및 백 대와 같은 서버의 개수는 일 예시에 불과하다. A cloud pod can be a group of servers. For example, in a data center containing a thousand servers, one hundred servers can be managed as a point of delivery (pod) to facilitate server management. The cloud pod may enable communication by connecting the hundred servers, and may be managed by the data center. The number of servers such as 1,000 and 100 is merely an example.

재배치 제어부(103)는 전술한 바와 같은 anti-affinity rule을 위배하지 않는 한도 내에서, 통신 패턴의 레벨에 따라 가상 머신들을 재배치할 수 있다. The relocation control unit 103 may relocate the virtual machines according to the level of the communication pattern within the limit of not violating the above-described anti-affinity rule.

한편, 제어부(100)에 포함된 통신 패턴 확인부(101), 맵 생성부(102) 및 재배치 제어부(103) 각각의 구성요소를 통해, 통신 패턴을 확인하고, 맵을 생성하며 적어도 하나의 서버를 재배치하는 것으로 설명하였으나, 이는 일 실시 예에 불과할 뿐, 제어부(100)는 별도의 구성요소를 포함하지 않고, 제어부(100)가 통신 패턴을 확인하고, 맵을 생성하며 적어도 하나의 서버를 재배치할 수도 있다. Meanwhile, through each component of the communication pattern checking unit 101, the map generating unit 102, and the relocation control unit 103 included in the control unit 100, a communication pattern is checked, a map is created, and at least one server It has been described as relocating, but this is only one embodiment, and the control unit 100 does not include a separate component, and the control unit 100 checks a communication pattern, creates a map, and rearranges at least one server. You may.

한편, 저장부(110)는 각종 데이터를 저장할 수 있다. 저장부(110)는 맵 저장 영역(111)을 더 포함할 수도 있다. 맵 저장 영역(111)은 맵 생성부(102)에 의해 생성된 맵을 저장하기 위한 영역이다. Meanwhile, the storage unit 110 may store various types of data. The storage unit 110 may further include a map storage area 111 . The map storage area 111 is an area for storing the map generated by the map generator 102 .

또한, 저장부(110)는 가상 머신에 대한 배치 히스토리 등을 저장할 수도 있다. Also, the storage unit 110 may store a batch history of virtual machines and the like.

한편, 인터페이스부(120)는 제어부(100)에 의한 가상 머신의 재배치 제어 명령을 전송할 수 있다. Meanwhile, the interface unit 120 may transmit a relocation control command of the virtual machine by the control unit 100 .

설명한 바와 같이 가상 머신이 재배치된 가상화 환경(1000)에 의해, 지연 시간에 민감한(latency sensitive) 서비스를 제공할 때, 사용자의 체감 품질(quality of experience, QoE)[가]이 높아질 수 있다. 또한, 통신량이 많은 가상 머신들을 같은 서버에 위치시킴으로써, 스위치와 같은 물리적인 자원의 사용을 줄일 수 있으므로, 데이터 센터(data center, DC)에서의 전체적인 자원 사용이 감소할 수 있다. As described above, when a latency sensitive service is provided by the virtualization environment 1000 in which virtual machines are relocated, the user's quality of experience (QoE) may increase. In addition, since the use of physical resources such as a switch can be reduced by locating virtual machines with a large amount of communication on the same server, overall resource use in a data center (DC) can be reduced.

이하에서는 도 2 내지 도 6을 기반으로, 가상 머신을 재배치하는 방법에 대해 구체적으로 설명한다. Hereinafter, a method of rearranging a virtual machine will be described in detail based on FIGS. 2 to 6 .

도 2는 본 발명의 일 실시 예에 따른, 가상 머신들을 재배치하는 방법을 나타낸 흐름도이다. 2 is a flowchart illustrating a method of relocating virtual machines according to an embodiment of the present invention.

이하에서는, 가상화 환경을 제어하기 위한 제어 장치가 가상 머신들을 재배치하는 것으로 설명한다. 상기 제어 장치는 전술한 제어부 또는 제어부에 포함된 구성요소가 될 수도 있다. Hereinafter, a control device for controlling a virtualization environment will be described as relocating virtual machines. The control device may be the aforementioned controller or a component included in the controller.

제어 장치는 먼저 단계 S200에서, 가상 머신들 사이의 통신 패턴을 확인할 수 있다. 구체적으로, 가상화 환경의 데이터 센터(data center)의 어플리케이션 계층(application layer), 가상화 계층(virtualization layer) 및 하드웨어 계층(hardware layer) 각각은 가상 머신들 사이의 통신 패턴에 대한 정보를 수집할 수 있다. 예를 들면, 어플리케이션 계층의 게스트 운영체제(guest OS)는 가상 머신 피어(VM peer) 사이의 통신횟수, 통신량, 평균 지연 시간(latency) 등과 같은 정보를 수집할 수 있다. The control device may first check a communication pattern between virtual machines in step S200. Specifically, each of an application layer, a virtualization layer, and a hardware layer of a data center in a virtualization environment may collect information about a communication pattern between virtual machines. . For example, the guest OS of the application layer may collect information such as the number of times of communication between VM peers, the amount of communication, average latency, and the like.

그리고 단계 S210에서, 제어 장치는 상기 확인 결과에 기반하여 상기 가상 머신들 사이의 통신 패턴을 나타내는 맵(map)을 생성할 수 있다. 상기 맵은 가상 머신 피어(VM peer) 사이의 통신횟수, 통신량, 평균 지연 시간(latency) 등과 같은 통신 패턴에 대한 정보를 포함할 수 있다. 예를 들면, 상기 맵은 가상 머신 피어(VM peer) 사이의 통신횟수, 통신량, 평균 지연 시간(latency) 등과 같은 통신 패턴을 기반으로 결정된 레벨 값을 포함할 수 있다. In step S210, the control device may generate a map indicating a communication pattern between the virtual machines based on the check result. The map may include information about communication patterns, such as the number of times of communication between virtual machine peers, the amount of communication, and average latency. For example, the map may include a level value determined based on a communication pattern such as the number of times of communication between VM peers, the amount of communication, and an average latency.

단계 S220에서, 제어 장치는 상기 생성된 맵을 기반으로 상기 가상 머신들을 재배치할 수 있다. 예를 들면, 제어 장치는 맵에 포함된 가상 머신들 사이의 레벨이 임계 레벨 이상이면, 상기 가상 머신들이 근접하도록 재배치할 수 있다. In step S220, the control device may rearrange the virtual machines based on the created map. For example, if a level between virtual machines included in the map is equal to or higher than a threshold level, the control device may rearrange the virtual machines so that they are close to each other.

도 3을 참조하여 가상 머신들의 통신 패턴에 따른 맵을 생성하는 방법을 구체적으로 설명한다. A method of generating a map according to communication patterns of virtual machines will be described in detail with reference to FIG. 3 .

먼저, 단계 S300에서, 제어 장치는 제1 가상 머신 및 제2 가상 머신 사이의 통신량, 통신 횟수 또는 통신 지연 시간 중 적어도 하나를 측정할 수 있다. 예를 들면, 제어 장치는 제1 가상 머신 및 제2 가상 머신 사이의 송수신하는 데이터량을 측정할 수 있다. 또는, 제어 장치는 제1 가상 머신 및 제2 가상 머신 사이의 데이터 전송 횟수를 측정할 수도 있으며, 제1 가상 머신 및 제2 가상 머신 사이의 데이터 전송에서 발생하는 지연 시간을 측정할 수도 있다. First, in step S300, the control device may measure at least one of a communication amount, a communication number, and a communication delay time between the first virtual machine and the second virtual machine. For example, the control device may measure the amount of data transmitted and received between the first virtual machine and the second virtual machine. Alternatively, the control device may measure the number of data transmissions between the first virtual machine and the second virtual machine, and may measure a delay time occurring in data transmission between the first virtual machine and the second virtual machine.

단계 S310에서, 제어 장치는 상기 측정된 통신량, 통신 횟수 또는 통신 지연 시간 중 적어도 하나의 값을 임계값과 비교할 수 있다. 그리고 단계 S320에서, 제어 장치는 상기 비교 결과에 기반하여 통신 패턴의 레벨을 결정할 수 있다. In step S310, the control device may compare at least one of the measured communication volume, communication number, and communication delay time with a threshold value. And in step S320, the control device can determine the level of the communication pattern based on the comparison result.

예를 들면, 제어 장치는 기설정된 시간 동안 발생한 제1 가상 머신 및 제2 가상 머신 사이의 데이터 전송 횟수가 제1 임계값 이상인지 여부를 판단할 수 있다. 판단결과, 제1 가상 머신 및 제2 가상 머신 사이의 데이터 전송 횟수가 제1 임계값 이상인 경우, 제어 장치는 제1 가상 머신 및 제2 가상 머신 사이의 통신 패턴의 레벨을 ‘상’으로 결정할 수 있다. For example, the control device may determine whether the number of data transmissions between the first virtual machine and the second virtual machine occurring during a predetermined time is greater than or equal to a first threshold value. As a result of the determination, when the number of data transmissions between the first virtual machine and the second virtual machine is equal to or greater than the first threshold value, the control device may determine a communication pattern level between the first virtual machine and the second virtual machine as 'high'. there is.

반면, 제1 가상 머신 및 제2 가상 머신 사이의 데이터 전송 횟수가 제1 임계값 미만인 경우, 제어 장치는 제1 가상 머신 및 제2 가상 머신 사이의 데이터 전송 횟수가 제2 임계값 이상인지 여부를 판단할 수 있다. 판단결과, 제1 가상 머신 및 제2 가상 머신 사이의 데이터 전송 횟수가 제2 임계값 이상인 경우, 제어 장치는 제1 가상 머신 및 제2 가상 머신 사이의 통신 패턴의 레벨을 ‘중’으로 결정할 수 있다. 또한, 제1 가상 머신 및 제2 가상 머신 사이의 데이터 전송 횟수가 제2 임계값 미만인 경우, 제어 장치는 제1 가상 머신 및 제2 가상 머신 사이의 통신 패턴의 레벨을 ‘하’로 결정할 수 있다.On the other hand, when the number of data transfers between the first virtual machine and the second virtual machine is less than the first threshold value, the control device determines whether the number of data transfers between the first virtual machine and the second virtual machine is equal to or greater than the second threshold value. can judge As a result of the determination, when the number of data transfers between the first virtual machine and the second virtual machine is equal to or greater than the second threshold, the control device may determine a communication pattern level between the first virtual machine and the second virtual machine as 'medium'. there is. In addition, when the number of data transfers between the first virtual machine and the second virtual machine is less than the second threshold, the control device may determine the level of the communication pattern between the first virtual machine and the second virtual machine as 'low'. .

단계 S330에서, 제어 장치는 상기 결정된 레벨에 따라 맵을 생성할 수 있다. 제어 장치가 제어하는 가상화 환경에 5개의 가상 머신이 배치된 경우를 예로 든다. 제어 장치는 상술한 방법에 의해, 제1 및 제2 가상 머신 사이의 통신 패턴의 레벨, 제1 및 제3 가상 머신 사이의 통신 패턴의 레벨, 제1 및 제4 가상 머신 사이의 통신 패턴의 레벨, 제1 및 제5 가상 머신 사이의 통신 패턴의 레벨, 제2 및 제3 가상 머신 사이의 통신 패턴의 레벨, 제2 및 제4 가상 머신 사이의 통신 패턴의 레벨, 제2 및 제5 가상 머신 사이의 통신 패턴의 레벨, 제3 및 제4 가상 머신 사이의 통신 패턴의 레벨, 제3 및 제5 가상 머신 사이의 통신 패턴의 레벨 그리고 제4 및 제5 가상 머신 사이의 통신 패턴의 레벨을 결정할 수 있다. In step S330, the control device may generate a map according to the determined level. As an example, five virtual machines are deployed in a virtualization environment controlled by a control device. The control device may determine the communication pattern level between the first and second virtual machines, the communication pattern level between the first and third virtual machines, and the communication pattern level between the first and fourth virtual machines by the above-described method. , the communication pattern level between the first and fifth virtual machines, the communication pattern level between the second and third virtual machines, the communication pattern level between the second and fourth virtual machines, and the second and fifth virtual machines. level of the communication pattern between the third and fourth virtual machines, the level of the communication pattern between the third and fifth virtual machines, and the level of the communication pattern between the fourth and fifth virtual machines. can

그리고 제어 장치는 각 가상 머신들 사이의 결정된 통신 패턴의 레벨을 나타내는 맵을 생성할 수 있다. Also, the control device may generate a map indicating the level of the determined communication pattern between each virtual machine.

제어 장치가 각 가상 머신들 사이의 통신 패턴의 레벨을 결정하는 방법을 도 4를 기반으로 자세히 설명한다. A method for determining the level of a communication pattern between virtual machines by the control device will be described in detail based on FIG. 4 .

먼저, 단계 S400에서 제어 장치는 제1 가상 머신 및 제2 가상 머신 사이의 통신량, 통신 횟수 또는 통신 지연 시간 중 적어도 하나를 측정할 수 있다. First, in step S400, the control device may measure at least one of a communication amount, a communication number, and a communication delay time between the first virtual machine and the second virtual machine.

구체적으로, 가상화 환경의 데이터 센터(data center)의 어플리케이션 계층(application layer), 가상화 계층(virtualization layer) 및 하드웨어 계층(hardware layer) 각각은 가상 머신들 사이의 통신 패턴에 대한 정보를 수집할 수 있다. 예를 들면, 어플리케이션 계층의 게스트 운영체제(guest OS)는 가상 머신 피어(VM peer) 사이의 통신횟수, 통신량, 평균 지연 시간(latency) 등과 같은 정보를 수집할 수 있다. Specifically, each of an application layer, a virtualization layer, and a hardware layer of a data center in a virtualization environment may collect information about a communication pattern between virtual machines. . For example, the guest OS of the application layer may collect information such as the number of times of communication between VM peers, the amount of communication, average latency, and the like.

상기 통신량, 통신 횟수 또는 통신 지연 시간은 통신 패턴을 나타내기 위한 예시에 불과할 뿐, 통신 패턴은 각 가상 머신 사이의 통신 상태를 나타낼 수 있는 다양한 지표로 나타날 수 있다. The amount of communication, the number of times of communication, or the communication delay time are merely examples for indicating a communication pattern, and the communication pattern may be represented by various indicators that may indicate a communication state between virtual machines.

단계 S410에서, 제어 장치는 상기 측정된 통신량, 통신 횟수 또는 통신 지연 시간 중 적어도 하나의 값을 제1 임계값과 비교할 수 있다. In step S410, the control device may compare at least one of the measured communication amount, communication number, and communication delay time with a first threshold value.

그리고 단계 S420에서, 제어 장치는 상기 통신량, 통신 횟수 또는 통신 지연 시간 중 적어도 하나의 값이 상기 제1 임계값을 초과하는지 여부를 판단할 수 있다. In step S420, the control device may determine whether at least one of the communication amount, the number of communication times, and the communication delay time exceeds the first threshold value.

판단 결과, 상기 통신량, 통신 횟수 또는 통신 지연 시간 중 적어도 하나의 값이 상기 제1 임계값을 초과하는 경우, 단계 S430에서, 제어 장치는 상기 통신 패턴의 레벨을 상(high category)으로 결정할 수 있다. As a result of the determination, when at least one value of the amount of communication, the number of times of communication, or the communication delay time exceeds the first threshold value, in step S430, the control device may determine the level of the communication pattern as a high category. .

제어 장치가 상기 통신량, 통신 횟수 또는 통신 지연 시간 중 두 가지 이상을 측정한 경우, 제어 장치는 상기 통신량, 통신 횟수 또는 통신 지연 시간 각각에 대해 임계값들과 비교할 수도 있다. When the control device measures two or more of the communication amount, communication number, or communication delay time, the control device may compare each of the communication amount, communication number, or communication delay time with threshold values.

예를 들어, 측정된 통신량이 a이고, 통신 횟수는 b인 경우, 제어 장치는 통신량에 대한 제1 임계값 x와 측정된 통신량 a를 비교하고, 통신 횟수에 대한 제1 임계값 y와 측정된 통신 횟수 b를 비교할 수 있다. For example, when the measured amount of communication is a and the number of communication is b, the control device compares the first threshold value x for the amount of communication and the measured amount of communication a, and compares the first threshold value y for the number of communication and the measured amount The number of times b of communication can be compared.

그리고 제어 장치는 측정된 통신량 및 통신 횟수가 모두 제1 임계값을 초과하는 경우, 상기 가상 머신들 사이의 통신 패턴의 레벨을 ‘상’으로 결정할 수 있다. Further, the control device may determine the level of the communication pattern between the virtual machines as 'high' when both the measured communication amount and the number of times of communication exceed the first threshold value.

한편, 판단 결과 상기 통신량, 통신 횟수 또는 통신 지연 시간 중 적어도 하나의 값이 제1 임계값 미만인 경우, 단계 S440에서, 제어 장치는 상기 통신량, 통신 횟수 또는 통신 지연 시간 중 적어도 하나의 값을 제2 임계값과 비교할 수 있다. Meanwhile, as a result of the determination, when at least one of the communication amount, communication number, and communication delay time is less than the first threshold value, in step S440, the control device sets at least one value of the communication amount, communication number, and communication delay time to a second value. It can be compared to the threshold value.

상술한 예시와 같이, 제어 장치가 측정한 통신량이 a이고, 통신 횟수는 b이고, 통신량 a 는 통신량에 대한 제1 임계값 x를 초과하였으나, 통신 횟수에 대한 통신 횟수 b는 통신 횟수에 대한 제1 임계값 y미만인 경우에서, 제어 장치는 상기 통신 횟수 b가 통신 횟수에 대한 제2 임계값 z를 비교할 수 있다. As in the above example, the amount of communication measured by the control device is a, the number of communication is b, and the amount of communication a exceeds the first threshold value x for the amount of communication, but the number of times b of the number of communication is the number of times of communication. In the case where the number of communications b is less than 1 threshold value y, the control device may compare the number of communications b with a second threshold value z for the number of communications.

단계 S450에서, 제어 장치는 상기 통신량, 통신 횟수 또는 통신 지연 시간 중 적어도 하나의 값이 제2 임계값을 초과하는 경우, 단계 S460으로 진행하여, 상기 통신 패턴의 레벨을 중(medium category)로 결정할 수 있다. In step S450, when at least one of the communication amount, the number of communications, and the communication delay time exceeds the second threshold, the control device proceeds to step S460 to determine the level of the communication pattern as medium category. can

예를 들어, 상기 통신 횟수 b가 통신 횟수에 대한 제2 임계값 z를 비교한 결과, b가 z를 초과한 경우, 제어 장치는 상기 가상 머신들 간의 통신 패턴의 레벨을 ‘중’으로 결정할 수 있다. For example, as a result of comparing the communication number b with the second threshold value z for the communication number, when b exceeds z, the control device may determine the level of the communication pattern between the virtual machines as 'medium'. there is.

상기 통신량, 통신 횟수 또는 통신 지연 시간 중 적어도 하나의 값이 제2 임계값 미만인 경우, 단계 S470으로 진행하여, 제어 장치는 상기 통신 패턴의 레벨을 하(low category)로 결정할 수 있다. When at least one of the communication amount, communication number, and communication delay time is less than the second threshold value, the controller proceeds to step S470 to determine the level of the communication pattern as a low category.

한편, 통신 패턴의 레벨이 ‘상, 중, 하’ 세 가지로 구분되는 것은 일 실시 예에 불과할 뿐, ‘1, 2, 3, … 레벨’ 또는 ‘A, B, C, D, …’와 같은 레벨로 구분되어 세분화될 수도 있다. On the other hand, it is only an embodiment that the level of the communication pattern is divided into three levels of 'high, medium, and low', and '1, 2, 3, . . . level’ or ‘A, B, C, D, … ’ and may be subdivided.

도 5는 본 발명의 일 실시 예에 따른, 생성된 맵(500)을 나타낸 도면이다. 도시된 바와 같이, 통신패턴에 대한 맵(500)은 각 가상 머신의 위치정보(510), 기설정된 시간 동안 측정된 통신량(520), 통신 횟수(530), 평균 지연 시간(540) 및 측정 결과를 바탕으로 결정된 통신 패턴에 대한 친밀도 레벨(proximity level)(550)과 같은 정보를 포함할 수 있다. 5 is a diagram illustrating a generated map 500 according to an embodiment of the present invention. As shown, the map 500 for the communication pattern includes location information 510 of each virtual machine, communication amount 520 measured for a predetermined time, number of communication 530, average delay time 540, and measurement result. It may include information such as a proximity level 550 for the communication pattern determined based on .

상기 친밀도 레벨(550)을 결정하기 위해 측정된 통신량, 통신 횟수 또는 평균 지연 시간은 각 가상 머신들 사이에서 모두 측정될 필요는 없다. 따라서, 맵(500)은 일부 지표에 대한 정보를 포함하지 않을 수도 있다. The amount of communication, the number of communication, or the average delay time measured to determine the intimacy level 550 need not all be measured between virtual machines. Accordingly, the map 500 may not include information about some indicators.

또한, 도 5는 네 개의 가상 머신 사이에서의 상기 정보를 포함하는 맵(500)을 도시하고 있으나, 이는 일 실시 예에 불과할 뿐, 가상 머신의 개수는 한정되지 않는다. In addition, although FIG. 5 shows a map 500 including the information between four virtual machines, this is merely an example and the number of virtual machines is not limited.

도 5에 도시된 바와 같은 맵(500)을 바탕으로, 가상 머신을 재배치하는 방법을 도 6을 참조하여 구체적으로 설명한다. Based on the map 500 shown in FIG. 5 , a method of relocating virtual machines will be described in detail with reference to FIG. 6 .

먼저, 단계 S600에서, 제어 장치는 제1 가상 머신 및 제2 가상 머신 사이의 친밀도(proximity) 레벨을 결정할 수 있다. 그리고 단계 S610에서, 제어 장치는 상기 결정된 친밀도 레벨을 바탕으로 맵(map)을 생성할 수 있다. 친밀도 레벨을 결정하는 방법 및 결정된 친밀도 레벨을 바탕으로 맵을 생성하는 방법은 전술한 바와 같다. First, in step S600, the control device may determine a proximity level between the first virtual machine and the second virtual machine. In step S610, the control device may generate a map based on the determined intimacy level. The method of determining the intimacy level and the method of generating a map based on the determined intimacy level are as described above.

단계 S620에서, 제어 장치는 상기 맵에 의해 상기 제1 가상 머신 및 상기 제2 가상 머신 사이의 친밀도 레벨이 ‘상’인지 여부를 판단할 수 있다. 구체적으로, 제어 장치는 상기 제1 가상 머신 및 상기 제2 가상 머신 사이의 친밀도 레벨이 기설정된 레벨 중 가장 높은지 여부를 판단할 수 있다. In step S620, the control device may determine whether the intimacy level between the first virtual machine and the second virtual machine is 'above' based on the map. Specifically, the control device may determine whether an intimacy level between the first virtual machine and the second virtual machine is the highest among preset levels.

판단 결과, 상기 제1 가상 머신 및 상기 제2 가상 머신 사이의 친밀도 레벨이 ‘상’인 경우, 단계 S630에서, 제어 장치는 상기 제1 가상 머신 및 상기 제2 가상 머신을 동일한 서버에 위치하도록 재배치할 수 있다. As a result of the determination, when the intimacy level between the first virtual machine and the second virtual machine is 'high', in step S630, the control device rearranges the first virtual machine and the second virtual machine to be located on the same server. can do.

예를 들면, 제1 가상 머신이 위치한 서버에 다른 가상 머신이 위치될 수 있도록 빈 공간이 존재하는 경우, 제어 장치는 상기 제2 가상 머신을 상기 제1 가상 머신이 위치한 서버로 재배치할 수 있다.For example, if there is an empty space in the server where the first virtual machine is located so that another virtual machine can be located, the control device may relocate the second virtual machine to the server where the first virtual machine is located.

또는 상기 제1 가상 머신 및 상기 제2 가상 머신이 동일한 서버에 위치하도록 제어 장치는 상기 제1 가상 머신 및 상기 제2 가상 머신을 모두 빈 공간이 여유있는 서버로 재배치할 수도 있다. Alternatively, the control device may relocate both the first virtual machine and the second virtual machine to a server with free space so that the first virtual machine and the second virtual machine are located in the same server.

단계 S640에서, 상기 제1 가상 머신 및 상기 제2 가상 머신을 동일한 서버에 재배치하는 것이 불가능한 경우, 제어 장치는 단계 S650에서 상기 제1 가상 머신 및 상기 제2 가상 머신을 동일한 top of rack(ToR) 스위치를 사용하는 서버에 재배치할 수 있다. In step S640, if it is impossible to relocate the first virtual machine and the second virtual machine to the same server, the control device sets the first virtual machine and the second virtual machine to the same top of rack (ToR) in step S650. It can be redeployed to a server using a switch.

구체적으로, 상기 제1 가상 머신 또는 상기 제2 가상 머신이 위치한 서버에 빈 공간이 존재하지 않아서 다른 가상 머신을 재배치할 수 없는 경우 또는 상기 제1 가상 머신 및 상기 제2 가상 머신이 동시에 재배치될 수 있는 공간을 가진 다른 서버가 존재하지 않는 경우, 제어 장치는 상기 제1 가상 머신 및 상기 제2 가상 머신을 동일한 top of rack(ToR) 스위치를 사용하는 서버에 재배치할 수 있다. Specifically, when another virtual machine cannot be relocated because there is no free space in the server where the first virtual machine or the second virtual machine is located, or the first virtual machine and the second virtual machine can be relocated at the same time. If there is no other server with available space, the control device may relocate the first virtual machine and the second virtual machine to a server using the same top of rack (ToR) switch.

예를 들면, 가상화 환경에는 제1 ToR 스위치를 통해 통신을 수행할 수 있는 제1 서버, 제2 서버 및 제3 서버가 존재할 수 있다. 그리고 가상화 환경에는 제1 ToR 스위치와 상이한 제2 ToR 스위치를 통해 통신을 수행할 수 있는 제1 서버, 제2 서버 및 제3 서버가 존재할 수 있다.For example, a first server, a second server, and a third server capable of communicating through a first ToR switch may exist in a virtualization environment. In a virtualization environment, a first server, a second server, and a third server capable of communicating through a second ToR switch different from the first ToR switch may exist.

상기 제1 가상 머신은 상기 제1 ToR 스위치의 제1 서버에 존재하고, 상기 제2 가상 머신은 상기 제2 ToR 스위치의 제3 서버에 존재하며, 상기 제1 가상 머신 및 상기 제2 가상 머신을 동일한 서버에 위치하도록 재배치할 수 없는 경우, 제어 장치는 상기 제2 가상 머신을 상기 제1 ToR 스위치의 제2 서버 또는 제3 서버로 재배치할 수 있다. 또는, 제어 장치는 제1 가상 머신을 상기 제2 ToR 스위치의 제1 서버 또는 제2 서버로 재배치할 수 있다. The first virtual machine exists in a first server of the first ToR switch, the second virtual machine exists in a third server of the second ToR switch, and the first virtual machine and the second virtual machine are If it is not possible to relocate the second virtual machine to be located on the same server, the control device may relocate the second virtual machine to a second server or a third server of the first ToR switch. Alternatively, the control device may relocate the first virtual machine to the first server or the second server of the second ToR switch.

한편, 단계 S660에서, 제어 장치는 상기 제1 가상 머신 또는 상기 제2 가상 머신이 동일한 ToR 스위치를 사용하는 서버에 재배치하는 것이 불가능한 것으로 판단되면, 단계 S670으로 진행할 수 있다. Meanwhile, in step S660, if it is determined that it is impossible to relocate the first virtual machine or the second virtual machine to a server using the same ToR switch, the control device may proceed to step S670.

단계 S670에서, 제어 장치는 상기 제1 가상 머신 또는 상기 제2 가상 머신을 동일한 클라우드 포드(cloud pod)에 위치하도록 재배치할 수 있다. In step S670, the control device may rearrange the first virtual machine or the second virtual machine to be located in the same cloud pod.

한편, 단계 S620에서 판단결과, 상기 제1 가상 머신 또는 상기 제2 가상 머신의 친밀도 레벨이 ‘상’이 아닌 경우, 단계 S680으로 진행할 수 있다. Meanwhile, as a result of determination in step S620, when the intimacy level of the first virtual machine or the second virtual machine is not 'high', the process may proceed to step S680.

단계 S680에서, 제어 장치는 상기 제1 가상 머신 또는 상기 제2 가상 머신의 친밀도 레벨이 ‘중’인지 여부를 판단할 수 있다. In step S680, the control device may determine whether the intimacy level of the first virtual machine or the second virtual machine is 'medium'.

판단 결과, 상기 제1 가상 머신 또는 상기 제2 가상 머신의 친밀도 레벨이 ‘중’인 경우, 제어 장치는 단계 S650으로 진행할 수 있다. 구체적으로 제어 장치는 상기 제1 가상 머신 또는 상기 제2 가상 머신을 동일한 ToR 스위치를 사용하는 서버에 재배치할 수 있다. 그리고 제어 장치는 상기 제1 가상 머신 또는 상기 제2 가상 머신을 동일한 ToR 스위치를 사용하는 서버에 재배치할 수 없는 경우, 동일한 클라우드 포드에 위치하도록 재배치할 수 있다. As a result of the determination, when the intimacy level of the first virtual machine or the second virtual machine is 'middle', the control device may proceed to step S650. Specifically, the control device may relocate the first virtual machine or the second virtual machine to a server using the same ToR switch. And, when the control device cannot relocate the first virtual machine or the second virtual machine to a server using the same ToR switch, the control device may relocate the first virtual machine or the second virtual machine so that they are located in the same cloud pod.

한편, 단계 S680에서 판단결과, 상기 제1 가상 머신 또는 상기 제2 가상 머신의 친밀도 레벨이 ‘중’이 아닌 경우, 단계 S690으로 진행할 수 있다. Meanwhile, as a result of determination in step S680, when the intimacy level of the first virtual machine or the second virtual machine is not 'middle', step S690 may be performed.

단계 S690에서, 제어 장치는 상기 제1 가상 머신 또는 상기 제2 가상 머신의 친밀도 레벨이 ‘하’인지 여부를 판단할 수 있다. 판단 결과, 상기 제1 가상 머신 또는 상기 제2 가상 머신의 친밀도 레벨이 ‘하’인 경우, 제어 장치는 단계 S670으로 진행할 수 있다. 구체적으로 제어 장치는 상기 제1 가상 머신 또는 상기 제2 가상 머신을 동일한 클라우드 포드에 위치하도록 재배치할 수 있다. In step S690, the control device may determine whether the intimacy level of the first virtual machine or the second virtual machine is 'low'. As a result of the determination, when the intimacy level of the first virtual machine or the second virtual machine is 'low', the control device may proceed to step S670. Specifically, the control device may rearrange the first virtual machine or the second virtual machine to be located in the same cloud pod.

한편, 상기 제1 가상 머신 또는 상기 제2 가상 머신을 동일한 클라우드 포드에 위치하도록 재배치할 수 없는 경우, 제어 장치는 상기 제1 가상 머신 또는 상기 제2 가상 머신의 재배치를 중단하거나, 유휴 서버에 위치하도록 재배치할 수도 있다. Meanwhile, when the first virtual machine or the second virtual machine cannot be rearranged to be located in the same cloud pod, the control device stops the rearrangement of the first virtual machine or the second virtual machine, or places the first virtual machine or the second virtual machine in an idle server. can be rearranged to do so.

제어 장치는 사용자 조작에 의해 또는 가상 머신의 라이브마이그레이션(live migration) 등을 이용하여 가상 머신을 재배치할 수 있다. 실시간 마이그레이션은 공지기술인바 구체적인 설명은 생략한다. The control device may rearrange the virtual machines by user manipulation or by using live migration of the virtual machines. Since real-time migration is a well-known technology, a detailed description thereof will be omitted.

본 발명의 또 다른 실시 예에 따르면, 제어 장치는 데이터 센터(data center)에 가상 어플리케이션(virtual application)을 설치할 때, 이미 생성하여 저장된 친밀도 맵(proximity map)을 반영하여 가상 머신들을 배치할 수도 있다. According to another embodiment of the present invention, when installing a virtual application in a data center, the control device may place virtual machines by reflecting an already generated and stored proximity map. .

한편, 도 7a 및 도 7b는 본 발명의 일 실시 예에 따른, 재배치에 의해 가상 머신을 이동하는 방법을 나타낸 도면이다. Meanwhile, FIGS. 7A and 7B are diagrams illustrating a method of moving a virtual machine by relocation according to an embodiment of the present invention.

전술한 바와 같이 본 발명의 일 실시 예에 따라, 서로 다른 서버(700, 710)에 각각 위치한 제1 가상머신(720) 및 제2 가상 머신(730)이 맵에 의해 친밀도 레벨이 ‘상’인 경우, 도 7a에 도시된 바와 같이, 서버 n(710)에 위치한 제2 가상 머신(730)은 제1 가상 머신(720)이 위치한 서버 0(700)으로 재배치될 수 있다. As described above, according to an embodiment of the present invention, the first virtual machine 720 and the second virtual machine 730 respectively located in different servers 700 and 710 have an intimacy level of 'above' by the map. In this case, as shown in FIG. 7A , the second virtual machine 730 located on the server n 710 may be relocated to the server 0 700 where the first virtual machine 720 is located.

도 7a의 실시 예에서는, 제1 가상 머신(720)이 위치한 서버 0(700)에 빈 공간이 있는 경우이므로, 제2 가상 머신(730)이 서버 0(700)으로 재배치될 수 있다. 만약, 제1 가상 머신(720)이 위치한 서버 0(700)에 빈 공간이 없고, 제2 가상 머신(730)이 위치한 서버 n(710)에 빈 공간이 있는 경우라면, 제1 가상 머신(720)이 서버 n(710)으로 재배치될 수도 있다. In the embodiment of FIG. 7A , since there is an empty space in server 0 700 where the first virtual machine 720 is located, the second virtual machine 730 may be relocated to server 0 700 . If there is no empty space in the server 0 700 where the first virtual machine 720 is located and there is an empty space in the server n 710 where the second virtual machine 730 is located, the first virtual machine 720 ) may be relocated to server n 710.

한편, 도 7b는 본 발명의 또 다른 실시 예에 따라 가상 머신들이 동일한 ToR 스위치를 통해 연결된 서버로 재배치되는 실시 예를 나타낸 도면이다. Meanwhile, FIG. 7B is a diagram illustrating an example in which virtual machines are relocated to servers connected through the same ToR switch according to another embodiment of the present invention.

예를 들면, ToR switch 0(740)의 서버 0(741)에 위치한 제1 가상 머신(750) 및 ToR switch n(744)의 서버 0(745)에 위치한 제2 가상 머신(760)의 친밀도 레벨이 ‘상’인데도 불구하고, 상기 제1 가상 머신(750) 및 상기 제2 가상 머신(760)이 하나의 서버로 재배치될 수 없는 경우 또는 상기 제1 가상 머신(750) 및 상기 제2 가상 머신(760)의 친밀도 레벨이 ‘중’인 경우, 제어 장치는 상기 제1 가상 머신(750) 및 상기 제2 가상 머신(760)이 동일한 ToR 스위치를 통해 연결된 서버로 재배치되도록 제어할 수 있다. For example, an intimacy level of a first virtual machine 750 located in server 0 741 of ToR switch 0 740 and a second virtual machine 760 located in server 0 745 of ToR switch n 744. In spite of this 'phase', when the first virtual machine 750 and the second virtual machine 760 cannot be relocated to one server or the first virtual machine 750 and the second virtual machine When the intimacy level of 760 is 'medium', the control device can control the first virtual machine 750 and the second virtual machine 760 to be relocated to a server connected through the same ToR switch.

구체적으로, 도 7b에 도시된 바와 같이, 제어 장치는 ToR switch n(744)의 서버 0(745)에 위치한 제2 가상 머신(760)을 ToR switch 0(740) 내의 서버 1(742)로 재배치할 수 있다. Specifically, as shown in FIG. 7B, the control device relocates the second virtual machine 760 located in server 0 745 of ToR switch n 744 to server 1 742 in ToR switch 0 740. can do.

또한, ToR switch 0(740)의 서버 0(741)에 위치한 제1 가상 머신(750)이 제2 가상 머신(760)이 위치한 ToR switch n(744)의 서버로 재배치될 수 있음은 물론이다. In addition, it goes without saying that the first virtual machine 750 located in the server 0 741 of the ToR switch 0 740 can be relocated to the server of the ToR switch n 744 where the second virtual machine 760 is located.

한편, 이상과 같은 다양한 실시 예에 따른 장치 및 이의 가상 머신을 재배치하기 위한 방법을 수행하기 위한 프로그램 코드는 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장될 수 있다. 비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.Meanwhile, program codes for performing the method for relocating the device and its virtual machine according to various embodiments as described above may be stored in a non-transitory computer readable medium. A non-transitory readable medium is not a medium that stores data for a short moment, such as a register, cache, or memory, but a medium that stores data semi-permanently and can be read by a device. Specifically, the various applications or programs described above may be stored and provided in non-transitory readable media such as CD, DVD, hard disk, Blu-ray disk, USB, memory card, ROM, and the like.

또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안 될 것이다.In addition, although the preferred embodiments of the present invention have been shown and described above, the present invention is not limited to the specific embodiments described above, and the technical field to which the present invention belongs without departing from the gist of the present invention claimed in the claims. Of course, various modifications are possible by those skilled in the art, and these modifications should not be individually understood from the technical spirit or perspective of the present invention.

100: 제어부 101: 통신 패턴 확인부
102: 맵(map) 생성부 103: 재배치 제어부
110: 저장부 111: 맵 저장 영역
120: 인터페이스부 130: 스위치 0
140: 스위치 1 150: 스위치 n
1000: 가상화 환경의 장치
100: control unit 101: communication pattern confirmation unit
102: map generation unit 103: relocation control unit
110: storage unit 111: map storage area
120: interface unit 130: switch 0
140: switch 1 150: switch n
1000: device in virtualization environment

Claims (18)

가상화 환경에서, 장치의 가상 머신(virtual machine) 재배치 방법에 있어서,
통신량, 통신 횟수 및 통신 지연 시간 (latency) 중에서 적어도 하나에 기반하여 가상 머신들 사이의 통신 패턴을 확인하는 단계;
상기 통신량, 상기 통신 횟수, 및 상기 통신 지연 시간 중에서 적어도 하나를 제1 임계 값과 비교하는 단계;
상기 통신량, 상기 통신 횟수 및 상기 통신 지연 시간 중 적어도 하나의 값이 상기 제1 임계값을 초과하는 경우, 상기 통신 패턴의 레벨을 제1 레벨로 결정하는 단계;
상기 통신량, 상기 통신 횟수 및 상기 통신 지연 시간 중 적어도 하나의 값이 상기 제1 임계값 이하인 경우, 상기 통신량, 상기 통신 횟수 또는 상기 통신 지연 시간 중 적어도 하나의 값을 제2 임계값과 비교하는 단계;
상기 통신량, 상기 통신 횟수 및 상기 통신 지연 시간 중 적어도 하나의 값이 상기 제1 임계값 이하이고 상기 제2 임계값을 초과하는 경우, 상기 통신 패턴의 레벨을 제2 레벨로 결정하는 단계;
상기 통신량, 상기 통신 횟수 및 상기 통신 지연 시간 중 적어도 하나의 값이 상기 제2 임계값 이하인 경우, 상기 통신 패턴의 레벨을 제3 레벨로 결정하는 단계;
결정된 레벨에 기반하여 상기 가상 머신들 사이의 통신 패턴을 나타내는 맵(map)을 생성하는 단계 - 상기 맵은 상기 결정된 레벨에 대한 정보를 포함함; 및
상기 맵에서, 상기 통신량, 상기 통신 횟수 및 상기 통신 지연 시간 중 적어도 하나의 값에 기반하여 결정된 레벨이 동일한 가상 머신들이 서로 근접하도록 재배치하는 단계; 를 포함하는 방법.
In a virtual machine relocation method of a device in a virtualization environment,
identifying a communication pattern between virtual machines based on at least one of a communication amount, a communication number, and a communication latency;
comparing at least one of the amount of communication, the number of times of communication, and the communication delay time with a first threshold value;
determining a level of the communication pattern as a first level when at least one of the amount of communication, the number of times of communication, and the communication delay time exceeds the first threshold value;
comparing at least one of the amount of communication, the number of times of communication, and the delay time of communication with a second threshold when at least one value of the amount of communication, the number of times of communication, and the delay time of communication is less than or equal to the first threshold; ;
determining a level of the communication pattern as a second level when at least one of the amount of communication, the number of times of communication, and the communication delay time is equal to or less than the first threshold and exceeds the second threshold;
determining a level of the communication pattern as a third level when at least one of the amount of communication, the number of times of communication, and the communication delay time is equal to or less than the second threshold;
generating a map representing a communication pattern between the virtual machines based on the determined level, the map including information on the determined level; and
rearranging virtual machines having the same level determined based on at least one of the communication amount, the number of times of communication, and the communication delay time in the map so as to be close to each other; How to include.
제1항에 있어서,
상기 통신량, 상기 통신 횟수 및 상기 통신 지연 시간 중 어느 하나를 바탕으로, 상기 통신 패턴을 결정하는 단계; 를 더 포함하는 것을 특징으로 하는 방법.
According to claim 1,
determining the communication pattern based on any one of the communication amount, the number of times of communication, and the communication delay time; A method characterized in that it further comprises.
제1항에 있어서,
상기 맵을 생성하는 단계는,
상기 통신량, 상기 통신 횟수, 및 상기 통신 지연 시간 중에서 적어도 하나에 대한 정보 및 상기 결정된 레벨에 대한 정보를 포함하도록 상기 맵을 생성하는 것을 특징으로 하는 방법.
According to claim 1,
To create the map,
and generating the map to include information on at least one of the amount of communication, the number of times of communication, and the communication delay time, and information on the determined level.
삭제delete 제1항에 있어서,
상기 제1 레벨은 상 카테고리 (high category)이고, 상기 제2 레벨은 중 카레고리(medium category)이며, 상기 제3 레벨은 하 카테고리(low category)인 것을 특징으로 하는 방법.
According to claim 1,
wherein the first level is a high category, the second level is a medium category, and the third level is a low category.
삭제delete 제1항에 있어서,
상기 맵을 생성하는 단계는,
상기 확인된 통신 패턴을 기반으로, 상기 가상 머신들 사이의 친밀도 (proximity)의 레벨을 결정하는 단계; 를 더 포함하고,
상기 재배치하는 단계는,
상기 결정된 친밀도의 레벨이 임계 레벨 이상인 가상 머신들이 동일한 서버에 위치하도록 상기 가상 머신들을 재배치하는 것을 특징으로 하는 방법.
According to claim 1,
To create the map,
determining a level of proximity between the virtual machines based on the identified communication pattern; Including more,
The repositioning step is
The method of claim 1 , wherein the virtual machines are rearranged so that the virtual machines having the determined level of intimacy equal to or higher than a threshold level are located in the same server.
제7항에 있어서,
상기 재배치하는 단계는,
상기 결정된 친밀도의 레벨이 임계 수준 이상인 제1 및 제2 가상 머신을 상기 동일한 서버에 위치하도록 재배치할 수 없는 경우, 상기 제1 및 제2 가상 머신을 동일한 top of rack(ToR) 스위치를 사용하는 서버에 위치하도록 재배치하는 것을 특징으로 하는 방법.
According to claim 7,
The repositioning step is
When the first and second virtual machines having the determined level of intimacy equal to or higher than the critical level cannot be relocated to be located on the same server, the first and second virtual machines are placed on a server using the same top of rack (ToR) switch. A method characterized by rearranging to be located in.
제8항에 있어서,
상기 재배치하는 단계는,
상기 제1 및 제2 가상 머신을 상기 동일한 ToR 스위치를 사용하는 서버에 위치하도록 재배치할 수 없는 경우, 상기 제1 및 제2 가상 머신을 동일한 클라우드 포드(cloud pod)에 위치하도록 재배치하는 것을 특징으로 하는 방법.
According to claim 8,
The repositioning step is
When the first and second virtual machines cannot be rearranged to be located in a server using the same ToR switch, the first and second virtual machines are rearranged to be located in the same cloud pod. How to.
가상화 환경에서, 가상 머신(virtual machine) 재배치하기 위한 장치에 있어서,
신호를 송수신하는 인터페이스부; 및
통신량, 통신 횟수 및 통신 지연 시간 (latency) 중에서 적어도 하나에 기반하여 가상 머신들 사이의 통신 패턴을 확인하고, 상기 통신량, 상기 통신 횟수, 및 상기 통신 지연 시간 중에서 적어도 하나를 제1 임계 값과 비교하며, 상기 통신량, 상기 통신 횟수 및 상기 통신 지연 시간 중 적어도 하나의 값이 상기 제1 임계값을 초과하는 경우, 상기 통신 패턴의 레벨을 제1 레벨로 결정하고, 상기 통신량, 상기 통신 횟수 및 상기 통신 지연 시간 중 적어도 하나의 값이 상기 제1 임계값 이하인 경우, 상기 통신량, 상기 통신 횟수 또는 상기 통신 지연 시간 중 적어도 하나의 값을 제2 임계값과 비교하며, 상기 통신량, 상기 통신 횟수 및 상기 통신 지연 시간 중 적어도 하나의 값이 상기 제1 임계값 이하이고 상기 제2 임계값을 초과하는 경우, 상기 통신 패턴의 레벨을 제2 레벨로 결정하고, 상기 통신량, 상기 통신 횟수 및 상기 통신 지연 시간 중 적어도 하나의 값이 상기 제2 임계값 이하인 경우, 상기 통신 패턴의 레벨을 제3 레벨로 결정하며, 결정된 레벨에 기반하여 상기 가상 머신들 사이의 통신 패턴을 나타내는 맵(map)을 생성하고 - 상기 맵은 상기 결정된 레벨에 대한 정보를 포함함, 상기 맵에서, 상기 통신량, 상기 통신 횟수 및 상기 통신 지연 시간 중 적어도 하나의 값에 기반하여 결정된 레벨이 동일한 가상 머신들이 서로 근접하도록 재배치하는 제어부; 를 포함하는 장치.
In a virtualization environment, an apparatus for relocating a virtual machine,
an interface unit for transmitting and receiving signals; and
A communication pattern between virtual machines is identified based on at least one of the amount of communication, the number of times of communication, and the communication latency, and at least one of the amount of communication, the number of times of communication, and the communication latency is compared with a first threshold value. and when at least one of the communication amount, the communication number, and the communication delay time exceeds the first threshold, the level of the communication pattern is determined as a first level, and the communication amount, the communication number, and the communication delay time are determined. When at least one value of the communication delay time is equal to or less than the first threshold value, at least one value of the communication amount, the communication number, or the communication delay time is compared with a second threshold value, and the communication amount, the communication number and the communication delay time are compared. When at least one value of the communication delay time is less than or equal to the first threshold and greater than or equal to the second threshold, the level of the communication pattern is determined as a second level, and the amount of communication, the number of times of communication, and the communication delay time are determined. When at least one value of is less than or equal to the second threshold, determining a level of the communication pattern as a third level, and generating a map representing a communication pattern between the virtual machines based on the determined level; The map includes information on the determined level, a control unit for rearranging virtual machines having the same level determined based on at least one of the communication amount, the communication number, and the communication delay time so as to be close to each other in the map; A device comprising a.
제10항에 있어서,
상기 제어부는,
상기 통신량, 상기 통신 횟수 및 상기 통신 지연 시간 중 어느 하나를 바탕으로, 상기 통신 패턴을 결정하는 것을 특징으로 하는 장치.
According to claim 10,
The control unit,
and determining the communication pattern based on any one of the amount of communication, the number of times of communication, and the communication delay time.
제10항에 있어서,
상기 제어부는,
상기 통신량, 상기 통신 횟수, 및 상기 통신 지연 시간 중에서 적어도 하나에 대한 정보 및 상기 결정된 레벨에 대한 정보를 포함하도록 상기 맵을 생성하는 것을 특징으로 하는 장치.
According to claim 10,
The control unit,
and generating the map to include information on at least one of the amount of communication, the number of times of communication, and the communication delay time, and information on the determined level.
삭제delete 제10항에 있어서,
상기 제1 레벨은 상 카테고리 (high category)이고, 상기 제2 레벨은 중 카테고리 (medium category)이며, 상기 제3 레벨은 하 카테고리 (low category)인 것을 특징으로 하는 장치.
According to claim 10,
The first level is a high category, the second level is a medium category, and the third level is a low category.
삭제delete 제10항에 있어서,
상기 제어부는,
상기 확인된 통신 패턴을 기반으로, 상기 가상 머신들 사이의 친밀도 (proximity)의 레벨을 결정하고, 상기 결정된 친밀도의 레벨이 임계 레벨 이상인 가상 머신들이 동일한 서버에 위치하도록 상기 가상 머신들을 재배치하는 것을 특징으로 하는 장치.
According to claim 10,
The control unit,
Based on the identified communication pattern, a proximity level between the virtual machines is determined, and the virtual machines are rearranged so that virtual machines having a threshold level or higher are located on the same server. device to.
제16항에 있어서,
상기 제어부는,
상기 결정된 친밀도의 레벨이 임계 수준 이상인 제1 및 제2 가상 머신을 상기 동일한 서버에 위치하도록 재배치할 수 없는 경우, 상기 제1 및 제2 가상 머신을 동일한 top of rack(ToR) 스위치를 사용하는 서버에 위치하도록 재배치하는 것을 특징으로 하는 장치.
According to claim 16,
The control unit,
When the first and second virtual machines having the determined level of intimacy equal to or higher than the critical level cannot be relocated to be located on the same server, the first and second virtual machines are placed on a server using the same top of rack (ToR) switch. Device characterized in that the rearrangement to be located in.
제17항에 있어서,
상기 제어부는,
상기 제1 및 제2 가상 머신을 상기 동일한 ToR 스위치를 사용하는 서버에 위치하도록 재배치할 수 없는 경우, 상기 제1 및 제2 가상 머신을 동일한 클라우드 포드(cloud pod)에 위치하도록 재배치하는 것을 특징으로 하는 장치.
According to claim 17,
The control unit,
When the first and second virtual machines cannot be rearranged to be located in a server using the same ToR switch, the first and second virtual machines are rearranged to be located in the same cloud pod. device to do.
KR1020160033920A 2016-03-22 2016-03-22 An apparatus for relocating virtual machines and method thereof KR102532641B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160033920A KR102532641B1 (en) 2016-03-22 2016-03-22 An apparatus for relocating virtual machines and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160033920A KR102532641B1 (en) 2016-03-22 2016-03-22 An apparatus for relocating virtual machines and method thereof

Publications (2)

Publication Number Publication Date
KR20170109832A KR20170109832A (en) 2017-10-10
KR102532641B1 true KR102532641B1 (en) 2023-05-15

Family

ID=60190229

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160033920A KR102532641B1 (en) 2016-03-22 2016-03-22 An apparatus for relocating virtual machines and method thereof

Country Status (1)

Country Link
KR (1) KR102532641B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007257097A (en) 2006-03-22 2007-10-04 Nec Corp Virtual computer system and method and program for reconfiguring physical resource thereof
JP5110315B2 (en) * 2006-05-24 2012-12-26 日本電気株式会社 Virtual machine management apparatus, virtual machine management method and program
WO2013042615A1 (en) 2011-09-22 2013-03-28 富士通株式会社 Electronic computer system and virtual machine deployment method
CN105117280A (en) 2015-08-24 2015-12-02 用友网络科技股份有限公司 Virtual machine migration device and method
JP2015225560A (en) 2014-05-29 2015-12-14 日本電信電話株式会社 Virtual machine arrangement device, virtual machine arrangement method, and virtual machine arrangement program

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150131817A (en) * 2014-05-16 2015-11-25 한국전자통신연구원 Method and appratus for replacing location of virtual machine on virtual network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007257097A (en) 2006-03-22 2007-10-04 Nec Corp Virtual computer system and method and program for reconfiguring physical resource thereof
JP5110315B2 (en) * 2006-05-24 2012-12-26 日本電気株式会社 Virtual machine management apparatus, virtual machine management method and program
WO2013042615A1 (en) 2011-09-22 2013-03-28 富士通株式会社 Electronic computer system and virtual machine deployment method
JP2015225560A (en) 2014-05-29 2015-12-14 日本電信電話株式会社 Virtual machine arrangement device, virtual machine arrangement method, and virtual machine arrangement program
CN105117280A (en) 2015-08-24 2015-12-02 用友网络科技股份有限公司 Virtual machine migration device and method

Also Published As

Publication number Publication date
KR20170109832A (en) 2017-10-10

Similar Documents

Publication Publication Date Title
CN104598257B (en) The method and apparatus of remote application operation
US8560746B2 (en) Access control apparatus, access control method and storage system
CN105278876A (en) Data wiping method and device of solid state device
US20160224274A1 (en) Storage device and storage system
EP3115921A1 (en) Method and device for secure access control based on on-chip bus protocol
CN103885820A (en) Command Process Load Balancing System
US20190189238A1 (en) Method, Apparatus and Electronic Device For Read/Write Speed Testing
US8874966B1 (en) Storage device error simulator tool
US9563651B2 (en) Storage control device and storage control method
JP2015161999A (en) Storage device, control apparatus, and control program
CN108475201A (en) A kind of data capture method in virtual machine start-up course and cloud computing system
US20070150590A1 (en) Computer system and storage virtualizer
JP6331944B2 (en) Information processing apparatus, memory control apparatus, and information processing apparatus control method
US9634822B2 (en) Information processing device and method for determining path range
KR102532641B1 (en) An apparatus for relocating virtual machines and method thereof
CN105868121B (en) A kind of information processing method and electronic equipment
US20210109672A1 (en) Apparatus configured to create extended configuration proposal of storage system including multiple notes
CN105162833A (en) Client computer management system and method applied to diskless workstation
WO2020137566A1 (en) Test environment determination device and test environment determination method
CN107329798A (en) Method, device and the virtualization system of data duplication
JP6191162B2 (en) Server device, service free use management method and service free use management program
CN107340974B (en) Virtual disk migration method and virtual disk migration device
US20170285983A1 (en) Storage system, storage system control method, and program therefor
US20100152866A1 (en) Information processing apparatus, information processing method and computer-readable medium having an information processing program
US9876874B2 (en) Network selecting apparatus and operating method thereof

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant