KR20200077391A - Electronic device for performing migration for virtual machine in cloud environment and operation method thereof - Google Patents

Electronic device for performing migration for virtual machine in cloud environment and operation method thereof Download PDF

Info

Publication number
KR20200077391A
KR20200077391A KR1020190132570A KR20190132570A KR20200077391A KR 20200077391 A KR20200077391 A KR 20200077391A KR 1020190132570 A KR1020190132570 A KR 1020190132570A KR 20190132570 A KR20190132570 A KR 20190132570A KR 20200077391 A KR20200077391 A KR 20200077391A
Authority
KR
South Korea
Prior art keywords
parameter
candidate
electronic device
machine
workload
Prior art date
Application number
KR1020190132570A
Other languages
Korean (ko)
Other versions
KR102296940B1 (en
Inventor
허의남
손아영
Original Assignee
경희대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 경희대학교 산학협력단 filed Critical 경희대학교 산학협력단
Priority to PCT/KR2019/018108 priority Critical patent/WO2020130676A1/en
Publication of KR20200077391A publication Critical patent/KR20200077391A/en
Application granted granted Critical
Publication of KR102296940B1 publication Critical patent/KR102296940B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Abstract

According to various embodiments of the present invention, an electronic device in a cloud environment can comprise: a communication module; at least one memory for storing instructions; and at least one processor, when executing the instructions, configured to receive a request of a user, identify the type of the workload of a service related to the request of the user in response to the reception, determine a candidate machine corresponding to the identified type of the workload among a plurality of candidate machines in the cloud environment as a target machine, and perform migration for a virtual machine to the determined candidate machine by using the communication module. Therefore, the migration performance can be maintained above the target quality of service (QoS).

Description

클라우드 환경 내에서 가상 머신을 위한 마이그레이션을 수행하기 위한 전자 장치 및 그의 동작 방법{ELECTRONIC DEVICE FOR PERFORMING MIGRATION FOR VIRTUAL MACHINE IN CLOUD ENVIRONMENT AND OPERATION METHOD THEREOF} ELECTRONIC DEVICE FOR PERFORMING MIGRATION FOR VIRTUAL MACHINE IN CLOUD ENVIRONMENT AND OPERATION METHOD THEREOF}

후술되는 다양한 실시예들은 클라우드 환경(cloud environment) 내에서 가상 머신을 위한 마이그레이션(migration)을 수행하기 위한 전자 장치(electronic device) 및 그의 동작 방법에 관한 것이다. Various embodiments described below relate to an electronic device for performing migration for a virtual machine in a cloud environment and a method for operating the same.

클라우드 환경에 대한 사용자의 수요가 증가하고 있다. 이러한 수요의 증가에 대응하기 위해, 가상 머신을 위한 마이그레이션을 이용하여 클라우드 환경 내의 자원 관리를 수행하는 전자 장치가 개발되고 있다. User demand for cloud environments is increasing. To cope with this increase in demand, electronic devices that perform resource management in a cloud environment using migration for virtual machines have been developed.

클라우드 환경 내의 복수의 물리적 머신(physical machine)들을 제어하는 전자 장치는, 가상 머신을 위한 마이그레이션을 이용하여 상기 클라우드 환경 내의 자원 관리를 수행할 수 있다. 상기 마이그레이션의 성능은 상기 클라우드 환경을 통해 제공되고 있는 서비스의 상태에 따라 변경될 수 있기 때문에, 상기 마이그레이션의 성능을 상기 서비스의 상태에 따라 유지하기 위한 방안이 요구될 수 있다. An electronic device that controls a plurality of physical machines in a cloud environment may perform resource management in the cloud environment using migration for a virtual machine. Since the performance of the migration can be changed according to the state of the service provided through the cloud environment, a method for maintaining the performance of the migration according to the state of the service may be required.

본 문서에서 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다. The technical problems to be achieved in this document are not limited to the technical problems mentioned above, and other technical problems not mentioned can be clearly understood by those skilled in the art from the following description. There will be.

다양한 실시예들에 따른, 클라우드(cloud) 환경 내의 전자 장치(electronic device)는, 통신 모듈과, 인스트럭션(instruction)들을 저장하는 적어도 하나의 메모리와, 상기 인스트럭션들을 실행할 시, 사용자의 요청을 수신하고, 상기 수신에 응답하여, 상기 사용자의 상기 요청과 관련된 서비스의 워크로드(workload)의 유형을 식별하고, 상기 클라우드 환경 내의 복수의 후보 머신들 중 상기 식별된 워크로드의 유형에 대응하는 후보 머신을 타겟 머신으로 결정하고, 상기 결정된 후보 머신으로 가상 머신을 위한 마이그레이션(migration)을 상기 통신 모듈을 이용하여 수행하도록 구성되는 적어도 하나의 프로세서를 포함할 수 있다. An electronic device in a cloud environment, according to various embodiments, receives a request from a user when a communication module, at least one memory storing instructions, and when executing the instructions, , In response to the reception, identify a type of workload of a service related to the request of the user, and select a candidate machine corresponding to the identified workload type among a plurality of candidate machines in the cloud environment It may include at least one processor configured to be determined as a target machine and configured to perform migration for the virtual machine to the determined candidate machine using the communication module.

다양한 실시예들에 따른, 클라우드 환경 내의 전자 장치를 동작하기 위한 방법은, 사용자의 요청을 수신하는 동작과, 상기 수신에 응답하여, 상기 사용자의 상기 요청과 관련된 서비스의 워크로드(workload)의 유형을 식별하는 동작과, 상기 클라우드 환경 내의 복수의 후보 머신들 중 상기 식별된 워크로드의 유형에 대응하는 후보 머신을 타겟 머신으로 결정하는 동작과, 상기 결정된 후보 머신으로 가상 머신을 위한 마이그레이션(migration)을 상기 전자 장치의 통신 모듈을 이용하여 수행하는 동작을 포함할 수 있다. According to various embodiments, a method for operating an electronic device in a cloud environment includes an operation of receiving a request from a user and a type of workload of a service related to the request from the user in response to the reception. And determining a candidate machine corresponding to the identified workload type among a plurality of candidate machines in the cloud environment as a target machine, and migrating a virtual machine to the determined candidate machine. It may include an operation performed by using the communication module of the electronic device.

다양한 실시예들에 따른, 비일시적 컴퓨터 판독 가능 저장 매체(non-transitory computer readable storage medium)는, 클라우드 환경 내의 전자 장치의 하나 이상의 프로세서들에 의해 실행될 시, 사용자의 요청을 수신하고, 상기 수신에 응답하여, 상기 사용자의 상기 요청과 관련된 서비스의 워크로드(workload)의 유형을 식별하고, 상기 클라우드 환경 내의 복수의 후보 머신들 중 상기 식별된 워크로드의 유형에 대응하는 후보 머신을 타겟 머신으로 결정하고, 상기 결정된 후보 머신으로 가상 머신을 위한 마이그레이션(migration)을 상기 통신 모듈을 이용하여 수행하도록, 상기 전자 장치를 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램들을 저장할 수 있다. A non-transitory computer readable storage medium, according to various embodiments, when executed by one or more processors of an electronic device in a cloud environment, receives a user's request and receives the request. In response, identify a type of workload of a service related to the request of the user, and determine a candidate machine corresponding to the identified type of workload among a plurality of candidate machines in the cloud environment as a target machine And, to perform the migration (migration) for the virtual machine to the determined candidate machine using the communication module, one or more programs including instructions for causing the electronic device may be stored.

다양한 실시 예들에 따라 전자 장치는, 클라우드 환경을 통해 제공되는 서비스의 워크로드의 유형에 따라 가상 머신을 위한 마이그레이션을 수행할 타겟 머신을 결정함으로써, 상기 마이그레이션의 성능을 타겟 QoS(quality of service) 이상으로 유지할 수 있다. According to various embodiments of the present disclosure, the electronic device determines a target machine to perform migration for a virtual machine according to a type of workload of a service provided through a cloud environment, so that the performance of the migration is higher than a target quality of service (QoS). Can be maintained.

본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다. The effects obtainable in the present disclosure are not limited to the above-mentioned effects, and other effects not mentioned may be clearly understood by those skilled in the art from the following description. will be.

도 1은, 다양한 실시예들에 따른 전자 장치를 포함하는 클라우드 환경을 도시한다.
도 2는 다양한 실시예들에 따라 워크로드의 유형에 기반하여 타겟 머신으로 결정된 후보 머신으로 가상 머신을 위한 마이그레이션을 수행하는 전자 장치의 동작을 도시하는 흐름도이다.
도 3은 다양한 실시예들에 따라 워크로드의 유형에 따라 후보 머신을 타겟 머신으로 결정하는 전자 장치의 동작을 도시하는 흐름도이다.
도 4는 다양한 실시예들에 따라 구성된 복수의 후보 머신들 각각의 상태 정보의 파라미터들의 예를 도시하는 그래프이다.
도 5는 다양한 실시예들에 따라 워크로드의 유형에 따라 후보 머신을 타겟 머신으로 결정하는 예를 도시하는 그래프이다.
도 6은 다양한 실시예들에 따라 타겟 머신으로 결정된 후보 머신의 QoS가 타겟 QoS를 충족하는지 여부를 결정하는 전자 장치의 동작을 도시하는 흐름도이다.
도 7은 다양한 실시예들에 따른 전자 장치의 간소화된 블록도이다.
도 8은 다양한 실시예들에 따른 클라우드 환경 내에 포함된 전자 장치의 모듈들의 간소화된 블록도이다.
1 illustrates a cloud environment including an electronic device according to various embodiments.
2 is a flowchart illustrating an operation of an electronic device performing migration for a virtual machine to a candidate machine determined as a target machine based on a type of workload according to various embodiments.
3 is a flowchart illustrating an operation of an electronic device that determines a candidate machine as a target machine according to a type of workload according to various embodiments.
4 is a graph showing examples of parameters of state information of each of a plurality of candidate machines configured according to various embodiments.
5 is a graph illustrating an example of determining a candidate machine as a target machine according to a type of workload according to various embodiments.
6 is a flowchart illustrating an operation of an electronic device that determines whether a QoS of a candidate machine determined as a target machine meets a target QoS according to various embodiments.
7 is a simplified block diagram of an electronic device according to various embodiments.
8 is a simplified block diagram of modules of an electronic device included in a cloud environment according to various embodiments.

본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 클라우드 환경 내의 서버, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다. An electronic device according to various embodiments disclosed in this document may be a device of various types. The electronic device may include, for example, a portable communication device (eg, a smart phone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, a server in a cloud environment, or a home appliance device. The electronic device according to the embodiment of the present document is not limited to the above-described devices.

본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제1", "제2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제1) 구성요소가 다른(예: 제2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제3 구성요소를 통하여 연결될 수 있다는 것을 의미한다. It should be understood that various embodiments of the document and terms used therein are not intended to limit the technical features described in this document to specific embodiments, and include various modifications, equivalents, or substitutes of the embodiment. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the items, unless the context clearly indicates otherwise. In this document, "A or B", "at least one of A and B", "at least one of A or B", "A, B or C", "at least one of A, B and C", and "A Each of the phrases such as "at least one of,, B, or C" may include any one of the items listed together in the corresponding phrase of the phrases, or all possible combinations thereof. Terms such as “first”, “second”, or “first” or “second” can be used to simply distinguish a component from other components, and to separate components from other aspects (eg, importance or Order). Any (eg, first) component is referred to as “coupled” or “connected” to another (eg, second) component, with or without the term “functionally” or “communically” When mentioned, it means that any of the above components can be connected directly to the other components (eg, by wire), wirelessly, or through a third component.

본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다. The term "module" used in this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic blocks, components, or circuits. The module may be an integrally configured component or a minimum unit of the component or a part thereof performing one or more functions. For example, according to an embodiment, the module may be implemented in the form of an application-specific integrated circuit (ASIC).

본 문서의 다양한 실시예들은 기기(machine)에 의해 읽을 수 있는 저장 매체(storage medium)에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어로서 구현될 수 있다. 예를 들면, 기기의 프로세서는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.Various embodiments of the present document may be implemented as software that includes one or more instructions stored in a storage medium readable by a machine. For example, the processor of the device may invoke and execute at least one of the one or more instructions stored from the storage medium. This enables the device to be operated to perform at least one function according to the at least one command called. The one or more instructions may include code generated by a compiler or code executable by an interpreter. The storage medium readable by the device may be provided in the form of a non-transitory storage medium. Here,'non-transitory' only means that the storage medium is a tangible device, and does not contain a signal (eg, electromagnetic waves), and this term is used when data is stored semi-permanently. It does not distinguish between temporary storage cases.

일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to one embodiment, a method according to various embodiments disclosed in this document may be provided as being included in a computer program product. Computer program products can be traded between sellers and buyers as products. The computer program product is distributed in the form of a device-readable storage medium (eg compact disc read only memory (CD-ROM)), or through an application store (eg Play StoreTM) or two user devices ( For example, it can be distributed directly (e.g., downloaded or uploaded) between smartphones). In the case of online distribution, at least a portion of the computer program product may be stored at least temporarily in a storage medium readable by a device such as a memory of a manufacturer's server, an application store's server, or a relay server, or may be temporarily generated.

다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다. According to various embodiments, each component (eg, module or program) of the above-described components may include a singular or a plurality of entities. According to various embodiments, one or more components or operations of the above-described corresponding components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (eg, modules or programs) may be integrated into one component. In this case, the integrated component may perform one or more functions of each component of the plurality of components the same or similar to that performed by the corresponding component among the plurality of components prior to the integration. . According to various embodiments, operations performed by a module, program, or other component may be executed sequentially, in parallel, repeatedly, or heuristically, or one or more of the operations may be executed in a different order, or omitted Or, one or more other actions can be added.

도 1은, 다양한 실시예들에 따른 전자 장치를 포함하는 클라우드 환경을 도시한다. 1 illustrates a cloud environment including an electronic device according to various embodiments.

도 1을 참조하면, 클라우드 환경(100)은 전자 장치(110), 전자 장치(120-1) 내지 전자 장치(120-n), 및 전자 장치(130)를 포함할 수 있다. Referring to FIG. 1, the cloud environment 100 may include an electronic device 110, an electronic device 120-1 to an electronic device 120-n, and an electronic device 130.

다양한 실시예들에서, 전자 장치(110)는, 클라우드 환경(100)을 통해 서비스를 제공 받는 사용자로부터 직접적으로 입력을 수신하는 장치일 수 있다. 예를 들면, 전자 장치(110)는, 클라우드 환경(100)을 통해 상기 서비스를 위해 전자 장치(120-1)와 트래픽을 교환하는 동안, 상기 서비스와 관련된 사용자 입력을 수신할 수 있다. 전자 장치(110)는, 사용자 입력을 직접 수신한다는 측면에서, 사용자 단말(user terminal)로 참조될 수 있다. 다양한 실시예들에서, 전자 장치(110)는, 이동성을 가지는 장치(예: 스마트 폰, 랩탑 컴퓨터, 웨어러블 장치 등)일 수 있다. 다양한 실시예들에서, 전자 장치(110)는, 고정된 장치(예: 데스크 탑 컴퓨터, 스마트 냉장고, 스마트 TV 등)일 수도 있다. In various embodiments, the electronic device 110 may be a device that directly receives input from a user who receives a service through the cloud environment 100. For example, while exchanging traffic with the electronic device 120-1 for the service through the cloud environment 100, the electronic device 110 may receive a user input related to the service. The electronic device 110 may be referred to as a user terminal in terms of directly receiving user input. In various embodiments, the electronic device 110 may be a device having mobility (eg, a smart phone, a laptop computer, a wearable device, etc.). In various embodiments, the electronic device 110 may be a fixed device (eg, a desktop computer, a smart refrigerator, a smart TV, etc.).

다양한 실시예들에서, 전자 장치(120-1) 내지 전자 장치(120-n)(n은 1보다 큰 임의의 자연수) 각각은, 클라우드 환경(100)을 통해 전자 장치(110)의 사용자에게 상기 서비스를 제공하기 위해, 전자 장치(110)에게 클라우드 환경(100) 내의 데이터를 제공하는 장치일 수 있다. 예를 들면, 전자 장치(120-1) 내지 전자 장치(120-n) 각각은, 전자 장치(110)에게 데이터를 제공한다는 측면에서, 데이터 센터 또는 서버로 참조될 수 있다. 예를 들면, 전자 장치(120-1) 내지 전자 장치(120-n) 각각이 지리적으로 분산하여 위치되는 경우, 전자 장치(120-1) 내지 전자 장치(120-n) 각각이 분산된 클라우드 환경(100)을 제공한다는 측면에서 마이크로 데이터 센터로 참조될 수 있다. 예를 들면, 전자 장치(110)는 마이크로 데이터 센터인 전자 장치(120-1)의 커버리지 내에 위치되는 경우 전자 장치(120-1)로부터 상기 서비스를 위한 데이터를 제공 받고, 마이크로 데이터 센터인 전자 장치(120-k)(k는 1보다 크고 n보다 작은 임의의 자연수)의 커버리지 내에 위치되는 경우 전자 장치(120-k)로부터 상기 서비스를 위한 데이터를 제공 받을 수 있다. In various embodiments, each of the electronic device 120-1 to the electronic device 120-n (where n is any natural number greater than 1) is notified to the user of the electronic device 110 through the cloud environment 100. In order to provide a service, it may be a device that provides data in the cloud environment 100 to the electronic device 110. For example, each of the electronic devices 120-1 to 120-n may be referred to as a data center or server in terms of providing data to the electronic device 110. For example, when each of the electronic devices 120-1 to 120-n is geographically distributed, the cloud environment in which each of the electronic devices 120-1 to 120-n is distributed In terms of providing 100, it can be referred to as a micro data center. For example, the electronic device 110 receives data for the service from the electronic device 120-1 when located within the coverage of the electronic device 120-1, which is a micro data center, and the electronic device that is a micro data center When located within the coverage of (120-k) (k is any natural number greater than 1 and less than n), data for the service may be provided from the electronic device 120-k.

다양한 실시예들에서, 전자 장치(130)는, 전자 장치(120-1) 내지 전자 장치(120-n)가 클라우드 환경(100)을 통해 전자 장치(110)에게 서비스를 제공할 수 있도록, 전자 장치(120-1) 내지 전자 장치(120-n)를 제어하는 장치일 수 있다. 예를 들면, 전자 장치(130)는, 전자 장치(110)의 위치의 변경에 따라, 전자 장치(110)에게 상기 서비스를 제공하는 장치를 전자 장치(120-m)(m은 1보다 크고 n보다 작은 임의의 자연수)로부터 전자 장치(120-k)(k는 1보다 크고 n보다 작으며 m과는 다른 임의의 자연수)로 변경할 수 있도록 전자 장치(120-m) 및 전자 장치(120-k)를 제어할 수 있다. 예를 들면, 전자 장치(130)는, 전자 장치(110)에게 상기 서비스를 제공하는 장치가 전자 장치(120-m)로부터 전자 장치(120-k)로 변경되는 경우, 상기 서비스를 제공하기 위한 가상 머신에 대한 정보를 전자 장치(120-k)로 마이그레이션할 수 있다. 예를 들면, 전자 장치(130)는, 전자 장치(110)에게 서비스를 제공하는 장치를 전자 장치(120-m)로부터 다른 전자 장치로 변경하는 경우, 전자 장치(120-1) 내지 전자 장치(120-n) 중에서 전자 장치(110)에게 서비스를 제공할 최적의 전자 장치(120-k)를 결정하고 상기 결정된 전자 장치(120-k)로 상기 가상 머신에 대한 정보를 마이그레이션할 수 있다. 전자 장치(130) 내에서 실행되거나 수행되는 구체적인 동작들은 도 2 내지 도 8의 설명들을 통해 후술될 것이다. 다양한 실시예들에서, 전자 장치(130)는, 전자 장치(120-1) 내지 전자 장치(120-n)를 제어한다는 측면에서 제어 센터로 참조될 수 있다. In various embodiments, the electronic device 130 may be configured to enable the electronic device 120-1 to the electronic device 120-n to provide a service to the electronic device 110 through the cloud environment 100. It may be a device that controls the device 120-1 to the electronic device 120-n. For example, the electronic device 130, according to a change in the position of the electronic device 110, the electronic device 120-m is a device that provides the service to the electronic device 110 (m is greater than 1 and n Electronic device 120-k and electronic device 120-k to change from smaller random natural number to electronic device 120-k (k is any natural number greater than 1 and less than n and different from m) ) Can be controlled. For example, the electronic device 130 is configured to provide the service when the device providing the service to the electronic device 110 is changed from the electronic device 120-m to the electronic device 120-k. Information about the virtual machine may be migrated to the electronic device 120-k. For example, when the electronic device 130 changes a device providing a service to the electronic device 110 from the electronic device 120-m to another electronic device, the electronic device 120-1 to the electronic device ( Among 120-n), an optimal electronic device 120-k to provide a service to the electronic device 110 may be determined, and information on the virtual machine may be migrated to the determined electronic device 120-k. Specific operations performed or performed in the electronic device 130 will be described later with reference to FIGS. 2 to 8. In various embodiments, the electronic device 130 may be referred to as a control center in terms of controlling the electronic devices 120-1 to 120-n.

도 2는 다양한 실시예들에 따라 워크로드의 유형에 기반하여 타겟 머신으로 결정된 후보 머신으로 가상 머신을 위한 마이그레이션을 수행하는 전자 장치의 동작을 도시하는 흐름도이다. 상기 흐름도에 의해 도시된 전자 장치의 동작은, 도 1의 클라우드 환경(100) 내의 전자 장치(130) 또는 전자 장치(130)의 프로세서((예: 도 7의 프로세서(710))에 의해 실행될 수 있다. 상기 흐름도에 의해 도시된 전자 장치의 동작은, 전자 장치(130)의 메모리(720)에 저장된(또는 일시적으로 저장된) 인스트럭션(instruction)들에 의해 실행될 수 있다. 2 is a flowchart illustrating an operation of an electronic device performing migration for a virtual machine to a candidate machine determined as a target machine based on a type of workload according to various embodiments. The operation of the electronic device illustrated by the flow chart may be performed by the electronic device 130 or the processor of the electronic device 130 (eg, the processor 710 of FIG. 7) in the cloud environment 100 of FIG. 1. The operation of the electronic device illustrated by the flowchart may be executed by instructions stored in (or temporarily stored in) the memory 720 of the electronic device 130.

도 2를 참조하면, 동작 210에서, 전자 장치(130)는 사용자의 요청을 수신할 수 있다. 예를 들면, 상기 사용자의 상기 요청은, 가상 머신의 할당을 요구하는 요청에 대응할 수 있다. 예를 들면, 상기 사용자의 상기 요청은, 클라우드 환경(100) 내의 마이크로 데이터 센터인 전자 장치(120-k)(k는 1보다 크고 n보다 작은 임의의 자연수)로부터 서비스를 제공 받고 있는 전자 장치(110)가 다른 전자 장치로 핸드 오프(hand-off)하는 것이 요구됨을 나타내는 요청일 수 있다. 예를 들면, 상기 사용자의 상기 요청은, 클라우드 환경(100) 내에서 전자 장치(110)의 위치가 변경되는 것에 대응할 수 있다. 다양한 실시예들에서, 상기 사용자의 상기 요청은, 명시적인 사용자 입력에 의해 야기될 수도 있고, 묵시적인 사용자 입력에 의해 야기될 수도 있다. Referring to FIG. 2, in operation 210, the electronic device 130 may receive a user's request. For example, the request of the user may correspond to a request that requests allocation of a virtual machine. For example, the request of the user is an electronic device being provided with a service from an electronic device 120-k (where k is any natural number greater than 1 and less than n) that is a micro data center in the cloud environment 100 ( It may be a request indicating that 110) is required to hand-off to another electronic device. For example, the request of the user may correspond to a change in the location of the electronic device 110 in the cloud environment 100. In various embodiments, the request of the user may be caused by explicit user input or may be caused by implicit user input.

동작 220에서, 전자 장치(130)는, 상기 사용자의 상기 요청을 수신하는 것에 응답하여, 상기 사용자의 상기 요청과 관련된 서비스의 워크로드의 유형을 식별할 수 있다. 예를 들어, 상기 서비스가 웹 기반(web-based) 어플리케이션으로부터 제공되는 서비스인 경우, 상기 워크로드의 유형은 웹에 접속된 사용자들의 수에 기반하여 식별될 수 있다. 예를 들어, 상기 서비스가 웹 기반 어플리케이션으로부터 제공되는 서비스인 경우, 상기 워크로드의 유형은 하기의 표 1과 같이 나타내어질 수 있다. In operation 220, the electronic device 130 may identify a type of workload of a service associated with the request of the user in response to receiving the request of the user. For example, if the service is a service provided from a web-based application, the type of workload may be identified based on the number of users connected to the web. For example, when the service is a service provided from a web-based application, the type of the workload may be represented as shown in Table 1 below.

Type of ApplicationType of Application Number of concurrent usersNumber of concurrent users Type of workloadType of workload Web-basedWeb-based 100100 LowLow 200200 MidMid 300300 HighHigh

표 1의 예에서, 전자 장치(130)는, 웹에 동시 접속된 사용자들의 수가 200 이하인 경우 상기 워크로드의 상기 유형을 'low'로 식별하고, 웹에 동시 접속된 사용자들의 수가 200 초과 300 이하인 경우 상기 워크로드의 상기 유형을 'mid'로 식별하며, 웹에 동시 접속된 사용자들의 수가 300 초과인 경우 상기 워크로드의 상기 유형을 'high'로 식별할 수 있다. In the example of Table 1, the electronic device 130 identifies the type of the workload as'low' when the number of users concurrently connected to the web is 200 or less, and the number of users concurrently connected to the web is more than 200 and 300 or less. In this case, the type of the workload is identified as'mid', and when the number of users simultaneously connected to the web exceeds 300, the type of the workload may be identified as'high'.

표 1을 통해 예시된 상기 워크로드의 상기 유형은, 설명의 편의를 위한 것이다. 상기 워크로드의 상기 유형은, 표 1의 예와 달리, 상기 서비스를 제공하기 위해 이용되는 어플리케이션의 유형 등에 따라 다르게 전자 장치(130) 내에서 설정될 수 있다. The type of workload illustrated through Table 1 is for convenience of description. Unlike the example of Table 1, the type of the workload may be set in the electronic device 130 differently depending on the type of application used to provide the service.

다양한 실시예들에서, 상기 워크로드의 상기 유형은, 전자 장치(120-1) 내지 전자 장치(120-n) 중에서, 클라우드 환경(100)을 통해 전자 장치(110)에게 서비스를 제공할 타겟 머신을 결정하기 위해, 이용될 수 있다. 다양한 실시예들에서, 상기 워크로드의 상기 유형은, 전자 장치(110)에게 서비스를 제공할 수 있는 복수의 후보 머신들인 전자 장치(120-1) 내지 전자 장치(120-n) 각각의 상태 정보를 구성하는 복수의 파라미터들의 값들을 결정하기 위해, 이용될 수 있다. 복수의 파라미터들의 값들을 결정하기 위해 실행되는 전자 장치(130)의 동작은, 도 3 내지 도 5의 설명을 통해 후술될 것이다. In various embodiments, the type of the workload is a target machine to provide a service to the electronic device 110 through the cloud environment 100 among the electronic devices 120-1 to 120-n. To determine, it can be used. In various embodiments, the type of the workload is status information of each of the electronic devices 120-1 to 120-n, which are a plurality of candidate machines capable of providing services to the electronic device 110. It may be used to determine values of a plurality of parameters constituting. The operation of the electronic device 130 executed to determine the values of the plurality of parameters will be described later through the description of FIGS. 3 to 5.

동작 230에서, 전자 장치(130)는 상기 복수의 후보 머신들인 전자 장치(120-1) 내지 전자 장치(120-n) 중에서 상기 식별된 워크로드의 유형에 대응하는 후보 머신을 타겟 머신으로 결정할 수 있다. 예를 들면, 동작 240에 대한 설명을 통해 후술될 상기 가상 머신을 위한 마이그레이션을 수행하기 위한 타겟 머신을 전자 장치(130) 내에 구성된 정책에 따라 결정하기 위해, 전자 장치(130)는, 상기 복수의 후보 머신들인 전자 장치(120-1) 내지 전자 장치(120-n) 중에서 상기 식별된 워크로드의 유형에 대응하는 후보 머신을 타겟 머신으로 결정할 수 있다. 실시예들에 따라, 상기 정책은, 서비스 프로바이더에 의해 미리 정의될 수 있다. 실시예들에 따라, 상기 정책은, 신경망을 이용하여 클라우드 환경(100)의 사용자들의 휴리스틱스에 대한 정보를 수집하고, 상기 수집된 정보에 기반하여 정의되고 개선될(refined) 수도 있다. 다른 예를 들면, 전자 장치(130)는, 데이터 센터에 해당하는 전자 장치(120-1) 내지 전자 장치(120-n) 내에서 소비되는 비용(예: 에너지 마이그레이션)과 마이그레이션 성능(또는 마이그레이션 QoS(quality of service)) 사이의 간격을 줄이기 위해, 상기 복수의 후보 머신들인 전자 장치(120-1) 내지 전자 장치(120-n) 중에서 상기 식별된 워크로드의 유형에 대응하는 후보 머신을 타겟 머신으로 결정할 수 있다. 또 다른 예를 들면, 전자 장치(130)는, 사용자의 요구에 적합하게 서비스의 목적에 따라 마이그레이션을 실행하기 위해, 상기 복수의 후보 머신들인 전자 장치(120-1) 내지 전자 장치(120-n) 중에서 상기 식별된 워크로드의 유형에 대응하는 후보 머신을 타겟 머신으로 결정할 수 있다. In operation 230, the electronic device 130 may determine, as a target machine, a candidate machine corresponding to the identified type of workload among the plurality of candidate machines, the electronic device 120-1 to the electronic device 120-n. have. For example, through the description of operation 240, in order to determine a target machine for performing migration for the virtual machine to be described later according to a policy configured in the electronic device 130, the electronic device 130, the plurality of Among the candidate machines, the electronic devices 120-1 to 120-n, a candidate machine corresponding to the identified workload type may be determined as a target machine. According to embodiments, the policy may be predefined by a service provider. According to embodiments, the policy may collect information on the heuristics of users of the cloud environment 100 using a neural network, and may be defined and refined based on the collected information. For another example, the electronic device 130 may include a cost (eg, energy migration) and migration performance (or migration QoS) consumed within the electronic device 120-1 to the electronic device 120-n corresponding to the data center. To reduce the interval between (quality of service), a target machine targeting a candidate machine corresponding to the identified workload type among the plurality of candidate machines, the electronic device 120-1 to the electronic device 120-n You can decide. For another example, the electronic device 130, the electronic device (120-1) to the electronic device (120-n) of the plurality of candidate machines, in order to perform migration according to the purpose of the service to suit the needs of the user ), a candidate machine corresponding to the identified workload type may be determined as a target machine.

동작 240에서, 전자 장치(130)는 상기 결정된 후보 머신으로 상기 가상 머신을 위한 마이그레이션을 수행할 수 있다. 상기 마이그레이션은, 상기 서비스의 목적에 적합하게 정의된 정책에 기반하여 결정된 후보 머신으로 수행되기 때문에, 보다 적은 자원을 소모하면서 강화된 QoS를 보장할 수 있다. 또한, 상기 마이그레이션은, 상기 워크로드의 유형에 기반하여 결정된 후보 머신으로 수행되기 때문에, 상기 서비스의 효율을 높일 수 있고 강화된 가상 머신의 성능을 보장할 수 있다. 또한, 상기 마이그레이션은, 강화된 분산 클라우드 환경의 서비스를 제공할 수 있기 때문에, 서비스 프로바이더(provider)의 이익을 증대시킬 수 있다. In operation 240, the electronic device 130 may perform migration for the virtual machine to the determined candidate machine. Since the migration is performed with a candidate machine determined based on a policy appropriately defined for the purpose of the service, it is possible to guarantee enhanced QoS while consuming less resources. In addition, since the migration is performed with a candidate machine determined based on the type of the workload, it is possible to increase the efficiency of the service and ensure enhanced virtual machine performance. In addition, since the migration can provide services in an enhanced distributed cloud environment, it is possible to increase the benefit of a service provider.

상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(130)는, 상기 서비스의 워크로드의 유형에 기반하여 가상 머신을 위한 마이그레이션을 수행할 타겟 머신을 식별함으로써, 강화된 클라우드 환경(100)을 제공할 수 있다. 다양한 실시예들에 따른 전자 장치(130)는, 상기 워크로드의 상기 유형에 따라 적응적으로 타겟 머신을 식별할 수 있기 때문에, 상기 가상 머신을 위한 상기 마이그레이션을 위해 요구되는 자원 효율성을 강화할 수 있다. As described above, the electronic device 130 according to various embodiments identifies the target machine to perform migration for the virtual machine based on the type of workload of the service, thereby enabling the enhanced cloud environment 100. Can provide. The electronic device 130 according to various embodiments may adaptively identify a target machine according to the type of the workload, thereby enhancing resource efficiency required for the migration for the virtual machine. .

도 3은 다양한 실시예들에 따라 워크로드의 유형에 따라 후보 머신을 타겟 머신으로 결정하는 전자 장치의 동작을 도시하는 흐름도이다. 상기 흐름도에 의해 도시된 전자 장치의 동작은, 도 1의 클라우드 환경(100) 내의 전자 장치(130) 또는 전자 장치(130)의 프로세서((예: 도 7의 프로세서(710))에 의해 실행될 수 있다. 상기 흐름도에 의해 도시된 전자 장치의 동작은, 전자 장치(130)의 메모리(720)에 저장된(또는 일시적으로 저장된) 인스트럭션(instruction)들에 의해 실행될 수 있다. 3 is a flowchart illustrating an operation of an electronic device that determines a candidate machine as a target machine according to a type of workload according to various embodiments. The operation of the electronic device illustrated by the flow chart may be performed by the electronic device 130 or the processor of the electronic device 130 (eg, the processor 710 of FIG. 7) in the cloud environment 100 of FIG. 1. The operation of the electronic device illustrated by the flowchart may be executed by instructions stored in (or temporarily stored in) the memory 720 of the electronic device 130.

도 4는 다양한 실시예들에 따라 구성된 복수의 후보 머신들 각각의 상태 정보의 파라미터들의 예를 도시하는 그래프이다. 4 is a graph showing examples of parameters of state information of each of a plurality of candidate machines configured according to various embodiments.

도 5는 다양한 실시예들에 따라 워크로드의 유형에 따라 후보 머신을 타겟 머신으로 결정하는 예를 도시하는 그래프이다. 5 is a graph illustrating an example of determining a candidate machine as a target machine according to a type of workload according to various embodiments.

도 3의 동작 310 내지 동작 330은 도 2에 도시된 동작 230과 관련될 수 있다. Operations 310 to 330 of FIG. 3 may be related to operation 230 illustrated in FIG. 2.

도 3을 참조하면, 동작 310에서, 전자 장치(130)는, 복수의 후보 머신들(예: 전자 장치(120-1) 내지 전자 장치(120-n)) 각각의 상태 정보를 획득할 수 있다. 다양한 실시예들에서, 상기 상태 정보는, 상기 워크로드의 유형에 따라 고려되는 다양한 파라미터들(또는 요소들)에 의해 구성될 수 있다. 예를 들면, 상기 상태 정보는, 상기 복수의 후보 머신들 각각의 프로세서(예: CPU(central processing unit))의 이용 정도(또는 이용 상태, 이용률)를 나타내는 제1 파라미터, 상기 복수의 후보 머신들 각각의 메모리의 이용 정도(또는 이용 상태, 이용률)를 나타내는 제2 파라미터, 상기 복수의 후보 머신들 각각 내의 적어도 하나의 마이그레이션의 수를 나타내는 제3 파라미터, 상기 복수의 후보 머신들 각각의 비용을 나타내는 제4 파라미터, 또는 상기 복수의 후보 머신들 각각이 요구하는 파워를 나타내는 제5 파라미터 중 적어도 하나로 구성될 수 있다. 상기 제1 파라미터 및 상기 제2 파라미터는 하나의 통합된 파라미터로 상기 상태 정보 내에서 구성될 수도 있다. 예를 들면, 상기 제1 파라미터 및 상기 제2 파라미터가 통합된 파라미터는 상기 복수의 후보 머신들 각각의 자원 이용 정도(또는 이용 상태, 이용률)를 나타낼 수 있다. Referring to FIG. 3, in operation 310, the electronic device 130 may acquire status information of each of a plurality of candidate machines (eg, the electronic devices 120-1 to 120-n). . In various embodiments, the status information may be configured by various parameters (or elements) considered according to the type of workload. For example, the state information may include a first parameter indicating a usage degree (or usage state, utilization rate) of a processor (for example, a central processing unit (CPU)) of each of the plurality of candidate machines, and the plurality of candidate machines A second parameter indicating the degree of utilization (or usage state, utilization rate) of each memory, a third parameter indicating the number of at least one migration in each of the plurality of candidate machines, and a cost for each of the plurality of candidate machines It may be configured as at least one of a fourth parameter or a fifth parameter indicating power required by each of the plurality of candidate machines. The first parameter and the second parameter may be configured in the status information as one integrated parameter. For example, the parameter in which the first parameter and the second parameter are integrated may indicate a resource utilization level (or utilization status, utilization rate) of each of the plurality of candidate machines.

일 실시예에서, 상기 상태 정보는, 지정된 주기마다 전자 장치(130)에 의해 획득될 수 있다. 예를 들면, 전자 장치(130)는 지정된 주기마다 상기 복수의 후보 머신들인 전자 장치(120-1) 내지 전자 장치(120-n) 각각으로부터 상기 상태 정보를 획득할 수 있다. 일 실시예에서, 상기 상태 정보는, 상기 사용자의 상기 요청을 수신하는 것에 응답하여, 획득될 수도 있다. 예를 들면, 전자 장치(130)는, 상기 사용자의 상기 요청을 수신하는 것에 응답하여 상기 복수의 후보 머신들인 전자 장치(120-1) 내지 전자 장치(120-n) 각각에게 상기 상태 정보를 요청하고, 상기 상태 정보의 상기 요청의 응답으로 상기 복수의 후보 머신들인 전자 장치(120-1) 내지 전자 장치(120-n) 각각으로부터 상기 상태 정보를 획득할 수 있다. 하지만, 이에 제한되지 않는다. In one embodiment, the state information may be obtained by the electronic device 130 every specified period. For example, the electronic device 130 may obtain the state information from each of the plurality of candidate machines, the electronic devices 120-1 to the electronic devices 120-n, at a specified period. In one embodiment, the status information may be obtained in response to receiving the request of the user. For example, the electronic device 130 requests the status information to each of the plurality of candidate machines, the electronic devices 120-1 to the electronic devices 120-n, in response to receiving the user's request. And, in response to the request for the status information, the status information may be obtained from each of the plurality of candidate machines, the electronic devices 120-1 to the electronic devices 120-n. However, it is not limited thereto.

동작 320에서, 전자 장치(130)는 동작 220에서 식별된 상기 워크로드의 상기 유형에 기반하여 상기 상태 정보를 구성하는 상기 복수의 파라미터들의 값들을 결정할 수 있다. 예를 들면, 전자 장치(130)는, 상기 복수의 파라미터들이 가지는 측정값에 상기 워크로드의 상기 유형에 기반하여 결정된 가중치들을 적용함으로써, 상기 복수의 파라미터들의 상기 값들을 결정할 수 있다. 예를 들어, 표 1을 참조하면, 전자 장치(130)는 상기 워크로드의 상기 유형이 'low'인 경우 상기 제4 파라미터에 적용되는 가중치를 상기 제1 파라미터, 상기 제2 파라미터, 상기 제3 파라미터, 및 상기 제5 파라미터에 각각 적용되는 가중치들보다 높게 설정함으로써, 상기 복수의 파라미터들의 상기 값들을 결정할 수 있다. 다른 예를 들어, 표 1을 참조하면, 전자 장치(130)는 상기 워크로드의 상기 유형이 'mid'인 경우 상기 복수의 파라미터들 중 상기 제3 파라미터 및 상기 제5 파라미터에 각각 적용되는 가중치들을 상기 제1 파라미터, 상기 제2 파라미터, 및 상기 제4 파라미터에 각각 적용되는 가중치들보다 높게 설정함으로써 상기 복수의 파라미터들의 상기 값들을 결정할 수 있다. 또 다른 예를 들어, 표 1을 참조하면, 전자 장치(130)는 상기 워크로드의 상기 유형이 'high'인 경우 상기 복수의 파라미터들 중 상기 제1 파라미터 및 상기 제2 파라미터에 각각 적용되는 가중치들을 상기 제3 파라미터 내지 상기 제5 파라미터에 각각 적용되는 가중치들보다 높게 설정함으로써 상기 복수의 파라미터들의 상기 값들을 결정할 수 있다. 하지만, 이에 제한되지 않는다. In operation 320, the electronic device 130 may determine values of the plurality of parameters constituting the status information based on the type of the workload identified in operation 220. For example, the electronic device 130 may determine the values of the plurality of parameters by applying weights determined based on the type of the workload to the measurement values of the plurality of parameters. For example, referring to Table 1, when the type of the workload is'low', the electronic device 130 sets the weight applied to the fourth parameter to the first parameter, the second parameter, and the third. The values of the plurality of parameters may be determined by setting higher than the weights respectively applied to the parameters and the fifth parameter. For another example, referring to Table 1, when the type of the workload is'mid', the electronic device 130 determines weights applied to the third parameter and the fifth parameter among the plurality of parameters, respectively. The values of the plurality of parameters may be determined by setting higher values than the weights respectively applied to the first parameter, the second parameter, and the fourth parameter. For another example, referring to Table 1, when the type of the workload is'high', the electronic device 130 has a weight applied to each of the first and second parameters among the plurality of parameters. The values of the plurality of parameters may be determined by setting the values higher than the weights respectively applied to the third parameter to the fifth parameter. However, it is not limited thereto.

예를 들어, 도 4를 참조하면, 그래프(400)는, 상기 복수의 후보 머신들(예: A1 내지 A5) 각각의 제1 파라미터(CU)의 측정값, 제2 파라미터(MU)의 측정값, 제3 파라미터(NM), 제5 파라미터(PW), 및 제4 파라미터(CT)의 측정값을 나타낸다. 전자 장치(130)는, 그래프(400)에 표현된 상기 복수의 파라미터들(예: 제1 파라미터 내지 제5 파라미터)의 측정값들에 상기 워크로드의 상기 유형에 대응하는 가중치들을 각각 적용함으로써 그래프(500)에 의해 표현되는 데이터를 획득할 수 있다. For example, referring to FIG. 4, the graph 400 is a measured value of a first parameter CU of each of the plurality of candidate machines (eg, A1 to A5), and a measured value of a second parameter MU. , The measured values of the third parameter NM, the fifth parameter PW, and the fourth parameter CT. The electronic device 130 graphs by applying weights corresponding to the type of the workload to the measured values of the plurality of parameters (eg, first to fifth parameters) expressed in the graph 400, respectively Data represented by 500 may be acquired.

예를 들어, 도 5를 참조하면, 그래프(500)는, 상기 복수의 후보 머신들(예: A1 내지 A5) 중 전자 장치(130)에 의해 식별된 상기 워크로드의 상기 유형에 가장 대응하는 후보 머신(A2)을 나타낸다. 다시 말해, 전자 장치(130)는, 상기 워크로드의 상기 유형에 기반하여 상기 복수의 파라미터들의 측정값들에 각각 가중치들을 적용함으로써, 가상 머신을 위한 마이그레이션을 위해 요구되는 자원 효율성을 강화할 수 있다. For example, referring to FIG. 5, the graph 500 is a candidate that most corresponds to the type of the workload identified by the electronic device 130 among the plurality of candidate machines (eg, A1 to A5). Machine A2 is shown. In other words, the electronic device 130 may enhance resource efficiency required for migration for a virtual machine by applying weights to measurements of the plurality of parameters based on the type of the workload.

일 실시예에서, 전자 장치(130)는, 상기 복수의 파라미터들의 상기 값들을 결정하기 위해 리소스 이용률에 대한 정보를 획득할 수 있고, 상기 리소스 이용률에 대한 정보는 하기의 수학식 1 및 수학식 2와 같은 제한 조건을 가질 수 있다. In one embodiment, the electronic device 130 may obtain information on resource utilization rate to determine the values of the plurality of parameters, and information on the resource utilization rate is Equation 1 and Equation 2 below. It can have the following restrictions.

Figure pat00001
Figure pat00001

Figure pat00002
Figure pat00002

수학식 1에서, '

Figure pat00003
'은 해당 가상 머신의 리소스 이용률을 의미하고, 'Requested util'은 요구된 리소스의 양을 의미하며, 'Total available'은 해당 가상 머신이 이용 가능한 리소스의 총량을 의미할 수 있다. In Equation 1, '
Figure pat00003
'Means the resource utilization rate of the corresponding virtual machine,'Requested util' means the amount of the requested resource, and'Total available' may mean the total amount of resources available to the virtual machine.

수학식 2에서, '

Figure pat00004
'은 가상 머신들을 포함하는 해당 물리적 머신(예: 상기 복수의 후보 머신들 중 하나)의 리소스 이용률을 의미하고, '
Figure pat00005
'은 상기 해당 물리적 머신 내에 포함된 상기 가상 머신들의 리소스 이용률의 총 합을 의미하며, 'Total available of the PM"은 상기 해당 물리적 머신이 이용가능한 리소스의 총량을 의미할 수 있다. In Equation 2, '
Figure pat00004
'Means a resource utilization rate of a corresponding physical machine including virtual machines (for example, one of the plurality of candidate machines), and'
Figure pat00005
'Means the total sum of resource utilization of the virtual machines included in the physical machine, and'Total available of the PM' may mean the total amount of resources available to the physical machine.

예를 들면, 전자 장치(130)는 표 2 및 표 3와 같이 상기 제1 파라미터 내지 상기 제5 파라미터의 측정값 각각에 적용될 가중치들을 구성할 수 있다. For example, the electronic device 130 may configure weights to be applied to each of the measured values of the first parameter to the fifth parameter, as shown in Table 2 and Table 3.

Relative importanceRelative importance ValueValue Equal importance/qualityEqual importance/quality 1One Somewhat more important/betterSomewhat more important/better 33 Definitely more important/betterDefinitely more important/better 55 Much more important/betterMuch more important/better 77 Extremely more important/betterExtremely more important/better 99

M1M1 M2M2 ?? ?? MnMn M1M1 V1/V1V1/V1 V1/V2V1/V2 ?? ?? V1/Vn V1/Vn M2M2 V2/V1V2/V1 V2/V2 V2/V2 ?? ?? V2/Vn V2/Vn ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? MnMn Vn/V1 Vn/V1 V2/Vn V2/Vn ?? ?? Vn/Vn Vn/Vn

동작 330에서, 전자 장치(130)는 상기 결정된 값들(예: 상기 복수의 파라미터들에 가중치들이 각각 적용된 값들)에 기반하여 상기 복수의 후보 머신들 중 상기 후보 머신을 상기 타겟 머신으로 결정할 수 있다. 예를 들어, 도 5를 참조하면, 전자 장치(130)는, 그래프(500)에서와 같이, 상기 복수의 후보 머신들(예: A1, A2, A3, A4, 및 A5) 중 가장 높은 상기 결정된 값을 가지는 후보 머신(예: A2)을 상기 타겟 머신으로 결정할 수 있다. In operation 330, the electronic device 130 may determine the candidate machine among the plurality of candidate machines as the target machine based on the determined values (eg, values to which the weights are respectively applied to the plurality of parameters). For example, referring to FIG. 5, as shown in the graph 500, the electronic device 130 determines the highest of the plurality of candidate machines (eg, A1, A2, A3, A4, and A5). A candidate machine having a value (eg, A2) may be determined as the target machine.

상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(130)는 상기 복수의 후보 머신들(예: 전자 장치(120-1) 내지 전자 장치(120-n))의 상태 정보를 구성하는 복수의 파라미터들에 워크로드의 유형에 기반하여 식별된 가중치들을 각각 적용함으로써 상기 복수의 파라미터들의 값들을 정의함으로써, 클라우드 환경(100) 내에서 강화된 서비스를 제공할 수 있다. As described above, the electronic device 130 according to various embodiments includes a plurality of pieces of state information of the plurality of candidate machines (eg, the electronic devices 120-1 to 120-n). By defining the values of the plurality of parameters by applying the identified weights to the parameters, respectively, based on the type of workload, it is possible to provide an enhanced service in the cloud environment 100.

도 6은 다양한 실시예들에 따라 타겟 머신으로 결정된 후보 머신의 QoS가 타겟 QoS를 충족하는지 여부를 결정하는 전자 장치의 동작을 도시하는 흐름도이다. 상기 흐름도에 의해 도시된 전자 장치의 동작은, 도 1의 클라우드 환경(100) 내의 전자 장치(130) 또는 전자 장치(130)의 프로세서((예: 도 7의 프로세서(710))에 의해 실행될 수 있다. 상기 흐름도에 의해 도시된 전자 장치의 동작은, 전자 장치(130)의 메모리(720)에 저장된(또는 일시적으로 저장된) 인스트럭션(instruction)들에 의해 실행될 수 있다. 6 is a flowchart illustrating an operation of an electronic device that determines whether a QoS of a candidate machine determined as a target machine satisfies a target QoS according to various embodiments. The operation of the electronic device illustrated by the flow chart may be performed by the electronic device 130 or the processor of the electronic device 130 (eg, the processor 710 of FIG. 7) in the cloud environment 100 of FIG. 1. The operation of the electronic device illustrated by the flowchart may be executed by instructions stored in (or temporarily stored in) the memory 720 of the electronic device 130.

도 6의 동작 610 내지 동작 630은 도 2의 동작 230 내지 240과 관련될 수 있다. Operations 610 to 630 of FIG. 6 may be associated with operations 230 to 240 of FIG. 2.

도 6을 참조하면, 동작 610에서, 전자 장치(130)는 상기 식별된 워크로드의 유형에 대응하는 상기 후보 머신을 상기 타겟 머신으로 결정할 수 있다. 예를 들면, 동작 610은 도 2의 동작 230에 대응할 수 있다. Referring to FIG. 6, in operation 610, the electronic device 130 may determine the candidate machine corresponding to the identified type of workload as the target machine. For example, operation 610 may correspond to operation 230 of FIG. 2.

동작 620에서, 전자 장치(130)는, 상기 결정된 후보 머신의 QoS가 상기 사용자의 요청(예: 도 2의 동작 210의 사용자의 요청)의 타겟 QoS에 대응하는지 여부를 식별할 수 있다. 예를 들면, 전자 장치(130)는, 상기 결정된 후보 머신의 상태를 모니터링함으로써 상기 결정된 후보 머신의 QoS가 상기 사용자의 요청의 타겟 QoS에 대응하는지 여부를 추정할 수 있다. 다른 예를 들면, 전자 장치(130)는 상기 결정된 후보 머신과의 정보 교환을 통해 상기 결정된 후보 머신의 QoS가 상기 사용자의 요청의 타겟 QoS에 대응하는지 여부를 확인할 수 있다. 상기 결정된 후보 머신의 QoS가 상기 사용자의 요청의 타겟 QoS에 대응함을 식별하는 경우, 전자 장치(130)는 동작 630을 실행할 수 있다. 상기 결정된 후보 머신의 QoS가 상기 사용자의 요청의 타겟 QoS에 대응하지 않음을 식별하는 경우, 전자 장치(130)는 동작 610을 재차 실행할 수 있다. 예를 들어, 상기 결정된 후보 머신의 QoS가 상기 사용자의 요청의 타겟 QoS에 대응하지 않음을 식별하는 경우, 전자 장치(130)는 동작 220을 재차 실행하거나 동작 610을 재차 실행함으로써 상기 후보 머신과 구별되는 다른 후보 머신을 상기 타겟 머신으로 결정할 수 있다. In operation 620, the electronic device 130 may identify whether the determined QoS of the candidate machine corresponds to the target QoS of the user's request (eg, the user's request in operation 210 of FIG. 2). For example, the electronic device 130 may estimate whether the QoS of the determined candidate machine corresponds to the target QoS of the user's request by monitoring the status of the determined candidate machine. For another example, the electronic device 130 may check whether the QoS of the determined candidate machine corresponds to the target QoS of the user's request through information exchange with the determined candidate machine. When it is determined that the determined QoS of the candidate machine corresponds to the target QoS of the user's request, the electronic device 130 may execute operation 630. If it is determined that the determined QoS of the candidate machine does not correspond to the target QoS of the user's request, the electronic device 130 may perform operation 610 again. For example, when it is identified that the determined candidate machine's QoS does not correspond to the target QoS of the user's request, the electronic device 130 distinguishes it from the candidate machine by executing operation 220 again or operation 610 again. Another candidate machine can be determined as the target machine.

동작 630에서, 상기 결정된 후보 머신의 QoS가 사용자의 요청의 타겟 QoS에 대응함을 식별하는 경우, 전자 장치(130)는 상기 결정된 후보 머신으로 상기 가상 머신을 위한 마이그레이션을 수행할 수 있다. 예를 들면, 동작 630은 도 2의 동작 240에 대응할 수 있다. In operation 630, when it is identified that the determined QoS of the candidate machine corresponds to the target QoS of the user's request, the electronic device 130 may perform migration for the virtual machine to the determined candidate machine. For example, operation 630 may correspond to operation 240 of FIG. 2.

상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(130)는, 사용자의 요청의 타겟 QoS와 마이그레이션이 수행될 후보 머신의 QoS를 비교함으로써, 상기 사용자의 상기 요청에 부합하는 후보 머신을 타겟 머신으로 결정할 수 있다. 다양한 실시예들에 따른 전자 장치(130)는, 이러한 결정 동작을 통해, 강화된 클라우드 서비스를 클라우드 환경(100)을 통해 제공할 수 있다. As described above, the electronic device 130 according to various embodiments compares the target QoS of the user's request with the QoS of the candidate machine to be migrated, thereby targeting the candidate machine that satisfies the user's request. You can decide. The electronic device 130 according to various embodiments may provide an enhanced cloud service through the cloud environment 100 through the determination operation.

도 7은 다양한 실시예들에 따른 전자 장치의 간소화된 블록도이다. 도 7의 간소화된 블록도는 도 1에 도시된 전자 장치(130)의 기능적 구성들을 나타낼 수 있다. 이러한 기능적 구성들은 도 2 내지 도 6의 설명을 통해 기술된 동작들을 실행하기 위해 전자 장치(130)에 포함될 수 있다. 7 is a simplified block diagram of an electronic device according to various embodiments. The simplified block diagram of FIG. 7 may represent functional configurations of the electronic device 130 shown in FIG. 1. These functional configurations may be included in the electronic device 130 to perform the operations described through the description of FIGS. 2 to 6.

도 7을 참조하면, 전자 장치(130)는 프로세서(710), 메모리(720), 및 통신 모듈(730)(또는 통신 회로(730))을 포함할 수 있다. Referring to FIG. 7, the electronic device 130 may include a processor 710, a memory 720, and a communication module 730 (or communication circuit 730 ).

프로세서(710)는 전자 장치(130)의 전반적인 동작을 제어할 수 있다. 다양한 실시예들에서, 프로세서(710)는 하나의 프로세서 코어(single core)를 포함하거나, 복수의 프로세서 코어들을 포함할 수 있다. 예를 들면, 프로세서(710)는 듀얼 코어(dual-core), 쿼드 코어(quad-core), 헥사 코어(hexa-core) 등의 멀티 코어(multi-core)를 포함할 수 있다. 실시 예들에 따라, 프로세서(710)는 내부 또는 외부에 위치된 캐시 메모리(cache memory)를 더 포함할 수 있다. The processor 710 may control the overall operation of the electronic device 130. In various embodiments, the processor 710 may include a single processor core or a plurality of processor cores. For example, the processor 710 may include multi-cores such as dual-core, quad-core, and hexa-core. According to embodiments, the processor 710 may further include a cache memory located inside or outside.

프로세서(710)는 전자 장치(130)의 다른 구성 요소들의 명령을 수신할 수 있고, 수신된 명령을 해석할 수 있으며, 해석된 명령에 따라 계산을 수행하거나 데이터를 처리할 수 있다. The processor 710 may receive commands of other components of the electronic device 130, interpret the received commands, and perform calculations or process data according to the interpreted commands.

프로세서(710)는 프로그램에서 생성되거나 발생되는 데이터 또는 신호를 처리할 수 있다. 예를 들면, 프로세서(710)는 프로그램을 실행하거나 제어하기 위해 메모리(720)에게 명령어, 데이터 또는 신호를 요청할 수 있다. 프로세서(710)는 프로그램을 실행하거나 제어하기 위해 메모리(720)에게 명령어, 데이터, 또는 신호를 기록(또는 저장)하거나 갱신할 수 있다. The processor 710 may process data or signals generated or generated in a program. For example, the processor 710 may request instructions, data, or signals from the memory 720 to execute or control a program. The processor 710 may write (or store) or update instructions, data, or signals to the memory 720 to execute or control a program.

프로세서(710)는 메모리(720) 또는 통신 모듈(730)로부터 수신되는 메시지, 데이터, 명령어, 또는 신호를 해석할 수 있고, 가공할 수 있다. 프로세서(710)는 수신된 메시지, 데이터, 명령어, 또는 신호에 기반하여 새로운 메시지, 데이터, 명령어, 또는 신호를 생성할 수 있다. 프로세서(710)는 가공되거나 생성된 메시지, 데이터, 명령어, 또는 신호를 메모리(720) 또는 통신 모듈(730)에게 제공할 수 있다. The processor 710 may interpret and process messages, data, instructions, or signals received from the memory 720 or the communication module 730. The processor 710 may generate a new message, data, instruction, or signal based on the received message, data, instruction, or signal. The processor 710 may provide a processed or generated message, data, instruction, or signal to the memory 720 or the communication module 730.

프로세서(710)의 전부 또는 일부는 전자 장치(130) 내의 다른 구성 요소(예를 들면, 메모리(720), 통신 모듈(730)과 전기적으로(electrically) 또는 작동적으로(operably 또는 operatively) 결합(coupled with)되거나 연결될(connected to) 수 있다. All or part of the processor 710 is electrically or operatively coupled with other components (eg, the memory 720, the communication module 730) in the electronic device 130 ( It can be coupled with) or connected to.

실시 예들에 따라, 프로세서(710)는 하나 또는 그 이상의 프로세서들로 구성될(configured with) 수 있다. According to embodiments, the processor 710 may be configured with one or more processors.

메모리(720)는 전자 장치(130)를 제어하는 명령어, 제어 명령어 코드, 제어 데이터, 또는 사용자 데이터를 저장할 수 있다. 예를 들면, 메모리(720)는 어플리케이션(application) 프로그램, OS(operating system), 미들웨어(middleware), 디바이스 드라이버(device driver)를 포함할 수 있다. The memory 720 may store commands for controlling the electronic device 130, control command codes, control data, or user data. For example, the memory 720 may include an application program, an operating system (OS), middleware, and a device driver.

메모리(720)는 휘발성 메모리(volatile memory) 또는 불휘발성(non-volatile memory) 중 하나 이상을 포함할 수 있다. 휘발성 메모리는 DRAM(dynamic random access memory), SRAM(static RAM), SDRAM(synchronous DRAM), PRAM(phase-change RAM), MRAM(magnetic RAM), RRAM(resistive RAM), FeRAM(ferroelectric RAM) 등을 포함할 수 있다. 불휘발성 메모리는 ROM(read only memory), PROM(programmable ROM), EPROM(electrically programmable ROM), EEPROM(electrically erasable programmable ROM), 플래시 메모리(flash memory) 등을 포함할 수 있다. The memory 720 may include one or more of volatile memory or non-volatile memory. Volatile memory includes dynamic random access memory (DRAM), static RAM (SRAM), synchronous DRAM (SDRAM), phase-change RAM (PRAM), magnetic RAM (MRAM), resistive RAM (RRAM), and ferroelectric RAM (FeRAM). It can contain. The nonvolatile memory may include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, and the like.

메모리(720)는 하드 디스크 드라이브(HDD, hard disk drive), 솔리드 스테이트 디스크(SSD, solid state disk), eMMC(embedded multi media card), UFS(universal flash storage)와 같은 불휘발성 매체(medium)를 포함할 수 있다. The memory 720 includes a nonvolatile medium such as a hard disk drive (HDD), a solid state disk (SSD), an embedded multi media card (eMMC), and universal flash storage (UFS). It can contain.

통신 모듈(730)는 전자 장치(130)와 외부 전자 장치(예: 전자 장치(120-1) 내지 전자 장치(120-n))간의 유선 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 일실시예에 따르면, 통신 모듈(730)은 무선 통신 회로(예: 셀룰러 통신 회로, 근거리 무선 통신 회로, 또는 GNSS(global navigation satellite system) 통신 회로) 또는 유선 통신 회로(예: LAN(local area network) 통신 회로, 또는 전력선 통신 회로)를 포함하고, 그 중 해당하는 통신 회로를 이용하여 제 1 네트워크(예: 블루투스, WiFi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제 2 네트워크(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 상술한 여러 종류의 통신 모듈(730)은 하나의 칩으로 구현되거나 또는 각각 별도의 칩으로 구현될 수 있다. The communication module 730 establishes a wired or wireless communication channel between the electronic device 130 and an external electronic device (eg, the electronic devices 120-1 to 120-n), and through the established communication channel. Can support communication performance. According to one embodiment, the communication module 730 may include a wireless communication circuit (eg, a cellular communication circuit, a short-range wireless communication circuit, or a global navigation satellite system (GNSS) communication circuit) or a wired communication circuit (eg, a local area network (LAN). ) Includes a communication circuit, or a power line communication circuit, of which a first network (e.g., a short-range communication network such as Bluetooth, WiFi direct, or infrared data association (IrDA)) or a second network (e.g. : Can communicate with an external electronic device through a cellular network, the Internet, or a telecommunication network such as a computer network (eg, LAN or WAN). The above-described various types of communication modules 730 may be implemented as one chip or may be implemented as separate chips.

상술한 바와 같은 다양한 실시예들에 따른 클라우드 환경(100) 내의 전자 장치(130)는, 통신 모듈(730)과, 적어도 하나의 프로세서(710)와, 인스트럭션들을 저장하는 적어도 하나의 메모리(720)를 포함하고, 적어도 하나의 프로세서(710)는, 상기 인스트럭션들을 실행할 시, 사용자의 요청을 수신하고, 상기 수신에 응답하여, 상기 사용자의 상기 요청과 관련된 서비스의 워크로드(workload)의 유형을 식별하고, 상기 클라우드 환경 내의 복수의 후보 머신들 중 상기 식별된 워크로드의 유형에 대응하는 후보 머신을 타겟 머신으로 결정하고, 상기 결정된 후보 머신으로 가상 머신을 위한 마이그레이션(migration)을 상기 통신 모듈을 이용하여 수행하도록 구성될 수 있다. The electronic device 130 in the cloud environment 100 according to various embodiments as described above includes a communication module 730, at least one processor 710, and at least one memory 720 for storing instructions. And at least one processor 710, upon executing the instructions, receives a user request and, in response to the reception, identifies a type of workload of a service associated with the request of the user Then, a candidate machine corresponding to the identified workload type among a plurality of candidate machines in the cloud environment is determined as a target machine, and the communication module uses migration for a virtual machine as the determined candidate machine It can be configured to perform.

다양한 실시예들에서, 적어도 하나의 프로세서(710)는, 상기 수신에 응답하여, 상기 복수의 후보 머신들 각각의 상태 정보를 획득하고, 상기 식별된 워크로드의 유형에 기반하여, 상기 상태 정보를 구성하는 복수의 파라미터들의 값들을 결정하고, 상기 결정된 값들에 기반하여, 상기 복수의 후보 머신들 중 상기 후보 머신을 상기 타겟 머신으로 결정하도록 구성될 수 있다. In various embodiments, at least one processor 710, in response to the reception, obtains status information of each of the plurality of candidate machines, and based on the identified type of workload, the status information It may be configured to determine values of a plurality of parameters to configure, and to determine the candidate machine among the plurality of candidate machines as the target machine based on the determined values.

일 실시예에서, 상기 복수의 파라미터들은, 상기 복수의 후보 머신들 각각의 프로세서의 이용 정도를 나타내는 제1 파라미터, 상기 복수의 후보 머신들 각각의 메모리의 이용 정도를 나타내는 제2 파라미터, 상기 복수의 후보 머신들 각각 내의 적어도 하나의 마이그레이션의 수를 나타내는 제3 파라미터, 상기 복수의 후보 머신들 각각의 비용을 나타내는 제4 파라미터, 및 상기 복수의 후보 머신들 각각이 요구하는 파워를 나타내는 제5 파라미터를 포함할 수 있다. In one embodiment, the plurality of parameters include a first parameter indicating a degree of use of each of the plurality of candidate machines, a second parameter indicating a level of use of each of the plurality of candidate machines, and the plurality of parameters. A third parameter indicating the number of at least one migration in each of the candidate machines, a fourth parameter indicating the cost of each of the plurality of candidate machines, and a fifth parameter indicating the power required by each of the plurality of candidate machines. It can contain.

일 실시예에서, 적어도 하나의 프로세서(710)는, 상기 복수의 파라미터들 중 상기 식별된 워크로드의 유형에 대응하는 파라미터에 가장 높은 가중치를 적용함으로써, 상기 복수의 파라미터들의 값들을 각각 결정하도록 구성될 수 있다. In one embodiment, at least one processor 710 is configured to respectively determine values of the plurality of parameters by applying the highest weight to a parameter corresponding to the identified workload type among the plurality of parameters. Can be.

일 실시예에서, 적어도 하나의 프로세서(710)는, 상기 결정된 후보 머신의 QoS(quality of service)가 상기 사용자의 상기 요청의 타겟 QoS에 대응하는지 여부를 확인하고, 상기 결정된 후보 머신의 QoS가 상기 타겟 QoS에 대응함을 확인하는 것에 기반하여, 상기 마이그레이션을 수행하도록 구성될 수 있다. 예를 들면, 적어도 하나의 프로세서(710)는, 상기 결정된 후보 머신의 QoS가 상기 타겟 QoS에 대응하지 않음을 확인하는 것에 기반하여, 상기 마이그레이션을 수행하는 것을 우회하고 상기 타겟 머신을 다시 결정하도록 더 구성될 수 있다. In one embodiment, at least one processor 710 checks whether the determined candidate machine's quality of service (QoS) corresponds to the target QoS of the user's request, and the determined candidate machine's QoS is Based on confirming that it corresponds to the target QoS, it may be configured to perform the migration. For example, at least one processor 710 is further configured to bypass performing the migration and re-determine the target machine based on confirming that the determined candidate machine's QoS does not correspond to the target QoS. Can be configured.

다양한 실시예들에서, 상기 워크로드의 유형은, 웹을 통해 상기 서비스를 이용하는 사용자들의 수에 기반하여 식별될 수 있다. 일 실시예에서, 상기 복수의 파라미터들은, 상기 복수의 후보 머신들 각각의 프로세서의 이용 정도를 나타내는 제1 파라미터, 상기 복수의 후보 머신들 각각의 메모리의 이용 정도를 나타내는 제2 파라미터, 상기 복수의 후보 머신들 각각 내의 적어도 하나의 마이그레이션의 수를 나타내는 제3 파라미터, 상기 복수의 후보 머신들 각각의 비용을 나타내는 제4 파라미터, 및 상기 복수의 후보 머신들 각각이 요구하는 파워를 나타내는 제5 파라미터를 포함할 수 있고, 상기 워크로드의 유형은, 상기 사용자들의 수가 제1 임계값 미만인 경우 상기 제4 파라미터에 적용되는 가중치를 상기 제1 파라미터, 상기 제2 파라미터, 상기 제3 파라미터, 및 상기 제5 파라미터에 각각 적용되는 가중치들보다 높게 설정하는 제1 유형, 상기 사용자들의 수가 상기 제1 임계값 이상이고 제2 임계값 미만인 경우 상기 제3 파라미터와 상기 제5 파라미터에 각각 적용되는 가중치들을 상기 제1 파라미터, 상기 제2 파라미터, 및 상기 제4 파라미터에 각각 적용되는 가중치들보다 높게 설정하는 제2 유형, 및 상기 제1 파라미터 및 상기 제2 파라미터에 각각 적용되는 가중치들을 상기 제3 파라미터 내지 상기 제5 파라미터에 각각 적용되는 가중치들보다 높게 설정하는 제3 유형을 포함할 수 있다. In various embodiments, the type of workload can be identified based on the number of users using the service over the web. In one embodiment, the plurality of parameters include a first parameter indicating a degree of use of each of the plurality of candidate machines, a second parameter indicating a level of use of each of the plurality of candidate machines, and the plurality of parameters. A third parameter indicating the number of at least one migration in each of the candidate machines, a fourth parameter indicating the cost of each of the plurality of candidate machines, and a fifth parameter indicating the power required by each of the plurality of candidate machines. The type of workload may include a weight applied to the fourth parameter when the number of users is less than a first threshold, the first parameter, the second parameter, the third parameter, and the fifth The first type, which is set higher than the weights applied to each parameter, and the number of users applied to the third parameter and the fifth parameter when the number of users is greater than or equal to the first threshold and less than the second threshold, are applied to the first The second type to set higher than the weights applied to the parameter, the second parameter, and the fourth parameter, and the weights applied to the first parameter and the second parameter respectively are the third parameter to the fifth It may include a third type that is set higher than the weight applied to each parameter.

다양한 실시예들에서, 상기 사용자의 상기 요청은, 상기 가상 머신의 할당을 요구하는 입력에 대응할 수 있다. In various embodiments, the request of the user may correspond to an input requiring allocation of the virtual machine.

다양한 실시예들에서, 상기 사용자의 상기 요청은, 상기 클라우드 환경 내의 제1 데이터 센터로부터 상기 제1 데이터 센터와 구별되는 상기 클라우드 환경 내의 제2 데이터 센터로의 상기 사용자의 위치 변경에 의해 야기될 수 있다. In various embodiments, the request of the user may be caused by a change of the user's location from a first data center in the cloud environment to a second data center in the cloud environment distinct from the first data center. have.

도 8은 다양한 실시예들에 따른 클라우드 환경 내에 포함된 전자 장치의 모듈들의 간소화된 블록도이다. 도 8의 간소화된 블록도는 도 1에 도시된 전자 장치(130)의 기능적 모듈들을 나타낼 수 있다. 이러한 기능적 모듈들은 도 2 내지 도 6의 설명을 통해 기술된 동작들을 실행하기 위해 전자 장치(130)에 포함될 수 있다. 8 is a simplified block diagram of modules of an electronic device included in a cloud environment according to various embodiments. The simplified block diagram of FIG. 8 may represent functional modules of the electronic device 130 shown in FIG. 1. These functional modules may be included in the electronic device 130 to perform the operations described through the description of FIGS. 2 to 6.

도 8을 참조하면, 전자 장치(130)는 모듈들로서, 모니터링부(810), 워크로드 분류부(820), 가상머신 정책 결정부(830), 및 가상머신 마이그레이션 제어부(840)를 포함할 수 있다. Referring to FIG. 8, the electronic device 130 is a module, and may include a monitoring unit 810, a workload classification unit 820, a virtual machine policy determination unit 830, and a virtual machine migration control unit 840. have.

모니터링부(810)는, 복수의 후보 머신들인 전자 장치(120-1) 내지 전자 장치(120-n)의 상태 정보를 획득할 수 있다. 예를 들면, 모니터링부(810)는, 복수의 후보 머신들인 전자 장치(120-1) 내지 전자 장치(120-n) 각각과의 통신 연결을 통해, 상기 상태 정보를 획득할 수 있다. 다양한 실시예들에서, 상기 상태 정보는, 전술한 상기 제1 파라미터 내지 상기 제5 파라미터의 측정값들에 대한 데이터를 포함할 수 있다. 모니터링부(810)는, 상기 상태 정보를 워크로드 분류부(820)에게 제공할 수 있다. The monitoring unit 810 may obtain status information of the electronic devices 120-1 to 120-n, which are a plurality of candidate machines. For example, the monitoring unit 810 may acquire the status information through a communication connection with each of the plurality of candidate machines, the electronic device 120-1 to the electronic device 120-n. In various embodiments, the status information may include data on measured values of the first parameter to the fifth parameter. The monitoring unit 810 may provide the status information to the workload classification unit 820.

워크로드 분류부(820)는, 상기 상태 정보를 모니터링부(810)로부터 획득할 수 있다. 한편, 워크로드 분류부(820)는, 클라우드 환경(100)을 통해 제공되는 어플리케이션의 유형, 클라우드 환경(100) 내에서 제공되는 서비스의 유형, 또는 클라우드 환경(100) 내에서 제공되는 서비스의 특성 중 적어도 하나에 기반하여, 워크로드의 유형을 분류할 수 있다. 예를 들어, 표 1을 참조하면, 워크로드 분류부(820)는, 웹에 동시 접속된 사용자들의 수가 200 이하인 경우 상기 워크로드의 상기 유형을 'low'로 분류하고, 웹에 동시 접속된 사용자들의 수가 200 초과 300 이하인 경우 상기 워크로드의 상기 유형을 'mid'로 분류하며, 웹에 동시 접속된 사용자들의 수가 300 초과인 경우 상기 워크로드의 상기 유형을 'high'로 분류할 수 있다. 워크로드 분류부(820)는, 상기 상태 정보 및 상기 분류된 유형에 대한 정보를 가상머신 정책 결정부(830)에게 제공할 수 있다. The workload classifying unit 820 may obtain the status information from the monitoring unit 810. On the other hand, the workload classification unit 820, the type of application provided through the cloud environment 100, the type of service provided in the cloud environment 100, or the characteristics of the service provided in the cloud environment 100 Based on at least one of the, it is possible to classify the type of workload. For example, referring to Table 1, the workload classification unit 820 classifies the type of the workload as'low' when the number of users simultaneously connected to the web is 200 or less, and users simultaneously connected to the web. When the number of users is more than 200 and less than 300, the type of the workload is classified as'mid', and when the number of users simultaneously connected to the web is more than 300, the type of workload can be classified as'high'. The workload classifying unit 820 may provide the state information and information on the classified type to the virtual machine policy determination unit 830.

가상머신 정책 결정부(830)는, 워크로드 분류부(820)로부터 상기 상태 정보 및 상기 분류된 유형에 대한 정보를 획득할 수 있다. 가상머신 정책 결정부(830)는, 상기 획득된 정보에 기반하여, 상기 파라미터들의 측정값들에 가중치들을 각각 적용함으로써, 상기 복수의 후보 머신들인 전자 장치(120-1) 내지 전자 장치(120-n) 중에서 하나의 전자 장치를 타겟 머신으로 결정할 수 있다. 가상머신 정책 결정부(830)는 상기 결정된 타겟 머신에 대한 정보를 가상머신 마이그레이션 제어부(840)에게 제공할 수 있다. The virtual machine policy determination unit 830 may obtain the status information and information about the classified type from the workload classification unit 820. The virtual machine policy determining unit 830 applies the weights to the measured values of the parameters, based on the obtained information, so that the plurality of candidate machines are the electronic devices 120-1 to 120- n), one electronic device may be determined as the target machine. The virtual machine policy determination unit 830 may provide information on the determined target machine to the virtual machine migration control unit 840.

가상머신 마이그레이션 제어부(840)는 상기 결정된 타겟 머신에 대한 정보를 가상머신 정책 결정부(840)로부터 획득할 수 있다. 가상머신 마이그레이션 제어부(840)는, 상기 타겟 머신으로 상기 가상머신을 위한 마이그레이션을 수행할 수 있다. 예를 들면, 가상머신 마이그레이션 제어부(840)는, 전자 장치(120-k)로부터 전자 장치(120-n)로의 가상머신을 위한 마이그레이션을 수행할 수 있다. 예를 들면, 가상머신 마이그레이션 제어부(840)는, 상기 결정된 타겟 머신의 QoS가 사용자의 요청의 QoS에 대응함을 식별하는 것에 기반하여, 상기 가상머신을 위한 상기 마이그레이션을 수행할 수 있다. The virtual machine migration control unit 840 may obtain information on the determined target machine from the virtual machine policy determination unit 840. The virtual machine migration control unit 840 may perform migration for the virtual machine to the target machine. For example, the virtual machine migration control unit 840 may perform migration for the virtual machine from the electronic device 120-k to the electronic device 120-n. For example, the virtual machine migration control unit 840 may perform the migration for the virtual machine based on identifying that the determined QoS of the target machine corresponds to the QoS of the user's request.

상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(130)는, 정책 기반으로 마이그레이션의 타겟 장치를 결정함으로써, 보다 높은 자원 효율성을 제공할 수 있다. As described above, the electronic device 130 according to various embodiments may provide higher resource efficiency by determining a target device for migration based on a policy.

본 개시의 청구항 또는 명세서에 기재된 실시예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다. Methods according to embodiments described in the claims or specification of the present disclosure may be implemented in the form of hardware, software, or a combination of hardware and software.

소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체가 제공될 수 있다. 컴퓨터 판독 가능 저장 매체에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금 본 개시의 청구항 또는 명세서에 기재된 실시예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다. When implemented in software, a computer readable storage medium storing one or more programs (software modules) may be provided. One or more programs stored in a computer-readable storage medium are configured to be executable by one or more processors in an electronic device. One or more programs include instructions that cause an electronic device to execute methods according to embodiments described in the claims or specification of this disclosure.

이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (random access memory), 플래시(flash) 메모리를 포함하는 불휘발성(non-volatile) 메모리, 롬(ROM: read only memory), 전기적 삭제가능 프로그램가능 롬(EEPROM: electrically erasable programmable read only memory), 자기 디스크 저장 장치(magnetic disc storage device), 컴팩트 디스크 롬(CD-ROM: compact disc-ROM), 디지털 다목적 디스크(DVDs: digital versatile discs) 또는 다른 형태의 광학 저장 장치, 마그네틱 카세트(magnetic cassette)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다. Such programs (software modules, software) include random access memory, non-volatile memory including flash memory, read only memory (ROM), and electrically erasable programmable ROM. (EEPROM: electronic erasable programmable read only memory), magnetic disc storage device, compact disc-ROM (CD-ROM), digital versatile discs (DVDs) or other forms It can be stored in an optical storage device, a magnetic cassette. Or, it may be stored in a memory composed of some or all of these combinations. Also, a plurality of configuration memories may be included.

또한, 상기 프로그램은 인터넷(Internet), 인트라넷(Intranet), LAN(local area network), WLAN(wide LAN), 또는 SAN(storage area network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 개시의 실시 예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크상의 별도의 저장장치가 본 개시의 실시 예를 수행하는 장치에 접속할 수도 있다. In addition, the program may be through a communication network composed of a communication network such as the Internet, an intranet, a local area network (LAN), a wide LAN (WLAN), or a storage area network (SAN), or a combination thereof. It may be stored in an attachable storage device that can be accessed. Such a storage device can access a device performing an embodiment of the present disclosure through an external port. In addition, a separate storage device on the communication network may access a device performing an embodiment of the present disclosure.

상술한 본 개시의 구체적인 실시예들에서, 개시에 포함되는 구성 요소는 제시된 구체적인 실시 예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다. In the specific embodiments of the present disclosure described above, elements included in the disclosure are expressed in singular or plural according to the specific embodiments presented. However, the singular or plural expressions are appropriately selected for the situation presented for convenience of description, and the present disclosure is not limited to the singular or plural components, and even the components expressed in plural are composed of singular or Even the expressed components may be composed of a plurality.

한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다. Meanwhile, in the detailed description of the present disclosure, specific embodiments have been described. However, various modifications are possible without departing from the scope of the present disclosure. Therefore, the scope of the present disclosure should not be limited to the described embodiments, but should be determined not only by the scope of claims to be described later, but also by the scope and equivalents of the claims.

Claims (20)

클라우드(cloud) 환경 내의 전자 장치(electronic device)에 있어서,
통신 모듈;
적어도 하나의 프로세서(processor); 및
인스트럭션(instruction)들을 저장하는 적어도 하나의 메모리를 포함하고,
상기 적어도 하나의 프로세서는, 상기 인스트럭션들을 실행할 시,
사용자의 요청을 수신하고,
상기 수신에 응답하여, 상기 사용자의 상기 요청과 관련된 서비스의 워크로드(workload)의 유형을 식별하고,
상기 클라우드 환경 내의 복수의 후보 머신들 중 상기 식별된 워크로드의 유형에 대응하는 후보 머신을 타겟 머신으로 결정하고,
상기 결정된 후보 머신으로 가상 머신을 위한 마이그레이션(migration)을 상기 통신 모듈을 이용하여 수행하도록 구성되는 전자 장치.
In an electronic device in a cloud environment,
Communication module;
At least one processor; And
It contains at least one memory for storing instructions,
When the at least one processor executes the instructions,
Receiving the user's request,
In response to the reception, identify the type of workload of the service associated with the request of the user,
A candidate machine corresponding to the identified type of workload among a plurality of candidate machines in the cloud environment is determined as a target machine,
An electronic device configured to perform migration for a virtual machine to the determined candidate machine using the communication module.
청구항 1에 있어서, 상기 적어도 하나의 프로세서는,
상기 수신에 응답하여, 상기 복수의 후보 머신들 각각의 상태 정보를 획득하고,
상기 식별된 워크로드의 유형에 기반하여, 상기 상태 정보를 구성하는 복수의 파라미터들의 값들을 결정하고,
상기 결정된 값들에 기반하여, 상기 복수의 후보 머신들 중 상기 후보 머신을 상기 타겟 머신으로 결정하도록 구성되는 전자 장치.
The method according to claim 1, wherein the at least one processor,
In response to the reception, obtain status information of each of the plurality of candidate machines,
Based on the identified type of workload, values of a plurality of parameters constituting the status information are determined,
Based on the determined values, the electronic device is configured to determine the candidate machine among the plurality of candidate machines as the target machine.
청구항 2에 있어서, 상기 복수의 파라미터들은,
상기 복수의 후보 머신들 각각의 프로세서의 이용 정도를 나타내는 제1 파라미터, 상기 복수의 후보 머신들 각각의 메모리의 이용 정도를 나타내는 제2 파라미터, 상기 복수의 후보 머신들 각각 내의 적어도 하나의 마이그레이션의 수를 나타내는 제3 파라미터, 상기 복수의 후보 머신들 각각의 비용을 나타내는 제4 파라미터, 및 상기 복수의 후보 머신들 각각이 요구하는 파워를 나타내는 제5 파라미터를 포함하는 전자 장치.
The method according to claim 2, The plurality of parameters,
The first parameter indicating the degree of use of the processor of each of the plurality of candidate machines, the second parameter indicating the level of use of the memory of each of the plurality of candidate machines, the number of at least one migration in each of the plurality of candidate machines An electronic device including a third parameter indicating, a fourth parameter indicating the cost of each of the plurality of candidate machines, and a fifth parameter indicating the power required by each of the plurality of candidate machines.
청구항 2에 있어서, 상기 적어도 하나의 프로세서는,
상기 복수의 파라미터들 중 상기 식별된 워크로드의 유형에 대응하는 파라미터에 가장 높은 가중치를 적용함으로써, 상기 복수의 파라미터들의 값들을 각각 결정하도록 구성되는 전자 장치.
The method according to claim 2, wherein the at least one processor,
An electronic device configured to determine values of each of the plurality of parameters by applying the highest weight to a parameter corresponding to the identified workload type among the plurality of parameters.
청구항 1에 있어서, 상기 적어도 하나의 프로세서는,
상기 결정된 후보 머신의 QoS(quality of service)가 상기 사용자의 상기 요청의 타겟 QoS에 대응하는지 여부를 확인하고,
상기 결정된 후보 머신의 QoS가 상기 타겟 QoS에 대응함을 확인하는 것에 기반하여, 상기 마이그레이션을 수행하도록 구성되는 전자 장치.
The method according to claim 1, wherein the at least one processor,
It is checked whether the determined quality of service (QoS) of the candidate machine corresponds to the target QoS of the request of the user,
And an electronic device configured to perform the migration based on confirming that the determined QoS of the candidate machine corresponds to the target QoS.
청구항 5에 있어서, 상기 적어도 하나의 프로세서는,
상기 결정된 후보 머신의 QoS가 상기 타겟 QoS에 대응하지 않음을 확인하는 것에 기반하여, 상기 마이그레이션을 수행하는 것을 우회하고 상기 타겟 머신을 다시 결정하도록 더 구성되는 전자 장치.
The method according to claim 5, wherein the at least one processor,
And configured to bypass performing the migration and re-determine the target machine based on confirming that the determined QoS of the candidate machine does not correspond to the target QoS.
청구항 1에 있어서, 상기 워크로드의 유형은,
웹을 통해 상기 서비스를 이용하는 사용자들의 수에 기반하여 식별되는 전자 장치.
The method according to claim 1, wherein the type of workload,
An electronic device that is identified based on the number of users using the service over the web.
청구항 7에 있어서, 상기 복수의 파라미터들은,
상기 복수의 후보 머신들 각각의 프로세서의 이용 정도를 나타내는 제1 파라미터, 상기 복수의 후보 머신들 각각의 메모리의 이용 정도를 나타내는 제2 파라미터, 상기 복수의 후보 머신들 각각 내의 적어도 하나의 마이그레이션의 수를 나타내는 제3 파라미터, 상기 복수의 후보 머신들 각각의 비용을 나타내는 제4 파라미터, 및 상기 복수의 후보 머신들 각각이 요구하는 파워를 나타내는 제5 파라미터를 포함하고,
상기 워크로드의 유형은,
상기 사용자들의 수가 제1 임계값 미만인 경우 상기 제4 파라미터에 적용되는 가중치를 상기 제1 파라미터, 상기 제2 파라미터, 상기 제3 파라미터, 및 상기 제5 파라미터에 각각 적용되는 가중치들보다 높게 설정하는 제1 유형, 상기 사용자들의 수가 상기 제1 임계값 이상이고 제2 임계값 미만인 경우 상기 제3 파라미터와 상기 제5 파라미터에 각각 적용되는 가중치들을 상기 제1 파라미터, 상기 제2 파라미터, 및 상기 제4 파라미터에 각각 적용되는 가중치들보다 높게 설정하는 제2 유형, 및 상기 제1 파라미터 및 상기 제2 파라미터에 각각 적용되는 가중치들을 상기 제3 파라미터 내지 상기 제5 파라미터에 각각 적용되는 가중치들보다 높게 설정하는 제3 유형을 포함하는 전자 장치.
The method according to claim 7, wherein the plurality of parameters,
The first parameter indicating the degree of use of the processor of each of the plurality of candidate machines, the second parameter indicating the level of use of the memory of each of the plurality of candidate machines, the number of at least one migration in each of the plurality of candidate machines And a third parameter indicating the cost of each of the plurality of candidate machines, and a fifth parameter indicating the power required by each of the plurality of candidate machines,
The type of workload is,
Setting the weight applied to the fourth parameter to be higher than the weights respectively applied to the first parameter, the second parameter, the third parameter, and the fifth parameter when the number of users is less than a first threshold value; 1 type, when the number of users is greater than or equal to the first threshold and less than the second threshold, weights applied to the third parameter and the fifth parameter are respectively applied to the first parameter, the second parameter, and the fourth parameter A second type that is set higher than the weights applied to each, and a weight that is set higher than the weights respectively applied to the third parameter to the fifth parameter, respectively. Electronic device containing three types.
청구항 1에 있어서, 상기 사용자의 상기 요청은,
상기 가상 머신의 할당을 요구하는 입력에 대응하는 전자 장치.
The method according to claim 1, The request of the user,
An electronic device corresponding to an input requesting the allocation of the virtual machine.
청구항 1에 있어서, 상기 사용자의 상기 요청은,
상기 클라우드 환경 내의 제1 데이터 센터로부터 상기 제1 데이터 센터와 구별되는 상기 클라우드 환경 내의 제2 데이터 센터로의 상기 사용자의 위치 변경에 의해 야기되는 전자 장치.
The method according to claim 1, The request of the user,
An electronic device caused by a change of the user's location from a first data center in the cloud environment to a second data center in the cloud environment distinct from the first data center.
클라우드 환경 내의 전자 장치를 동작하기 위한 방법에 있어서,
사용자의 요청을 수신하는 동작과,
상기 수신에 응답하여, 상기 사용자의 상기 요청과 관련된 서비스의 워크로드(workload)의 유형을 식별하는 동작과,
상기 클라우드 환경 내의 복수의 후보 머신들 중 상기 식별된 워크로드의 유형에 대응하는 후보 머신을 타겟 머신으로 결정하는 동작과,
상기 결정된 후보 머신으로 가상 머신을 위한 마이그레이션(migration)을 상기 통신 모듈을 이용하여 수행하는 동작을 포함하는 방법.
A method for operating an electronic device in a cloud environment,
Receiving a user request,
In response to the receiving, identifying a type of workload of the service associated with the request of the user,
Determining a candidate machine corresponding to the identified type of workload among a plurality of candidate machines in the cloud environment as a target machine;
And performing migration for the virtual machine to the determined candidate machine using the communication module.
청구항 11에 있어서, 상기 후보 모신을 상기 타겟 머신으로 결정하는 동작은,
상기 수신에 응답하여, 상기 복수의 후보 머신들 각각의 상태 정보를 획득하는 동작과,
상기 식별된 워크로드의 유형에 기반하여, 상기 상태 정보를 구성하는 복수의 파라미터들의 값들을 결정하는 동작과,
상기 결정된 값들에 기반하여, 상기 복수의 후보 머신들 중 상기 후보 머신을 상기 타겟 머신으로 결정하는 동작을 포함하는 방법.
The method of claim 11, wherein the operation of determining the candidate mother machine is the target machine,
In response to the reception, obtaining status information of each of the plurality of candidate machines,
Determining values of a plurality of parameters constituting the status information, based on the identified type of workload;
And determining the candidate machine among the plurality of candidate machines as the target machine based on the determined values.
청구항 12에 있어서, 상기 복수의 파라미터들은,
상기 복수의 후보 머신들 각각의 프로세서의 이용 정도를 나타내는 제1 파라미터, 상기 복수의 후보 머신들 각각의 메모리의 이용 정도를 나타내는 제2 파라미터, 상기 복수의 후보 머신들 각각 내의 적어도 하나의 마이그레이션의 수를 나타내는 제3 파라미터, 상기 복수의 후보 머신들 각각의 비용을 나타내는 제4 파라미터, 및 상기 복수의 후보 머신들 각각이 요구하는 파워를 나타내는 제5 파라미터를 포함하는 방법.
The method according to claim 12, The plurality of parameters,
The first parameter indicating the degree of use of the processor of each of the plurality of candidate machines, the second parameter indicating the level of use of the memory of each of the plurality of candidate machines, the number of at least one migration in each of the plurality of candidate machines And a third parameter representing, a fourth parameter representing the cost of each of the plurality of candidate machines, and a fifth parameter representing the power required by each of the plurality of candidate machines.
청구항 12에 있어서, 상기 복수의 파라미터들의 상기 값들을 결정하는 동작은,
상기 복수의 파라미터들 중 상기 식별된 워크로드의 유형에 대응하는 파라미터에 가장 높은 가중치를 적용함으로써, 상기 복수의 파라미터들의 값들을 각각 결정하는 동작을 포함하는 방법.
The method of claim 12, wherein determining the values of the plurality of parameters comprises:
And determining values of each of the plurality of parameters by applying the highest weight to a parameter corresponding to the identified workload type among the plurality of parameters.
청구항 11에 있어서, 상기 마이그레이션을 수행하는 동작은,
상기 결정된 후보 머신의 QoS(quality of service)가 상기 사용자의 상기 요청의 타겟 QoS에 대응하는지 여부를 확인하는 동작과,
상기 결정된 후보 머신의 QoS가 상기 타겟 QoS에 대응함을 확인하는 것에 기반하여, 상기 마이그레이션을 수행하는 동작을 포함하는 방법.
The method of claim 11, wherein performing the migration,
Confirming whether the determined quality of service (QoS) of the candidate machine corresponds to a target QoS of the request of the user;
And performing the migration based on confirming that the determined QoS of the candidate machine corresponds to the target QoS.
청구항 15에 있어서,
상기 결정된 후보 머신의 QoS가 상기 타겟 QoS에 대응하지 않음을 확인하는 것에 기반하여, 상기 마이그레이션을 수행하는 것을 우회하고 상기 타겟 머신을 다시 결정하는 동작을 더 포함하는 방법.
The method according to claim 15,
And based on confirming that the determined QoS of the candidate machine does not correspond to the target QoS, bypassing performing the migration and determining the target machine again.
청구항 11에 있어서, 상기 워크로드의 유형은,
웹을 통해 상기 서비스를 이용하는 사용자들의 수에 기반하여 식별되는 방법.
The method of claim 11, wherein the type of workload,
A method that is identified based on the number of users using the service over the web.
청구항 17에 있어서, 상기 복수의 파라미터들은,
상기 복수의 후보 머신들 각각의 프로세서의 이용 정도를 나타내는 제1 파라미터, 상기 복수의 후보 머신들 각각의 메모리의 이용 정도를 나타내는 제2 파라미터, 상기 복수의 후보 머신들 각각 내의 적어도 하나의 마이그레이션의 수를 나타내는 제3 파라미터, 상기 복수의 후보 머신들 각각의 비용을 나타내는 제4 파라미터, 및 상기 복수의 후보 머신들 각각이 요구하는 파워를 나타내는 제5 파라미터를 포함하고,
상기 워크로드의 유형은,
상기 사용자들의 수가 제1 임계값 미만인 경우 상기 제4 파라미터에 적용되는 가중치를 상기 제1 파라미터, 상기 제2 파라미터, 상기 제3 파라미터, 및 상기 제5 파라미터에 각각 적용되는 가중치들보다 높게 설정하는 제1 유형, 상기 사용자들의 수가 상기 제1 임계값 이상이고 제2 임계값 미만인 경우 상기 제3 파라미터와 상기 제5 파라미터에 각각 적용되는 가중치들을 상기 제1 파라미터, 상기 제2 파라미터, 및 상기 제4 파라미터에 각각 적용되는 가중치들보다 높게 설정하는 제2 유형, 및 상기 제1 파라미터 및 상기 제2 파라미터에 각각 적용되는 가중치들을 상기 제3 파라미터 내지 상기 제5 파라미터에 각각 적용되는 가중치들보다 높게 설정하는 제3 유형을 포함하는 방법.
The method according to claim 17, wherein the plurality of parameters,
The first parameter indicating the degree of use of the processor of each of the plurality of candidate machines, the second parameter indicating the level of use of the memory of each of the plurality of candidate machines, the number of at least one migration in each of the plurality of candidate machines And a third parameter indicating the cost of each of the plurality of candidate machines, and a fifth parameter indicating the power required by each of the plurality of candidate machines,
The type of workload is,
Setting the weight applied to the fourth parameter to be higher than the weights respectively applied to the first parameter, the second parameter, the third parameter, and the fifth parameter when the number of users is less than a first threshold value; 1 type, when the number of users is greater than or equal to the first threshold and less than the second threshold, weights applied to the third parameter and the fifth parameter are respectively applied to the first parameter, the second parameter, and the fourth parameter A second type that is set higher than the weights applied to each, and a weight that is set higher than the weights respectively applied to the third parameter to the fifth parameter, respectively. How to include 3 types.
청구항 11에 있어서, 상기 사용자의 상기 요청은,
상기 가상 머신의 할당을 요구하는 입력에 대응하는 방법.
The method according to claim 11, The request of the user,
A method corresponding to an input requesting the allocation of the virtual machine.
비일시적 컴퓨터 판독 가능 저장 매체에 있어서,
클라우드 환경 내의 전자 장치의 하나 이상의 프로세서들에 의해 실행될 시,
사용자의 요청을 수신하고,
상기 수신에 응답하여, 상기 사용자의 상기 요청과 관련된 서비스의 워크로드(workload)의 유형을 식별하고,
상기 클라우드 환경 내의 복수의 후보 머신들 중 상기 식별된 워크로드의 유형에 대응하는 후보 머신을 타겟 머신으로 결정하고,
상기 결정된 후보 머신으로 가상 머신을 위한 마이그레이션(migration)을 상기 통신 모듈을 이용하여 수행하도록, 상기 전자 장치를 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램들을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체.
A non-transitory computer readable storage medium,
When executed by one or more processors of an electronic device in a cloud environment,
Receiving the user's request,
In response to the reception, identify the type of workload of the service associated with the request of the user,
A candidate machine corresponding to the identified type of workload among a plurality of candidate machines in the cloud environment is determined as a target machine,
A non-transitory computer readable storage medium storing one or more programs including instructions causing the electronic device to perform migration for a virtual machine to the determined candidate machine using the communication module.
KR1020190132570A 2018-12-20 2019-10-23 Electronic device for performing migration for virtual machine in cloud environment and operation method thereof KR102296940B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2019/018108 WO2020130676A1 (en) 2018-12-20 2019-12-19 Electronic device for performing migration for virtual machine in cloud environment and operation method therefor

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180166323 2018-12-20
KR1020180166323 2018-12-20

Publications (2)

Publication Number Publication Date
KR20200077391A true KR20200077391A (en) 2020-06-30
KR102296940B1 KR102296940B1 (en) 2021-09-01

Family

ID=71121505

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190132570A KR102296940B1 (en) 2018-12-20 2019-10-23 Electronic device for performing migration for virtual machine in cloud environment and operation method thereof

Country Status (1)

Country Link
KR (1) KR102296940B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102262645B1 (en) * 2020-12-31 2021-06-09 박용정 Monitoring system and method for resource manegement in cloud computing

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090037367A1 (en) * 2007-07-30 2009-02-05 Sybase, Inc. System and Methodology Providing Workload Management in Database Cluster
KR20100069968A (en) * 2008-12-17 2010-06-25 삼성전자주식회사 Apparatus and method for managing process migration
KR20140117905A (en) * 2013-03-27 2014-10-08 인하대학교 산학협력단 Virtual machine allcoation of cloud service for fuzzy logic driven virtual machine resource evaluation apparatus and method
KR20160042699A (en) * 2014-10-10 2016-04-20 삼성전자주식회사 Method of migrating a virtual machine for better mobile user experience and apparatus thereof
KR20160070636A (en) * 2014-12-10 2016-06-20 경희대학교 산학협력단 Device for controlling migration in a distributed cloud environment and method for controlling migration using the same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090037367A1 (en) * 2007-07-30 2009-02-05 Sybase, Inc. System and Methodology Providing Workload Management in Database Cluster
KR20100069968A (en) * 2008-12-17 2010-06-25 삼성전자주식회사 Apparatus and method for managing process migration
KR20140117905A (en) * 2013-03-27 2014-10-08 인하대학교 산학협력단 Virtual machine allcoation of cloud service for fuzzy logic driven virtual machine resource evaluation apparatus and method
KR20160042699A (en) * 2014-10-10 2016-04-20 삼성전자주식회사 Method of migrating a virtual machine for better mobile user experience and apparatus thereof
KR20160070636A (en) * 2014-12-10 2016-06-20 경희대학교 산학협력단 Device for controlling migration in a distributed cloud environment and method for controlling migration using the same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102262645B1 (en) * 2020-12-31 2021-06-09 박용정 Monitoring system and method for resource manegement in cloud computing

Also Published As

Publication number Publication date
KR102296940B1 (en) 2021-09-01

Similar Documents

Publication Publication Date Title
US9262192B2 (en) Virtual machine data store queue allocation
US10789085B2 (en) Selectively providing virtual machine through actual measurement of efficiency of power usage
US10223131B1 (en) Implementing continues PaaS apps resource optimization using production workload replay with intelligent configuration permutations
US9766818B2 (en) Electronic system with learning mechanism and method of operation thereof
US10621093B2 (en) Heterogeneous computing system configured to adaptively control cache coherency
US9489293B2 (en) Techniques for opportunistic data storage
US20210342071A1 (en) Input/output processing in a distributed storage node with rdma
US10261811B2 (en) Systems and methods for contextually allocating emulation resources
US9760392B1 (en) Adaptive throttling in hybrid storage environments
EP3812899B1 (en) Operation request allocation method, apparatus and device
US10678439B2 (en) Optimization of memory systems based on performance goals
US20170212835A1 (en) Computing system with memory management mechanism and method of operation thereof
JP2021504780A (en) Application Prioritization for Automatic Diagonal Scaling in a Distributed Computing Environment
JP2020087470A (en) Data access method, data access device, apparatus, and storage medium
US11706289B1 (en) System and method for distributed management of hardware using intermediate representations of systems to satisfy user intent
WO2020024733A1 (en) Multi-instance 2lm architecture for scm applications
US11307796B2 (en) Mapping memory allocation requests using various memory attributes
KR102296940B1 (en) Electronic device for performing migration for virtual machine in cloud environment and operation method thereof
US20150052328A1 (en) User-controlled paging
JP2005327138A (en) Data base server, program, recording medium, and control method
US10812408B1 (en) Preventing concentrated selection of resource hosts for placing resources
CN111831451A (en) Cloud host memory allocation method, cloud host, cloud device and storage medium
US11334390B2 (en) Hyper-converged infrastructure (HCI) resource reservation system
US20150370816A1 (en) Load-balancing techniques for auditing file accesses in a storage system
US11003479B2 (en) Device, system and method to communicate a kernel binary via a network

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant