WO2020130676A1 - 클라우드 환경 내에서 가상 머신을 위한 마이그레이션을 수행하기 위한 전자장치 및 그의 동작 방법 - Google Patents

클라우드 환경 내에서 가상 머신을 위한 마이그레이션을 수행하기 위한 전자장치 및 그의 동작 방법 Download PDF

Info

Publication number
WO2020130676A1
WO2020130676A1 PCT/KR2019/018108 KR2019018108W WO2020130676A1 WO 2020130676 A1 WO2020130676 A1 WO 2020130676A1 KR 2019018108 W KR2019018108 W KR 2019018108W WO 2020130676 A1 WO2020130676 A1 WO 2020130676A1
Authority
WO
WIPO (PCT)
Prior art keywords
parameter
candidate
electronic device
machine
workload
Prior art date
Application number
PCT/KR2019/018108
Other languages
English (en)
French (fr)
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
Priority claimed from KR1020190132570A external-priority patent/KR102296940B1/ko
Application filed by 경희대학교 산학협력단 filed Critical 경희대학교 산학협력단
Publication of WO2020130676A1 publication Critical patent/WO2020130676A1/ko

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

Definitions

  • 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.
  • 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.
  • An electronic device in a cloud environment 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, identifies a type of workload of a service related to the request of the user, and selects a candidate machine corresponding to the identified type of workload 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.
  • 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 using the communication module of the electronic device.
  • a non-transitory computer readable storage medium 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.
  • 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.
  • QoS quality of service
  • FIG. 1 illustrates a cloud environment including an electronic device according to various embodiments.
  • FIG. 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.
  • FIG. 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.
  • FIG. 4 is a graph showing examples of parameters of state information of each of a plurality of candidate machines configured according to various embodiments.
  • FIG. 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.
  • FIG. 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.
  • FIG. 7 is a simplified block diagram of an electronic device according to various embodiments.
  • FIG. 8 is a simplified block diagram of modules of an electronic device included in a cloud environment according to various embodiments.
  • An electronic device 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.
  • a portable communication device eg, a smart phone
  • a computer device e.g., a smart phone
  • portable multimedia device e.g., a portable medical device
  • a camera e.g., a portable medical device
  • a camera e.g., a portable medical device
  • a camera e.g., a camera
  • a wearable device e.g., a server in a cloud environment
  • server in a cloud environment e.g., a cloud environment
  • a home appliance device e.g., a home appliance
  • any (eg, first) component is referred to as “coupled” or “connected” to another (eg, second) component, with or without the term “functionally” or “communically”
  • any of the above components can be connected directly to the other components (eg, by wire), wirelessly, or through a third component.
  • 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.
  • the module may be implemented in the form of an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • Various embodiments of this document may be implemented as software that includes one or more instructions stored in a storage medium readable by a machine.
  • 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.
  • a signal eg, electromagnetic waves
  • 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).
  • a portion of the computer program product may be stored at least temporarily on 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.
  • each component (eg, module or program) of the above-described components may include a singular or a plurality of entities.
  • 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.
  • a plurality of components eg, modules or programs
  • 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. .
  • 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.
  • FIG. 1 illustrates a cloud environment including an electronic device according to various embodiments.
  • 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.
  • 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.
  • the electronic device 110 may be a device having mobility (eg, a smart phone, a laptop computer, a wearable device, etc.).
  • the electronic device 110 may be a fixed device (eg, a desktop computer, a smart refrigerator, a smart TV, etc.).
  • 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.
  • it may be a device that provides data in the cloud environment 100 to the electronic device 110.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • the electronic device 130 may be referred to as a control center in terms of controlling the electronic devices 120-1 to 120-n.
  • FIG. 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.
  • the electronic device 130 may receive a user's request.
  • the request of the user may correspond to a request that requests allocation of a virtual machine.
  • 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.
  • the request of the user may correspond to a change in the location of the electronic device 110 in the cloud environment 100.
  • the request of the user may be caused by explicit user input or may be caused by implicit user input.
  • 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 Application Number of concurrent users Type of workload Web-based 100 Low 200 Mid 300 High
  • 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.
  • 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'.
  • 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.
  • 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.
  • 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.
  • 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.
  • a candidate machine corresponding to the identified workload type may be determined as a target machine.
  • the policy may be predefined by a service provider.
  • 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.
  • 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.
  • a cost eg, energy migration
  • migration performance or migration QoS
  • a candidate machine corresponding to the identified workload type may be determined as a target machine.
  • 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.
  • the electronic device 130 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. .
  • FIG. 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.
  • FIG. 4 is a graph showing examples of parameters of state information of each of a plurality of candidate machines configured according to various embodiments.
  • FIG. 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.
  • Operations 310 to 330 of FIG. 3 may be related to operation 230 illustrated in FIG. 2.
  • 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). .
  • the status information may be configured by various parameters (or elements) considered according to the type of workload.
  • 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 status, utilization rate) of each memory
  • a third parameter indicating the number of at least one migration in each of the plurality of candidate machines
  • 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.
  • 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.
  • the state information may be obtained by the electronic device 130 every specified period.
  • 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.
  • the status information may be obtained in response to receiving the request of the user.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • Equation 1 ' '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.
  • Equation 2 ' 'Means a resource utilization rate of a corresponding physical machine including virtual machines (for example, one of the plurality of candidate machines), and' '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.
  • 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.
  • 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.
  • the candidate machine having a value eg, A2
  • the electronic device 130 includes a plurality of pieces of state information of the plurality of candidate machines (eg, the electronic devices 120-1 to 120-n).
  • the electronic device 130 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.
  • FIG. 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.
  • Operations 610 to 630 of FIG. 6 may be associated with operations 230 to 240 of FIG. 2.
  • the electronic device 130 may determine the candidate machine corresponding to the identified type of workload as the target machine.
  • operation 610 may correspond to operation 230 of FIG. 2.
  • 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.
  • the electronic device 130 may execute operation 630.
  • 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.
  • 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.
  • operation 630 may correspond to operation 240 of FIG. 2.
  • the electronic device 130 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 may provide an enhanced cloud service through the cloud environment 100 through the determination operation.
  • FIG. 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.
  • the electronic device 130 may include a processor 710, a memory 720, and a communication module 730 (or communication circuit 730 ).
  • the processor 710 may control the overall operation of the electronic device 130.
  • the processor 710 may include a single processor core or a plurality of processor cores.
  • the processor 710 may include multi-cores such as dual-core, quad-core, and hexa-core.
  • the processor 710 may further include a cache memory located inside or outside.
  • 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.
  • 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.
  • 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.
  • 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 ( coupled with) or connected to.
  • other components eg, the memory 720, the communication module 730
  • the processor 710 may be configured with one or more processors.
  • the memory 720 may store commands for controlling the electronic device 130, control command codes, control data, or user data.
  • the memory 720 may include an application program, an operating system (OS), middleware, and a device driver.
  • OS operating system
  • middleware middleware
  • device driver a device driver
  • 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.
  • 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.
  • HDD hard disk drive
  • SSD solid state disk
  • eMMC embedded multi media card
  • UFS universal flash storage
  • 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.
  • 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.
  • a first network e.g., a short-range communication network such as Bluetooth, WiFi direct, or infrared data association (IrDA)
  • 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).
  • a cellular network e.g., LAN or WAN
  • a telecommunication network such as a computer network (eg, LAN or WAN).
  • LAN or WAN a telecommunication network
  • the above-described various types of communication modules 730 may be implemented as one chip or may be implemented as separate chips.
  • the electronic device 130 in the cloud environment 100 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • QoS quality of service
  • the type of workload can be identified based on the number of users using the service over the web.
  • 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.
  • the request of the user may correspond to an input requiring allocation of the virtual machine.
  • 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.
  • FIG. 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • 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.
  • the electronic device 130 may provide higher resource efficiency by determining a target device for migration based on a policy.
  • 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.
  • Such programs 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
  • CD-ROM compact disc-ROM
  • DVDs digital versatile discs
  • 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.
  • 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.
  • 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.
  • a separate storage device on the communication network may access a device performing an embodiment of the present disclosure.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

다양한 실시예들에 따른, 클라우드(cloud) 환경 내의 전자 장치(electronic device)는, 통신 모듈과, 인스트럭션(instruction)들을 저장하는 적어도 하나의 메모리와, 상기 인스트럭션들을 실행할 시, 사용자의 요청을 수신하고, 상기 수신에 응답하여, 상기 사용자의 상기 요청과 관련된 서비스의 워크로드(workload)의 유형을 식별하고, 상기 클라우드 환경 내의 복수의 후보 머신들 중 상기 식별된 워크로드의 유형에 대응하는 후보 머신을 타겟 머신으로 결정하고, 상기 결정된 후보 머신으로 가상 머신을 위한 마이그레이션(migration)을 상기 통신 모듈을 이용하여 수행하도록 구성되는 적어도 하나의 프로세서를 포함할 수 있다.

Description

클라우드 환경 내에서 가상 머신을 위한 마이그레이션을 수행하기 위한 전자장치 및 그의 동작 방법
후술되는 다양한 실시예들은 클라우드 환경(cloud environment) 내에서 가상 머신을 위한 마이그레이션(migration)을 수행하기 위한 전자 장치(electronic device) 및 그의 동작 방법에 관한 것이다.
클라우드 환경에 대한 사용자의 수요가 증가하고 있다. 이러한 수요의 증가에 대응하기 위해, 가상 머신을 위한 마이그레이션을 이용하여 클라우드 환경 내의 자원 관리를 수행하는 전자 장치가 개발되고 있다.
클라우드 환경 내의 복수의 물리적 머신(physical machine)들을 제어하는 전자 장치는, 가상 머신을 위한 마이그레이션을 이용하여 상기 클라우드 환경 내의 자원 관리를 수행할 수 있다. 상기 마이그레이션의 성능은 상기 클라우드 환경을 통해 제공되고 있는 서비스의 상태에 따라 변경될 수 있기 때문에, 상기 마이그레이션의 성능을 상기 서비스의 상태에 따라 유지하기 위한 방안이 요구될 수 있다.
본 문서에서 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
다양한 실시예들에 따른, 클라우드(cloud) 환경 내의 전자 장치(electronic device)는, 통신 모듈과, 인스트럭션(instruction)들을 저장하는 적어도 하나의 메모리와, 상기 인스트럭션들을 실행할 시, 사용자의 요청을 수신하고, 상기 수신에 응답하여, 상기 사용자의 상기 요청과 관련된 서비스의 워크로드(workload)의 유형을 식별하고, 상기 클라우드 환경 내의 복수의 후보 머신들 중 상기 식별된 워크로드의 유형에 대응하는 후보 머신을 타겟 머신으로 결정하고, 상기 결정된 후보 머신으로 가상 머신을 위한 마이그레이션(migration)을 상기 통신 모듈을 이용하여 수행하도록 구성되는 적어도 하나의 프로세서를 포함할 수 있다.
다양한 실시예들에 따른, 클라우드 환경 내의 전자 장치를 동작하기 위한 방법은, 사용자의 요청을 수신하는 동작과, 상기 수신에 응답하여, 상기 사용자의 상기 요청과 관련된 서비스의 워크로드(workload)의 유형을 식별하는 동작과, 상기 클라우드 환경 내의 복수의 후보 머신들 중 상기 식별된 워크로드의 유형에 대응하는 후보 머신을 타겟 머신으로 결정하는 동작과, 상기 결정된 후보 머신으로 가상 머신을 위한 마이그레이션(migration)을 상기 전자 장치의 통신 모듈을 이용하여 수행하는 동작을 포함할 수 있다.
다양한 실시예들에 따른, 비일시적 컴퓨터 판독 가능 저장 매체(non-transitory computer readable storage medium)는, 클라우드 환경 내의 전자 장치의 하나 이상의 프로세서들에 의해 실행될 시, 사용자의 요청을 수신하고, 상기 수신에 응답하여, 상기 사용자의 상기 요청과 관련된 서비스의 워크로드(workload)의 유형을 식별하고, 상기 클라우드 환경 내의 복수의 후보 머신들 중 상기 식별된 워크로드의 유형에 대응하는 후보 머신을 타겟 머신으로 결정하고, 상기 결정된 후보 머신으로 가상 머신을 위한 마이그레이션(migration)을 상기 통신 모듈을 이용하여 수행하도록, 상기 전자 장치를 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램들을 저장할 수 있다.
다양한 실시 예들에 따라 전자 장치는, 클라우드 환경을 통해 제공되는 서비스의 워크로드의 유형에 따라 가상 머신을 위한 마이그레이션을 수행할 타겟 머신을 결정함으로써, 상기 마이그레이션의 성능을 타겟 QoS(quality of service) 이상으로 유지할 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은, 다양한 실시예들에 따른 전자 장치를 포함하는 클라우드 환경을 도시한다.
도 2는 다양한 실시예들에 따라 워크로드의 유형에 기반하여 타겟 머신으로 결정된 후보 머신으로 가상 머신을 위한 마이그레이션을 수행하는 전자 장치의 동작을 도시하는 흐름도이다.
도 3은 다양한 실시예들에 따라 워크로드의 유형에 따라 후보 머신을 타겟 머신으로 결정하는 전자 장치의 동작을 도시하는 흐름도이다.
도 4는 다양한 실시예들에 따라 구성된 복수의 후보 머신들 각각의 상태 정보의 파라미터들의 예를 도시하는 그래프이다.
도 5는 다양한 실시예들에 따라 워크로드의 유형에 따라 후보 머신을 타겟 머신으로 결정하는 예를 도시하는 그래프이다.
도 6은 다양한 실시예들에 따라 타겟 머신으로 결정된 후보 머신의 QoS가 타겟 QoS를 충족하는지 여부를 결정하는 전자 장치의 동작을 도시하는 흐름도이다.
도 7은 다양한 실시예들에 따른 전자 장치의 간소화된 블록도이다.
도 8은 다양한 실시예들에 따른 클라우드 환경 내에 포함된 전자 장치의 모듈들의 간소화된 블록도이다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 클라우드 환경 내의 서버, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제1", "제2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제1) 구성요소가 다른(예: 제2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)에 의해 읽을 수 있는 저장 매체(storage medium)에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어로서 구현될 수 있다. 예를 들면, 기기의 프로세서는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
도 1은, 다양한 실시예들에 따른 전자 장치를 포함하는 클라우드 환경을 도시한다.
도 1을 참조하면, 클라우드 환경(100)은 전자 장치(110), 전자 장치(120-1) 내지 전자 장치(120-n), 및 전자 장치(130)를 포함할 수 있다.
다양한 실시예들에서, 전자 장치(110)는, 클라우드 환경(100)을 통해 서비스를 제공 받는 사용자로부터 직접적으로 입력을 수신하는 장치일 수 있다. 예를 들면, 전자 장치(110)는, 클라우드 환경(100)을 통해 상기 서비스를 위해 전자 장치(120-1)와 트래픽을 교환하는 동안, 상기 서비스와 관련된 사용자 입력을 수신할 수 있다. 전자 장치(110)는, 사용자 입력을 직접 수신한다는 측면에서, 사용자 단말(user terminal)로 참조될 수 있다. 다양한 실시예들에서, 전자 장치(110)는, 이동성을 가지는 장치(예: 스마트 폰, 랩탑 컴퓨터, 웨어러블 장치 등)일 수 있다. 다양한 실시예들에서, 전자 장치(110)는, 고정된 장치(예: 데스크 탑 컴퓨터, 스마트 냉장고, 스마트 TV 등)일 수도 있다.
다양한 실시예들에서, 전자 장치(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)로부터 상기 서비스를 위한 데이터를 제공 받을 수 있다.
다양한 실시예들에서, 전자 장치(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)를 제어한다는 측면에서 제어 센터로 참조될 수 있다.
도 2는 다양한 실시예들에 따라 워크로드의 유형에 기반하여 타겟 머신으로 결정된 후보 머신으로 가상 머신을 위한 마이그레이션을 수행하는 전자 장치의 동작을 도시하는 흐름도이다. 상기 흐름도에 의해 도시된 전자 장치의 동작은, 도 1의 클라우드 환경(100) 내의 전자 장치(130) 또는 전자 장치(130)의 프로세서((예: 도 7의 프로세서(710))에 의해 실행될 수 있다. 상기 흐름도에 의해 도시된 전자 장치의 동작은, 전자 장치(130)의 메모리(720)에 저장된(또는 일시적으로 저장된) 인스트럭션(instruction)들에 의해 실행될 수 있다.
도 2를 참조하면, 동작 210에서, 전자 장치(130)는 사용자의 요청을 수신할 수 있다. 예를 들면, 상기 사용자의 상기 요청은, 가상 머신의 할당을 요구하는 요청에 대응할 수 있다. 예를 들면, 상기 사용자의 상기 요청은, 클라우드 환경(100) 내의 마이크로 데이터 센터인 전자 장치(120-k)(k는 1보다 크고 n보다 작은 임의의 자연수)로부터 서비스를 제공 받고 있는 전자 장치(110)가 다른 전자 장치로 핸드 오프(hand-off)하는 것이 요구됨을 나타내는 요청일 수 있다. 예를 들면, 상기 사용자의 상기 요청은, 클라우드 환경(100) 내에서 전자 장치(110)의 위치가 변경되는 것에 대응할 수 있다. 다양한 실시예들에서, 상기 사용자의 상기 요청은, 명시적인 사용자 입력에 의해 야기될 수도 있고, 묵시적인 사용자 입력에 의해 야기될 수도 있다.
동작 220에서, 전자 장치(130)는, 상기 사용자의 상기 요청을 수신하는 것에 응답하여, 상기 사용자의 상기 요청과 관련된 서비스의 워크로드의 유형을 식별할 수 있다. 예를 들어, 상기 서비스가 웹 기반(web-based) 어플리케이션으로부터 제공되는 서비스인 경우, 상기 워크로드의 유형은 웹에 접속된 사용자들의 수에 기반하여 식별될 수 있다. 예를 들어, 상기 서비스가 웹 기반 어플리케이션으로부터 제공되는 서비스인 경우, 상기 워크로드의 유형은 하기의 표 1과 같이 나타내어질 수 있다.
Type of Application Number of concurrent users Type of workload
Web-based 100 Low
200 Mid
300 High
표 1의 예에서, 전자 장치(130)는, 웹에 동시 접속된 사용자들의 수가 200 이하인 경우 상기 워크로드의 상기 유형을 'low'로 식별하고, 웹에 동시 접속된 사용자들의 수가 200 초과 300 이하인 경우 상기 워크로드의 상기 유형을 'mid'로 식별하며, 웹에 동시 접속된 사용자들의 수가 300 초과인 경우 상기 워크로드의 상기 유형을 'high'로 식별할 수 있다.
표 1을 통해 예시된 상기 워크로드의 상기 유형은, 설명의 편의를 위한 것이다. 상기 워크로드의 상기 유형은, 표 1의 예와 달리, 상기 서비스를 제공하기 위해 이용되는 어플리케이션의 유형 등에 따라 다르게 전자 장치(130) 내에서 설정될 수 있다.
다양한 실시예들에서, 상기 워크로드의 상기 유형은, 전자 장치(120-1) 내지 전자 장치(120-n) 중에서, 클라우드 환경(100)을 통해 전자 장치(110)에게 서비스를 제공할 타겟 머신을 결정하기 위해, 이용될 수 있다. 다양한 실시예들에서, 상기 워크로드의 상기 유형은, 전자 장치(110)에게 서비스를 제공할 수 있는 복수의 후보 머신들인 전자 장치(120-1) 내지 전자 장치(120-n) 각각의 상태 정보를 구성하는 복수의 파라미터들의 값들을 결정하기 위해, 이용될 수 있다. 복수의 파라미터들의 값들을 결정하기 위해 실행되는 전자 장치(130)의 동작은, 도 3 내지 도 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) 중에서 상기 식별된 워크로드의 유형에 대응하는 후보 머신을 타겟 머신으로 결정할 수 있다.
동작 240에서, 전자 장치(130)는 상기 결정된 후보 머신으로 상기 가상 머신을 위한 마이그레이션을 수행할 수 있다. 상기 마이그레이션은, 상기 서비스의 목적에 적합하게 정의된 정책에 기반하여 결정된 후보 머신으로 수행되기 때문에, 보다 적은 자원을 소모하면서 강화된 QoS를 보장할 수 있다. 또한, 상기 마이그레이션은, 상기 워크로드의 유형에 기반하여 결정된 후보 머신으로 수행되기 때문에, 상기 서비스의 효율을 높일 수 있고 강화된 가상 머신의 성능을 보장할 수 있다. 또한, 상기 마이그레이션은, 강화된 분산 클라우드 환경의 서비스를 제공할 수 있기 때문에, 서비스 프로바이더(provider)의 이익을 증대시킬 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(130)는, 상기 서비스의 워크로드의 유형에 기반하여 가상 머신을 위한 마이그레이션을 수행할 타겟 머신을 식별함으로써, 강화된 클라우드 환경(100)을 제공할 수 있다. 다양한 실시예들에 따른 전자 장치(130)는, 상기 워크로드의 상기 유형에 따라 적응적으로 타겟 머신을 식별할 수 있기 때문에, 상기 가상 머신을 위한 상기 마이그레이션을 위해 요구되는 자원 효율성을 강화할 수 있다.
도 3은 다양한 실시예들에 따라 워크로드의 유형에 따라 후보 머신을 타겟 머신으로 결정하는 전자 장치의 동작을 도시하는 흐름도이다. 상기 흐름도에 의해 도시된 전자 장치의 동작은, 도 1의 클라우드 환경(100) 내의 전자 장치(130) 또는 전자 장치(130)의 프로세서((예: 도 7의 프로세서(710))에 의해 실행될 수 있다. 상기 흐름도에 의해 도시된 전자 장치의 동작은, 전자 장치(130)의 메모리(720)에 저장된(또는 일시적으로 저장된) 인스트럭션(instruction)들에 의해 실행될 수 있다.
도 4는 다양한 실시예들에 따라 구성된 복수의 후보 머신들 각각의 상태 정보의 파라미터들의 예를 도시하는 그래프이다.
도 5는 다양한 실시예들에 따라 워크로드의 유형에 따라 후보 머신을 타겟 머신으로 결정하는 예를 도시하는 그래프이다.
도 3의 동작 310 내지 동작 330은 도 2에 도시된 동작 230과 관련될 수 있다.
도 3을 참조하면, 동작 310에서, 전자 장치(130)는, 복수의 후보 머신들(예: 전자 장치(120-1) 내지 전자 장치(120-n)) 각각의 상태 정보를 획득할 수 있다. 다양한 실시예들에서, 상기 상태 정보는, 상기 워크로드의 유형에 따라 고려되는 다양한 파라미터들(또는 요소들)에 의해 구성될 수 있다. 예를 들면, 상기 상태 정보는, 상기 복수의 후보 머신들 각각의 프로세서(예: CPU(central processing unit))의 이용 정도(또는 이용 상태, 이용률)를 나타내는 제1 파라미터, 상기 복수의 후보 머신들 각각의 메모리의 이용 정도(또는 이용 상태, 이용률)를 나타내는 제2 파라미터, 상기 복수의 후보 머신들 각각 내의 적어도 하나의 마이그레이션의 수를 나타내는 제3 파라미터, 상기 복수의 후보 머신들 각각의 비용을 나타내는 제4 파라미터, 또는 상기 복수의 후보 머신들 각각이 요구하는 파워를 나타내는 제5 파라미터 중 적어도 하나로 구성될 수 있다. 상기 제1 파라미터 및 상기 제2 파라미터는 하나의 통합된 파라미터로 상기 상태 정보 내에서 구성될 수도 있다. 예를 들면, 상기 제1 파라미터 및 상기 제2 파라미터가 통합된 파라미터는 상기 복수의 후보 머신들 각각의 자원 이용 정도(또는 이용 상태, 이용률)를 나타낼 수 있다.
일 실시예에서, 상기 상태 정보는, 지정된 주기마다 전자 장치(130)에 의해 획득될 수 있다. 예를 들면, 전자 장치(130)는 지정된 주기마다 상기 복수의 후보 머신들인 전자 장치(120-1) 내지 전자 장치(120-n) 각각으로부터 상기 상태 정보를 획득할 수 있다. 일 실시예에서, 상기 상태 정보는, 상기 사용자의 상기 요청을 수신하는 것에 응답하여, 획득될 수도 있다. 예를 들면, 전자 장치(130)는, 상기 사용자의 상기 요청을 수신하는 것에 응답하여 상기 복수의 후보 머신들인 전자 장치(120-1) 내지 전자 장치(120-n) 각각에게 상기 상태 정보를 요청하고, 상기 상태 정보의 상기 요청의 응답으로 상기 복수의 후보 머신들인 전자 장치(120-1) 내지 전자 장치(120-n) 각각으로부터 상기 상태 정보를 획득할 수 있다. 하지만, 이에 제한되지 않는다.
동작 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 파라미터에 각각 적용되는 가중치들보다 높게 설정함으로써 상기 복수의 파라미터들의 상기 값들을 결정할 수 있다. 하지만, 이에 제한되지 않는다.
예를 들어, 도 4를 참조하면, 그래프(400)는, 상기 복수의 후보 머신들(예: A1 내지 A5) 각각의 제1 파라미터(CU)의 측정값, 제2 파라미터(MU)의 측정값, 제3 파라미터(NM), 제5 파라미터(PW), 및 제4 파라미터(CT)의 측정값을 나타낸다. 전자 장치(130)는, 그래프(400)에 표현된 상기 복수의 파라미터들(예: 제1 파라미터 내지 제5 파라미터)의 측정값들에 상기 워크로드의 상기 유형에 대응하는 가중치들을 각각 적용함으로써 그래프(500)에 의해 표현되는 데이터를 획득할 수 있다.
예를 들어, 도 5를 참조하면, 그래프(500)는, 상기 복수의 후보 머신들(예: A1 내지 A5) 중 전자 장치(130)에 의해 식별된 상기 워크로드의 상기 유형에 가장 대응하는 후보 머신(A2)을 나타낸다. 다시 말해, 전자 장치(130)는, 상기 워크로드의 상기 유형에 기반하여 상기 복수의 파라미터들의 측정값들에 각각 가중치들을 적용함으로써, 가상 머신을 위한 마이그레이션을 위해 요구되는 자원 효율성을 강화할 수 있다.
일 실시예에서, 전자 장치(130)는, 상기 복수의 파라미터들의 상기 값들을 결정하기 위해 리소스 이용률에 대한 정보를 획득할 수 있고, 상기 리소스 이용률에 대한 정보는 하기의 수학식 1 및 수학식 2와 같은 제한 조건을 가질 수 있다.
Figure PCTKR2019018108-appb-M000001
Figure PCTKR2019018108-appb-M000002
수학식 1에서, '
Figure PCTKR2019018108-appb-I000001
'은 해당 가상 머신의 리소스 이용률을 의미하고, 'Requested util'은 요구된 리소스의 양을 의미하며, 'Total available'은 해당 가상 머신이 이용 가능한 리소스의 총량을 의미할 수 있다.
수학식 2에서, '
Figure PCTKR2019018108-appb-I000002
'은 가상 머신들을 포함하는 해당 물리적 머신(예: 상기 복수의 후보 머신들 중 하나)의 리소스 이용률을 의미하고, '
Figure PCTKR2019018108-appb-I000003
'은 상기 해당 물리적 머신 내에 포함된 상기 가상 머신들의 리소스 이용률의 총 합을 의미하며, 'Total available of the PM"은 상기 해당 물리적 머신이 이용가능한 리소스의 총량을 의미할 수 있다.
예를 들면, 전자 장치(130)는 표 2 및 표 3와 같이 상기 제1 파라미터 내지 상기 제5 파라미터의 측정값 각각에 적용될 가중치들을 구성할 수 있다.
Relative importance Value
Equal importance/quality 1
Somewhat more important/better 3
Definitely more important/better 5
Much more important/better 7
Extremely more important/better 9
M1 M2 ... Mn
M1 V1/V1 V1/V2 ... V1/Vn
M2 V2/V1 V2/V2 ... V2/Vn
... ... ... ... ...
Mn Vn/V1 V2/Vn ... Vn/Vn
동작 330에서, 전자 장치(130)는 상기 결정된 값들(예: 상기 복수의 파라미터들에 가중치들이 각각 적용된 값들)에 기반하여 상기 복수의 후보 머신들 중 상기 후보 머신을 상기 타겟 머신으로 결정할 수 있다. 예를 들어, 도 5를 참조하면, 전자 장치(130)는, 그래프(500)에서와 같이, 상기 복수의 후보 머신들(예: A1, A2, A3, A4, 및 A5) 중 가장 높은 상기 결정된 값을 가지는 후보 머신(예: A2)을 상기 타겟 머신으로 결정할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(130)는 상기 복수의 후보 머신들(예: 전자 장치(120-1) 내지 전자 장치(120-n))의 상태 정보를 구성하는 복수의 파라미터들에 워크로드의 유형에 기반하여 식별된 가중치들을 각각 적용함으로써 상기 복수의 파라미터들의 값들을 정의함으로써, 클라우드 환경(100) 내에서 강화된 서비스를 제공할 수 있다.
도 6은 다양한 실시예들에 따라 타겟 머신으로 결정된 후보 머신의 QoS가 타겟 QoS를 충족하는지 여부를 결정하는 전자 장치의 동작을 도시하는 흐름도이다. 상기 흐름도에 의해 도시된 전자 장치의 동작은, 도 1의 클라우드 환경(100) 내의 전자 장치(130) 또는 전자 장치(130)의 프로세서((예: 도 7의 프로세서(710))에 의해 실행될 수 있다. 상기 흐름도에 의해 도시된 전자 장치의 동작은, 전자 장치(130)의 메모리(720)에 저장된(또는 일시적으로 저장된) 인스트럭션(instruction)들에 의해 실행될 수 있다.
도 6의 동작 610 내지 동작 630은 도 2의 동작 230 내지 240과 관련될 수 있다.
도 6을 참조하면, 동작 610에서, 전자 장치(130)는 상기 식별된 워크로드의 유형에 대응하는 상기 후보 머신을 상기 타겟 머신으로 결정할 수 있다. 예를 들면, 동작 610은 도 2의 동작 230에 대응할 수 있다.
동작 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을 재차 실행함으로써 상기 후보 머신과 구별되는 다른 후보 머신을 상기 타겟 머신으로 결정할 수 있다.
동작 630에서, 상기 결정된 후보 머신의 QoS가 사용자의 요청의 타겟 QoS에 대응함을 식별하는 경우, 전자 장치(130)는 상기 결정된 후보 머신으로 상기 가상 머신을 위한 마이그레이션을 수행할 수 있다. 예를 들면, 동작 630은 도 2의 동작 240에 대응할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(130)는, 사용자의 요청의 타겟 QoS와 마이그레이션이 수행될 후보 머신의 QoS를 비교함으로써, 상기 사용자의 상기 요청에 부합하는 후보 머신을 타겟 머신으로 결정할 수 있다. 다양한 실시예들에 따른 전자 장치(130)는, 이러한 결정 동작을 통해, 강화된 클라우드 서비스를 클라우드 환경(100)을 통해 제공할 수 있다.
도 7은 다양한 실시예들에 따른 전자 장치의 간소화된 블록도이다. 도 7의 간소화된 블록도는 도 1에 도시된 전자 장치(130)의 기능적 구성들을 나타낼 수 있다. 이러한 기능적 구성들은 도 2 내지 도 6의 설명을 통해 기술된 동작들을 실행하기 위해 전자 장치(130)에 포함될 수 있다.
도 7을 참조하면, 전자 장치(130)는 프로세서(710), 메모리(720), 및 통신 모듈(730)(또는 통신 회로(730))을 포함할 수 있다.
프로세서(710)는 전자 장치(130)의 전반적인 동작을 제어할 수 있다. 다양한 실시예들에서, 프로세서(710)는 하나의 프로세서 코어(single core)를 포함하거나, 복수의 프로세서 코어들을 포함할 수 있다. 예를 들면, 프로세서(710)는 듀얼 코어(dual-core), 쿼드 코어(quad-core), 헥사 코어(hexa-core) 등의 멀티 코어(multi-core)를 포함할 수 있다. 실시 예들에 따라, 프로세서(710)는 내부 또는 외부에 위치된 캐시 메모리(cache memory)를 더 포함할 수 있다.
프로세서(710)는 전자 장치(130)의 다른 구성 요소들의 명령을 수신할 수 있고, 수신된 명령을 해석할 수 있으며, 해석된 명령에 따라 계산을 수행하거나 데이터를 처리할 수 있다.
프로세서(710)는 프로그램에서 생성되거나 발생되는 데이터 또는 신호를 처리할 수 있다. 예를 들면, 프로세서(710)는 프로그램을 실행하거나 제어하기 위해 메모리(720)에게 명령어, 데이터 또는 신호를 요청할 수 있다. 프로세서(710)는 프로그램을 실행하거나 제어하기 위해 메모리(720)에게 명령어, 데이터, 또는 신호를 기록(또는 저장)하거나 갱신할 수 있다.
프로세서(710)는 메모리(720) 또는 통신 모듈(730)로부터 수신되는 메시지, 데이터, 명령어, 또는 신호를 해석할 수 있고, 가공할 수 있다. 프로세서(710)는 수신된 메시지, 데이터, 명령어, 또는 신호에 기반하여 새로운 메시지, 데이터, 명령어, 또는 신호를 생성할 수 있다. 프로세서(710)는 가공되거나 생성된 메시지, 데이터, 명령어, 또는 신호를 메모리(720) 또는 통신 모듈(730)에게 제공할 수 있다.
프로세서(710)의 전부 또는 일부는 전자 장치(130) 내의 다른 구성 요소(예를 들면, 메모리(720), 통신 모듈(730)과 전기적으로(electrically) 또는 작동적으로(operably 또는 operatively) 결합(coupled with)되거나 연결될(connected to) 수 있다.
실시 예들에 따라, 프로세서(710)는 하나 또는 그 이상의 프로세서들로 구성될(configured with) 수 있다.
메모리(720)는 전자 장치(130)를 제어하는 명령어, 제어 명령어 코드, 제어 데이터, 또는 사용자 데이터를 저장할 수 있다. 예를 들면, 메모리(720)는 어플리케이션(application) 프로그램, OS(operating system), 미들웨어(middleware), 디바이스 드라이버(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) 등을 포함할 수 있다.
메모리(720)는 하드 디스크 드라이브(HDD, hard disk drive), 솔리드 스테이트 디스크(SSD, solid state disk), eMMC(embedded multi media card), UFS(universal flash storage)와 같은 불휘발성 매체(medium)를 포함할 수 있다.
통신 모듈(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)은 하나의 칩으로 구현되거나 또는 각각 별도의 칩으로 구현될 수 있다.
상술한 바와 같은 다양한 실시예들에 따른 클라우드 환경(100) 내의 전자 장치(130)는, 통신 모듈(730)과, 적어도 하나의 프로세서(710)와, 인스트럭션들을 저장하는 적어도 하나의 메모리(720)를 포함하고, 적어도 하나의 프로세서(710)는, 상기 인스트럭션들을 실행할 시, 사용자의 요청을 수신하고, 상기 수신에 응답하여, 상기 사용자의 상기 요청과 관련된 서비스의 워크로드(workload)의 유형을 식별하고, 상기 클라우드 환경 내의 복수의 후보 머신들 중 상기 식별된 워크로드의 유형에 대응하는 후보 머신을 타겟 머신으로 결정하고, 상기 결정된 후보 머신으로 가상 머신을 위한 마이그레이션(migration)을 상기 통신 모듈을 이용하여 수행하도록 구성될 수 있다.
다양한 실시예들에서, 적어도 하나의 프로세서(710)는, 상기 수신에 응답하여, 상기 복수의 후보 머신들 각각의 상태 정보를 획득하고, 상기 식별된 워크로드의 유형에 기반하여, 상기 상태 정보를 구성하는 복수의 파라미터들의 값들을 결정하고, 상기 결정된 값들에 기반하여, 상기 복수의 후보 머신들 중 상기 후보 머신을 상기 타겟 머신으로 결정하도록 구성될 수 있다.
일 실시예에서, 상기 복수의 파라미터들은, 상기 복수의 후보 머신들 각각의 프로세서의 이용 정도를 나타내는 제1 파라미터, 상기 복수의 후보 머신들 각각의 메모리의 이용 정도를 나타내는 제2 파라미터, 상기 복수의 후보 머신들 각각 내의 적어도 하나의 마이그레이션의 수를 나타내는 제3 파라미터, 상기 복수의 후보 머신들 각각의 비용을 나타내는 제4 파라미터, 및 상기 복수의 후보 머신들 각각이 요구하는 파워를 나타내는 제5 파라미터를 포함할 수 있다.
일 실시예에서, 적어도 하나의 프로세서(710)는, 상기 복수의 파라미터들 중 상기 식별된 워크로드의 유형에 대응하는 파라미터에 가장 높은 가중치를 적용함으로써, 상기 복수의 파라미터들의 값들을 각각 결정하도록 구성될 수 있다.
일 실시예에서, 적어도 하나의 프로세서(710)는, 상기 결정된 후보 머신의 QoS(quality of service)가 상기 사용자의 상기 요청의 타겟 QoS에 대응하는지 여부를 확인하고, 상기 결정된 후보 머신의 QoS가 상기 타겟 QoS에 대응함을 확인하는 것에 기반하여, 상기 마이그레이션을 수행하도록 구성될 수 있다. 예를 들면, 적어도 하나의 프로세서(710)는, 상기 결정된 후보 머신의 QoS가 상기 타겟 QoS에 대응하지 않음을 확인하는 것에 기반하여, 상기 마이그레이션을 수행하는 것을 우회하고 상기 타겟 머신을 다시 결정하도록 더 구성될 수 있다.
다양한 실시예들에서, 상기 워크로드의 유형은, 웹을 통해 상기 서비스를 이용하는 사용자들의 수에 기반하여 식별될 수 있다. 일 실시예에서, 상기 복수의 파라미터들은, 상기 복수의 후보 머신들 각각의 프로세서의 이용 정도를 나타내는 제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 유형을 포함할 수 있다.
다양한 실시예들에서, 상기 사용자의 상기 요청은, 상기 가상 머신의 할당을 요구하는 입력에 대응할 수 있다.
다양한 실시예들에서, 상기 사용자의 상기 요청은, 상기 클라우드 환경 내의 제1 데이터 센터로부터 상기 제1 데이터 센터와 구별되는 상기 클라우드 환경 내의 제2 데이터 센터로의 상기 사용자의 위치 변경에 의해 야기될 수 있다.
도 8은 다양한 실시예들에 따른 클라우드 환경 내에 포함된 전자 장치의 모듈들의 간소화된 블록도이다. 도 8의 간소화된 블록도는 도 1에 도시된 전자 장치(130)의 기능적 모듈들을 나타낼 수 있다. 이러한 기능적 모듈들은 도 2 내지 도 6의 설명을 통해 기술된 동작들을 실행하기 위해 전자 장치(130)에 포함될 수 있다.
도 8을 참조하면, 전자 장치(130)는 모듈들로서, 모니터링부(810), 워크로드 분류부(820), 가상머신 정책 결정부(830), 및 가상머신 마이그레이션 제어부(840)를 포함할 수 있다.
모니터링부(810)는, 복수의 후보 머신들인 전자 장치(120-1) 내지 전자 장치(120-n)의 상태 정보를 획득할 수 있다. 예를 들면, 모니터링부(810)는, 복수의 후보 머신들인 전자 장치(120-1) 내지 전자 장치(120-n) 각각과의 통신 연결을 통해, 상기 상태 정보를 획득할 수 있다. 다양한 실시예들에서, 상기 상태 정보는, 전술한 상기 제1 파라미터 내지 상기 제5 파라미터의 측정값들에 대한 데이터를 포함할 수 있다. 모니터링부(810)는, 상기 상태 정보를 워크로드 분류부(820)에게 제공할 수 있다.
워크로드 분류부(820)는, 상기 상태 정보를 모니터링부(810)로부터 획득할 수 있다. 한편, 워크로드 분류부(820)는, 클라우드 환경(100)을 통해 제공되는 어플리케이션의 유형, 클라우드 환경(100) 내에서 제공되는 서비스의 유형, 또는 클라우드 환경(100) 내에서 제공되는 서비스의 특성 중 적어도 하나에 기반하여, 워크로드의 유형을 분류할 수 있다. 예를 들어, 표 1을 참조하면, 워크로드 분류부(820)는, 웹에 동시 접속된 사용자들의 수가 200 이하인 경우 상기 워크로드의 상기 유형을 'low'로 분류하고, 웹에 동시 접속된 사용자들의 수가 200 초과 300 이하인 경우 상기 워크로드의 상기 유형을 'mid'로 분류하며, 웹에 동시 접속된 사용자들의 수가 300 초과인 경우 상기 워크로드의 상기 유형을 'high'로 분류할 수 있다. 워크로드 분류부(820)는, 상기 상태 정보 및 상기 분류된 유형에 대한 정보를 가상머신 정책 결정부(830)에게 제공할 수 있다.
가상머신 정책 결정부(830)는, 워크로드 분류부(820)로부터 상기 상태 정보 및 상기 분류된 유형에 대한 정보를 획득할 수 있다. 가상머신 정책 결정부(830)는, 상기 획득된 정보에 기반하여, 상기 파라미터들의 측정값들에 가중치들을 각각 적용함으로써, 상기 복수의 후보 머신들인 전자 장치(120-1) 내지 전자 장치(120-n) 중에서 하나의 전자 장치를 타겟 머신으로 결정할 수 있다. 가상머신 정책 결정부(830)는 상기 결정된 타겟 머신에 대한 정보를 가상머신 마이그레이션 제어부(840)에게 제공할 수 있다.
가상머신 마이그레이션 제어부(840)는 상기 결정된 타겟 머신에 대한 정보를 가상머신 정책 결정부(840)로부터 획득할 수 있다. 가상머신 마이그레이션 제어부(840)는, 상기 타겟 머신으로 상기 가상머신을 위한 마이그레이션을 수행할 수 있다. 예를 들면, 가상머신 마이그레이션 제어부(840)는, 전자 장치(120-k)로부터 전자 장치(120-n)로의 가상머신을 위한 마이그레이션을 수행할 수 있다. 예를 들면, 가상머신 마이그레이션 제어부(840)는, 상기 결정된 타겟 머신의 QoS가 사용자의 요청의 QoS에 대응함을 식별하는 것에 기반하여, 상기 가상머신을 위한 상기 마이그레이션을 수행할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(130)는, 정책 기반으로 마이그레이션의 타겟 장치를 결정함으로써, 보다 높은 자원 효율성을 제공할 수 있다.
본 개시의 청구항 또는 명세서에 기재된 실시예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다.
소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체가 제공될 수 있다. 컴퓨터 판독 가능 저장 매체에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금 본 개시의 청구항 또는 명세서에 기재된 실시예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다.
이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (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)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다.
또한, 상기 프로그램은 인터넷(Internet), 인트라넷(Intranet), LAN(local area network), WLAN(wide LAN), 또는 SAN(storage area network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 개시의 실시 예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크상의 별도의 저장장치가 본 개시의 실시 예를 수행하는 장치에 접속할 수도 있다.
상술한 본 개시의 구체적인 실시예들에서, 개시에 포함되는 구성 요소는 제시된 구체적인 실시 예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.
한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (20)

  1. 클라우드(cloud) 환경 내의 전자 장치(electronic device)에 있어서,
    통신 모듈;
    적어도 하나의 프로세서(processor); 및
    인스트럭션(instruction)들을 저장하는 적어도 하나의 메모리를 포함하고,
    상기 적어도 하나의 프로세서는, 상기 인스트럭션들을 실행할 시,
    사용자의 요청을 수신하고,
    상기 수신에 응답하여, 상기 사용자의 상기 요청과 관련된 서비스의 워크로드(workload)의 유형을 식별하고,
    상기 클라우드 환경 내의 복수의 후보 머신들 중 상기 식별된 워크로드의 유형에 대응하는 후보 머신을 타겟 머신으로 결정하고,
    상기 결정된 후보 머신으로 가상 머신을 위한 마이그레이션(migration)을 상기 통신 모듈을 이용하여 수행하도록 구성되는 전자 장치.
  2. 청구항 1에 있어서, 상기 적어도 하나의 프로세서는,
    상기 수신에 응답하여, 상기 복수의 후보 머신들 각각의 상태 정보를 획득하고,
    상기 식별된 워크로드의 유형에 기반하여, 상기 상태 정보를 구성하는 복수의 파라미터들의 값들을 결정하고,
    상기 결정된 값들에 기반하여, 상기 복수의 후보 머신들 중 상기 후보 머신을 상기 타겟 머신으로 결정하도록 구성되는 전자 장치.
  3. 청구항 2에 있어서, 상기 복수의 파라미터들은,
    상기 복수의 후보 머신들 각각의 프로세서의 이용 정도를 나타내는 제1 파라미터, 상기 복수의 후보 머신들 각각의 메모리의 이용 정도를 나타내는 제2 파라미터, 상기 복수의 후보 머신들 각각 내의 적어도 하나의 마이그레이션의 수를 나타내는 제3 파라미터, 상기 복수의 후보 머신들 각각의 비용을 나타내는 제4 파라미터, 및 상기 복수의 후보 머신들 각각이 요구하는 파워를 나타내는 제5 파라미터를 포함하는 전자 장치.
  4. 청구항 2에 있어서, 상기 적어도 하나의 프로세서는,
    상기 복수의 파라미터들 중 상기 식별된 워크로드의 유형에 대응하는 파라미터에 가장 높은 가중치를 적용함으로써, 상기 복수의 파라미터들의 값들을 각각 결정하도록 구성되는 전자 장치.
  5. 청구항 1에 있어서, 상기 적어도 하나의 프로세서는,
    상기 결정된 후보 머신의 QoS(quality of service)가 상기 사용자의 상기 요청의 타겟 QoS에 대응하는지 여부를 확인하고,
    상기 결정된 후보 머신의 QoS가 상기 타겟 QoS에 대응함을 확인하는 것에 기반하여, 상기 마이그레이션을 수행하도록 구성되는 전자 장치.
  6. 청구항 5에 있어서, 상기 적어도 하나의 프로세서는,
    상기 결정된 후보 머신의 QoS가 상기 타겟 QoS에 대응하지 않음을 확인하는 것에 기반하여, 상기 마이그레이션을 수행하는 것을 우회하고 상기 타겟 머신을 다시 결정하도록 더 구성되는 전자 장치.
  7. 청구항 1에 있어서, 상기 워크로드의 유형은,
    웹을 통해 상기 서비스를 이용하는 사용자들의 수에 기반하여 식별되는 전자 장치.
  8. 청구항 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 유형을 포함하는 전자 장치.
  9. 청구항 1에 있어서, 상기 사용자의 상기 요청은,
    상기 가상 머신의 할당을 요구하는 입력에 대응하는 전자 장치.
  10. 청구항 1에 있어서, 상기 사용자의 상기 요청은,
    상기 클라우드 환경 내의 제1 데이터 센터로부터 상기 제1 데이터 센터와 구별되는 상기 클라우드 환경 내의 제2 데이터 센터로의 상기 사용자의 위치 변경에 의해 야기되는 전자 장치.
  11. 클라우드 환경 내의 전자 장치를 동작하기 위한 방법에 있어서,
    사용자의 요청을 수신하는 동작과,
    상기 수신에 응답하여, 상기 사용자의 상기 요청과 관련된 서비스의 워크로드(workload)의 유형을 식별하는 동작과,
    상기 클라우드 환경 내의 복수의 후보 머신들 중 상기 식별된 워크로드의 유형에 대응하는 후보 머신을 타겟 머신으로 결정하는 동작과,
    상기 결정된 후보 머신으로 가상 머신을 위한 마이그레이션(migration)을 상기 통신 모듈을 이용하여 수행하는 동작을 포함하는 방법.
  12. 청구항 11에 있어서, 상기 후보 모신을 상기 타겟 머신으로 결정하는 동작은,
    상기 수신에 응답하여, 상기 복수의 후보 머신들 각각의 상태 정보를 획득하는 동작과,
    상기 식별된 워크로드의 유형에 기반하여, 상기 상태 정보를 구성하는 복수의 파라미터들의 값들을 결정하는 동작과,
    상기 결정된 값들에 기반하여, 상기 복수의 후보 머신들 중 상기 후보 머신을 상기 타겟 머신으로 결정하는 동작을 포함하는 방법.
  13. 청구항 12에 있어서, 상기 복수의 파라미터들은,
    상기 복수의 후보 머신들 각각의 프로세서의 이용 정도를 나타내는 제1 파라미터, 상기 복수의 후보 머신들 각각의 메모리의 이용 정도를 나타내는 제2 파라미터, 상기 복수의 후보 머신들 각각 내의 적어도 하나의 마이그레이션의 수를 나타내는 제3 파라미터, 상기 복수의 후보 머신들 각각의 비용을 나타내는 제4 파라미터, 및 상기 복수의 후보 머신들 각각이 요구하는 파워를 나타내는 제5 파라미터를 포함하는 방법.
  14. 청구항 12에 있어서, 상기 복수의 파라미터들의 상기 값들을 결정하는 동작은,
    상기 복수의 파라미터들 중 상기 식별된 워크로드의 유형에 대응하는 파라미터에 가장 높은 가중치를 적용함으로써, 상기 복수의 파라미터들의 값들을 각각 결정하는 동작을 포함하는 방법.
  15. 청구항 11에 있어서, 상기 마이그레이션을 수행하는 동작은,
    상기 결정된 후보 머신의 QoS(quality of service)가 상기 사용자의 상기 요청의 타겟 QoS에 대응하는지 여부를 확인하는 동작과,
    상기 결정된 후보 머신의 QoS가 상기 타겟 QoS에 대응함을 확인하는 것에 기반하여, 상기 마이그레이션을 수행하는 동작을 포함하는 방법.
  16. 청구항 15에 있어서,
    상기 결정된 후보 머신의 QoS가 상기 타겟 QoS에 대응하지 않음을 확인하는 것에 기반하여, 상기 마이그레이션을 수행하는 것을 우회하고 상기 타겟 머신을 다시 결정하는 동작을 더 포함하는 방법.
  17. 청구항 11에 있어서, 상기 워크로드의 유형은,
    웹을 통해 상기 서비스를 이용하는 사용자들의 수에 기반하여 식별되는 방법.
  18. 청구항 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 유형을 포함하는 방법.
  19. 청구항 11에 있어서, 상기 사용자의 상기 요청은,
    상기 가상 머신의 할당을 요구하는 입력에 대응하는 방법.
  20. 비일시적 컴퓨터 판독 가능 저장 매체에 있어서,
    클라우드 환경 내의 전자 장치의 하나 이상의 프로세서들에 의해 실행될 시,
    사용자의 요청을 수신하고,
    상기 수신에 응답하여, 상기 사용자의 상기 요청과 관련된 서비스의 워크로드(workload)의 유형을 식별하고,
    상기 클라우드 환경 내의 복수의 후보 머신들 중 상기 식별된 워크로드의 유형에 대응하는 후보 머신을 타겟 머신으로 결정하고,
    상기 결정된 후보 머신으로 가상 머신을 위한 마이그레이션(migration)을 상기 통신 모듈을 이용하여 수행하도록, 상기 전자 장치를 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램들을 저장하는 비일시적 컴퓨터 판독 가능 저장 매체.
PCT/KR2019/018108 2018-12-20 2019-12-19 클라우드 환경 내에서 가상 머신을 위한 마이그레이션을 수행하기 위한 전자장치 및 그의 동작 방법 WO2020130676A1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2018-0166323 2018-12-20
KR20180166323 2018-12-20
KR1020190132570A KR102296940B1 (ko) 2018-12-20 2019-10-23 클라우드 환경 내에서 가상 머신을 위한 마이그레이션을 수행하기 위한 전자 장치 및 그의 동작 방법
KR10-2019-0132570 2019-10-23

Publications (1)

Publication Number Publication Date
WO2020130676A1 true WO2020130676A1 (ko) 2020-06-25

Family

ID=71102619

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2019/018108 WO2020130676A1 (ko) 2018-12-20 2019-12-19 클라우드 환경 내에서 가상 머신을 위한 마이그레이션을 수행하기 위한 전자장치 및 그의 동작 방법

Country Status (1)

Country Link
WO (1) WO2020130676A1 (ko)

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 (ko) * 2008-12-17 2010-06-25 삼성전자주식회사 프로세스 마이그레이션을 관리하는 장치 및 방법
KR20140117905A (ko) * 2013-03-27 2014-10-08 인하대학교 산학협력단 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법
KR20160042699A (ko) * 2014-10-10 2016-04-20 삼성전자주식회사 모바일 사용자 경험 개선을 위한 가상 머신 마이그레이션 방법 및 이를 위한 장치
KR20160070636A (ko) * 2014-12-10 2016-06-20 경희대학교 산학협력단 분산 클라우드 환경에서의 마이그레이션 제어 장치 및 이를 이용한 마이그레이션 제어 방법

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 (ko) * 2008-12-17 2010-06-25 삼성전자주식회사 프로세스 마이그레이션을 관리하는 장치 및 방법
KR20140117905A (ko) * 2013-03-27 2014-10-08 인하대학교 산학협력단 클라우드 서비스의 가상자원 할당을 위한 퍼지 로직 기반의 자원평가 장치 및 방법
KR20160042699A (ko) * 2014-10-10 2016-04-20 삼성전자주식회사 모바일 사용자 경험 개선을 위한 가상 머신 마이그레이션 방법 및 이를 위한 장치
KR20160070636A (ko) * 2014-12-10 2016-06-20 경희대학교 산학협력단 분산 클라우드 환경에서의 마이그레이션 제어 장치 및 이를 이용한 마이그레이션 제어 방법

Similar Documents

Publication Publication Date Title
JP6571161B2 (ja) アプリケーショントポロジ関係を探索するための方法、装置、およびシステム
US10282192B1 (en) Updating device code through a bus
US9965324B2 (en) Process grouping for improved cache and memory affinity
US10523585B2 (en) System on a chip comprising multiple compute sub-systems
CN102473106B (zh) 虚拟环境中的资源分配
US9733980B1 (en) Virtual machine management using I/O device logging
US20140173624A1 (en) Load balancing scheme
CN104714847A (zh) 用于动态地改变云计算环境的方法和系统
JP6172649B2 (ja) 情報処理装置、プログラム、及び、情報処理方法
WO2014069827A1 (en) System and method for providing data analysis service in a cloud environment
EP3256953B1 (en) Multi-mode system on a chip
US20130198400A1 (en) Cognitive Dynamic Allocation in Caching Appliances
JP2020087470A (ja) データアクセス方法、データアクセス装置、機器及び記憶媒体
US20160239445A1 (en) System on a chip comprising an i/o steering engine
CN104077187A (zh) 用于调度应用程序的执行的方法和系统
US11347512B1 (en) Substitution through protocol to protocol translation
US9588817B2 (en) Scheduling method and scheduling system for assigning application to processor
WO2020130676A1 (ko) 클라우드 환경 내에서 가상 머신을 위한 마이그레이션을 수행하기 위한 전자장치 및 그의 동작 방법
WO2017166207A1 (en) Cooperative scheduling of virtual machines
US10909044B2 (en) Access control device, access control method, and recording medium containing access control program
KR20200077391A (ko) 클라우드 환경 내에서 가상 머신을 위한 마이그레이션을 수행하기 위한 전자 장치 및 그의 동작 방법
CN112181605A (zh) 负载均衡方法、装置、电子设备和计算机可读介质
JP2017021618A (ja) 情報処理装置、並列計算機システム、ファイルサーバ通信プログラム及びファイルサーバ通信方法
US11347778B2 (en) Scale-out indexing for a distributed search engine
US11593178B2 (en) ML-to-ML orchestration system and method for system wide information handling system (IHS) optimization

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19900039

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19900039

Country of ref document: EP

Kind code of ref document: A1