WO2016153288A1 - 가상 클러스터 관리 시스템 및 이를 제어하기 위한 방법 - Google Patents

가상 클러스터 관리 시스템 및 이를 제어하기 위한 방법 Download PDF

Info

Publication number
WO2016153288A1
WO2016153288A1 PCT/KR2016/002985 KR2016002985W WO2016153288A1 WO 2016153288 A1 WO2016153288 A1 WO 2016153288A1 KR 2016002985 W KR2016002985 W KR 2016002985W WO 2016153288 A1 WO2016153288 A1 WO 2016153288A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual
time
virtual machines
hosts
cluster
Prior art date
Application number
PCT/KR2016/002985
Other languages
English (en)
French (fr)
Other versions
WO2016153288A9 (ko
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 KR1020150040495A external-priority patent/KR101947221B1/ko
Priority claimed from KR1020150040457A external-priority patent/KR101865994B1/ko
Priority claimed from KR1020150040459A external-priority patent/KR101916809B1/ko
Application filed by 건국대학교 산학협력단 filed Critical 건국대학교 산학협력단
Publication of WO2016153288A1 publication Critical patent/WO2016153288A1/ko
Publication of WO2016153288A9 publication Critical patent/WO2016153288A9/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt

Definitions

  • the present invention relates to a virtual cluster management system and a method for controlling the same, and more particularly, to a virtual cluster management system capable of creating a virtual cluster in consideration of the relationship between virtual machines and a method for controlling the same. .
  • virtual machine scheduling is a process of determining a host on which a requested virtual machine is to be deployed and run, and a virtual machine scheduler is a tool for performing virtual machine scheduling.
  • Virtual machine scheduling by a conventional virtual machine scheduler concentrates on batch scheduling for a single virtual machine.
  • the scheduler of the virtual machines in response to such collective virtual machine scheduling requests, associates the virtual machines of each of the virtual machines with each other.
  • Batch scheduling is performed by recognizing it as an independent virtual machine with no specific characteristics. Therefore, the virtual machine user has no choice but to give only the collectiveness limited to the user himself to the virtual machine group that he uses.
  • the virtual machine scheduler has a limitation that cannot be reflected in virtual machine deployment scheduling in consideration of a collective characteristic intended by a user, for example, a relationship in terms of deployment between virtual machines.
  • the existing virtual machine deployment system has a problem that does not support the placement and time scheduling of the virtual cluster. It also has structural and functional limitations that make it difficult to dynamically apply various batch algorithms. Accordingly, there are structural constraints that make it difficult to apply different deployment algorithms in subgroup units or in virtual machines in subgroups in a virtual cluster environment.
  • the existing virtual computing resource deployment schedulers have a structure in which integration or interworking with various virtual computing resource management systems, for example, a virtual machine management system or a cloud management system, is impossible due to the lack of scalability.
  • the problem to be solved by the present invention is a virtual cluster management system that can arrange virtual machines in a virtual cluster in units of virtual machines in subgroups or subgroup units, and is reusable and flexible to environmental change factors, and It provides a method for controlling.
  • Another object of the present invention is to provide a virtual cluster management system capable of integrating with various virtual machine management systems and directly controlling a plurality of hosts and a method for controlling the same.
  • deploying virtual machines in a virtual cluster is different from simply deploying a plurality of virtual machines sequentially.
  • the virtual machine layout method is not composed of algorithm filtering units of uniform filtering, sorting, and selection, but may be a combination of various algorithm execution units.
  • an object of the present invention is to provide a virtual cluster deployment method and apparatus for providing the same, which can implement a combination of various algorithm execution units in the arrangement of virtual machines in order to maximize the efficiency of the deployment according to the situation. It is.
  • Another object of the present invention is to provide a virtual cluster deployment method and apparatus for providing the same, which can each arrange a plurality of virtual machines in a virtual cluster in accordance with a relationship attribute to each other.
  • Another object of the present invention is to provide a method for providing a virtual cluster arrangement and an apparatus for providing the same, which can more efficiently perform the determination or classification of a plurality of virtual machines in a virtual cluster and determine the attributes again. will be.
  • scheduling of a virtual cluster cannot be performed on a deadline basis so that the virtual machine can be used from a time point desired by the user.
  • the user had to request scheduling of the virtual cluster in advance in consideration of the creation time of the virtual cluster.
  • the problem to be solved by the present invention is to calculate the creation time information to complete the creation of the virtual cluster on the basis of the deadline set by the user in scheduling the running time of the virtual cluster, the virtual cluster at the time desired by the user To provide a virtual cluster driving time scheduling method and apparatus that can be scheduled to use.
  • Another object of the present invention is to process the virtual cluster creation time and the total boot time for each of the virtual machines included in the virtual cluster in parallel, thereby reducing the time required to create the virtual cluster, virtual cluster running time scheduling It is to provide a method and apparatus.
  • Another object of the present invention is to provide a virtual cluster driving time scheduling method and apparatus that can efficiently use a virtual cluster by scheduling the virtual cluster to be periodically generated and destroyed.
  • the virtual cluster management system processes a control request for a virtual cluster system including a plurality of virtual machines, thereby managing the virtual cluster system control information and a plurality of virtual machines at a plurality of hosts.
  • a virtual cluster control unit configured to control operations of the plurality of virtual machines based on the control information by controlling the external virtual machine management system directly or by directly connecting to and controlling the plurality of hosts.
  • the virtual cluster controller causes an external virtual machine management system to perform at least one operation of creating, terminating, stopping, restarting, migrating, changing the virtual cluster size, and allocating the allocated resource scale. It is further configured to.
  • the virtual cluster management system further comprises a virtual machine management system access driver, which is connected to the virtual cluster controller, the virtual machine management system access driver is used in an external virtual machine management system or host And convert the virtual computing resource control function into a virtual computing resource control function available to the virtual cluster controller.
  • the virtual cluster management system further comprises a driver management unit configured to perform registration, change or deletion of the virtual machine management system access driver.
  • the virtual cluster management system further includes a time engine configured to schedule a start time of the virtual cluster system and a deployment engine configured to determine a host on which the plurality of virtual machines are deployed, and the virtual cluster control information.
  • the management unit stores the control information of the plurality of virtual machines or the control information of the virtual cluster system generated by the time engine or the batch engine in a schedule table.
  • the deployment engine includes a plurality of calculation modules for deploying a plurality of virtual machines, the plurality of calculation modules configured to be accessible to control information.
  • the deployment engine is further configured to store the layout of the plurality of virtual machines in the form of control information.
  • the virtual cluster management system receives a control request for a virtual cluster system or virtual machines and assigns the control request to the virtual cluster control information management unit or the virtual cluster control unit according to the property of the control request.
  • the configured virtual cluster operation management unit further includes.
  • the virtual cluster management system collects resource information, status information, resource information and status information of a plurality of virtual machines of a plurality of hosts, and includes resource information, status information, and a plurality of host information of a plurality of hosts.
  • the apparatus may further include an information manager configured to provide at least one of resource information, status information, and control information of the virtual machine.
  • a control method of a virtual cluster management system includes receiving a control request for a virtual cluster system including a plurality of virtual machines, generating or correcting control information of the plurality of virtual cluster systems according to the control request, and controlling a plurality of hosts.
  • controlling the plurality of virtual machines through the external virtual machine management system to manage or directly connected to the plurality of hosts, to output a command for controlling the operation of the plurality of virtual machines on the plurality of hosts based on the control information Steps.
  • a control method of a virtual cluster management system includes classifying a control request into a control request that requires scheduling or a control request that does not require scheduling, and a plurality of virtual machines according to a control request that does not require scheduling. Outputting a command for controlling the operation of the operation, and outputting a command for controlling the operation of the plurality of virtual machines according to a control request that does not require scheduling to be performed independently of the control information .
  • control method of the virtual cluster management system further comprises the step of determining the operating time of the virtual cluster system in response to a control request to the virtual cluster system and updating the control information according to the determined operating time Include.
  • control method of the virtual cluster management system further comprises the step of determining the placement of the virtual cluster system according to the control request to the virtual cluster system and updating the control information according to the determined arrangement .
  • the virtual cluster deployment method may include receiving system information about a virtual cluster system including a plurality of virtual machines, classifying the plurality of virtual machines into subgroups, relationship attributes between the subgroups, or a plurality of virtual machines in the subgroups. Determining a relationship attribute between and deploying one of the plurality of virtual machines to one of the plurality of hosts according to the relationship attribute between the subgroups or the relationship attribute between the plurality of virtual machines in the subgroup.
  • deploying one of the plurality of virtual machines to one of the plurality of hosts includes placing some of the plurality of virtual machines on different hosts of the plurality of hosts.
  • deploying one of the plurality of virtual machines to one of the plurality of hosts comprises performing calculations associated with the placement of the plurality of virtual machines via at least one calculation module,
  • Each of the at least one computing module comprises: (a) handling information about a subgroup, (b) partitioning a subgroup, (c) sorting hosts, (d) filtering a host, ( e) extracting the host; Or (f) performing at least one step of performing a user defined function.
  • the step of placing one of the plurality of virtual machines on one of the plurality of hosts is performed using a combination of different calculation modules depending on the relationship attributes.
  • the relationship attribute between subgroups or the relationship attribute between a plurality of virtual machines in a subgroup is a distributed arrangement or an integrated arrangement.
  • the method for deploying a virtual cluster further comprises updating a deployment map for the virtual cluster system after deploying one of the plurality of virtual machines to one of the plurality of hosts, at least One calculation module is configured to be accessible to the placement map.
  • deploying one of the plurality of virtual machines to one of the plurality of hosts includes selecting a host based on the placement map to place the virtual machine on one of the plurality of hosts.
  • the classifying the plurality of virtual machines into subgroups is classifying the plurality of virtual machines into subgroups based on resource requirements of the plurality of virtual machines or based on user-defined definitions. .
  • the classifying a plurality of virtual machines into subgroups may include classifying the plurality of virtual machines into subgroups according to classification criteria, and the classification criteria may be based on classification history or previously stored classification information. Is determined accordingly.
  • the virtual cluster placement method further comprises verifying a relationship attribute between subgroups or a relationship attribute between a plurality of virtual machines in the subgroup.
  • an apparatus for providing a virtual cluster arrangement includes a request receiving unit for receiving system information for a virtual cluster system including a plurality of virtual machines; And a deployment engine coupled with the request receiving unit, wherein the deployment engine classifies the plurality of virtual machines into subgroups, determines a relationship attribute between the subgroups or a relationship attribute between the plurality of virtual machines in the subgroup, According to the relationship attribute between or among the plurality of virtual machines in the subgroup, one of the plurality of virtual machines is configured to be placed in one of the plurality of hosts.
  • the deployment engine is configured to deploy one of the plurality of virtual machines to a plurality of hosts via at least one computation module, each of the at least one computation module comprising: (a) information about a subgroup; Handling (b) partitioning the subgroups, (c) sorting the hosts, (d) filtering the hosts, and (e) extracting the hosts; Or (f) performing at least one step of performing a user defined function.
  • the deployment engine is further configured to update the deployment map for the virtual cluster system after deploying one of the plurality of virtual machines to one of the plurality of hosts.
  • the deployment engine is configured to deploy one of the plurality of virtual machines to one of the plurality of hosts by selecting the host based on the placement map to deploy the virtual machine to one of the plurality of hosts. do.
  • the virtual cluster driving time scheduling method comprises the steps of receiving a request for calculating the deadline and the start time for the creation of the virtual machine to the virtual machine, Calculating a generation start time based on the deadline, and transmitting the generation start time to an external module.
  • the calculating of the generation start time may include calculating a generation start time based on a generation command delivery time, a virtual container creation time, and a total boot time.
  • the step of calculating a creation start time may include sequentially processing generation command delivery time for each virtual machine, and creating a virtual container for each virtual machine.
  • the step of calculating the generation start time to be processed sequentially or in parallel, so that the total boot time for each virtual machine is processed in parallel.
  • the step of calculating the creation start time when the virtual machine is placed on the same host, the virtual container creation time for each virtual machine is sequentially processed on one host, the virtual machine is In the case of being arranged on different hosts, the step of calculating a generation start time is performed so that the virtual container creation time for each virtual machine is processed in parallel on different hosts.
  • the total boot time is characterized in that the sum of at least one or more of the boot selection time, boot time, initialization time and delay time.
  • the step of calculating the generation start time is characterized in that the step of calculating the generation start time based on the generation completion time.
  • the step of calculating characterized in that the step of calculating the generation start time so as to ensure a spare time between the generation completion time and the deadline.
  • the calculating may include calculating a generation start time based on an execution slot.
  • the execution slot is characterized in that partitioned at regular time intervals.
  • the virtual cluster driving time scheduling method further includes a step of determining a time model to be applied to a calculation request, and the calculating step includes calculating a generation start time based on the time model. It is characterized by the steps.
  • the virtual cluster driving time scheduling method includes adding another time model through a user's request, changing a time model through a user's request, or deleting a time model through the user's request. Characterized in that it further comprises the step.
  • the step of receiving characterized in that the step of receiving a drive cycle including the drive start time and the drive end time for the virtual machine and the calculation request for periodically driving the virtual machine .
  • a method for scheduling a virtual cluster driving time comprising: receiving a deadline which is a time point at which a virtual machine is to be used, and calculating a generation start time based on the deadline And generating the virtual machine so that the virtual machine is completed before the deadline based on the step and the generation start time.
  • the virtual cluster running time scheduling apparatus includes a receiving unit for receiving a request for calculating the deadline and the start time for generating the virtual machine, which is the time to use the virtual machine, And a transmitter configured to calculate a generation start time based on the deadline, and a transmitter configured to transmit the generation start time to an external module.
  • a virtual cluster driving time scheduling apparatus calculates a generation start time based on a deadline and a receiver for receiving a deadline which is a time point at which a virtual machine is to be used. And a generation unit generating the virtual machine so that the virtual machine is generated before the deadline based on the calculation unit and the generation start time.
  • the present invention can provide a virtual cluster management system and a method for controlling the virtual machines in the virtual cluster can be arranged in units of virtual machines in subgroups or subgroup units, reusable and flexible to environmental change factors. It has an effect.
  • the present invention can provide a virtual cluster management system that can be integrated with various virtual machine management systems, and can directly control a plurality of hosts and a method for controlling the same.
  • the present invention has the effect of providing a virtual cluster deployment method and an apparatus for providing the same, which can implement a combination of various algorithm execution units in the deployment of virtual machines in order to maximize the efficiency of the deployment according to the situation.
  • the present invention can provide a virtual cluster deployment method and apparatus for providing the same, which can place each of a plurality of virtual machines in the virtual cluster in accordance with the relationship attribute to each other on the appropriate host.
  • the present invention has an effect of providing a method for arranging a virtual cluster and an apparatus for providing the same, which can perform classification of a plurality of virtual machines in a virtual cluster or determination of a relationship attribute more efficiently, and can verify the same again.
  • the generation time is calculated so that the virtual cluster is completed based on the deadline set by the user, so that the user can schedule the virtual cluster at a desired time.
  • FIG. 1 exemplarily illustrates a schematic diagram for describing an operation of a virtual cluster management system according to an exemplary embodiment of the present invention.
  • FIG. 2 is an exemplary block diagram illustrating a virtual cluster management system according to an embodiment of the present invention.
  • FIG. 3 is an exemplary block diagram illustrating a virtual cluster control information management unit of a virtual cluster management system according to an embodiment of the present invention.
  • FIG. 4 is an exemplary block diagram illustrating a virtual cluster controller of a virtual cluster management system according to an embodiment of the present invention.
  • FIG. 5 is an exemplary block diagram illustrating a processing flow when a control request for a virtual cluster is received in the virtual cluster management system according to an embodiment of the present invention.
  • FIG. 6 exemplarily shows a schematic diagram for explaining an operation of a virtual cluster management system according to another embodiment of the present invention.
  • FIG. 7 is a schematic flowchart illustrating a control method of a virtual cluster management system according to an embodiment of the present invention.
  • FIG. 8 exemplarily shows a block diagram of an apparatus for virtual cluster deployment according to an embodiment of the present invention.
  • FIG. 9 is a schematic flowchart illustrating a virtual cluster deployment method according to an embodiment of the present invention.
  • FIG. 10 is a schematic diagram illustrating a virtual cluster deployment method according to an embodiment of the present invention.
  • 11A and 11B are schematic diagrams for describing a specific application example of a virtual cluster arrangement method according to an embodiment of the present invention.
  • FIG. 12 is a conceptual diagram illustrating an example in which a virtual cluster including a plurality of virtual machines is disposed on a plurality of hosts in a specific application example of the method for deploying a virtual cluster according to an embodiment of the present invention.
  • FIGS. 13 to 17 are diagrams for describing processing performance and performance indicators of the virtual cluster arrangement method according to an embodiment of the present invention.
  • 19 is a schematic block diagram of a virtual cluster driving time scheduling apparatus according to an embodiment of the present invention.
  • 20 is a flowchart illustrating a virtual cluster driving time scheduling method according to an embodiment of the present invention.
  • 21A to 21C are conceptual diagrams for describing an operation of calculating exemplary generation time information in a virtual cluster driving time scheduling method according to some embodiments of the present invention.
  • 22A and 22B are conceptual diagrams for describing an exemplary execution slot generation step in a virtual cluster driving time scheduling method according to some embodiments of the present invention.
  • first, second, etc. are used to describe various components, these components are not limited by these terms. These terms are only used to distinguish one component from another. Therefore, the first component mentioned below may be a second component within the technical spirit of the present invention.
  • each of the features of the various embodiments of the present invention may be combined or combined with each other, partly or wholly, and various interlocking and driving technologies are possible, and each of the embodiments may be independently implemented with respect to each other or may be implemented together in a related relationship. It may be.
  • the VC management system 100 exemplarily illustrates a schematic diagram for describing an operation of a virtual cluster (VC) management system according to an embodiment of the present invention.
  • the VC management system 100 is a software framework for a virtual cluster scheduler that performs the placement and time scheduling of the virtual machines constituting the virtual cluster, or performs the placement and time scheduling of the virtual machines. It is a framework for controlling virtual machines accordingly.
  • FIG. 1 an exemplary soft framework for a virtual scheduler that can be integrated or interworked with an external virtual machine management system (VMMS) is illustrated.
  • the VC management system 100 may exist as one of the scalable function modules of the VMMS, and conversely, the VMMS may exist as the scalable function module of the VC management system 100.
  • the VC management system 100 may be connected to the external VMMS compatible through the access driver. An embodiment in which the VC management system 100 directly controls a host will be described later with reference to FIG. 6.
  • the VC management system 100 may receive control information about the virtual cluster, schedule control of virtual machines in the virtual cluster or instruct control of the virtual machines in the virtual cluster according to the control information.
  • VMMS is a system for managing virtual computing resources and controlling virtual machines.
  • VMMS may be, for example, OpenNebula, OpenStack, Eucalyptus, CloudStack, and the like.
  • the VMMS may receive a control command for the virtual machine from the VC management system 100 to perform operations such as creating virtual machines on the hosts, terminating or restarting the virtual machines, and the like.
  • Virtual machines are created and run on a host. Hosts may be controlled through VMMS. The user may directly access the virtual machines created on the host to operate the virtual machine.
  • the VC management system 100 may be configured to receive control information for the virtual cluster through a separate web service.
  • the VC management system 100 may be configured to receive a status for a virtual machine and a host from the VMMS and provide it back to the user.
  • the VC management system 100 includes a VC control request management unit 110, a VC operation management unit 120, a VC control information management unit 130, a time engine 140, a deployment engine 150, and a VC control unit. 160, a VMMS access driver, a driver manager 180, and an information manager 190.
  • the VC control request management unit 110 receives the VC control request and is capable of processing a VC control request, such as a VC control request specification, described in a specific data format by the components of the VC management system 100. It converts to. In addition, the VC control request management unit 110 transmits the VC control request to the VC operation management unit 120. For example, the VC control request management unit 110 receives the VC control request in JSON and XML format, converts it into a VC control request that can be processed by internal components, and then converts the VC control request to the VC operation management unit 120. Can be passed.
  • the VC control request management unit 110 receives commands related to virtual cluster control (VC generation arrangement, VC termination, VC stop / restart, VC migration, VC change in size) from external VMMSs, thereby allowing the VC management system 100 to be internal. It can also serve to convey commands related to virtual cluster control (VC generation arrangement, VC termination, VC stop / restart, VC migration, VC change in size) from external VMMSs, thereby allowing the VC management system 100 to be internal. It can also serve to convey commands related to virtual cluster control (VC generation arrangement, VC termination, VC stop / restart, VC migration, VC change in size) from external VMMSs, thereby allowing the VC management system 100 to be internal. It can also serve to convey commands related to virtual cluster control (VC generation arrangement, VC termination, VC stop / restart, VC migration, VC change in size) from external VMMSs, thereby allowing the VC management system 100 to be internal. It can also serve to convey commands related to virtual cluster control (VC
  • the VC control request management unit 110 may use a technology such as a remote procedure call (RPC) to receive requests related to virtual cluster control from the VMMS.
  • RPC remote procedure call
  • the VC control request manager 110 may be implemented based on XML-RPC technology.
  • the VC operation management unit 120 is configured to receive a control request for the virtual cluster system or the virtual machines, and assign the control request to the VC control information management unit 130 or the VC control unit 160 according to the property of the control request.
  • the VC operation management unit 120 determines a type of work to be performed by the VC control request and classifies it into “a control request requiring VC scheduling” or a “control request that does not require VC scheduling”. “Control request requiring VC scheduling” involves resource allocation and time scheduling calculations required for VC deployment. A “control request that does not require VC scheduling” does not involve batch or time scheduling calculations, such as suspension / restart or shutdown for a running VC.
  • VC operation management unit 120 has a job queue (Job Queue) for receiving a VC control request from the VC control request management unit 110, determines whether there is a VC control request in the job queue, and then the VC control request in the queue It classifies them and delivers them to the appropriate object type.
  • the VC operation management unit 120 may divide and perform the above-described division into a task of a VC unit and a management task of a VM unit.
  • the VC operation manager 120 transmits a control request requiring direct control of the VMs, for example, a control request for terminating some VMs or all VMs in the VC, to the VC controller 160. On the contrary, control requests requiring scheduling such as VC generation / migration / scale and change of allocated resource scale are transmitted to the VC control information manager 130.
  • the VC control information management unit 130 is configured to manage control information of the virtual cluster system by processing a control request for the virtual cluster system including the plurality of virtual machines.
  • the VC control information manager 130 generates, deletes, or modifies VC or VM control information such as a driving schedule of the VC or VM.
  • the VC control information manager 130 may internally have separate processors according to the type of control task, for example, initial batch scheduling, virtual cluster scaling, and the like.
  • the VC control information manager 130 performs spatial arrangement or temporal scheduling through the placement engine 150 and the time engine 140 around these processors.
  • the present invention is not limited thereto, and one processor may perform all control tasks.
  • the VC control information management unit 130 includes a VM state synchronization processor, and through the VM state synchronization processor performs a control information change / deletion operation according to the change of the state of the VC or VMs, such as VC termination, VM operation abnormality, etc. do.
  • the VC control information management unit 130 updates the control state according to the progress state of the VC control operation.
  • the VC control information management unit 130 will be described later with reference to FIG. 3.
  • the deployment engine 150 is configured to determine a host where a plurality of virtual machines are deployed.
  • the placement engine 150 performs VC placement or placement of VMs within the VC according to the VC deployment strategy to determine the host on which the VC will run.
  • the placement engine 150 performs VC placement tasks through placement calculation function modules for performing a VC placement strategy for VC placement.
  • the calculating function module is configured to be accessible to the control information.
  • VC deployment can be successfully performed or result in computational failures due to various factors such as control requirements and virtual computing resource status. If the VC deployment is successful, the placement engine 150 returns a layout diagram for the hosts on which the VC is to be driven to the VC control information management unit 130. If an error occurs during the VC deployment or a VC deployment failure, the deployment engine 150 returns this to the VC control information management unit 130.
  • the time engine 140 greatly supports “on-the-fly” and “scheduled creation” for the two options for when to start the VC.
  • the “on-time” VC on-time option is detailed.
  • the time engine 140 may provide VC generation time optimization based on the “VC Creation Time Model” to provide “deadline based VC generation” among the reservation generation options. This minimizes the problem of “out of service time” when creating reservations for large-scale VCs, and creates a Maginonot line for the creation of various computing resources required for the virtual machines that make up the virtual cluster in the virtual cluster provisioning system. To be set.
  • the time engine 140 starts a VC generation start time calculation task at the request of the VC control information management unit 130.
  • the VC control information manager 130 Based on the time scheduling result, the VC control information manager 130 generates control information such as a VC driving schedule and a VM driving schedule based on the calculated driving start time of the VC and driving start time of each VM in the VC, and stores them as a schedule table. do.
  • the VC control unit 160 accesses the VMMS through the VMMS access driver 170 that provides the VMMS access function and transmits a virtual cluster control command when a VC control request such as creation / stop / restart / migration / size change of the VC occurs. It plays a role.
  • the VC controller 160 is divided into a “VC control layer” that is in charge of VC control and a “VM control layer” that controls VMs in the VC.
  • the “VC control layer” generates control commands for each VM in the VC.
  • There are five types of VM controllers (VM creation controller, VM shutdown controller, VM stop / restart controller, VM migration controller, VM size change controller). To).
  • the VM control unit has a control command queue containing a VM control command generated from a VC controller to be described later, and each VM control unit processes the VM control commands by checking the control command queue at regular intervals.
  • the VMMS access driver 170 performs various VM controls requested by the components of the VC management system 100, for example, the VC control unit 160, and receives the VMMS to receive information about virtual computing resources and status. Interact directly with
  • the VMMS management driver performs the "informational" and "VM control" functions.
  • the VMMS management driver receives resource information and state information about virtual machines and hosts constituting various virtual computing environments registered and managed in the VMMS from the VMMS, and supplies them to the components of the VC management system 100.
  • the VMMS management driver executes a series of VM control commands such as creation, termination, stop, and restart of the VM to access and execute the VMMS.
  • the VMMS management driver also receives the results of the executed control commands from the VMMS and returns them to the components of the VC management system 100.
  • the VMMS management driver uses various externally accessible APIs provided by VMMS to perform various collections of hosts and virtual machines required for virtual cluster deployment and various VC control commands such as VM deployment and termination.
  • the VMMS access driver 170 exists in a separate form callable from all the components in the VC management system 100 and may be managed through the driver manager 180 to be described later. That is, even if the VMMS access driver 170 is changed, no change of other components in the VC management system 100 is required. Accordingly, various VMMS access drivers 170 may be used in the VC management system 100. That is, the VC management system 100 may control the VMs using various types of VMMSs according to the VMMS access driver 170 without using one type of VMMS.
  • the driveable VMMS access driver 170 is recognized and managed by the driver manager 180.
  • the VMMS access driver 170 provides at least 17 kinds of functions and three internal variables.
  • the three internal variables consist of a “name” variable that specifies the name of the VMMS access driver 170, a “path” that stores the file path of the driver, and a “handle” that is used for driver use and management.
  • the “handle” variable is a space for storing the object handler of the objectified driver after objectifying the driver when the driver is recognized by the driver manager 180.
  • the VMMS access driver 170 provides at least 17 kinds of functions including getVMInfo, getVMInfoList, getVMInfoList_RawData, getVMInfoCore_List, setVMInfo_by_RawData, getHostInfo, getHostInfoList, getHostInfoList_RawData, getHostInfoCore_List, setHostInfo_by_RawData, deployVM, shutdownVM, pauseVM, unpauseVM, and migrateVM.
  • the functions provided are largely composed of two functions, functions used by the information synchronization modules of the VM and the host, and functions provided for executing a unique VM control command of each of the VM control controllers in the VC controller 160. .
  • the driver manager 180 provides a series of “VMMS access driver 170 management functions” such as registration / change / delete of the VMMS access driver 170. In addition, the driver manager 180 performs a role of granting and retrieving usage rights to various elements of the framework that intend to use the VMMS access driver 170. In order to provide a dynamic registration / change / delete function of the VMMS access driver 170, the driver manager 180 may perform a file system change event such as adding / changing / deleting a VMMS access driver 170 file from the file system detection system. Can be received. The driver manager 180 manages the VMMS access driver 170 in an automated manner according to the received event.
  • Rights to use the VMMS access driver 170 may be granted to and used by all components in the virtual cluster management system. Accordingly, the "batch calculation function module" used for VC deployment allows direct implementation of the VMMS access driver 170 and VMMS, even the host, so that functions that were difficult to implement in conventional deployment schedulers can be implemented.
  • the information manager 190 collects resource information, state information, resource information, and state information of a plurality of hosts, and includes resource information, state information, resource information of a plurality of virtual machines, and state information of a plurality of hosts. And control information.
  • the information manager 190 manages VM information and host information required for VC deployment.
  • the information manager 190 provides the deployment engine 150 with information of the virtual machine and the host required for deployment.
  • the information manager 190 periodically receives and updates VM information and host information necessary for VC deployment through synchronization modules.
  • the information manager 190 may store and manage various system related information transmitted from an external information collection system, for example, a system monitoring system. Accordingly, the information transmitted from the internal information and the external system can be simultaneously received. Information delivered from an external information collection system may be used for adding / updating internal information.
  • the information manager 190 updates the information, and all received system information is “monitoring information based on the reception time”. Reception date ”.
  • the information synchronization modules may optionally be used in an environment in which no external monitoring system exists or in which information provided in the VMMS needs to be collected.
  • the VC management system 100 provides an automated management mechanism for scalable elements.
  • Extensible elements include deployment strategy, functional modules used within the deployment strategy, and the VMMS access driver 170.
  • Automated management mechanisms for scalable elements consist of "initial awareness” and "on-the-go management” functions.
  • “Initial recognition” function means a function of searching for a specific directory designated for each element and automatically registering the elements in the manager's pool for each element when the VC management system 100 is initially started.
  • “Management while running” refers to a function that automatically detects the addition / deletion / change of each element while the virtual cluster management system is running and reflects it in the manager's repository for each element.
  • the VC management system 100 may be integrated with the VMMS through the VMMS access driver 170, and the VC control unit 160 and the VC control information management unit 130 may be used. In this way, virtual machines can be deployed / driven according to the deployment strategy for the virtual cluster.
  • the VC control information management unit 130 and the VC control unit 160 among the components in the VC management system 100 will be described in detail with reference to FIGS. 3 and 4.
  • FIG. 3 is an exemplary block diagram illustrating a virtual cluster control information management unit 190 of a virtual cluster management system according to an embodiment of the present invention.
  • the VC control information management unit 130 performs a series of control information management tasks such as generation / change / modification of control information such as a driving schedule of the virtual cluster.
  • the VC control information manager 130 is connected with the placement engine 150 and the time engine 140 to place the virtual cluster and generate driving time information. In addition, the VC control information manager 130 modifies or deletes control information such as a driving schedule of the virtual machine and the virtual cluster based on the information according to the state of the virtual machine.
  • the VC control information manager 130 may include a control information manager 131, a VC control information handle processor 132, a job classifier 133, a VC schedule table 134, a VM schedule table 135, The execution slot list 136 and the VM state synchronizer 137 are included.
  • the control request requiring scheduling in the VC control information management unit 130 is processed by the VC control information handle processor 132.
  • the VC control information handle processor 132 processes the initial placement of the virtual cluster, virtual cluster migration, and internal or external scale change commands of the virtual cluster.
  • the VC control information handle processor 132 utilizes the placement engine 150 to generate host placement information of the virtual machines in the virtual cluster, and to generate start time information corresponding to the start time condition of the virtual machines in the virtual cluster. Take advantage of the time engine 140.
  • the VC control information handle processor 132 generates virtual cluster driving time information based on the periodicity information when the requested virtual cluster is periodically driven, and generates detailed information in each cycle based on the generated driving time information.
  • the virtual cluster configuration information and the start time information of the virtual cluster corresponding to the driving schedule are sequentially generated.
  • the control information may include such virtual cluster placement information and start time information.
  • Virtual cluster migration targets running virtual clusters or virtual machines in virtual clusters. Therefore, the deployment engine 150 is utilized to calculate hosts to be migrated and deployed against the currently running virtual cluster. Virtual cluster resizing is a scheduling operation for horizontal and vertical scale up and down of a running virtual cluster.
  • the VC schedule table 134 is a data structure that stores driving schedule information in units of virtual clusters and stores control information of currently running or reserved virtual clusters.
  • the VM schedule table 135 is a data structure that stores driving schedule information of virtual machines in a virtual cluster, and stores information of currently running or reserved virtual machines.
  • the execution slot list 136 stores a driving schedule such as creation / migration / shutdown of virtual machines in the virtual cluster in a specific time unit.
  • the VM state synchronizer 137 periodically extracts state information of the virtual machines from the information manager 190, and transfers the extracted state information of the virtual machines to the VC control information manager 130. In addition, when the VM state synchronization unit 137 discovers the terminated virtual machines, the virtual machine terminated by the VC control information management unit 130 and terminated by transmitting identifier information of the corresponding virtual machines to the VC control information management unit 130. Virtual clusters can be reflected in schedule or control information.
  • the control information manager 131 manages a series of control information for a series of control information such as creation, modification, and deletion of a driving schedule of the virtual cluster and the virtual machines in the virtual cluster.
  • the control information management unit 131 provides each processor with a function of generating control information for the virtual cluster and the virtual machine, and provides the VC schedule table 134 and the VM schedule table for driving and control information about the virtual cluster completed by the processors. And reflects to the execution slot list 136.
  • the control information manager 131 periodically checks the execution slot list 136 to generate, migrate, or terminate the virtual machines at each check point, and transmit the generated command to the VC operation manager 120.
  • the control information manager 131 processes both the inspection time point and the virtual machine control command to be processed before the inspection time point based on the execution slot inspection time point. For example, the inspection period may be set to 1 second by default.
  • the control information manager 131 receives the state information of the virtual machines transmitted from the VM state synchronizer 137 that synchronizes the state of the virtual machine, and reflects the state information of the virtual machine in the VM schedule table 135.
  • the VM state synchronization unit 137 deletes the driving schedule or control information for the virtual machines based on the information on the driving termination virtual machines and simultaneously detects the termination of all virtual machines in a specific virtual cluster and automatically schedules the virtual cluster driving. Or delete the control information.
  • the VC control information manager 130 may generate, store, and synchronize control information according to a control request for a virtual cluster requiring scheduling, and provide the same to various components. Can be. Accordingly, flexible and relational deployment of virtual clusters can be performed.
  • the VC control unit 160 controls the driving of the virtual cluster such as placement / migration / expansion / destruction / stop / restart of the virtual cluster.
  • the driving control of a virtual cluster is divided into a virtual cluster level control and a virtual machine level control.
  • the VC control unit 160 includes a VC control manager 161 for performing virtual cluster level control, a VM creation control unit 162 for performing virtual machine level control, and a VM termination control unit 163. , VM PUP control unit 164, VM migration control unit 165, and VM change control unit 166.
  • the VC control manager 161 secures various kinds of information (type, state, etc.) of the currently running virtual machines through the VC control information management unit 130 when the control request of the virtual cluster unit is delivered, and based on this. Create a control command for each virtual machine. Next, the VC control manager 161 transmits each control command to the VM function control unit for performing the control command of each virtual machine.
  • the VC control manager 161 may be one of the virtual machines currently running among the virtual machines in the virtual cluster requested to terminate in order to process the virtual cluster termination command received from the VC operations management unit 120.
  • List is obtained from the VC control information management unit 130.
  • the VC control manager 161 generates a termination command for each virtual machine based on the secured virtual machine list, and transmits the termination command to the VM termination control unit 163 to process the termination for each virtual machine.
  • the VC control unit 160 directly transfers control commands for each virtual machine initiated by the VC control information management unit 130 to various controllers in the VM control layer without a special conversion process.
  • the virtual machines in the virtual cluster may not all start the creation at the same time.
  • the start point of creation may be different for each virtual machine in the virtual cluster. In this case, it is a creation command for the virtual cluster, but eventually the individual virtual machines have a slightly different point in time as a starting point.
  • a generation command of a virtual machine unit is transmitted to the VC control manager 161, and the VC control manager 161 transmits a generation start command requested for each virtual machine to the VM generation control unit for the control of the virtual machine unit. (162).
  • Each virtual machine controller is connected to a specific function of the VMMS access driver 170 to perform the requested virtual machine control task through the VMMS access driver 170.
  • the VM generation control unit 162 performs a command for creating a virtual machine and uses a VM deploy function of the VMMS access driver 170.
  • the VM shutdown control unit 163 executes a shutdown command of the virtual machine and uses a VM Shutdown function of the VMMS access driver 170.
  • the VM PUP control unit 164 executes a pause command and a restart command of the virtual machine, and uses a VM pause function and a VM restart function of the VMMS access driver 170.
  • the VM migration control unit 165 performs a migration command of the virtual machine and uses a VM migration function of the VMMS access driver 170.
  • the VM size change control unit 166 executes a resource increase / decrease command of the virtual machine, and uses a VM resize function of the VMMS access driver 170.
  • the VM controllers in the VC controller 160 are driven by independent threads, and control of each VM from the VC control manager 161 based on a command queue for receiving VM control commands. Receive the command.
  • Independent threading of the VM control can alleviate the problem of delays in executing other virtual machine control instructions due to excessive accumulation of certain virtual machine control instructions.
  • the creation of a virtual cluster can be scaled up due to the scale characteristics of the virtual cluster, unlike the creation of a single single virtual machine. Since the development virtual machine creation command is excessively accumulated when the large virtual cluster is created, when the termination command for the running virtual clusters is delayed, it causes a problem that the resource return time due to the termination of the virtual cluster is delayed.
  • the control commands for controlling the VM are controlled. Run by configuring independent threads for each type.
  • the VC management system 100 when not using a specific command required for controlling a virtual machine, for example, pausing and restarting a virtual machine, the VC management system 100 does not operate a control unit for the corresponding command, thereby maintaining a cost for maintaining a thread. Can be reduced.
  • FIG. 5 is an exemplary block diagram illustrating a processing flow when a control request for a virtual cluster is received in the virtual cluster management system according to an embodiment of the present invention.
  • Control requests include, for example, VC deployment (start) requests, VC end requests, VC stop and restart requests, VC migration requests, and VC internal / external scale change requests (scale increase or scale decrease requests).
  • the control requests are divided into "batch calculation based VC control request (control request requiring VC scheduling)” and “non-batch calculation based VC control request (control request not requiring VC scheduling)”.
  • “Batch Calculation-Based VC Control Requests” include “VC Placement Request”, “VC Migration Request”, “Internal VC Scale-Up” and “External VC Scale-Out”.
  • This “batch calculation based VC control request” means a control request that can be obtained by the deployment engine 150, which requires the determination of the hosts on which the virtual cluster will be driven (or previously, to be incremented).
  • Non-Batch Calculation-Based VC Control Request means a management operation that returns resources used by a virtual computing facility due to VC termination, internal or external VC scale reduction.
  • Non-Batch Calculation-Based VC Control Requests include “VC Termination Request”, “VC Undo Request”, “VC Stop and Restart Request”, and “Internal or External VC Scaling”.
  • the VC management system 100 processes a batch calculation-based VC control request that requires VC scheduling and a non-batch calculation-based VC control request that does not require VC scheduling.
  • FIG. 5 illustrates a process in which the major elements in the VC management system 100 handle batch computation based VC control requests and non batch computation based VC control requests.
  • the VC operation management unit 120 transmits the control request received from the VC control request management unit 110 to the VC control information management unit 130.
  • the VC control information management unit 130 determines the hosts on which the requested VC is to be driven through the deployment engine 150, and determines a time at which the requested VC starts (and ends) through the VC time engine 140. .
  • the VC control information manager 130 After calculating the host and run time of the requested VC for deployment, the VC control information manager 130 generates and stores control information for each VM in the VC, and then needs to generate (or terminate) each time the VM schedule is checked. ) Check for the presence of VMs.
  • the VC control information management unit 130 transmits a VM creation (or termination) request to the VC operation management unit 120, and the VC operation management unit 120 transmits the request to the VC control unit 160.
  • the VC control unit 160 performs a VM creation (or termination) command through the VMMS access driver 170 to create (or terminate) a virtual machine on the host.
  • the VC operation management unit 120 checks the type of management command of the VC control request received from the VC control request management unit 110, and then sends the “VC control request” to the VC control unit 160. Generate and pass.
  • the VC control unit 160 executes the requested command for the virtual machines through the VMMS access driver 170.
  • the VC management system 100 processes various VC scheduling requests in addition to VC control requests involving general deployment through the VC operation management unit 120 that classifies the VC control requests according to their types and delivers them to appropriate managers. Systematic management of information that affects deployment.
  • FIG. 6 exemplarily shows a schematic diagram for explaining an operation of a virtual cluster management system according to another embodiment of the present invention.
  • the VC management system 200 is directly connected to hosts without going through the VMMS.
  • the VC management system 200 receives a VC control request, even if no VMMS exists, and accordingly deploys the VC and determines the start time of the hosts and hosts according to the determined placement and start time. You can control virtual machines on (Hosts).
  • the VMMS access driver is changed among the components described in FIGS. 2 to 5.
  • the VMMS access driver does not restrict the implementation of control commands specific to the VMMS, so that direct control of the hosts can be implemented / applied.
  • the functions provided by the VMMS access driver can be used as commands to directly control the Hosts.
  • the direct control method can be implemented without using a virtual machine management system such as OpenNebula, OpenStack, Eucalyptus, etc.
  • the VC management system 200 operating at the host level can be provided.
  • FIG. 7 is a schematic flowchart illustrating a control method of a virtual cluster management system according to an embodiment of the present invention.
  • a control request for a virtual cluster system including a plurality of virtual machines is received (S710).
  • control information of the plurality of virtual cluster systems is generated or corrected according to the control request (S720).
  • the plurality of virtual machines are controlled through an external virtual machine management system managing the plurality of hosts or directly by connecting to the plurality of hosts, thereby controlling the plurality of virtual machines on the plurality of hosts based on the control information.
  • a command for controlling the operation is output (S730).
  • the outputted commands can be delivered to the above-described VMMS or host to control the virtual machines.
  • the control method of the virtual cluster management system may be classified into a control request that requires scheduling or a control request that does not require scheduling.
  • a command for controlling the operations of the plurality of virtual machines may be output according to the control request. This step is performed independently of the control information associated with the schedule or arrangement.
  • the operation time of the virtual cluster system may be determined according to the control request for the virtual cluster system, and the control information may be updated according to the determined operation time.
  • an arrangement of the virtual cluster system may be determined according to a control request for the virtual cluster system, and control information may be updated according to the determined arrangement. All steps in FIG. 7 may be performed by at least one of the components in FIGS. 2-6 described above.
  • the virtual machines in the virtual cluster may be arranged in units of virtual machines in subgroups or subgroup units, and are reusable and flexible to environmental change factors. To manage virtual clusters.
  • the virtual cluster (VC) placement apparatus 300 may be part of the virtual cluster scheduling framework 3000.
  • the virtual cluster scheduling framework 3000 is in response to a control request for the VC, the VC framework for scheduling the control request, and to create, stop, resume, delete, etc., for the virtual machines in the VC according to the determined schedule. to be.
  • the VC framework is configured to directly or via an external virtual machine management system the hosts on which the virtual machines are deployed.
  • the virtual cluster scheduling framework 3000 includes at least a virtual cluster arrangement apparatus 300, a VC schedule management unit 400, and an information manager 300 according to an embodiment of the present invention.
  • the virtual cluster deployment apparatus 300 is an apparatus for deploying a plurality of virtual machines to a plurality of hosts according to a control request for the plurality of virtual machines in the VC.
  • the virtual cluster deployment apparatus 300 may be implemented as an independent device, but performed by the computing device to determine hosts where the virtual machines will be deployed so that the deployment of the virtual machines in the VC is completed when a user's VC creation request occurs. It may be a module that can be.
  • the VC schedule management unit 400 performs schedule management tasks such as generation, change, and modification of a driving schedule of the VC.
  • the VC schedule manager 400 is connected to the virtual cluster arrangement apparatus 300 to transmit a VC control request, for example, a request for generating virtual machines in the VC, to the virtual cluster arrangement apparatus 300.
  • the information manager 300 manages information about the virtual machine and the host.
  • the information manager 300 provides the virtual cluster deployment apparatus 300 with detailed information of the virtual machine and the host required for deployment in the virtual cluster scheduling framework 3000.
  • the information manager 300 may periodically receive and update detailed information about the virtual machine and the host through the synchronization modules.
  • the virtual cluster deployment apparatus 300 may include a request receiver 322, a VC deployment engine core 320, an infrastructure resource status calculator 310, a resource information provider 324, a strategy execution unit 330, and a VC deployment strategy manager. 340 and a plurality of calculation modules 350.
  • the request receiver 322 receives a VC deployment request from various components outside the virtual cluster deployment apparatus 300, for example, the VC schedule management unit 400, and returns various information generated during the VC deployment process to the VC schedule management unit ( 400) to serve.
  • the information may include, for example, the VC deployment result and the success or failure of the deployment result.
  • the VC deployment request received by the request receiver 322 is forwarded to the VC deployment engine core 320 to initiate the VC deployment. When the VC batch job is completed, the batch result is returned to the VC schedule manager 400.
  • the VC deployment engine core 320 is the component that oversees the deployment of virtual machines in the VC.
  • the VC deployment engine core 320 may include various pieces of information required for deployment from peripheral components such as the request receiver 322, the strategy executor 330, the infrastructure resource state calculator 310, and the like, for example, the VC deployment strategy, Collects host information and virtual machine information.
  • the VC deployment strategy refers to a manner for deploying virtual machines in the VC.
  • the host information includes resource information of the physical host, for example, the number of CPU cores and the memory capacity.
  • the virtual machine information includes the number of CPU cores allocated to the virtual machine, memory capacity, an operating system (OS) installed in the virtual machine, applications installed, and the like.
  • the VC deployment engine core 320 performs the VC deployment requested from the VC user through the strategy execution unit 330 based on the collected information.
  • the strategy executor 330 performs the batch operation according to the VC deployment condition by using the VC deployment strategy to arrange the VC requested from the VC deployment engine core 320.
  • the VC deployment engine core 320 also provides various error conditions, such as VC unschedulable errors, that occur during the VC deployment process.
  • the VC deployment strategy manager 340 supplies the VC deployment strategy to the VC deployment engine core 320.
  • the VC deployment strategy manager 340 manages a life cycle of the VC deployment strategy.
  • the VC deployment strategy manager 340 automatically recognizes the dynamic addition, modification, or deletion of the VC deployment strategy to detect a change in the VC deployment strategy generated in the user, and when a change occurs in the VC deployment strategy, the VC in an automated manner. Dynamically add, modify, or delete deployment strategies.
  • the resource information providing unit 324 may provide various kinds of information required for the VC deployment performed by the virtual cluster deployment apparatus 300, for example, resource and state information about virtual machines in the VC, resource and state information of hosts. And providing rack information and the like in which the hosts are arranged to the VC deployment engine core 320, and also to the information management unit 300 so that the information management unit 300 may have updated information.
  • the infrastructure resource state calculation unit 310 performs precomputation of various pieces of information necessary for VC deployment.
  • the infrastructure resource state calculator 310 may calculate the host resource state at a specific time point, for example, based on the registered VC and the virtual machine schedules.
  • the host resource state at a particular point in time allows the virtual cluster scheduling framework 3000 to be driven based on various time conditions.
  • the virtual cluster scheduling framework 3000 may include, for example, a VC runtime scheduling engine (not shown) and may provide the runtime scheduling engine with host resource status at a particular point in time. Accordingly, a problem such as impossibility of driving due to lack of host resources at the time of VC can be prevented in advance.
  • the plurality of calculation modules 350 are modules for performing the batch operation according to the VC deployment strategy.
  • the plurality of calculation modules 350 are, for example, VC information handling module, VC subgrouping module, VC relationship attribute analysis module, VC subgroup information handling module, VC subgroup partitioning module, host sorting module, host filtering module, host Extraction module, host selection module, host status update module, VC batch map update module, VC table generation module, and user-defined function module.
  • the plurality of calculation modules 350 may be combined in various ways, and are not limited by one embodiment. The combination of the calculation modules 350 may place one of the plurality of virtual machines on the plurality of hosts.
  • the virtual cluster deployment apparatus 300 may include a request receiver 322, a VC deployment engine core 320, an infrastructure resource state calculator 310, a resource information provider 324, and a strategy execution unit 330.
  • a request receiver 322 a VC deployment engine core 320
  • an infrastructure resource state calculator 310 a resource information provider 324
  • a strategy execution unit 330 a strategy execution unit 330.
  • each component is designed in one integrated form or separate form according to the implementation method or the embodiment of the present invention. It is also possible to implement. That is, all of the components or modules described herein may be operated by a processor connected to and stored in a storage unit disposed in a general purpose computer or server.
  • FIG. 9 is a schematic flowchart illustrating a virtual cluster deployment method according to an embodiment of the present invention.
  • the components of the virtual cluster arrangement apparatus 300 in FIG. 8 will be described with reference.
  • the virtual cluster arrangement method is initiated while the request receiving unit 322 of the virtual cluster arrangement apparatus 300 receives a VC arrangement request from the VC schedule management unit 400.
  • the VC deployment engine core 320 receives system information about a VC system including a plurality of virtual machines from the resource information provider 324 in response to the VC deployment request (S910).
  • System information about the VC system includes a list of virtual machines, a list of hosts, a list of racks on which hosts are located, and the like.
  • the list of virtual machines and the list of hosts may be divided into a list of virtual machines for internal and public virtual computing and a list of hosts.
  • the system information receiving step may involve an initialization step including securing a data storage space for VC arrangement and initializing various variables.
  • the VC deployment engine core 320 may further include removing pre-selected hosts from the host list received from the resource information provider 324.
  • the VC deployment engine core 320 may request the infrastructure resource state calculation unit 110 to calculate the host resource state at the time when the VC is driven, and may receive it. In this case, it is possible to prevent the problem of a lack of resources due to other reserved VCs at the time when the VC is started.
  • the VC deployment engine core 320 deploys a plurality of virtual machines in the VC according to the VC deployment strategy.
  • the VC deployment engine core 320 may use the default VC deployment strategy, may receive the VC deployment strategy from the VC strategy management unit 140, and use the received VC deployment strategy.
  • the operations of deploying virtual machines in the VC according to the VC deployment are configured to be performed by an independent computing module 350.
  • deploying one of the plurality of virtual machines to one of the plurality of hosts performs calculations associated with the placement of the plurality of virtual machines via at least the following calculation module 350 (s).
  • each of the calculation modules 350 may include handling information about the subgroups, partitioning the subgroups, sorting the hosts, filtering the hosts, extracting the hosts, or user-defined functions. It may be configured to perform at least one step of performing.
  • the plurality of calculation modules 350 may be variously combined, and the calculation modules 350 used according to the VC deployment strategy may be different.
  • the following describes a method of deploying virtual machines in a VC with an exemplary dynamic VC partitioning strategy among various VC deployment strategies.
  • the VC deployment strategy is not limited to this and may be a static VC partition based deployment strategy.
  • the plurality of virtual machines are classified into subgroups (S920).
  • the relationship attribute between the subgroups or the relationship attribute between the plurality of virtual machines in the subgroup is determined (S930).
  • one of the plurality of virtual machines is disposed in one of the plurality of hosts according to the relationship attribute between the subgroups or the relationship attribute between the plurality of virtual machines in the subgroup (S940).
  • step S950 it is determined whether the deployment for all the virtual machines is completed (S950), and when all the virtual machines are deployed, the VC deployment is terminated. If all virtual machines are not deployed, step S940 is repeated. Deploying one of the plurality of virtual machines to one of the plurality of hosts may be repeated, for example, by the number of the plurality of virtual machines, and any size, for example two or three virtual machines, may be Can be placed at the same time.
  • the deployment strategy execution unit 130 may return the deployment result to the VC deployment core after finishing deployment of the VC for the internal virtual computing resource.
  • the VC deployment engine core 320 finally generates a VC deployment map and delivers it to the VC schedule management unit 400 in the form of a table. Thereafter, an identifier of a host to be run is given for each virtual machine in the requested VC.
  • the VC deployment map represents VMs and hosts on which VMs are deployed in the VC.
  • the VC placement map is provided to take account of various relationship characteristics within the VC. Unlike VM placement, the larger the number of VMs in a VC, the more difficult it is to perform placement with one-time batch calculations. Accordingly, the placement of other VMs may be determined in consideration of the relationship in which the VMs in the VC are arranged.
  • the VC deployment map can be constantly updated whenever a VM is deployed to a host.
  • 10 is a schematic diagram illustrating a virtual cluster deployment method according to an embodiment of the present invention.
  • 11A and 11B are schematic diagrams for describing a specific application example of a virtual cluster arrangement method according to an embodiment of the present invention.
  • 12 is a conceptual diagram illustrating an example in which a VC including a plurality of virtual machines is disposed in a plurality of hosts in a specific application example of the method for arranging a virtual cluster according to an embodiment of the present invention.
  • a plurality of operations are shown for determining a host on which virtual machines in a VC will run.
  • Each operation may exist as an independent module as in FIG. 10, but some or all may be integrated.
  • the plurality of modules may consist of a preprocessing flow, a main processing flow and a post processing flow.
  • the preprocessing flow includes a VC information handling module 512, a VC subgrouping module 514, a VC relationship attribute analysis module 516 and a user-defined function module 518.
  • a VC information handling module 512 information about the VC is provided, information about the VC is processed, and the VC is subgrouped.
  • the VC information handling module 512 is a functional module for modifying or changing information about virtual machines in the VC, and the subgrouping module of the VC classifies the virtual machines to specific criteria.
  • One or more subgroups may be created.
  • the specific criteria are not limited, and the subgrouping of the virtual machines may be performed by the user's selection, or may be automatically performed based on the classification history or previously stored classification information. Relationship attributes within or between subgroups may be determined by extracting and analyzing characteristics of virtual machines in the VC. For example, subgroups may be classified based on the resource requirements of the virtual machine.
  • the method may further include verifying a classification of the subgroup according to a predetermined criterion.
  • the VC relationship attribute analysis module 516 determines a relationship attribute between subgroups in the VC or between virtual machines in the subgroups.
  • the relationship attribute relates to whether integration or distributed deployment between virtual machines is required at the host / rack / service area level.
  • the relationship attribute is divided into an integrated deployment in which a plurality of virtual machines are placed on the same host and a distributed deployment in which each of the plurality of virtual machines is placed on different hosts, according to considerations when deploying the virtual machines in the VC.
  • the determined relationship attribute is used in the main processing flow.
  • the relationship attribute may be determined by the user's selection, or may be automatically determined based on the classification history or previously stored classification information.
  • the relationship attribute within or between subgroups may be determined by extracting and analyzing the characteristics of the virtual machines in the VC.
  • User-defined function module 518 may be configured to perform functions with respect to other subgroups.
  • the relationship attribute can be verified according to predetermined criteria.
  • VC MyHadoopVC includes five virtual machines 640.
  • NameNode_JobTrackers 641, 642 of the virtual machines 640 are classified into subgroup Master, and DataNode_TaskTrackers 643, 644, 645 are classified into subgroup Slave01.
  • the relationship attribute of NameNode_JobTrackers 641, 642 in the subgroup Master is a distributed batch
  • the relationship attribute of DataNode_TaskTrackers 643, 644, 645 in a subgroup Slave01 is a unified batch.
  • the relationship attribute between subgroup Master and subgroup Slave01 is distributed arrangement.
  • Such relationship attributes may be identified and stored using, for example, XML.
  • the id of the VC is MyHadoop
  • the id of the subgroup in the VC is Master and Slave01, respectively.
  • the subgroups are grouped in a distributed arrangement.
  • an example distributed arrangement is labeled Availability.
  • the relationship attribute in the subgroup Master is a distributed arrangement, and the virtual machines NameNode_JobTracker01 and NameNode_JobTracker02 in the subgroup Master have a relationship attribute that allows them to be mounted on different hosts accordingly.
  • the relationship attribute within the subgroup Slave01 is an unified deployment, which is exemplarily denoted Affinity_BestEffort.
  • the virtual machines DataNode_TaskTracker01, DataNode_TaskTracker02, and DataNode_TaskTracker03 in the subgroup Slave01 have a relationship attribute that allows them to be mounted on the same host as much as possible.
  • a VC subgroup information handling module 521 for selectively performing information modification sorting and the like on a subgroup basis may be included.
  • a VC subgroup partitioning module 522 is also included in the dynamic VC partitioning strategy.
  • the VC subgroup partitioning module 522 calculates a partition size for deploying virtual machines in the VC to a particular host. Additionally, when including the VC subgroup partitioning module 522, virtual machines as determined by the VC partition size may be determined to be placed in a particular host.
  • a host ordering module 523 for sorting hosts in a host list by a set criterion a host filtering module 524 for filtering hosts by a set criterion, and a host extracting module 525 and a host for extracting a host by a set criterion.
  • a user-defined function module 526 associated with may be included in the main processing flow.
  • data for the VC subgroups, relationship attributes, partition size of the VC subgroups, and a filtered / extracted / sorted host list are provided.
  • the host selection module 527 selects a specific host on which the virtual machine is to be placed from the host list.
  • the host selection module 527 determines the host where the virtual machine is to be placed at the time when the host selection module is driven based on the provided information.
  • the host state updating module 528 updates resource and state information of the host based on the information about the virtual machine in the VC in which the host to be driven after the placement of the virtual machine is determined. In the main processing flow, only the above-described host selection module 527 and host status update module 528 may be configured.
  • the VC batch termination check module 331 which checks whether all hosts to be deployed for all virtual machines in the VC for which batch scheduling is requested in the post-processing flow has been calculated, determines whether to terminate the batch. If there are still virtual machines to deploy, the VC deployment map update module 532 updates the map for the deployed virtual machines of the VC and provides the map to the main scaling processing modules. Accordingly, the main processing flow is repeated again at N2. That is, the modules of the main processing flow are configured to access the updated batch map. Accordingly, the host selection module 527 selects a host based on the placement map to place the virtual machine on one of the plurality of hosts according to the relationship attribute.
  • the virtual machines may be arranged on the same host or may be arranged on different hosts according to the relationship attribute.
  • the VC deployment map generation module 533 When deployment for all virtual machines in the VC is complete, the VC deployment map generation module 533 generates the VC deployment table, and the performance of the VC deployment strategy is ended.
  • hosts 710, 720, and 730 on which a plurality of virtual machines 640 are disposed are shown.
  • NameNode_JobTracker01 641, NameNode_JobTracker02 642 are placed on different hosts 710, 720, DataNode_TaskTracker01 643, DataNode_TaskTracker02 644, DataNode_TaskTracker03 645 are the same host. 730 but on a different host 730 than NameNode_JobTracker01 641, NameNode_JobTracker02 642.
  • the virtual machines of the VC may be determined and arranged to perform the optimized operation according to its operating characteristics.
  • the virtual cluster placement method may be performed by a combination of independent calculation modules according to various VC deployment strategies.
  • the application of the VC is not limited, and may include Hadoop, R, and the like.
  • FIGS. 13 to 17 are diagrams for describing processing performance and performance indicators of the virtual cluster arrangement method according to an embodiment of the present invention.
  • 13 to 17 illustrate experiment results by measuring performance indicators such as processing performance, service latency, resource utilization rate, and batch calculation time represented by various VC deployment algorithms that can be implemented in the VC deployment framework.
  • the deployment strategy applied for this experiment includes three VC deployment strategies (FirstFit-VM, NextFit-VM, Volume-VM) based on the existing virtual machine deployment algorithm, and virtual cluster deployment according to an embodiment of the present invention.
  • One embodiment of the method is three VC deployment strategies (FirstFit-VC, NextFit-VC, Volume-VC) based on dynamic virtual cluster partitioning, and the two groups are compared and evaluated.
  • Dynamic VC partitioning based deployment strategies perform partitioning by dynamically partitioning the VC during deployment. For example, in the case of FirstFit-VC, when discovering after discovering the first available host, the number of virtual machines that can be placed on that host is determined as the VC partition size, and then the deployment is performed by partitioning the VC being deployed at that partition size. do.
  • Volume-VM and Volume-VC deployment strategies are one of the Worst-Fit deployment algorithms among Bin-Packing deployment algorithms.
  • the virtual machine of the virtual cluster being deployed to the host is partitioned to determine the placement.
  • the formula used in the host scoring process utilized the host scoring formula created by TimothyWood.
  • the difference between the Volume-VM deployment strategy and the Volume-VC deployment strategy is whether or not to place virtual machines as much as possible on the host with the highest score. That is, in case of Volume-VM, when the host with the highest score is found, one of the virtual machines in the virtual cluster being deployed to the host is determined and the host scoring process is performed again. When the host with the highest score is found, the number of virtual machines that can be deployed on the host is calculated, the virtual machines that are deployed as much as the calculated number of deployable virtual machines are disposed, and the host scoring process is performed again.
  • VC users can specify the VC scale from 2 to 256 powers of 2, and the VM specification within the VC ranges from 1 to 8 for the CPU and from 1 GB to 16 GB for memory resources. You can even specify memory.
  • VC users spend a certain amount of time, and then use virtual clusters to terminate their use of the resources returned to the virtual computing facility.
  • VC creation requests are accumulated in the Waiting Queue of the FIFO structure, and virtual cluster placement and allocation is performed through FCFS. Therefore, when a certain time passes after the simulation starts, new VC users wait until the VC users who previously occupied the resources return resources due to lack of resources, which increases the waiting time.
  • the size of the virtual cluster requested by VC users, the specifications of the virtual machines in the virtual cluster, the usage time, and the frequency of requests (Inter-ArrivalTime) are assumed to follow the uniform distribution. Experiments were designed / implemented to use virtual cluster services. In addition, in this experiment, it is assumed to use and terminate during a given time of use. In the case of actively using a given computing resource, it is assumed that CPU-intensive processing is performed in a virtual cluster that has been created and requested. The reason for this is that when doing network intensive processing, the CPU load of the management virtual machine (ManagementVM or Dom0) running on each host according to the virtualization software and the network load of the user virtual machines (UserVM or DomU) due to the network load. This can affect the use of key computing resources.
  • ManagementVM or Dom0 management virtual machine
  • UserVM or DomU the network load of the user virtual machines
  • FIG. 13 shows throughput according to the number of VC usage requests per minute (the number of workloads) per VC deployment strategy
  • FIG. 14 shows a service response time.
  • conventional VC deployment strategies for performing per-VM batch scheduling generally show a sharp increase in service response time from the time of 14 to 18 VC usage requests per minute, and throughput per minute. The limit is shown.
  • the Volume-VM deployment strategy it showed the lowest processing performance and showed a rapid increase in service response time for more than 14 VC use requests per minute (840 points per hour).
  • FirstFit-VM and NextFit-VM each increase service response time to less than 5 minutes from the time of 16 VC usage requests per minute, then increase to about 8 and 15 minutes from 18 times, respectively. When it arrived, it showed a sudden increase in service response time.
  • the throughput was limited from the 18 points per minute mentioned above.
  • Deployment strategies implemented by the virtual cluster deployment method according to an embodiment of the present invention showed a limit of throughput per minute from the time of 20 to 24 VC use request generations per minute.
  • the Voluem-VC deployment strategy which corresponds to the Volume-VM deployment strategy, starts to increase service response time starting at 18 points per minute, and rapidly increases service response time when 20 or more VC use requests arrive at 20 points. Showed an increase.
  • the FirstFit-VC deployment strategy and NextFit-VC deployment strategy start to see a slight increase in service response time at the arrival of 20 VC usage requests per minute, and then radical service from 22 requests to 22 or more VC usage requests. The response time was increased and the throughput per minute was limited.
  • the FirstFit-VC deployment strategy and NextFit-VC deployment strategy showed about 17% difference in processing performance compared to the FirstFit-VM and NextFit-VM deployment strategies.
  • the Volume-VC deployment strategy showed about 46% difference in processing performance compared to the Volume-VM deployment strategy, showing the largest difference in processing performance between the corresponding deployment strategies.
  • FIG. 15 shows resource utilization rates by VC deployment strategy, and resource utilization rates were calculated based on the average of CPU and memory resource usage.
  • the resource utilization rate is similar to the throughput per minute shown in FIG. 8. Therefore, it can be seen that the difference in throughput per minute, which is one of the performance indicators, is caused by the difference in resource utilization among various influence factors.
  • the FirstFit-VC deployment strategy and NextFit-VC deployment strategy, and the existing irstFit-VM deployment strategy and NextFit-VM deployment strategy showed similar processing performance, resource utilization, and service response time.
  • the dynamic VC partition based deployment strategy implemented by the virtual cluster deployment method according to an embodiment of the present invention in the strategy of partitioning and deploying the VC in a single VM unit Faster batching can be performed.
  • 9 shows batch processing time according to VC size for each VC batch strategy.
  • the deployment time difference between the deployment strategies using the dynamic VC partitioning function of the virtual cluster deployment method according to an embodiment of the present invention and the corresponding single virtual machine unit deployment strategies respectively becomes larger as the virtual cluster size increases.
  • the deployment strategies of the virtual cluster deployment method according to an embodiment of the present invention have no significant difference in deployment speed compared to single virtual machine unit deployment strategies in terms of deployment time, but from virtual cluster size 16
  • the gap in deployment time began to diverge, leading to a difference in deployment time of up to three times the virtual cluster size of 256 (compared to Volume-VM and Volume-VC).
  • FIG. 17 shows the VC partition size for each deployment strategy while processing 22 usage requests per minute and virtual cluster size 256.
  • FIG. 17 shows the VC partition size for each deployment strategy while processing 22 usage requests per minute and virtual cluster size 256.
  • FIG. 10 it can be seen that the difference in the size of the virtual cluster partition among the various factors affecting the batch processing time is an important factor affecting the batch speed.
  • the virtual cluster partition size is commonly 1, as designed in the deployment strategy, while 1.4 for FirstFit-VC, 1.7 for NextFit-VC, and 2.9 for Volume-VC.
  • the virtual cluster partition size is 1 or more, the number of batches is halved by that ratio. Therefore, Volume-VC divides the virtual cluster about 3 times larger than Volume-VM, which is a single virtual machine unit strategy. The reason why the batch scheduling processing time is about three times faster based on the size is explained.
  • This batch processing time improvement doesn't just mean speeding up batches. Improving batch processing time is a fundamental factor in reducing deployment time to provide faster service for virtual clusters of various sizes in large virtual computing environments (or facilities), and can also affect resource utilization. In a situation where virtual cluster users return used resources after a certain period of time and reassign them to new virtual cluster users based on the returned resources, batch processing needs to be faster to improve the resource utilization lowered to maintain a certain level. Time improvement can be one of the factors that can contribute to improved resource utilization.
  • the virtual cluster deployment method according to an embodiment of the present invention can realize various deployment models of virtual machines in the virtual cluster in addition to improving virtual cluster deployment processing time.
  • the virtual cluster driving time scheduling apparatus 800 includes a time calculation request receiver 810, a reservation processor 820, a non-reservation processor 830, a time calculator 840, and a time model manager 850.
  • the virtual cluster driving time scheduling apparatus 800 may be a module that may be performed by the computing device to schedule the creation time of the virtual cluster such that the creation of the virtual cluster is completed at the time requested by the user when the user requests the creation of the virtual cluster. Can be.
  • the virtual cluster driving time scheduling apparatus 800 may be implemented on a computing device that includes a processor and a memory.
  • the virtual cluster driving time scheduling apparatus may be configured to be connected to and communicate with the virtual cluster schedule management module.
  • the virtual cluster driving time scheduling apparatus may calculate the generation start time and transmit the generated start time to an external module such as a virtual cluster schedule management module.
  • the virtual cluster driving time scheduling apparatus 800 may directly start the generation of the virtual cluster based on the generation start time calculated.
  • the time calculation request receiver 810 of the virtual cluster driving time scheduling apparatus 800 is configured to receive data from a user or an external module.
  • the time calculation request receiver 810 may receive a deadline which is a time point of using a virtual machine from a user or an external module.
  • the time calculation request receiver 810 may receive a request for calculating a generation start time for the virtual machine together with a deadline from a user or an external module.
  • the time calculation request receiver 810 calculates a generation start time for the virtual machine by using the reservation processor 820 and the non-reservation processor 830 that process the calculation request, respectively.
  • the reservation processor 820 calculates a creation start time of the virtual machine in response to the received calculation request.
  • the reservation processor 820 may calculate a generation start time to complete generation of the virtual machine before the deadline based on the deadline received together when the calculation request is received. That is, the reservation processor 820 may calculate a creation start time for the virtual machine that is created and reserved, such as a deadline-based calculation request.
  • the reservation processor 820 may calculate a generation start time by using an execution slot and a time model.
  • the non-reservation processor 830 calculates a creation start time of the virtual machine when an immediate generation type calculation request is received. If information on the generation start time and the driving end time of the immediate generation type is requested, the non-reserved processor 830 returns the current time as the generation start time and the Long Max value as the driving end time.
  • the time calculator 840 may provide a current time and perform various time calculations. First, the time calculator 840 calculates a driving start time and a driving end time of a virtual machine required for resource state calculation during a batch scheduling process. The time calculator 840 calculates the driving start time and the driving end time of the virtual machine in consideration of the worst case.
  • the worst case refers to a situation in which the virtual container creation time of the virtual machine is maximized while all the virtual machines in the virtual cluster are running on one host.
  • the time calculator 840 may calculate a margin time (MT) in a calculation process for calculating a generation start time of a virtual machine in which batch scheduling is completed.
  • MT margin time
  • the time model manager 850 performs a series of management roles for time model information such as providing, adding, modifying, and deleting a time model for creating a virtual machine.
  • the time models registered in the time model manager 850 are utilized by the reservation processor 820.
  • the time model manager 850 returns a time model set as a 'basic time model'.
  • the reservation processor 820, the non-reservation processor 830, and the time calculator 840 may be configured to transmit data to an external module.
  • the reservation processor 820, the non-reservation processor 830, and the time calculator 840 may transmit the calculated generation start time and spare time to an external module.
  • the external module may be a module capable of managing a generation start time transmitted from the reservation processor 820, the non-reservation processor 830, and the time calculator 840 or generating a virtual machine based on the generation start time transmitted.
  • the external module may be the same module as the module for transmitting the calculation request to the time calculation request receiver 810 or may be a different module.
  • the virtual cluster driving time scheduling apparatus 100 may further include a virtual machine generation unit capable of directly generating a virtual machine based on the generation start time without transmitting the generation start time to another module.
  • the virtual machine generator may generate the virtual machine from the calculated generation start time to generate the virtual machine so that the virtual machine is completed before the deadline.
  • the virtual cluster driving time scheduling apparatus 300 includes a time calculation request receiver 300, a reservation processor 820, a non-reservation processor 830, a time calculator 840, and a time model manager 850.
  • the storage unit may further include a memory configured to store the data, and the like.
  • the storage unit is not limited and may include a hard disk, a flash memory module, and the like, and the memory may include various types of random access memory (RAM).
  • a time calculation request receiver, a reservation processor, a non-reservation processor, a time calculator, and a time model manager are shown in separate configurations in the virtual cluster driving time scheduling apparatus 100 for convenience of identification. Alternatively, it may be designed and implemented in one integrated form or separate form according to the embodiment of the present invention.
  • 20 is a flowchart illustrating a virtual cluster driving time scheduling method according to an embodiment of the present invention.
  • 21A to 21C are conceptual diagrams for describing an operation of calculating exemplary generation time information in a virtual cluster driving time scheduling method according to some embodiments of the present invention.
  • 22A and 22B are conceptual diagrams for describing an exemplary execution slot generation step in a virtual cluster driving time scheduling method according to some embodiments of the present invention. For convenience of explanation, the description will be made with reference to FIG. 19.
  • a request for calculating a deadline which is a point in time at which a virtual machine is to be used and a generation start time for the virtual machine is received (S2010).
  • the deadline and calculation request may be received directly from the user, or may be received from the user through an external module.
  • Deadline is the point at which management tasks for a virtual machine, such as creation and migration specified by a user, are completed.
  • the deadline may be a point in time at which the user wishes to start using.
  • the virtual cluster driving time scheduling method may schedule creation of a virtual machine so that the virtual machine is created before the deadline so that the virtual machine becomes available on the deadline.
  • the calculation request is a command for calculating a generation start time for the virtual machine. As the calculation request is received, calculation of the creation start time of the virtual machine is started.
  • the number, specifications, and layout characteristics of the virtual machine to be created may be predetermined through an external module.
  • a calculation period for periodically driving a virtual machine and a driving period including a driving start time and a driving end time for the virtual machine may be received.
  • the driving start time is a time point at which the user wants to start using the virtual machine, and may correspond to a deadline.
  • the driving end time is a time point when the user wants to end the use of the virtual machine. For example, if a user wants to use a virtual machine every Monday from 10 am to 11 am, a drive cycle with a drive start time of 10 AM, a drive end time of 11 AM, and a drive date of every Monday. Can be received.
  • the calculation request may be a request for scheduling the virtual machine to be periodically generated and destroyed according to a driving period. As described above, by receiving the driving period, the advantageous effect of the present invention that it can be scheduled to start and end the drive autonomously in the corresponding time period is obtained.
  • the generation start time is calculated based on the received deadline (S2020).
  • the generation start time can be calculated by inverting after the creation time of the virtual machine, which is the time required for the virtual machine to be created so that the virtual machine is in the deadline, is calculated.
  • the generation time is a time required for all of the virtual machines to be created.
  • the generation time may be calculated based on a creation command propagation time (CCPT), a virtual container creation time (VCCT), and a total boot time (TBT).
  • CCPT creation command propagation time
  • VCCT virtual container creation time
  • TBT total boot time
  • the generation command delivery time, the virtual container creation time, and the total boot time may be preset time.
  • the creation command propagation time is for transmitting the result of the placement and start command of the virtual machine from the virtual cluster scheduler to the management system of the virtual machine when the virtual machine is created, and for transferring the creation command of the virtual machine from the management system of the virtual machine to the host. It is a time including time.
  • the generation command delivery time may include a time of generating a virtual machine configuration file to be delivered to the host's hypervisor.
  • the virtual container creation time is a time required for creating and allocating virtual computing resources for running a virtual machine in a virtualized system.
  • the virtual container creation time may include time required for virtual CPU creation and allocation, memory space allocation, and virtual network device creation.
  • the virtual container creation time may vary depending on the specifications of the virtual machine.
  • the total boot time is the time taken to boot the virtual machine after it is created.
  • the total boot time is, for example, boot selection time, which is the time to wait for input from the operating system and boot environment settings from the user, boot time, which is the time required to boot the virtual machine operating system, and middleware after the virtual machine operating system has booted.
  • boot selection time which is the time to wait for input from the operating system and boot environment settings from the user
  • boot time which is the time required to boot the virtual machine operating system, and middleware after the virtual machine operating system has booted.
  • an initialization time which is a time required for driving the automatic execution application software
  • a delay time which is a maximum delay time that may occur during a booting process of the virtual machine.
  • the total boot time may vary depending on the specifications and operating system of the virtual machine.
  • the generation start time may be calculated by inverting from the deadline. For example, if the deadline is 10 o'clock and the calculated generation time is 20 minutes, the generation start time may be calculated as 9:40 minutes. In order to prevent the virtual machine from being generated beyond the deadline, the generation start time may be calculated so that a predetermined or more spare time is secured between the creation completion time of the virtual machine and the deadline.
  • the creation completion time is a time when the creation of the virtual machine is started from the creation start time through the virtual cluster driving time scheduling method according to an embodiment of the present invention.
  • the free time is the time between the creation completion time and the deadline. To reduce the risk of creating a virtual machine beyond the deadline, the free time can be calculated to verify whether the free time is sufficient.
  • the spare time may be a predetermined time.
  • the generation completion time and the spare time may be calculated together with the generation start time.
  • the generation completion time may be a time in which the generation start time is added to the generation start time
  • the spare time may be a time between the deadline and the generation completion time.
  • a prestored generation command delivery time (CCPT), a virtual container creation time (VCCT), and a total boot time are received.
  • the generation time t4-t3 can be calculated by summing (TBT).
  • the generation command delivery time (CCPT), the virtual container creation time (VCCT), and the total boot time (TBT) may be determined based on the specifications of the virtual machine and the operating system.
  • the generation start time t3 may be calculated by inverting from the deadline t2, at which time the generation start time t3 is calculated with a spare time t2-t4 between the generation completion time t4 and the deadline t2. Can be.
  • a creation command delivery time (CCPT) for each of the virtual machines included in the virtual cluster is sequentially processed, and a virtual container is created.
  • the time VCCT may be processed sequentially or in parallel, and the total boot time TBT may be processed in parallel to yield the generation start time.
  • the generation command delivery is performed by the management system of the virtual machine, the generation command delivery cannot be performed simultaneously for a plurality of virtual machines. Therefore, the generation command delivery is performed sequentially for each virtual machine, and when generating the generation time, the generation command delivery time (CCPT) is processed sequentially. For example, when creating a virtual cluster including the first virtual machine and the second virtual machine, the generation command delivery for the first virtual machine and the generation command delivery for the second virtual machine may not be performed at the same time. Accordingly, the generation time is calculated such that the generation command delivery time CCPT for the first virtual machine and the generation command delivery time CCPT for the second virtual machine are sequentially processed.
  • the virtual container creation may be performed sequentially or in parallel according to a host where a plurality of virtual machines are disposed. Each host contains one supervisor for creating a virtual container. Therefore, when a plurality of virtual machines are arranged on the same host, virtual container creation is performed sequentially, and when a plurality of virtual machines are disposed on different hosts, virtual container creation is performed in parallel. For example, when the first virtual machine and the second virtual machine are disposed on the same host, the virtual container creation for the first virtual machine and the virtual container creation for the second virtual machine cannot be performed simultaneously, and the first virtual machine is created. When the machine and the second virtual machine are disposed on different hosts, the virtual container creation for the first virtual machine and the virtual container creation for the second virtual machine may be simultaneously performed.
  • the virtual container creation time (VCCT) for each virtual machine is processed sequentially, and when the virtual machines are deployed on different hosts, the virtual container creation time for each virtual machine
  • the generation time may be calculated so that the VCCT is processed in parallel.
  • Booting can be performed in parallel for multiple virtual machines. After the virtual machine is created, each virtual machine operates independently, so the booting of the virtual machines is performed in parallel. For example, when the first virtual machine and the second virtual machine are created, booting of the first virtual machine and booting of the second virtual machine may be performed at the same time. Thus, the generation time can be calculated such that the total boot time (TBT) for each virtual machine is processed in parallel.
  • TBT total boot time
  • Creation command delivery, virtual container creation and booting for different virtual machines can be performed in parallel with each other.
  • the creation command delivery for the first virtual machine and the virtual container creation for the second virtual machine may be performed in parallel
  • the virtual container creation for the first virtual machine and the booting for the second virtual machine may also be performed. It may be performed in parallel, and the creation command delivery for the first virtual machine and booting for the second virtual machine may also be performed in parallel.
  • the generation time may be calculated such that the generation command propagation time (CCPT), the virtual container generation time (VCCT), and the total boot time (TBT) for different virtual machines are processed in parallel with each other.
  • a generation command delivery time (CCPT) and virtual container creation time (VCCT) may be processed sequentially and the generation time t8-t7 may be calculated such that the total boot time (TBT) is processed in parallel.
  • the virtual container creation time (VCCT) for the first virtual machine and the generation command delivery time (VCCT) for the second virtual machine may be processed in parallel, and the total boot time (TBT) for the first virtual machine.
  • the virtual container creation time (VCCT) for the second virtual machine may also be processed in parallel.
  • the generation start time t7 may be calculated by inverting from the deadline t6, at which time the generation start time t7 is calculated with a spare time t6-t8 between the generation completion time t8 and the deadline t6. Can be.
  • a generation command is delivered.
  • the generation time t12-t11 may be calculated such that the time CCPT is processed sequentially and the virtual container creation time VCCT and the total boot time TBT are processed in parallel.
  • the virtual container creation time (VCCT) for the first virtual machine and the creation command delivery time (CCPT) for the second virtual machine may be processed in parallel, and the total boot time (TBT) for the first virtual machine.
  • the virtual container creation time (VCCT) for the second virtual machine may also be processed in parallel.
  • the generation start time t11 may be calculated by inverting from the deadline t10, wherein the generation start time t11 is calculated with a spare time t10-t12 between the generation completion time t12 and the deadline t10. Can be.
  • the advantageous effect of the present invention is obtained by shortening the creation time of the virtual cluster by processing the time for the tasks that can be performed simultaneously for each of the virtual machines included in the virtual cluster in parallel.
  • the generation start time may be calculated based on execution slots partitioned at regular time intervals.
  • An execution slot stores a control schedule that defines creation and destruction of virtual machines in a virtual cluster in time series, and when a time corresponding to each execution slot arrives, executes a control command defined in a control schedule stored in each execution slot. It's a kind of repository used to run.
  • creation of the scheduled virtual cluster may be initiated.
  • 22A visually illustrates an execution slot used in a virtual cluster driving time scheduling method according to another embodiment of the present invention. Execution slots are divided at intervals of 30 seconds from 9:55:00 seconds to 10:00:00 seconds, and execution slots between 9:55:00 seconds and 10:00:00 seconds are empty.
  • the virtual The minimum number of execution slots, including creation time (tc1) 2 minutes 45 seconds, is allocated for the creation of the cluster, i.e. six execution slots corresponding to the deadline 10: 00: 00 seconds from 9:57: 00 seconds. do.
  • the generation start time may be calculated as 9 minutes 57 minutes 00 seconds, which is the earliest time corresponding to the assigned execution slot, rather than 9:57:45 seconds, which is 2 minutes and 45 seconds from 10:00 hours 00 seconds, and the generation end time.
  • a spare time (tm1) of 15 seconds is secured between 9:59:45 seconds in the deadline and 10:00:00 seconds in the deadline.
  • the deadline is 10: 00: 00 and the creation time (tc2) of the virtual cluster calculated based on the creation command delivery time, the virtual container creation time, and the total boot time is 2 minutes 50 seconds.
  • the minimum number of execution slots including creation time (tc2) 2 minutes 50 seconds, is created for the creation of the virtual cluster, i.e., 6 executions corresponding to the deadline 10:00 00 seconds from 9:57 00 00 Slots can be allocated.
  • a periodic generation start time may be calculated such that the generation of the virtual cluster is completed periodically at the driving start time. For example, if the startup start time is 10:00:00 every Monday and the creation time of the virtual cluster calculated based on the creation command delivery time, virtual container creation time, and total boot time is three minutes, then every Monday at 9:57 Minute 00 seconds may be calculated as the generation start time.
  • the periodic generation start time may also be calculated based on the execution slot, or the generation start time may be calculated so that a spare time is secured between the driving start time and the generation completion time.
  • the advantageous effect of the present invention can be obtained by providing a virtual cluster driving time scheduling method and apparatus capable of efficiently using the virtual cluster by scheduling the virtual cluster to be periodically generated and destroyed.
  • a time model to be applied to the calculation request may be determined before the generation start time is calculated.
  • the time model is a model used to calculate the generation start time.
  • a time model for calculating the creation time of the virtual machine by using the generation command delivery time, the virtual container creation time, and the total boot time is used.
  • the present invention is not limited thereto, and various times for calculating the creation time of the virtual machine are used.
  • a temporal model can be used.
  • the time model may be determined by selecting a specific time model by a user's selection, or may be determined by extracting a specific time model suitable for a virtual machine to be created. Each component constituting the time model or time model can be added, changed or deleted through a user's request.
  • the generation start time calculated in step 3 is transmitted to an external module (S2030).
  • the external module is a module that manages the scheduling of the virtual cluster or performs the creation of the virtual cluster.
  • the external module may be the same module as the external module of step S2010 that transmits the deadline and the calculation request or may be a different module. Since the generation start time is transmitted to the external module, the generation of the virtual cluster may be started at the generation start time and the generation of the virtual cluster may be completed before the deadline.
  • the virtual cluster may be generated such that the calculated generation start time is not transmitted to another module and the virtual machine is created before the deadline based on the generation start time.
  • the virtual cluster may be created at the creation start time and completed before the deadline.
  • the virtual cluster may be created according to conventional methods for creating a virtual cluster.
  • the generation time information is calculated so that the virtual cluster is created based on the deadline set by the user, so that the user can schedule the virtual cluster at a desired time.
  • the advantageous effect of the invention that it can be obtained is obtained.

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)
  • Stored Programmes (AREA)

Abstract

본 발명의 일 실시예에 따른 가상 클러스터 관리 시스템이 제공된다. 가상 클러스터 관리 시스템은 복수의 가상 머신을 포함하는 가상 클러스터 시스템에 대한 제어 요청을 처리함으로써, 가상 클러스터 시스템의 제어 정보를, 관리하도록 구성된 가상 클러스터 제어 정보 관리부 및 복수의 호스트에서의 복수의 가상 머신들을 관리하는 외부의 가상 머신 관리 시스템을 통해 또는 복수의 호스트에 직접 접속하여 제어함으로써, 제어 정보에 기초하여 복수의 가상 머신의 동작을 제어하도록 구성된 가상 클러스터 제어부를 포함한다.

Description

가상 클러스터 관리 시스템 및 이를 제어하기 위한 방법
본 발명은 가상 클러스터 관리 시스템 및 이를 제어하기 위한 방법에 관한 것으로서, 보다 상세하게는 가상 머신들 사이의 관계를 고려하여 가상 클러스터를 생성할 수 있는 가상 클러스터 관리 시스템 및 이를 제어하기 위한 방법에 관한 것이다.
가상 머신 (Virtual Machine; VM) 기반의 가상 컴퓨팅 환경에서, 가상 머신 스케줄링은 요청된 가상 머신이 배치, 구동될 호스트를 결정하는 처리 과정이며, 가상 머신 스케줄러는 가상 머신 스케줄링을 수행하는 도구이다.
종래의 가상 머신 스케줄러에 의한 가상 머신 스케줄링은 단일 가상 머신에 대한 배치 스케줄링에 집중한다. 이에 따라, 사용자가 다수의 가상 머신들을 논리적인 처리 집단으로 간주하고 가상 머신의 배치 스케줄링을 요청하더라도, 가상 머신의 스케줄러는 이러한 집단적인 가상 머신 스케줄링 요청에 대해, 가상 머신 각각의 가상 머신을 서로 관계적 특성이 없는 독립적인 가상 머신으로 인식하여 배치 스케줄링을 수행한다. 따라서 가상 머신 사용자는 자신이 사용하는 가상 머신 집단에 대해 사용자 스스로에 국한된 집단성만을 부여할 수밖에 없다. 즉, 가상 머신 스케줄러는 사용자가 의도한 집단적 특성, 예를 들어, 가상 머신 간의 배치 관점에서의 관계를 고려해 가상 머신 배치 스케줄링에 반영할 수 없는 한계가 있다.
최근 빅 데이터 처리 소프트웨어 플랫폼, 예컨대 Hadoop등을 비롯해 다양한 처리 소프트웨어 플랫폼들은 내부적으로 여러 종류의 소프트웨어 컴포넌트들로 구성되어 있다. 복수의 소프트웨어 컴포넌트들 각각은 별도의 가상 머신들 내에 구현되며, 가상 머신들 각각은 설치된 컴포넌트의 역할과 처리해야 할 작업의 종류 및 관리상의 이슈 (고가용성) 등의 이유로 물리적으로 분리된 컴퓨팅 시스템에 구동될 필요가 있다. 가상 머신은 전술한 분산 클러스터 시스템을 구성하기 위한 중요한 컴퓨팅 환경이 될 수 있다. 그러나 기존의 가상 머신 스케줄러에서는 집단을 이루는 가상 머신들에 대한 배치 스케줄링 시, 집단 내 가상 머신 간의 관계를 고려한 배치가 어려웠다.
발명의 배경이 되는 기술은 본 발명에 대한 이해를 보다 용이하게 하기 위해 작성되었다. 발명의 배경이 되는 기술에 기재된 사항들이 선행기술로 존재한다고 인정하는 것으로 이해되어서는 안 된다.
기존의 가상 머신 배치 시스템에서는 가상 클러스터의 배치 및 시간 스케줄링을 지원하지 못하는 문제점을 가지고 있다. 또한 다양한 배치 알고리즘을 동적으로 적용하기 어려운 구조적/기능적 제한 사항을 가지고 있다. 이에 따라, 가상 클러스터 환경에서 서브 그룹 단위로 또는 서브 그룹 내 가상 머신 단위로 상이한 배치 알고리즘을 적용하기 힘든 구조적 제약 사항을 내재하고 있다.
뿐만 아니라, 배치 알고리즘 및 다양한 서브 모듈들에 대한 동적 재구성이 가능한 (Dynamically Reconfigurable) 내부 시스템 체계가 존재하지 않았다. 이에 따라, 환경적 변화 요인에 유연한 대응이 어려웠다. 예를 들어, 배치 알고리즘 변경 시, 관리 시스템 전체 혹은 관리 시스템 내 배치 스케줄러를 재시작해야 하는 문제점을 가지고 있었다. 이는 가상 컴퓨팅 서비스의 일시적 중단을 야기하게 되므로 매우 중요한 문제이다.
또한, 기존의 가상 컴퓨팅 자원 배치 스케줄러들은 확장성 부재로 인해, 다양한 가상 컴퓨팅 자원 관리 시스템, 예를 들어 가상 머신 관리 시스템 또는 클라우드 관리 시스템과의 통합 또는 연동이 불가능한 구조였다.
이에 따라, 본 발명이 해결하고자 하는 과제는 가상 클러스터 내의 가상 머신들을 서브 그룹 또는 서브 그룹 단위 내에서 가상 머신의 단위로 배치할 수 있고, 재사용 가능하고 환경적 변화 요인에 유연한 가상 클러스터 관리 시스템 및 이를 제어하기 위한 방법을 제공하는데 있다.
본 발명의 해결하고자 하는 다른 과제는 다양한 가상 머신 관리 시스템과 통합가능하고, 복수의 호스트를 직접 제어할 수 있는 가상 클러스터 관리 시스템 및 이를 제어하기 위한 방법을 제공하는 것이다.
한편, 가상 클러스터에서의 가상 머신들을 배치하는 것은 단순히 복수의 가상 머신을 순차적으로 배치하는 것과는 상이하다. 가상 클러스터 내의 가상 머신들의 배치에서는 회피 조건에 따른 분산 배치나 친밀 조건에 따른 통합 배치를 고려해야한다.
이러한 점들을 고려할 때 가상 머신의 배치 방식은 획일적인 필터링, 정렬, 선택의 알고리즘 수행 단위로 구성되지 않고, 다양한 알고리즘 수행 단위의 조합으로 이루어질 수 있다.
그러나, 종래의 가상 머신의 배치 방식은 가상 클러스터 내의 관계 속성에 대해서 전혀 인식하고 있지 못하므로, 다양한 알고리즘 수행 단위의 조합을 구현하거나 상황에 따라 최대한 효율적인 배치를 수행하지 못하였다.
이에 따라, 본 발명이 해결하고자 하는 과제는 상황에 따라 배치의 효율성을 최대화하기 위해, 가상 머신들의 배치에 있어서 다양한 알고리즘 수행 단위의 조합을 구현할 수 있는 가상 클러스터 배치 방법 및 이를 제공하기 위한 장치를 제공하는데 있다.
본 발명의 해결하고자 하는 다른 과제는 서로에 대한 관계 속성에 따라 가상 클러스터 내의 복수의 가상 머신 각각을 적합한 호스트들에 배치시킬 수 있는 가상 클러스터 배치 방법 및 이를 제공하기 위한 장치를 제공하는 것이다.
본 발명의 해결하고자 하는 또 다른 과제는 가상 클러스터 내의 복수의 가상 머신들의 분류 또는 관계 속성의 결정을 보다 효율적으로 수행하고, 이를 재차 검증할 수 있는 가상 클러스터 배치 방법 및 이를 제공하기 위한 장치를 제공하는 것이다.
한편, 가상 머신의 생성에 있어서, 종래에는 사용자가 사용하기 원하는 시점부터 가상 머신을 사용할 수 있도록 데드라인(deadline) 기준으로 가상 클러스터의 스케줄링을 수행할 수 없었다. 사용자가 사용하기 원하는 시점부터 가상 클러스터를 사용하기 위해서는 사용자가 가상 클러스터의 생성 시간을 고려하여 미리 가상 클러스터의 스케줄링을 요청해야 했다. 특히, 하나의 가상 머신이 아닌 다수의 가상 머신을 포함하는 가상 클러스터의 경우에는 사용자가 가상 클러스터의 생성 시간을 예측하는 것이 어렵다는 문제점이 있었다.
따라서, 데드라인 기준으로 가상 클러스터의 스케줄링을 수행하는 동시에 가상 클러스터를 생성하는 시간 효율을 향상시킬 수 있는 방법 및 장치의 개발이 요구되었다.
이에 따라, 본 발명이 해결하고자 하는 과제는 가상 클러스터의 구동 시간을 스케줄링하는데 있어서, 사용자가 설정한 데드라인을 기준으로 가상 클러스터가 생성 완료되도록 생성 시간 정보를 산출함으로써, 사용자가 원하는 시간에 가상 클러스터를 사용할 수 있도록 스케줄링할 수 있는 가상 클러스터 구동 시간 스케줄링 방법 및 장치를 제공하는데 있다.
본 발명의 해결하고자 하는 다른 과제는 가상 클러스터에 포함된 가상 머신 각각에 대한 가상 컨테이너 생성 시간 및 총 부팅 시간을 병렬적으로 처리함으로써, 가상 클러스터를 생성하는 시간을 단축할 수 있는 가상 클러스터 구동 시간 스케줄링 방법 및 장치를 제공하는 것이다.
본 발명의 해결하고자 하는 또 다른 과제는 가상 클러스터를 주기적으로 생성하고 소멸시킬 수 있도록 스케줄링함으로써, 가상 클러스터를 효율적으로 사용할 수 있는 가상 클러스터 구동 시간 스케줄링 방법 및 장치를 제공하는 것이다.
본 발명의 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 가상 클러스터 관리 시스템이 제공된다. 가상 클러스터 관리 시스템은 복수의 가상 머신을 포함하는 가상 클러스터 시스템에 대한 제어 요청을 처리함으로써, 가상 클러스터 시스템의 제어 정보를, 관리하도록 구성된 가상 클러스터 제어 정보 관리부 및 복수의 호스트에서의 복수의 가상 머신들을 관리하는 외부의 가상 머신 관리 시스템을 통해 또는 복수의 호스트에 직접 접속하여 제어함으로써, 제어 정보에 기초하여 복수의 가상 머신의 동작을 제어하도록 구성된 가상 클러스터 제어부를 포함한다.
본 발명의 다른 특징에 따르면, 가상 클러스터 제어부는, 외부의 가상 머신 관리 시스템으로 하여금 가상 머신의 생성, 종료, 정지, 재시작, 이주, 가상 클러스터 규모 및 할당된 자원 규모 변경 중 적어도 하나의 동작을 수행시키도록 더 구성된다.
본 발명의 또 다른 특징에 따르면, 가상 클러스터 관리 시스템은 가상 클러스터 제어부에 접속되는, 가상 머신 관리 시스템 접근 드라이버를 더 포함하고, 가상 머신 관리 시스템 접근 드라이버는 외부의 가상 머신 관리 시스템 또는 호스트에서 사용되는 가상 컴퓨팅 자원 제어 기능을 가상 클러스터 제어부에서 사용 가능한 가상 컴퓨팅 자원 제어 기능으로 변환하도록 구성된다.
본 발명의 또 다른 특징에 따르면, 가상 클러스터 관리 시스템은 가상 머신 관리 시스템 접근 드라이버의 등록 또는 변경 또는 삭제를 수행하도록 구성된 드라이버 관리부를 더 포함한다.
본 발명의 또 다른 특징에 따르면, 가상 클러스터 관리 시스템은 가상 클러스터 시스템의 구동 시점을 스케줄링하도록 구성된 타임 엔진 및 복수의 가상 머신이 배치되는 호스트를 결정하도록 구성된 배치 엔진을 더 포함하고, 가상 클러스터 제어 정보 관리부는, 타임 엔진 또는 배치 엔진에 의해 생성되는 복수의 가상 머신의 제어 정보 또는 가상 클러스터 시스템의 제어 정보를 스케줄 테이블로 저장한다.
본 발명의 또 다른 특징에 따르면, 배치 엔진은 복수의 가상 머신을 배치하기 위한 복수의 계산 모듈을 포함하고, 복수의 계산 모듈은 제어 정보에 액세스 가능하도록 구성된다.
본 발명의 또 다른 특징에 따르면, 배치 엔진은 복수의 가상 머신의 배치도를 제어 정보의 형태로 저장하도록 더 구성된다.
본 발명의 또 다른 특징에 따르면, 가상 클러스터 관리 시스템은 가상 클러스터 시스템 또는 가상 머신들에 대한 제어 요청을 수신하고, 제어 요청의 속성에 따라 제어 요청을 가상 클러스터 제어 정보 관리부 또는 가상 클러스터 제어부에 할당하도록 구성된 가상 클러스터 운영 관리부를 더 포함한다.
본 발명의 또 다른 특징에 따르면, 가상 클러스터 관리 시스템은 복수의 호스트의 자원 정보, 상태 정보, 복수의 가상 머신의 자원 정보 및 상태 정보를 수집하고, 복수의 호스트의 자원 정보, 상태 정보, 복수의 가상 머신의 자원 정보, 상태 정보 및 제어 정보 중 적어도 하나를 제공하도록 구성된 정보 관리부를 더 포함한다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 가상 클러스터 관리 시스템의 제어 방법이 제공된다. 가상 클러스터 관리 시스템의 제어 방법은 복수의 가상 머신을 포함하는 가상 클러스터 시스템에 대한 제어 요청을 수신하는 단계, 제어 요청에 따라 복수의 가상 클러스터 시스템의 제어 정보를 생성하거나 정정하는 단계, 복수의 호스트를 관리하는 외부의 가상 머신 관리 시스템을 통해 또는 복수의 호스트에 직접 접속하여 복수의 가상 머신을 제어함으로써, 제어 정보에 기초하여 복수의 호스트에서의 복수의 가상 머신의 동작을 제어하기 위한 명령을 출력하는 단계를 포함한다.
본 발명의 다른 특징에 따르면, 가상 클러스터 관리 시스템의 제어 방법은 제어 요청을 스케줄링이 요구되는 제어 요청 또는 스케줄링이 요구되지 않는 제어 요청으로 분류하는 단계 및 스케줄링 요구되지 않는 제어 요청에 따라 복수의 가상 머신의 동작을 제어하기 위한 명령을 출력하는 단계를 더 포함하고, 스케줄링이 요구되지 않는 제어 요청에 따라 복수의 가상 머신의 동작을 제어하기 위한 명령을 출력하는 단계는 제어 정보와는 독립적으로 수행하도록 한다.
본 발명의 또 다른 특징에 따르면, 가상 클러스터 관리 시스템의 제어 방법은 가상 클러스터 시스템에 대한 제어 요청에 따라 가상 클러스터 시스템의 동작 시간을 결정하는 단계 및 결정된 동작 시간에 따라 제어 정보를 갱신하는 단계를 더 포함한다.
본 발명의 또 다른 특징에 따르면, 가상 클러스터 관리 시스템의 제어 방법은 가상 클러스터 시스템에 대한 제어 요청에 따라 가상 클러스터 시스템의 배치를 결정하는 단계 및 결정된 배치에 따라 제어 정보를 갱신하는 단계를 더 포함한다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법이 제공된다. 가상 클러스터 배치 방법은 복수의 가상 머신을 포함하는 가상 클러스터 시스템에 대한 시스템 정보를 수신하는 단계, 복수의 가상 머신을 서브 그룹으로 분류하는 단계, 서브 그룹 사이의 관계 속성 또는 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 결정하는 단계 및 서브 그룹 사이의 관계 속성 또는 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성에 따라, 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계를 포함한다.
본 발명의 다른 특징에 따르면, 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계는, 복수의 가상 머신 중 일부를 복수의 호스트 중 서로 상이한 호스트들에 배치하는 단계를 포함한다.
본 발명의 또 다른 특징에 따르면, 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계는 적어도 하나의 계산 모듈을 통해 복수의 가상 머신의 배치와 연관된 계산을 수행하는 단계를 포함하고, 적어도 하나의 계산 모듈 각각은, (a) 서브 그룹에 대한 정보를 핸들링하는 단계, (b) 서브 그룹을 파티셔닝하는 단계, (c) 호스트를 정렬하는 단계, (d) 호스트를 필터링하는 단계, (e) 호스트를 추출하는 단계; 또는 (f) 사용자 정의된 기능을 수행하는 단계 중 적어도 하나의 단계를 수행하도록 구성된다.
본 발명의 또 다른 특징에 따르면, 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계는, 관계 속성에 따라 서로 상이한 계산 모듈의 조합을 이용하여 수행된다.
본 발명의 또 다른 특징에 따르면, 서브 그룹 사이의 관계 속성 또는 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성은 분산 배치 또는 통합 배치이다.
본 발명의 또 다른 특징에 따르면, 가상 클러스터 배치 방법은 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계 이후에, 가상 클러스터 시스템에 대한 배치 맵을 갱신하는 단계를 더 포함하고, 적어도 하나의 계산 모듈은 배치 맵에 액세스 가능하도록 구성된다.
본 발명의 또 다른 특징에 따르면, 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계는 가상 머신을 복수의 호스트 중 하나에 배치하도록 배치 맵에 기초하여 호스트를 선택하는 단계를 포함한다.
본 발명의 또 다른 특징에 따르면, 복수의 가상 머신을 서브 그룹으로 분류하는 단계는 복수의 가상 머신의 자원요구사항에 기초하거나 사용자-정의에 기초하여 복수의 가상 머신을 서브 그룹으로 분류하는 단계이다.
본 발명의 또 다른 특징에 따르면, 복수의 가상 머신을 서브 그룹으로 분류하는 단계는, 분류 기준에 따라 복수의 가상 머신을 서브 그룹으로 분류하는 단계이고, 분류 기준은 분류 히스토리 또는 기 저장된 분류 정보에 따라 결정된다.
본 발명의 또 다른 특징에 따르면, 서브 그룹 사이의 관계 속성 또는 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 결정하는 단계는, 관계 속성의 결정에 대한 히스토리 또는 기 저장된 결정 정보에 따라, 서브 그룹 사이의 관계 속성 또는 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 결정하는 단계이다.
본 발명의 또 다른 특징에 따르면, 가상 클러스터 배치 방법은 서브 그룹 사이의 관계 속성 또는 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 검증하는 단계를 더 포함한다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 가상 클러스터 배치를 제공하기 위한 장치는 복수의 가상 머신을 포함하는 가상 클러스터 시스템에 대한 시스템 정보를 수신하기 위한 요청 수신부; 및 요청 수신부와 연결된 배치 엔진을 포함하고, 배치 엔진은, 복수의 가상 머신을 서브 그룹으로 분류하고, 서브 그룹 사이의 관계 속성 또는 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 결정하고, 서브 그룹 사이의 관계 속성 또는 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성에 따라, 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하도록 구성된다.
본 발명의 다른 특징에 따르면, 배치 엔진은 적어도 하나의 계산 모듈을 통해 복수의 가상 머신 중 하나를 복수의 호스트에 배치하도록 구성되고, 적어도 하나의 계산 모듈 각각은, (a) 서브 그룹에 대한 정보를 핸들링하는 단계, (b) 서브 그룹을 파티셔닝하는 단계, (c) 호스트를 정렬하는 단계, (d) 호스트를 필터링하는 단계, (e) 호스트를 추출하는 단계; 또는 (f) 사용자 정의된 기능을 수행하는 단계 중 적어도 하나의 단계를 수행하도록 구성된다.
본 발명의 또 다른 특징에 따르면, 배치 엔진은, 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치한 후, 가상 클러스터 시스템에 대한 배치 맵을 갱신하도록 더 구성된다.
본 발명의 또 다른 특징에 따르면, 배치 엔진은, 가상 머신을 복수의 호스트 중 하나에 배치하도록 배치 맵에 기초하여 호스트를 선택함으로써, 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하도록 구성된다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법은 가상 머신을 사용하고자 하는 시점인 데드라인 및 가상 머신에 대한 생성 시작 시간의 산출 요청을 수신하는 단계, 데드라인에 기초하여 생성 시작 시간을 산출하는 단계 및 생성 시작 시간을 외부 모듈로 송신하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 다른 특징에 따르면, 생성 시작 시간을 산출하는 단계는, 생성 명령 전달 시간, 가상 컨테이너 생성 시간 및 총 (total) 부팅 시간에 기초하여 생성 시작 시간을 산출하는 단계인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 가상 머신의 수가 2 이상인 경우, 생성 시작 시간을 산출하는 단계는, 가상 머신 각각에 대한 생성 명령 전달 시간이 순차적으로 처리되고, 가상 머신 각각에 대한 가상 컨테이너 생성 시간이 순차적 또는 병렬적으로 처리되고, 가상 머신 각각에 대한 총 부팅 시간이 병렬적으로 처리되도록 생성 시작 시간을 산출하는 단계인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 생성 시작 시간을 산출하는 단계는, 가상 머신이 동일한 호스트에 배치된 경우, 가상 머신 각각에 대한 가상 컨테이너 생성 시간이 하나의 호스트에서 순차적으로 처리되고, 가상 머신이 서로 다른 호스트에 배치된 경우, 가상 머신 각각에 대한 가상 컨테이너 생성 시간이 서로 다른 호스트에서 병렬적으로 처리되도록 생성 시작 시간을 산출하는 단계인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 총 부팅 시간은 부팅 선택 시간, 부팅 시간, 초기화 시간 및 지연 시간 중 적어도 하나 이상의 시간을 합산한 시간인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 생성 시작 시간을 산출하는 단계는, 생성 완료 시간에 기초하여 생성 시작 시간을 산출하는 단계인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 산출하는 단계는, 생성 완료 시간과 데드라인 사이에 여유 시간이 확보되도록 생성 시작 시간을 산출하는 단계인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 산출하는 단계는, 실행 슬롯을 기반으로 생성 시작 시간을 산출하는 단계인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 실행 슬롯은 일정 시간 간격으로 구획되는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 가상 클러스터 구동 시간 스케줄링 방법은 산출 요청에 대하여 적용하고자 하는 시간 모델을 결정하는 단계를 더 포함하고, 산출하는 단계는, 시간 모델에 기초하여 생성 시작 시간을 산출하는 단계인 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 가상 클러스터 구동 시간 스케줄링 방법은 사용자의 요청을 통해 다른 시간 모델을 추가하는 단계, 사용자의 요청을 통해 시간 모델을 변경하는 단계 또는 사용자의 요청을 통해 시간 모델을 삭제하는 단계를 더 포함하는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따르면, 수신하는 단계는, 가상 머신에 대한 구동 시작 시간 및 구동 종료 시간을 포함하는 구동 주기 및 가상 머신을 주기적으로 구동시키기 위한 산출 요청을 수신하는 단계인 것을 특징으로 한다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 다른 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법은 가상 머신을 사용하고자 하는 시점인 데드라인을 수신하는 단계, 데드라인에 기초하여 생성 시작 시간을 산출하는 단계 및 생성 시작 시간에 기초하여 데드라인 이전에 가상 머신이 생성 완료되도록 가상 머신을 생성하는 단계를 포함하는 것을 특징으로 한다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 가상 클러스터 구동 시간 스케줄링 장치는 가상 머신을 사용하고자 하는 시점인 데드라인 및 가상 머신에 대한 생성 시작 시간의 산출 요청을 수신하는 수신부, 데드라인에 기초하여 생성 시작 시간을 산출하는 산출부 및 생성 시작 시간을 외부 모듈로 송신하는 송신부를 포함하는 것을 특징으로 한다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 다른 실시예에 따른 가상 클러스터 구동 시간 스케줄링 장치는 가상 머신을 사용하고자 하는 시점인 데드라인을 수신하는 수신부, 데드라인에 기초하여 생성 시작 시간을 산출하는 산출부 및 생성 시작 시간에 기초하여 데드라인 이전에 가상 머신이 생성 완료되도록 가상 머신을 생성하는 생성부를 포함하는 것을 특징으로 한다.
기타 실시예의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명은 가상 클러스터 내의 가상 머신들을 서브 그룹 또는 서브 그룹 단위 내에서 가상 머신의 단위로 배치할 수 있고, 재사용 가능하고 환경적 변화 요인에 유연한 가상 클러스터 관리 시스템 및 이를 제어하기 위한 방법을 제공할 수 있는 효과가 있다.
또한 본 발명은 다양한 가상 머신 관리 시스템과 통합가능하고, 복수의 호스트를 직접 제어할 수 있는 가상 클러스터 관리 시스템 및 이를 제어하기 위한 방법을 제공할 수 있다.
본 발명은 상황에 따라 배치의 효율성을 최대화하기 위해, 가상 머신들의 배치에 있어 다양한 알고리즘 수행 단위의 조합을 구현할 수 있는 가상 클러스터 배치 방법 및 이를 제공하기 위한 장치를 제공할 수 있는 효과가 있다.
또한, 본 발명은 서로에 대한 관계 속성에 따라 가상 클러스터 내의 복수의 가상 머신 각각을 적합한 호스트들에 배치시킬 수 있는 가상 클러스터 배치 방법 및 이를 제공하기 위한 장치를 제공할 수 있다.
나아가 본 발명은 가상 클러스터 내의 복수의 가상 머신들의 분류 또는 관계 속성의 결정을 보다 효율적으로 수행하고, 이를 재차 검증할 수 있는 가상 클러스터 배치 방법 및 이를 제공하기 위한 장치를 제공할 수 있는 효과가 있다.
본 발명은 가상 클러스터의 구동 시간을 스케줄링하는데 있어서, 사용자가 설정한 데드라인을 기준으로 가상 클러스터가 생성 완료되도록 생성 시간을 산출함으로써, 사용자가 원하는 시간에 가상 클러스터를 사용할 수 있도록 스케줄링할 수 있는 효과가 있다.
또한, 가상 클러스터에 포함된 가상 머신 각각에 대한 가상 컨테이너 생성 시간 및 총 부팅 시간을 병렬적으로 처리함으로써, 가상 클러스터를 생성하는 시간을 단축할 수 있는 효과가 있다.
또한, 가상 클러스터를 주기적으로 생성하고 소멸시킬 수 있도록 스케줄링함으로써, 가상 클러스터를 효율적으로 사용할 수 있는 가상 클러스터 구동 시간 스케줄링 방법 및 장치를 제공할 수 있는 효과가 있다.
본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 가상 클러스터 관리 시스템의 동작을 설명하기 위한 개략도를 예시적으로 도시한다.
도 2는 본 발명의 일 실시예에 따른 가상 클러스터 관리 시스템을 설명하기 위한 예시적인 블록도이다.
도 3은 본 발명의 일 실시예에 따른 가상 클러스터 관리 시스템의 가상 클러스터 제어 정보 관리부를 설명하기 위한 예시적인 블록도이다.
도 4는 본 발명의 일 실시예에 따른 가상 클러스터 관리 시스템의 가상 클러스터 제어부를 설명하기 위한 예시적인 블록도이다.
도 5는 본 발명의 일 실시예에 따른 가상 클러스터 관리 시스템에서 가상 클러스터의 제어 요청이 수신되었을 때의 처리 흐름을 설명하기 위한 예시적인 블록도이다.
도 6은 본 발명의 다른 실시예에 따른 가상 클러스터 관리 시스템의 동작을 설명하기 위한 개략도를 예시적으로 도시한다.
도 7은 본 발명의 일 실시예에 따른 가상 클러스터 관리 시스템의 제어 방법을 설명하기 위한 개략적인 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 가상 클러스터 배치를 위한 장치의 블록도를 예시적으로 도시한다.
도 9는 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법을 설명하기 위한 개략적인 흐름도이다.
도 10은 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법을 설명하기 위한 개략도이다.
도 11a 및 11b는 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법의 구체적인 적용예를 설명하기 위한 개략도들이다.
도 12는 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법의 구체적인 적용예에서 복수의 가상 머신을 포함하는 가상 클러스터가 복수의 호스트에 배치되는 예시를 설명하기 위한 개념도이다.
도 13 내지 도 17은 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법이 나타내는 처리 성능과 성능 지표들을 설명하기 위한 도표들이다.
도 19는 본 발명의 일 실시예에 따른 가상 클러스터 구동 시간 스케줄링 장치의 개략적인 블록도이다.
도 20은 본 발명의 일 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법을 설명하기 위한 흐름도이다.
도 21a 내지 21c는 본 발명의 몇몇 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법에서 예시적인 생성 시간 정보의 산출 단계를 설명하기 위한 개념도들이다.
도 22a 및 22b는 본 발명의 몇몇 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법에서 예시적인 실행 슬롯의 생성 단계를 설명하기 위한 개념도들이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예를 설명하기 위한 도면에 개시된 형상, 크기, 비율, 각도, 개수 등은 예시적인 것이므로 본 발명이 도시된 사항에 한정되는 것은 아니다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. 또한, 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다. 본 명세서 상에서 언급된 “포함한다”, “갖는다”, “이루어진다” 등이 사용되는 경우 “~만”이 사용되지 않는 이상 다른 부분이 추가될 수 있다. 구성 요소를 단수로 표현한 경우에 특별히 명시적인 기재 사항이 없는 한 복수를 포함하는 경우를 포함한다.
비록 제1, 제2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않는다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있다.
명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.
도 1은 본 발명의 일 실시예에 따른 가상 클러스터 (VC; virtual cluster) 관리 시스템의 동작을 설명하기 위한 개략도를 예시적으로 도시한다. 본 발명의 일 실시예에 따른 VC 관리 시스템(100)은 가상 클러스터를 구성하는 가상 머신들의 배치 및 시간 스케줄링 역할을 수행하는 가상 클러스터 스케줄러를 위한 소프트웨어 프레임워크이거나 또는 가상 머신들의 배치 및 시간 스케줄링을 수행하고 이에 따라 가상 머신들을 제어하기 위한 프레임워크이다.
도 1에서는 예시적으로 외부의 가상 머신 관리 시스템 (VMMS; virtual machine management system) 과의 통합 또는 연동될 수 있는 가상 스케줄러를 위한 소프트 프레임워크로 도시된다. 예를 들어, VC 관리 시스템(100)은 VMMS의 확장성 기능 모듈의 하나로 존재할 수 있으며, 반대로 VMMS이 VC 관리 시스템(100)의 확장성 기능 모듈로 존재할 수 있다. VC 관리 시스템(100)은 접근 드라이버를 통해 외부의 VMMS과 호환 가능하게 연결될 수 있다. VC 관리 시스템(100)이 호스트(Host)를 직접 제어하는 실시예에 대해서는 도 6을 참조하여 후술한다.
도 1을 참조하면, VC 관리 시스템(100), VMMS 및 복수의 호스트(Host)들이 도시된다. VC 관리 시스템(100)은 가상 클러스터에 대한 제어 정보를 수신하고, 제어 정보에 따라 가상 클러스터 내의 가상 머신들의 제어를 스케줄하거나 가상 클러스터 내의 가상 머신들의 제어를 VMMS에 지시할 수 있다.
VMMS은 가상 컴퓨팅 자원을 관리하고, 가상 머신들을 제어하기 위한 시스템이다. VMMS은 예를 들어, OpenNebula, OpenStack, Eucalyptus, CloudStack등이 있을 수 있다. VMMS은 VC 관리 시스템(100)으로부터 가상 머신에 대한 제어 명령을 수신하여, 호스트(Host)들에 가상 머신들을 생성하거나 가상 머신들을 종료시키거나 재시작시키는 등의 작업을 수행할 수 있다.
가상 머신들은 호스트(Host)에 생성되고 운영된다. 호스트(Host)들은 VMMS을 통해 제어될 수 있다. 사용자는 호스트(Host)에 생성된 가상 머신들에 직접 액세스하여, 가상 머신을 동작시킬 수도 있다.
또한, VC 관리 시스템(100)은 가상 클러스터에 대한 제어 정보를 별도의 웹 서비스를 통해 수신하도록 구성될 수도 있다. 또한, VC 관리 시스템(100)은 VMMS으로부터 가상 머신 및 호스트(Host)에 대한 상태를 수신하고, 이를 다시 사용자에게 제공하도록 구성될 수도 있다.
도 2는 본 발명의 일 실시예에 따른 가상 클러스터 관리 시스템을 설명하기 위한 예시적인 블록도이다. 도 2를 참조하면, VC 관리 시스템 (100) 은 VC 제어 요청 관리부 (110), VC 운영 관리부 (120), VC 제어 정보 관리부 (130), 타임 엔진 (140), 배치 엔진 (150), VC 제어부 (160), VMMS 접근 드라이버, 드라이버 관리부 (180) 및 정보 관리부 (190) 를 포함한다.
VC 제어 요청 관리부 (110) 는 VC 제어 요청을 수신하고, 특정 데이터 형식으로 기술된 VC 제어 요청 명세서 (specification) 와 같은 VC 제어 요청을 VC 관리 시스템 (100) 의 컴포넌트들에 의해 처리 가능한 VC 제어 요청으로 변환하는 역할을 수행한다. 또한, VC 제어 요청 관리부 (110) 는 VC 제어 요청을 VC 운영 관리부 (120) 로 전달한다. 예를 들어, VC 제어 요청 관리부 (110) 는 JSON 및 XML 형태로 된 VC 제어 요청을 수신하여 내부 컴포넌트들에 의해 처리 가능한 VC 제어 요청으로 변환한 후 VC 운영 관리부 (120) 로 변환된 VC 제어 요청을 전달할 수 있다.
VC 제어 요청 관리부 (110) 는 가상 클러스터 제어와 관련된 명령들 (VC 생성 배치, VC 종료, VC 정지/재시작, VC 이주, VC 규모 변화) 을 외부의 VMMS들로부터 수신하여 VC 관리 시스템 (100) 내부로 전달하는 역할을 수행할 수도 있다.
VC 관리 시스템 (100) 에서 VC 제어 요청 관리부 (110) 는 VMMS로부터 가상 클러스터 제어와 관련된 요청들을 수신하기 위해, 원격 프러시저 호출 (RPC, Remote Procedure Call) 과 같은 기술을 활용할 수 있다. VC 제어 요청 관리부 (110) 는 XML-RPC 기술을 기반으로 구현될 수 있다.
VC 운영 관리부 (120) 는 가상 클러스터 시스템 또는 가상 머신들에 대한 제어 요청을 수신하고, 제어 요청의 속성에 따라 제어 요청을 VC 제어 정보 관리부 (130) 또는 VC 제어부 (160) 에 할당하도록 구성된다.
VC 운영 관리부 (120) 는 VC 제어 요청에 의해 수행될 작업 유형을 판별하여 “VC 스케줄링이 필요한 제어 요청” 또는 “VC 스케줄링이 필요하지 않은 제어 요청”으로 구분한다. “VC 스케줄링이 필요한 제어 요청”은 VC 배치에 필요한 자원 배치 및 시간 스케줄링 계산을 수반한다. “VC 스케줄링이 필요하지 않은 제어 요청”은 구동 중인 VC에 대한 사용 정지/재가동, 종료와 같이 배치 또는 시간 스케줄링 계산을 수반하지 않는다.
VC 운영 관리부 (120) 는 VC 제어 요청 관리부 (110) 로부터 VC 제어 요청을 수신하기 위한 작업 큐 (Job Queue) 를 가지고 있으며, 본 작업 큐에 VC 제어 요청이 존재하는지를 판단한 다음, 큐 내의 VC 제어 요청들을 분류하여 작업 유형에 맞는 객체에 전달하는 역할을 수행한다. VC 운영 관리부 (120) 는 전술한 구분 작업을 VC 단위의 작업과 VM 단위의 관리 작업으로 세분화하여 수행할 수 있다. VC 운영 관리부 (120) 는 VM들의 직접 제어가 필요한 제어 요청, 예를 들어, VC 내 일부 VM들 혹은 전체 VM들을 종료하는 제어 요청 등에 대해서는 VC 제어부 (160) 에 전달한다. 이와 반대로, VC 생성/이주/규모, 할당된 자원 규모 변경 등 스케줄링이 필요한 제어 요청들에 대해서는 VC 제어 정보 관리부 (130) 에 전달한다.
VC 제어 정보 관리부 (130) 는 복수의 가상 머신을 포함하는 가상 클러스터 시스템에 대한 제어 요청을 처리함으로써, 가상 클러스터 시스템의 제어 정보를, 관리하도록 구성된다.
VC 제어 정보 관리부 (130) 는 VC 또는 VM의 구동 스케줄과 같은 VC 또는 VM 제어 정보의 생성, 삭제, 수정 등을 수행한다. VC 제어 정보 관리부 (130) 는 내부적으로 제어 작업의 종류, 예컨대 초기 배치 스케줄링, 가상 클러스터 규모 조정 등에 따라 개별적인 프로세서들을 가질 수 있다. VC 제어 정보 관리부 (130) 는 이러한 프로세서들을 중심으로 배치 엔진 (150) 및 타임 엔진 (140) 을 통해 공간적 배치 혹은 시간적 스케줄링을 수행한다. 그러나, 이에 제한되지 않고 하나의 프로세서가 모든 제어 작업을 수행할 수도 있다.
또한, VC 제어 정보 관리부 (130) 는 VM 상태 동기화 처리기를 포함하고, VM 상태 동기화 처리기를 통해 통해 예컨대 VC 종료, VM 구동 이상 등과 같은 VC 또는 VM들의 상태 변화에 따른 제어 정보 변경/삭제 작업을 수행한다. VC 제어 정보 관리부 (130) 는 VC 제어 작업의 진행 상태에 따라, 제어 상태를 갱신한다. VC 제어 정보 관리부 (130) 에 대해서는 도 3을 참조하여 후술한다.
배치 엔진 (150) 은 복수의 가상 머신이 배치되는 호스트를 결정하도록 구성된다. 배치 엔진 (150) 은 VC가 구동될 호스트를 결정하기 위해 VC 배치 전략에 따라 VC 배치 또는 VC 내의 VM들의 배치 작업을 수행한다. 배치 엔진 (150) 은 VC 배치를 위해 VC 배치 전략을 수행하기 위한 배치 계산 기능 모듈들을 통해 VC 배치 작업을 수행한다. 계산 기능 모듈은 제어 정보에 액세스 가능하도록 구성된다. VC 배치는 제어 요구 조건과 가상 컴퓨팅 자원 상태 등 다양한 요인들에 의해 성공적으로 수행되거나 혹은 계산 실패의 결과를 도출하게 된다. VC 배치가 성공적으로 이루어졌을 경우, 배치 엔진 (150) 은 VC 제어 정보 관리부 (130) 에 VC가 구동될 호스트들에 대한 배치도를 반환한다. 만약, VC 배치 중 오류 발생 혹은 VC 배치 실패 발생 시, 배치 엔진 (150) 은 이를 VC 제어 정보 관리부 (130) 에 반환한다.
타임 엔진 (140) 은 VC 구동 시작 시점에 대한 두 가지 옵션에 대해 크게 “즉시 생성”과 “예약 생성”을 지원하며, 예약 생성의 경우, 세부적으로 “정시 기준 VC 생성 (On-Time)” 옵션과 “데드라인 기반 VC 생성 (Deadline)”을 제공한다. 타임 엔진 (140) 은 예약 생성 옵션 중 “데드라인 기반 VC 생성”을 제공하기 위해 “VC 생성 시간 모델 (VC Creation Time Model)”을 기반으로 한 VC 생성 시간 최적화를 제공할 수 있다. 이에 따라, 대규모 VC의 예약 생성 시 “서비스 불가 시간” 발생 문제를 최소화함과 동시에 가상 클러스터 프로비저닝 시스템에 가상 클러스터를 구성하는 가상 머신들에 필요한 각종 컴퓨팅 자원의 생성 시간의 마지노선 (Maginot Line) 을 설정할 수 있도록 한다.
또한, 타임 엔진 (140) 은 VC 제어 정보 관리부 (130) 의 요청으로 VC 생성 시작 시간 계산 작업을 시작한다. 시간 스케줄링 결과를 바탕으로 VC 제어 정보 관리부 (130) 는 계산된 VC의 구동 시작 시간 및 VC 내 VM 별 구동 시작 시간을 바탕으로 VC 구동 스케줄과 VM 구동 스케줄과 같은 제어 정보를 생성하여 스케줄 테이블로 저장한다.
VC 제어부 (160) 는 VC의 생성/정지/재가동/이주/크기 변화 등의 VC 제어 요청 발생 시, VMMS 접근 기능을 제공하는 VMMS 접근 드라이버 (170) 를 통해 VMMS에 접근하여 가상 클러스터 제어 명령을 전달하는 역할을 수행한다. VC 제어부 (160) 는 VC 제어를 담당하는 “VC 제어 계층”과 VC 내 VM들을 제어하는 “VM 제어 계층”으로 나뉜다. “VC 제어 계층”은 VC 내 각각의 VM 들에 대한 제어 명령을 생성하며, 크게 다섯 종류의 VM 제어부들 (VM 생성 제어부, VM 종료 제어부, VM 정지/재가동 제어부, VM 이주 제어부, VM 크기 변경 제어부) 에게 전달한다. VM 제어부는 후술될 VC 제어기로부터 생성된 VM 제어 명령을 담는 제어 명령 큐 (Control Command Queue) 를 가지고 있으며, 각 VM 제어부들은 제어 명령 큐를 일정한 주기로 확인하여 VM 제어 명령들을 처리한다.
VMMS 접근 드라이버 (170) 는 VC 관리 시스템 (100) 의 구성 요소들, 예를 들어 VC 제어부 (160) 에 의해 요청된 각종 VM 제어를 수행하고, 가상 컴퓨팅 자원 및 상태에 대한 정보를 수신하기 위해 VMMS와 직접 상호 작용한다.
VMMS 관리 드라이버는 “정보 제공” 기능과 “VM 제어” 기능을 수행한다. VMMS 관리 드라이버는 VMMS에 등록되어 관리되는 각종 가상 컴퓨팅 환경을 구성하는 가상 머신들 및 호스트들에 대한 자원 정보 및 상태 정보들을 VMMS로부터 수신하여 VC 관리 시스템 (100) 의 구성 요소들에게 공급한다. 또한, VMMS 관리 드라이버는 VM의 생성/종료/정지/재시작 등 일련의 VM 제어 명령을 VMMS에 접근하여 실행한다. 또한, VMMS 관리 드라이버는 실행된 제어 명령의 결과를 VMMS로부터 수신하여 VC 관리 시스템 (100) 의 구성 요소들에게 반환한다.
예를 들어, VMMS 관리 드라이버는 VMMS에서 제공하는 다양한 외부 접근 가능한 API를 사용하여, 가상 클러스터 배치에 필요한 호스트 및 가상 머신 등의 각종 수집과 VM의 배치 및 종료 등의 다양한 VC 제어 명령들을 수행한다.
VMMS 접근 드라이버 (170) 는 VC 관리 시스템 (100) 내 모든 구성 요소들로부터 호출 가능한 분리된 형태로 존재하며, 후술될 드라이버 관리부 (180) 를 통해서 관리될 수 있다. 즉, VMMS 접근 드라이버 (170) 가 변경된다고 하더라도, VC 관리 시스템 (100) 내 다른 구성 요소들의 변동이 요구되지 않는다. 이에 따라, VC 관리 시스템 (100) 내에는 다양한 VMMS 접근 드라이버 (170) 를 사용할 수 있다. 즉, VC 관리 시스템 (100) 은 하나의 종류의 VMMS를 이용하지 않고, VMMS 접근 드라이버 (170) 에 따라 다양한 종류의 VMMS를 이용하여 VM들을 제어할 수 있다. 이러한 구동 가능한 VMMS 접근 드라이버 (170) 는 드라이버 관리부 (180) 에 인식되어 관리된다.
VMMS 접근 드라이버 (170) 는 적어도 17종의 함수와 3가지 내부 변수를 제공한다. 3가지 내부 변수는 VMMS 접근 드라이버 (170) 의 이름을 지정하는 “name” 변수, 드라이버의 파일 경로를 저장하는 “path”와 드라이버 사용 및 관리를 위해서 활용되는 “handle”로 구성된다. 이 중 “handle” 변수는 드라이버 관리부 (180) 에 의해 드라이버가 인식되었을 경우, 드라이버를 객체화한 뒤, 객체화된 드라이버의 객체 핸들러를 저장하는 공간이다. VMMS 접근 드라이버 (170) 는 getVMInfo, getVMInfoList, getVMInfoList_RawData, getVMInfoCore_List, setVMInfo_by_RawData, getHostInfo, getHostInfoList, getHostInfoList_RawData, getHostInfoCore_List, setHostInfo_by_RawData, deployVM, shutdownVM, pauseVM, unpauseVM, migrateVM, resizeVM를 포함하는 적어도 17종의 함수들을 제공한다. 제공되는 함수들은 크게 두 가지, VM과 호스트의 정보 동기화 모듈들에 의해서 사용되는 함수들 및 VC 제어부 (160) 내 VM 제어 컨트롤러들 각각의 고유 VM 제어 명령을 수행하기 위해 제공되는 함수들로 구성된다.
드라이버 관리부 (180) 는 VMMS 접근 드라이버 (170) 의 등록/변경/삭제 등 일련의 “VMMS 접근 드라이버 (170) 관리 기능”을 제공한다. 또한, 드라이버 관리부 (180) 는 VMMS 접근 드라이버 (170) 를 사용하고자 하는 다양한 프레임워크 내부 요소들에게 사용 권한 부여 및 환수 역할을 수행한다. 드라이버 관리부 (180) 는 VMMS 접근 드라이버 (170) 의 동적 등록/변경/삭제 기능을 제공하기 위해, 파일 시스템 감지 시스템으로부터 VMMS 접근 드라이버 (170) 파일의 추가/변경/삭제와 같은 파일 시스템 변경 이벤트를 수신할 수 있다. 드라이버 관리부 (180) 는 수신한 이벤트에 따라 VMMS 접근 드라이버 (170) 를 자동화된 방식으로 관리한다. VMMS 접근 드라이버 (170) 사용에 대한 권한은 가상 클러스터 관리 시스템 내 모든 구성 요소들에 부여되어 사용될 수 있다. 이에 따라, VC 배치에 사용되는 “배치 계산 기능 모듈”에 의해서도 VMMS 접근 드라이버 (170) 및 VMMS 심지어, 호스트에 직접 접근 가능하기 때문에 종래의 배치 스케줄러들에서는 구현기 어려웠던 기능들을 구현할 수 있다.
정보 관리부 (190) 는 복수의 호스트의 자원 정보, 상태 정보, 복수의 가상 머신의 자원 정보 및 상태 정보를 수집하고, 복수의 호스트의 자원 정보, 상태 정보, 복수의 가상 머신의 자원 정보, 상태 정보 및 제어 정보 중 적어도 하나를 제공하도록 구성된다.
정보 관리부 (190) 는 VC 배치에 필요한 VM 정보 및 호스트 정보를 관리한다. 정보 관리부 (190) 는 배치 엔진 (150) 에 배치에 필요한 가상 머신 및 호스트의 정보를 제공한다. 또한, 정보 관리부 (190) 는 동기화 모듈들을 통해 VC 배치에 필요한 VM 정보 및 호스트 정보를 주기적으로 수신하여 갱신한다. 또한 정보 관리부 (190) 는 외부의 정보 수집 시스템, 예를 들어 시스템 모니터링 시스템으로부터 전달되는 각종 시스템 관련 정보를 저장하고 관리할 수 있다. 이에 따라, 내부 정보와 외부 시스템으로부터 전달되는 정보를 동시에 수신할 수 있다. 외부의 정보 수집 시스템으로부터 전달되는 정보는 내부 정보를 추가/갱신 용도로 활용될 수 있다. 예를 들어, 특정 호스트에 대한 자원 모니터링 정보를 수신하고, 해당 정보가 시스템 내에 이미 존재할 경우, 정보 관리부 (190) 는 해당 정보를 갱신하며, 수신된 모든 시스템 정보는 수신 시각을 기준으로 “모니터링 정보 수신 일자”를 결정한다. 정보 동기화 모듈들은 외부 모니터링 시스템이 존재하지 않거나 VMMS 내 제공되는 정보를 수집해야 하는 환경에서 선택적으로 사용될 수도 있다.
또한, VC 관리 시스템 (100) 에서는 확장성 있는 요소들에 대한 자동화된 관리 메커니즘을 제공한다. 확장성 있는 요소들은 배치 전략, 배치 전략 내에서 사용되는 기능 모듈 및 VMMS 접근 드라이버 (170) 가 있다.
확장성 있는 요소에 대한 자동화된 관리 메커니즘은 “초기 인식” 기능과 “구동 중 관리” 기능으로 구성된다. “초기 인식” 기능은 VC 관리 시스템 (100) 의 초기 구동 시, 각 요소들 마다 지정된 특정 디렉토리를 탐색하여 각 요소들에 대한 관리자 내 저장소 (Pool) 에 자동 등록하는 기능을 의미한다. “구동 중 관리” 기능은 가상 클러스터 관리 시스템 구동 중 각 요소에 대한 추가/삭제/변경 발생 시 이를 자동으로 감지하여 각 요소들에 대한 관리자 내 저장소에 반영하는 기능을 의미한다.
도 2에서의 설명에서와 같이 본 발명의 일 실시예에 따른 VC 관리 시스템 (100) 은 VMMS 접근 드라이버 (170) 를 통해 VMMS와 통합가능하고, VC 제어부 (160) 와 VC 제어 정보 관리부 (130) 를 통해, 가상 클러스터에 대한 배치 전략에 따라 가상 머신들을 관련성 있도록 배치/구동할 수 있다. 이하에서는 VC 관리 시스템 (100) 내 구성 요소들 중 “VC 제어 정보 관리부 (130) ”, “VC 제어부 (160) ”에 대해서 도 3 및 도 4를 참조하여 구체적으로 설명한다.
도 3은 본 발명의 일 실시예에 따른 가상 클러스터 관리 시스템의 가상 클러스터 제어 정보 관리부 (190) 를 설명하기 위한 예시적인 블록도이다. VC 제어 정보 관리부 (130) 는 가상 클러스터의 구동 스케줄과 같은 제어 정보의 생성/변경/수정 등의 일련의 제어 정보 관리 작업을 수행한다.
VC 제어 정보 관리부 (130) 는 가상 클러스터를 배치하고 구동 시간 정보를 생성하기 위해 배치 엔진 (150) 과 타임 엔진 (140) 과 연결된다. 또한, VC 제어 정보 관리부 (130) 는 가상 머신의 상태에 따른 정보를 바탕으로 가상 머신과 가상 클러스터의 구동 스케줄과 같은 제어 정보를 수정하거나 삭제한다.
도 3을 참조하면, VC 제어 정보 관리부 (130) 는 제어 정보 관리부 (131), VC 제어 정보 핸들 프로세서 (132), Job 분류기 (133), VC 스케줄 테이블 (134), VM 스케줄 테이블 (135), 실행 슬롯 리스트 (136) 및 VM 상태 동기화부 (137) 를 포함한다. VC 제어 정보 관리부 (130) 내에서 스케줄링이 필요한 제어 요청은 VC 제어 정보 핸들 프로세서 (132) 에 의해서 처리된다. VC 제어 정보 핸들 프로세서 (132) 는 가상 클러스터의 초기 배치, 가상 클러스터 이주 및 가상 클러스터의 내적 또는 외적 규모 변경 명령을 처리한다.
VC 제어 정보 핸들 프로세서 (132) 는 가상 클러스터 내 가상 머신들의 호스트 배치 정보를 생성하기 위해 배치 엔진 (150) 을 활용하며, 가상 클러스터 내 가상 머신들의 시작 시간 조건에 상응하는 시작 시간 정보를 생성하기 위해 타임 엔진 (140) 을 활용한다. VC 제어 정보 핸들 프로세서 (132) 는 생성 요청된 가상 클러스터가 주기적으로 구동되는 가상 클러스터일 경우, 주기성 정보를 바탕으로 가상 클러스터 구동 시간 정보를 생성하고, 생성된 구동 시간 정보를 바탕으로 주기 내 각 세부 구동 스케줄에 해당하는 가상 클러스터 배치 정보와 가상 클러스터의 시작 시간 정보를 생성 순차적으로 생성한다. 제어 정보는 이러한 가상 클러스터 배치 정보 및 시작 시간 정보를 포함할 수 있다.
가상 클러스터 이주 작업은 구동 중인 가상 클러스터 혹은 가상 클러스터 내 가상 머신들을 대상으로 한다. 따라서 현재 구동 중인 가상 클러스터를 대상으로 이주 배치될 호스트들을 계산하기 위해 배치 엔진 (150) 을 활용한다. 가상 클러스터 규모 변경 작업은 구동 중인 가상 클러스터에 대한 수평적, 수직적 규모 증감을 위한 스케줄링 작업이다.
VC 스케줄 테이블 (134) 은 가상 클러스터 단위의 구동 스케줄 정보를 저장하는 자료 구조로서, 현재 구동 중이거나 예약된 가상 클러스터들의 제어 정보를 저장한다. VM 스케줄 테이블 (135) 은 가상 클러스터 내 가상 머신들의 구동 스케줄 정보를 저장하는 자료 구조로서, 현재 구동 중이거나 예약된 가상 머신들의 정보를 저장한다. 실행 슬롯 리스트 (136) 는 가상 클러스터 내 가상 머신들의 생성/이주/종료 등의 구동 스케줄을 특정 시간 단위로 저장한다.
VM 상태 동기화부 (137) 는 주기적으로 정보 관리부 (190) 로부터 가상 머신들의 상태 정보를 추출하고 추출된 가상 머신들의 상태 정보를 VC 제어 정보 관리부 (130) 에 전달한다. 또한 VM 상태 동기화부 (137) 는 종료된 가상 머신들을 발견 시 해당 가상 머신들의 식별자 정보를 VC 제어 정보 관리부 (130) 에 전달함으로써 VC 제어 정보 관리부 (130) 에 의해 종료된 가상 머신들 및 종료된 가상 클러스터들을 스케줄 또는 제어 정보에 반영할 수 있도록 한다.
제어 정보 관리부 (131) 는 가상 클러스터 및 가상 클러스터 내 가상 머신들의 구동 스케줄의 생성/수정/삭제 등 일련의 제어 정보에 대한 관리 작업을 총괄한다. 제어 정보 관리부 (131) 는 각 프로세서에게 가상 클러스터 및 가상 머신에 대한 제어 정보 생성 기능을 제공하며, 프로세서들에 의해서 완성된 가상 클러스터에 대한 구동 및 제어 정보를 VC 스케줄 테이블 (134) 과 VM 스케줄 테이블 (135) 및 실행 슬롯 리스트 (136) 에 반영하는 역할을 수행한다.
제어 정보 관리부 (131) 는 실행 슬롯 리스트 (136) 를 주기적으로 확인하여 각 확인 시점에서 가상 머신들을 생성, 이주 또는 종료 명령을 생성하여 VC 운영 관리부 (120) 에 전송한다. 제어 정보 관리부 (131) 는 실행 슬롯 검사 시점을 기준으로 검사 시점 및 검사 시점 이전에 처리되어야 할 가상 머신 제어 명령을 모두 처리한다. 예를 들어, 검사 주기는 기본적으로 1초로 설정될 수 있다. 또한 제어 정보 관리부 (131) 는 가상 머신의 상태를 동기화하는 VM 상태 동기화부 (137) 로부터 전송되는 가상 머신들의 상태 정보를 수신하여 VM 스케줄 테이블 (135) 내 가상 머신의 상태 정보에 반영한다. VM 상태 동기화부 (137) 로부터 통보된 구동 종료 가상 머신들에 대한 정보를 바탕으로 가상 머신에 대한 구동 스케줄 또는 제어 정보를 삭제함과 동시에 특정 가상 클러스터 내 모든 가상 머신 종료 감지 시 자동으로 가상 클러스터 구동 스케줄 또는 제어 정보를 삭제한다.
도 3에서 설명된 바와 같이, VC 제어 정보 관리부 (130) 는, 스케줄링이 요구되는 가상 클러스터에 대한 제어 요청에 따라 제어 정보를 생성하고 이를 저장하고 동기화할 수 있으며, 이를 다양한 구성 요소들에 제공할 수 있다. 이에 따라, 가상 클러스터의 유동적이고 관계를 고려한 배치가 수행될 수 있다.
도 4는 본 발명의 일 실시예에 따른 가상 클러스터 관리 시스템의 VC 제어부 (160) 를 설명하기 위한 예시적인 블록도이다. VC 제어부 (160) 는 가상 클러스터의 배치/이주/확장/소멸/정지/재시작 등과 같은 가상 클러스터의 구동을 제어한다. 가상 클러스터의 구동 제어는 가상 클러스터 수준의 제어와 가상 머신 수준의 제어로 구분된다. 도 4를 참조하면, VC 제어부 (160) 는 가상 클러스터 수준의 제어를 수행하기 위한 VC 제어 관리기 (161) 및 가상 머신 수준의 제어를 수행하기 위한 VM 생성 제어부 (162), VM 종료 제어부 (163), VM PUP 제어부 (164), VM 이주 제어부 (165) 및 VM 변경 제어부 (166) 를 포함한다.
VC 제어 관리기 (161) 는 가상 클러스터 단위의 제어 요청이 전달되었을 경우, VC 제어 정보 관리부 (130) 를 통해 현재 구동 중인 가상 머신들에 대한 각종 정보들 (종류, 상태 등) 을 확보하고, 이를 바탕으로 가상 머신 단위의 제어 명령을 생성한다. 다음으로, VC 제어 관리기 (161) 는 제어 명령 각각을 가상 머신 단위의 제어 명령을 수행하기 위한 VM 기능 제어부에 전달한다.
예를 들어, 가상 클러스터 종료 명령의 경우, VC 제어 관리기 (161) 는 VC 운영 관리부 (120) 로부터 전달된 가상 클러스터 종료 명령을 처리하기 위해 종료 요청된 가상 클러스터 내 가상 머신들 중 현재 구동 중인 가상 머신들의 목록을 VC 제어 정보 관리부 (130) 로부터 확보한다. 다음으로, VC 제어 관리기 (161) 는 확보된 가상 머신 목록을 바탕으로 가상 머신 별로 종료 명령을 생성한 다음, VM 종료 제어부 (163) 에 전달해 가상 머신 별 종료가 처리되도록 한다.
특히, VC 제어부 (160) 는 VC 제어 정보 관리부 (130) 등에 의해 시작된 가상 머신 단위의 제어 명령을 특별한 변환 과정 없이 VM 제어 계층에 있는 각종 컨트롤러들에게 직접 전달한다. 예를 들어, 데드라인 기반의 가상 클러스터 생성의 경우, 가상 클러스터 내 가상 머신 들이 모두 동일한 시점에 생성 작업을 시작하지 않을 수 있다. 대규모의 가상 클러스터를 배치하기 위한 경우, 특정 호스트에서는 1대 이상의 가상 머신들이 생성되므로 생성 시작 시점이 가상 클러스터 내 가상 머신 별로 상이할 수 있게 된다. 이러한 경우, 가상 클러스터에 대한 생성 명령이지만, 결국 시작 시점 기준으로는 개별적인 가상 머신들이 서로 다소 상이한 시점을 가지게 된다. 이러한 특성을 반영하기 위해 가상 머신 단위의 생성 명령이 VC 제어 관리기 (161) 에 전달되게 되고, VC 제어 관리기 (161) 는 가상 머신 별로 요청된 생성 시작 명령을 가상 머신 단위의 제어를 위해 VM 생성 제어부 (162) 에게 전달한다.
각 가상 머신 제어부는 VMMS 접근 드라이버 (170) 의 특정 기능과 연결되어 있어 VMMS 접근 드라이버 (170) 를 통해 요청된 가상 머신 제어 작업을 수행한다. VM 생성 제어부 (162) 는 가상 머신의 생성 명령을 수행하며, VMMS 접근 드라이버 (170) 의 VM 배치 (VM Deploy) 기능을 이용한다.
VM 종료 제어부 (163) 는 가상 머신의 종료 명령을 수행하며, VMMS 접근 드라이버 (170) 의 VM 종료 (VM Shutdown) 기능을 이용한다. VM PUP 제어부 (164) 는 가상 머신의 정지 (Pause) 명령 및 재시작 (Unpause) 명령을 수행하며, VMMS 접근 드라이버 (170) 의 VM 정지 (VM Pause) 기능 및 VM 재시작 (Unpause) 기능을 이용한다. VM 이주 제어부 (165) 는 가상 머신의 이주 (Migration) 명령을 수행하며, VMMS 접근 드라이버 (170) 의 VM 이주 (VM Migration) 기능을 이용한다. VM 사이즈 변경 제어부 (166) 는 가상 머신의 자원 증감 명령을 수행하며, VMMS 접근 드라이버 (170) 의 VM 사이즈 변경 (VM Resize) 기능을 이용한다.
모든 제어부들은 컨트롤러 (Controller) 클래스를 상속하며, 컨트롤러 클래스는 프레임워크에서 각종 쓰레드들의 원형이 되는 ThreadModule 클래스를 상속할 수 있다. 이에 따라 VC 제어부 (160) 내 VM 제어부들은 독립적인 쓰레드 (Thread) 로 구동되며, 각기 VM 제어 명령을 수신하기 위한 명령 큐 (Command Queue) 를 바탕으로 VC 제어 관리기 (161) 로부터 가상 머신 단위의 제어 명령을 수신한다.
VM 제어부의 독립 쓰레드화는 특정 가상 머신 제어 명령의 과대 적체로 인한 다른 가상 머신 제어 명령 실행 지연 문제를 완화시킬 수 있다. 가상 클러스터의 생성은 일반적인 단일 가상 머신 생성과는 다르게 가상 클러스터의 규모적 특성으로 인해 대규모화될 수 있다. 이러한 대규모 가상 클러스터 생성 시 개발 가상 머신 생성 명령이 과다 적체됨으로써, 구동 중인 가상 클러스터들에 대한 종료 명령이 지연될 경우, 가상 클러스터 사용 종료로 인한 자원 환원 시점이 지연되는 문제를 파생시키게 된다.
본 발명의 일 실시예에 따른 VC 관리 시스템 (100) 에서는 이러한 특정 가상 머신 제어 명령의 과대 적체로 인한 다른 가상 머신들에 대한 제어 명령 실행 지연 문제를 완화시키기 위해, VM 제어를 위한 제어부들을 제어 명령의 종류 별로 독립 쓰레드로 구성하여 구동한다. 또한 VC 관리 시스템 (100) 에서는 가상 머신 제어에 필요한 특정 명령, 예를 들어 가상 머신 일시 정지 및 재구동을 사용하지 않고자 할 경우, 해당 명령에 대한 제어부를 구동하지 않음으로써, 쓰레드 유지를 위한 비용을 감소시킬 수 있다.
도 5는 본 발명의 일 실시예에 따른 가상 클러스터 관리 시스템에서 가상 클러스터의 제어 요청이 수신되었을 때의 처리 흐름을 설명하기 위한 예시적인 블록도이다.
VC 관리 시스템 (100) 에서는 다양한 VC 제어 요청을 지원한다. 제어 요청은 예를 들어, VC 배치 (시작) 요청, VC 종료 요청, VC 중단 및 재 시작 요청, VC 이주 요청 및 VC 내적/외적 규모 변화 요청 (규모 증가 또는 규모 감소 요청) 을 포함한다.
상기 제어 요청들은 “배치 계산 기반 VC 제어 요청 (VC 스케줄링이 필요한 제어 요청) ”과 “비 배치 계산 기반 VC 제어 요청 (VC 스케줄링이 필요하지 않은 제어 요청) ”으로 구분된다. “배치 계산 기반 VC 제어 요청”에는 “VC 배치 요청”, “VC 이주 요청”, “내적 VC 규모 증가 (VC Scale-Up) ”와 “외적 VC 규모 증가 (VC Scale-Out) ”가 있다. 이러한 “배치 계산 기반 VC 제어 요청”은 배치 엔진 (150) 에 의해 획득할 수 있는, 가상 클러스터가 구동될 (혹은 이전, 증가될) 호스트들의 결정이 요구되는 제어 요청을 의미한다.
“비 배치 계산 기반 VC 제어 요청”은 VC 종료, 내적 혹은 외적 VC 규모 감소로 가상 컴퓨팅 시설에서 사용된 자원을 반환하는 관리 작업을 의미한다. “비 배치 계산 기반 VC 제어 요청”에는 “VC 종료 요청”, “VC 사용 취소 요청”, “VC 중단 및 재시작 요청”, “내적 혹은 외적 VC 규모 축소”가 포함된다.
도 2에서 전술한 바와 같이, VC 관리 시스템 (100) 에서는 VC 스케줄링이 필요한 배치 계산 기반 VC 제어 요청과 VC 스케줄링이 필요하지 않은 비 배치 계산 기반 VC 제어 요청을 구분하여서 처리한다.
도 5는 VC 관리 시스템 (100) 내 주요 요소들이 배치 계산 기반 VC 제어 요청과 비 배치 계산 기반 VC 제어 요청을 처리하는 프로세스를 나타낸다.
“배치 계산 기반 VC 제어 요청”에 대해 VC 운영 관리부 (120) 는 VC 제어 요청 관리부 (110) 로부터 전달 받은 제어 요청을 VC 제어 정보 관리부 (130) 에 전달한다. 다음으로 VC 제어 정보 관리부 (130) 는 배치 엔진 (150) 을 통해 요청 받은 VC가 구동될 호스트들을 결정하며, VC 타임 엔진 (140) 을 통해 요청 받은 VC가 시작될 (그리고 종료될) 시간을 결정한다. 배치 요청된 VC의 호스트 및 구동 시간을 계산 한 후, VC 제어 정보 관리부 (130) 는 VC 내 각 VM에 대한 제어 정보를 생성하여 저장한 다음, VM 스케줄 확인 시점마다 생성해야 할 (혹은 종료해야 할) VM들이 있는지 확인한다. 만약, 생성 또는 종료해야 할 VM들이 존재할 경우, VC 제어 정보 관리부 (130) 는 VC 운영 관리부 (120) 에 VM 생성 (또는 종료) 요청을 전달하고, VC 운영 관리부 (120) 는 이를 VC 제어부 (160) 에 전달한다. VC 제어부 (160) 는 VMMS 접근 드라이버 (170) 를 통해 VM 생성 (또는 종료) 명령을 수행하여, 호스트에 가상 머신을 생성 (또는 종료) 한다.
“비 배치 계산 기반 VC 제어 요청”의 경우, VC 운영 관리부 (120) 는 VC 제어 요청 관리부 (110) 로부터 전달받은 VC 제어 요청의 관리 명령 종류를 확인한 다음, VC 제어부 (160) 에 “VC 제어 요청”을 생성하여 전달한다. VC 제어부 (160) 는 VMMS 접근 드라이버 (170) 를 통해 가상 머신들에 대해 요청된 명령을 수행한다.
VC 관리 시스템 (100) 에서는 상기 VC 제어 요청들을 그 종류에 맞추어 분류하고 이를 적절한 관리자에 전달하는 VC 운영 관리부 (120) 를 통해 일반적인 배치를 수반하는 VC 제어 요청 외에도 다양한 VC 스케줄링 요청을 처리하며, VC 배치에 영향을 미치는 각종 정보들을 체계적으로 관리한다.
도 6은 본 발명의 다른 실시예에 따른 가상 클러스터 관리 시스템의 동작을 설명하기 위한 개략도를 예시적으로 도시한다. 도 6에서는 VC 관리 시스템 (200) 이 VMMS를 통하지 않고, 직접 호스트들 (Hosts) 과 접속된다. 도 1에서 전술한 바와 같이, VC 관리 시스템 (200) 은 VMMS가 존재 하지 않더라도, VC 제어 요청을 수신하고, 이에 따라 VC를 배치하고 구동 시작 시간을 결정하고 결정된 배치와 구동 시작 시간에 따라 호스트들 (Hosts) 상의 가상 머신들을 제어할 수 있다.
이를 구현하기 위해, 도 2 내지 도 5에서 설명된 구성 요소들 중에서 VMMS 접근 드라이버가 변경된다. 전술한 바와 같이 VMMS 접근 드라이버는 VMMS에 국한된 제어 명령을 구현하도록 제한하지 않으므로, 호스트들 (Hosts) 에 대한 직접 제어를 구현/적용할 수 있다. 즉, VMMS 접근 드라이버에서 제공되는 함수들은 호스트들 (Hosts) 을 직접 제어하기 위한 명령들로 사용될 수 있다. VMMS 접근 드라이버의 구현 방향을 가상화된 호스트들 (Hosts) 로의 직접 접근 방식을 취하여 직접 제어 방식을 구현할 경우, OpenNebula, OpenStack, Eucalyptus 등과 같은 가상 머신 관리 시스템을 사용하지 않는 방향으로 구현할 수 있다. 이로써, 호스트 수준에서 동작하는 VC 관리 시스템 (200) 이 제공될 수 있다.
도 7은 본 발명의 일 실시예에 따른 가상 클러스터 관리 시스템의 제어 방법을 설명하기 위한 개략적인 흐름도이다. 본 발명의 일 실시예에 따른 가상 클러스터 관리 시스템의 제어 방법에서는 먼저 복수의 가상 머신을 포함하는 가상 클러스터 시스템에 대한 제어 요청을 수신한다 (S710). 다음으로, 제어 요청에 따라 복수의 가상 클러스터 시스템의 제어 정보가 생성되거나 정정된다 (S720). 다음으로, 복수의 호스트를 관리하는 외부의 가상 머신 관리 시스템을 통해 또는 복수의 호스트에 직접 접속하여 복수의 가상 머신이 제어 되며 이에 따라, 제어 정보에 기초하여 복수의 호스트에서의 복수의 가상 머신의 동작을 제어하기 위한 명령이 출력된다 (S730). 출력된 명령들은 전술한 VMMS나 호스트로 전달되어 가상 머신들을 제어할 수 있다.
가상 클러스터 관리 시스템의 제어 방법은 제어 요청을 스케줄링이 요구되는 제어 요청 또는 스케줄링이 요구되지 않는 제어 요청으로 분류될 수 있다. 제어 요청이 스케줄링 요구되지 않는 제어 요청으로 결정되는 경우, 이 제어 요청에 따라 복수의 가상 머신의 동작을 제어하기 위한 명령을 출력할 수 있다. 본 단계는 스케줄이나 배치와 연관된 제어 정보와는 독립적으로 수행된다.
가상 클러스터 시스템에 대한 제어 요청에 따라 가상 클러스터 시스템의 동작 시간이 결정될 수 있으며, 결정된 동작 시간에 따라 제어 정보가 갱신될 수 있다. 또한, 가상 클러스터 시스템에 대한 제어 요청에 따라 가상 클러스터 시스템의 배치가 결정될 수 있으며 결정된 배치에 따라 제어 정보가 갱신될 수 있다. 도 7에서의 모든 단계들은 전술된 도 2 내지 6에서의 구성 요소들 중 적어도 하나에 의해 수행될 수 있다. 본 발명의 일 실시예에 따른 가상 클러스터 시스템의 제어 방법에 다르면, 가상 클러스터 내의 가상 머신들을 서브 그룹 또는 서브 그룹 단위 내에서 가상 머신의 단위로 배치할 수 있고, 재사용 가능하고 환경적 변화 요인에 유연하게 가상 클러스터를 관리할 수 있다.
도 8은 본 발명의 일 실시예에 따른 가상 클러스터 배치를 위한 장치의 블록도를 예시적으로 도시한다. 여기서, 가상 클러스터 (Virtual Cluster; 이하 VC) 배치 장치(300)는 가상 클러스터 스케줄링 프레임워크 (3000) 내의 일부일 수 있다. 가상 클러스터 스케줄링 프레임워크 (3000) 는 VC에 대한 제어 요청에 응답하여, 제어 요청을 스케줄링하고, 결정된 스케줄에 따라 VC 내의 가상 머신들에 대한 생성, 정지, 재개, 삭제 등을 수행하기 위한 VC 프레임워크이다. VC 프레임워크는 가상 머신들이 배치되는 호스트들을 외부의 가상 머신 관리 시스템을 통해 또는 직접 제어하도록 구성된다.
도 8을 참조하면, 가상 클러스터 스케줄링 프레임워크 (3000) 는 적어도 본 발명의 일 실시예에 따른 가상 클러스터 배치 장치 (300), VC 스케줄 관리부 (400) 및 정보 관리부 (300) 를 포함한다.
가상 클러스터 배치 장치 (300) 는 VC 내의 복수의 가상 머신들에 대한 제어 요청에 따라 복수의 가상 머신을 복수의 호스트에 배치하기 위한 장치이다. 가상 클러스터 배치 장치 (300) 는 독립된 장치로 구현될 수도 있으나, 사용자의 VC 생성 요청이 발생한 경우 VC 내의 가상 머신들에 대한 배치가 완료되도록 가상 머신들이 배치될 호스트들을 결정하기 위한, 컴퓨팅 디바이스에서 수행될 수 있는 모듈일 수 있다.
VC 스케줄 관리부 (400) 는 VC의 구동 스케줄의 생성, 변경 및 수정 등의 스케줄 관리 작업을 수행한다. VC 스케줄 관리부 (400) 는 가상 클러스터 배치 장치 (300) 와 연결되어, VC 제어 요청, 예컨대 VC 내의 가상 머신들의 생성 요청을 가상 클러스터 배치 장치 (300) 에 전달한다.
정보 관리부 (300) 는 가상 머신 및 호스트에 대한 정보를 관리한다. 정보 관리부 (300) 는 가상 클러스터 스케줄링 프레임워크 (3000) 내에서 배치에 필요한 가상 머신 및 호스트의 상세 정보를 가상 클러스터 배치 장치 (300) 에 제공한다. 또한, 정보 관리부 (300) 는 동기화 모듈들을 통해, 가상 머신 및 호스트에 대한 상세 정보를 주기적으로 수신하여 갱신할 수 있다.
가상 클러스터 배치 장치 (300) 는 요청 수신부 (322), VC 배치 엔진 코어 (320), 인프라 자원 상태 계산부 (310), 자원 정보 제공부 (324), 전략 실행부 (330), VC 배치 전략 관리부 (340) 및 복수의 계산 모듈 (350) 을 포함한다.
요청 수신부 (322) 는 가상 클러스터 배치 장치 (300) 외부의 각종 컴포넌트들, 예를 들어, VC 스케줄 관리부 (400) 로부터 VC 배치 요청을 수신하고, VC 배치 과정 중 발생한 다양한 정보를 다시 VC 스케줄 관리부 (400) 에 제공하는 역할을 수행한다. 정보는 예를 들어 VC 배치 결과와 배치 결과의 성공 유무 등을 포함할 수 있다. 요청 수신부 (322) 에 의해 수신된 VC 배치 요청은 VC 배치 엔진 코어 (320) 에 전달되어 VC 배치를 개시시킨다. VC 배치 작업이 완료될 경우, 배치 결과를 VC 스케줄 관리부 (400) 에 반환한다.
VC 배치 엔진 코어 (320) 는 VC 내의 가상 머신들의 배치를 총괄하는 컴포넌트이다. VC 배치 엔진 코어 (320) 는 요청 수신부 (322), 전략 실행부 (330), 인프라 자원 상태 계산부 (310) 등과 같은 주변 컴포넌트들로부터 배치에 필요한 각종 정보들, 예를 들어, VC 배치 전략, 호스트의 정보 및 가상 머신의 정보 등을 수집한다. VC 배치 전략이란 VC 내의 가상 머신들을 배치하기 위한 방식을 의미한다. 호스트의 정보란 물리적인 호스트의 자원 정보, 예를 들어, CPU 코어의 수, 메모리 용량 등을 포함한다. 가상 머신의 정보란 가상 머신에 할당된 CPU 코어의 수, 메모리 용량, 가상 머신에 설치되는 OS (operating system), 설치되는 어플리케이션 등을 포함한다. VC 배치 엔진 코어 (320) 는 수집된 정보를 바탕으로 VC 사용자로부터 요청 받은 VC 배치를 전략 실행부 (330) 를 통하여 수행한다.
전략 실행부 (330) 는 VC 배치 엔진 코어 (320) 로부터 요청 받은 VC의 배치를 VC 배치 전략을 이용하여 VC 배치 조건에 따라 배치 작업을 수행한다. 또한 VC 배치 과정에서 발생하는 각종 에러 상황, 예컨대 VC 배치 스케줄링 불가 에러를 VC 배치 엔진 코어 (320) 에 제공한다.
VC 배치 전략 관리부 (340) 는 VC 배치 엔진 코어 (320) 에 VC 배치 전략을 공급한다. VC 배치 전략 관리부 (340) 는 VC 배치 전략의 생명주기 (LifeCycle) 를 관리한다. VC 배치 전략 관리부 (340) 는 VC 배치 전략의 동적 추가, 수정 또는 삭제 등을 자동으로 인식하여 사용자에 발생된 VC 배치 전략의 변화를 감지하고, VC 배치 전략에 변화 발생 시, 자동화된 방법으로 VC 배치 전략을 동적으로 추가, 수정 또는 삭제한다.
자원 정보 제공부 (324) 는 가상 클러스터 배치 장치 (300) 에 의해 진행되는 VC 배치를 위해 요구되는 각종 정보, 예를 들어, VC 내의 가상 머신들에 대한 자원 및 상태 정보, 호스트들의 자원 및 상태 정보 및 호스트들이 배치된 랙 정보 등을 VC 배치 엔진 코어 (320) 에 제공하며, 또한, 정보 관리부 (300) 에 제공하여, 정보 관리부 (300) 가 갱신된 정보를 가질 수 있게 한다.
인프라 자원 상태 계산부 (310) 는 VC 배치에 필요한 각종 정보들의 사전 계산 작업을 수행한다. 인프라 자원 상태 계산부 (310) 는 예를 들어 등록된 VC 및 가상 머신 스케줄들을 기초로, 특정 시점에서의 호스트 자원 상태를 계산할 수 있다. 특정 시점에서의 호스트 자원 상태는 가상 클러스터 스케줄링 프레임워크 (3000) 가 다양한 시간 조건을 기반으로 구동될 수 있도록 한다. 가상 클러스터 스케줄링 프레임워크 (3000) 는 예를 들어, VC 구동 시간 스케줄링 엔진(미도시)을 포함하고, 구동 시간 스케줄링 엔진에 특정 시점에서의 호스트 자원 상태를 제공할 수도 있다. 이에 따라, VC가 구동 시점에서 호스트 자원 부족으로 인한 구동 불가와 같은 문제를 사전에 예방할 수 있다.
복수의 계산 모듈 (350) 은 VC 배치 전략에 따라 배치 작업을 수행하기 위한 모듈들이다. 복수의 계산 모듈 (350) 은 예를 들어, VC 정보 핸들링 모듈, VC 서브 그룹화 모듈, VC 관계 속성 분석 모듈, VC 서브 그룹 정보 핸들링 모듈, VC 서브 그룹 파티셔닝 모듈, 호스트 정렬 모듈, 호스트 필터링 모듈, 호스트 추출 모듈, 호스트 선택 모듈, 호스트 상태 갱신 모듈, VC 배치 맵 갱신 모듈, VC 테이블 생성 모듈 및 사용자-정의 기능 모듈 등을 포함한다. 다양한 VC 배치 전략에 따라, 복수의 계산 모듈 (350) 들은 다양한 방식으로 조합될 수 있으며, 하나의 실시예에 의해 제한되지 않는다. 계산 모듈 (350) 들의 조합을 통해 복수의 가상 머신 중 하나를 복수의 호스트에 배치할 수 있다.
도 8에서는 편의를 위해 가상 클러스터 배치 장치 (300) 가 요청 수신부 (322), VC 배치 엔진 코어 (320), 인프라 자원 상태 계산부 (310), 자원 정보 제공부 (324), 전략 실행부 (330), VC 배치 전략 관리부 (340) 및 복수의 계산 모듈 (350) 를 포함하는 것으로 도시되었으나, 각각의 구성요소들은 구현 방법 또는 본 발명의 실시예에 따라 하나의 통합적인 형태 또는 분리적 형태로 설계 구현되는 것도 가능하다. 즉, 본 명세서에 기재된 모든 구성요소들 또는 모듈들은 범용 컴퓨터 또는 서버에 배치되는 저장부에 저장되고 이와 연결된 프로세서에 의해 동작될 수 있다.
도 9는 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법을 설명하기 위한 개략적인 흐름도이다. 설명의 편의를 위해 도 8에서의 가상 클러스터 배치 장치 (300) 의 구성요소들을 참조하여 설명한다.
가상 클러스터 배치 방법은 가상 클러스터 배치 장치 (300) 의 요청 수신부 (322) 가 VC 스케줄 관리부 (400) 로부터 VC 배치 요청을 수신하면서 개시된다. 먼저, VC 배치 엔진 코어 (320) 는 VC 배치 요청에 응답하여, 복수의 가상 머신을 포함하는 VC 시스템에 대한 시스템 정보를 자원 정보 제공부 (324) 로부터 수신한다 (S910). VC 시스템에 대한 시스템 정보는 가상 머신의 리스트, 호스트의 리스트, 호스트들이 배치되는 랙의 리스트등을 포함한다. 가상 머신의 리스트 및 호스트의 리스트는 내부 가상 컴퓨팅 용과 공용 가상 컴퓨팅 용 가상 머신의 리스트 및 호스트의 리스트로 구분될 수 있다. 시스템 정보 수신 단계는 VC 배치를 위한 데이터 저장 공간 확보 및 각종 변수의 초기화 과정을 포함하는 초기화 단계를 수반할 수도 있다.
한편, VC 배치 엔진 코어 (320) 는 VC 배치 요청이 VC 이주에 대한 요청인 경우, 자원 정보 제공부 (324) 로부터 수신된 호스트 리스트에서 기 선택된 호스트들을 제거하는 단계를 추가적으로 포함할 수 있다.
또한, VC 배치 엔진 코어 (320) 는 인프라 자원 상태 계산부 (110) 에 VC가 구동될 시점에서의 호스트 자원 상태의 계산을 요청하고, 이를 수신할 수 있다. 이 경우, VC가 구동될 시점에서 다른 예약된 VC들로 인해 자원이 부족한 문제를 사전에 예방할 수 있다.
다음으로, VC 배치 엔진 코어 (320) 는 VC 배치 전략에 따라 VC 내의 복수의 가상 머신들을 배치한다. VC 배치 엔진 코어 (320) 는 디폴트 VC 배치 전략을 사용할 수 있으며, VC 전략 관리부(140)로부터 VC 배치 전략을 수신하고, 수신된 VC 배치 전략을 사용할 수도 있다.
이하에서, VC 배치에 따른 VC 내의 가상 머신들을 배치하는 동작들은 독립적인 계산 모듈 (350) 에 의해 수행되도록 구성된다. 예를 들어 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계는 적어도 다음의 계산 모듈 (350) (들) 을 통해 복수의 가상 머신의 배치와 연관된 계산을 수행한다. 여기서, 계산 모듈 (350) 각각은, 서브 그룹에 대한 정보를 핸들링하는 단계, 서브 그룹을 파티셔닝하는 단계, 호스트를 정렬하는 단계, 호스트를 필터링하는 단계, 호스트를 추출하는 단계 또는 사용자 정의된 기능을 수행하는 단계 중 적어도 하나의 단계를 수행하도록 구성될 수 있다. 복수의 계산 모듈 (350) 들은 다양하게 조합될 수 있으며, VC 배치 전략에 따라 사용되는 계산 모듈 (350) 들은 상이할 수 있다.
또한, 이하에서는 다양한 VC 배치 전략 중 예시적인 동적 VC 분할 배치 전략으로 VC 내의 가상 머신들을 배치하는 방법을 설명한다. 그러나, VC 배치 전략은 이에 제한되지 않고, 정적 VC 분할 기반 배치 전략일 수도 있다.
동적 VC 분할 배치 전략에 따라, 복수의 가상 머신은 서브 그룹으로 분류된다 (S920). 다음으로, 서브 그룹 사이의 관계 속성 또는 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성이 결정된다 (S930). 다음으로, 서브 그룹 사이의 관계 속성 또는 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성에 따라, 복수의 가상 머신 중 하나가 복수의 호스트 중 하나에 배치된다 (S940).
다음으로, 모든 가상 머신에 대한 배치가 완료되었는지 판정되고 (S950), 모든 가상 머신이 배치되면, VC 배치는 종료된다. 모든 가상 머신이 배치되지 않은 경우, 단계 S940이 반복된다. 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계는 예를 들어, 복수의 가상 머신의 개수만큼 반복될 수 있고, 임의의 규모 예를 들어 2 또는 3개씩의 가상 머신이 복수의 호스트에 동시에 배치될 수 있다.
배치 전략 실행부(130)는 내부 가상 컴퓨팅 자원 용 VC에 대한 배치를 마친 후, 배치 결과를 VC 배치 코어에 반환할 수 있다. VC 배치 엔진 코어(320)는 배치 결과가 성공적인 경우, 최종적으로 VC 배치 맵을 생성하여 VC 스케줄 관리부 (400) 에 테이블 형태로 전달한다. 그 후, 요청 받은 VC 내의 가상 머신 각각에 대해 구동될 호스트의 식별자가 부여된다. VC 배치 맵이란 VC 내에서 VM 들 및 VM 들이 배치된 호스트들을 나타낸다. VC 배치 맵은 VC 내에서의 각종 관계 특성을 고려하기 위해 제공된다. VM 배치와는 다르게 VC 내에서는 VM의 수가 많을수록 일회적인 배치 계산만으로 배치를 수행하기 어려울 수 있다. 이에 따라, VC 내의 VM들이 배치된 관계를 고려하여 다른 VM들의 배치가 결정될 수 있다. VC 배치 맵은 VM이 호스트에 배치될 때마다 지속적으로 갱신될 수 있다.
이하에서는, 단계 920 내지 950을 도 10 내지 도 12를 참조하여 구체적으로 설명한다. 도 10은 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법을 설명하기 위한 개략도이다. 도 11a 및 11b는 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법의 구체적인 적용예를 설명하기 위한 개략도들이다. 도 12는 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법의 구체적인 적용예에서 복수의 가상 머신을 포함하는 VC가 복수의 호스트에 배치되는 예시를 설명하기 위한 개념도이다.
도 10을 참조하면, VC 내의 가상 머신들이 구동될 호스트를 결정하기 위한 복수의 동작들이 도시된다. 각 동작들은 도 10에서와 같이 독립적인 모듈로 존재할 수도 있으나, 일부 또는 전부는 통합될 수도 있다. 복수의 모듈들은 전처리 흐름, 주 처리 흐름 및 후 처리 흐름으로 구성될 수 있다.
먼저, 전처리 흐름은 VC 정보 핸들링 모듈 (512), VC 서브 그룹화 모듈 (514), VC 관계 속성 분석 모듈 (516) 및 사용자-정의 기능 모듈 (518) 을 포함한다. 전처리 단계의 N1에서는 VC에 대한 정보가 제공되고, VC에 대한 정보가 처리되고, VC가 서브 그룹화된다.
VC 정보 핸들링 모듈 (512) 은 VC 내 가상 머신들에 대한 정보의 수정 또는 변경을 위한 기능 모듈이며, VC의 서브 그룹화 모듈은 가상 머신들을 특정한 기준에 분류한다. 서브 그룹은 1개 또는 그 이상으로 생성될 수 있다. 여기서, 특정한 기준은 제한되지 않으며, 가상 머신들의 서브 그룹화는 사용자의 선택에 의해 수행될 수도 있으며, 분류 히스토리 또는 기 저장된 분류 정보에 기초하여 자동적으로 수행될 수도 있다. 서브 그룹 내 또는 서브 그룹 간 관계 속성은 VC 내 가상 머신들의 특성을 추출하고 분석하여 결정될 수 있다. 예를 들어, 서브 그룹은 가상 머신의 자원요구사항에 기초하여 분류될 수 있다. 나아가, 미리 결정된 기준에 따라 서브 그룹의 분류를 검증하는 단계가 더 포함될 수 있다.
VC 관계 속성 분석 모듈 (516) 에서는 VC 내의 서브 그룹 간 또는 서브 그룹 내 가상 머신들 간의 관계 속성이 결정된다. 관계 속성이란, 호스트/랙/서비스지역 수준으로 가상 머신들 간의 통합 혹은 분산 배치가 요구되는지와 관련한다. 관계 속성은, VC 내의 가상 머신들의 배치 시 고려해야 할 사항들에 따라, 복수의 가상 머신을 같은 호스트로 배치하는 통합 배치 및 복수의 가상 머신 각각을 서로 다른 호스트로 배치하는 분산 배치로 나뉜다. 결정된 관계 속성은 주 처리 흐름에서 사용된다. 관계 속성은 사용자의 선택에 의해 결정될 수도 있으며, 분류 히스토리 또는 기 저장된 분류 정보에 기초하여 자동적으로 결정될 수도 있다. 예를 들어, 서브 그룹 내 또는 서브 그룹 간 관계 속성은 VC 내 가상 머신들의 특성이 추출되고 분석되어 결정될 수 있다. 사용자-정의 기능 모듈 (518) 은 그 외 서브 그룹과 관련한 기능을 수행하도록 구성될 수 있다. 나아가, 관계 속성은 미리 결정된 기준에 따라 검증될 수 있다.
도 11a를 참조하면, VC MyHadoopVC은 5 개의 가상 머신들 (640) 을 포함한다. 가상 머신들 (640) 중 NameNode_JobTracker들 (641, 642) 은 서브 그룹 Master로 분류되고, DataNode_TaskTracker들 (643, 644, 645) 은 서브 그룹 Slave01로 분류된다. 또한, 서브 그룹 Master 내에서의 NameNode_JobTracker들 (641, 642) 의 관계 속성은 분산 배치고, 서브 그룹 Slave01 내에서의 DataNode_TaskTracker들 (643, 644, 645) 의 관계 속성은 통합 배치 이다. 서브 그룹 Master와 서브 그룹 Slave01 사이의 관계 속성은 분산 배치다.
이러한 관계 속성은 예를 들어, XML을 이용하여 식별되고 저장될 수 있다. 도 11b를 참조하면, VC의 id는 MyHadoop이며, VC 내의 서브 그룹의 id는 각각 Master, Slave01이다. 서브 그룹들은 분산 배치로 그루핑되어 있다. 도 11b에서는 예시적으로 분산 배치는 Availability로 표시된다. 서브 그룹 Master 내에서의 관계 속성은 분산 배치며, 서브 그룹 Master 내의 가상 머신 NameNode_JobTracker01, NameNode_JobTracker02은 이에 따라 서로 상이한 호스트에 마운트되도록 하는 관계 속성을 갖는다. 서브 그룹 Slave01 내에서의 관계 속성은 통합 배치이며, 예시적으로 Affinity_BestEffort로 표시된다. 서브 그룹 Slave01 내의 가상 머신 DataNode_TaskTracker01, DataNode_TaskTracker02, DataNode_TaskTracker03은 최대한 동일한 호스트에 마운트되도록 하는 관계 속성을 갖는다.
다시 도 10을 참조하면, N2에서의 서브 그룹에 대한 데이터 및 관계 속성이 주 처리 흐름에서 사용된다. 주 처리 흐름에서는 선택적으로 서브 그룹 단위의 정보 수정 정렬 등을 수행하기 위한 VC 서브 그룹 정보 핸들링 모듈 (521) 이 포함될 수 있다. 또한, 동적 VC 분할 배치 전략에서는 VC 서브 그룹 파티셔닝 모듈 (522) 이 포함된다. VC 서브 그룹 파티셔닝 모듈 (522) 은 VC 내의 가상 머신들을 특정 호스트에 배치하기 위한 분할 크기를 산출한다. 추가적으로, VC 서브 그룹 파티셔닝 모듈 (522) 을 포함하는 경우, 결정된 VC 분할 크기만큼의 가상 머신들이 특정 호스트에 배치 결정될 수 있다.
이외에도 호스트 리스트의 호스트들을 설정된 기준으로 정렬하기 위한 호스트 오더링 모듈 (523), 호스트들을 설정된 기준으로 필터링하기 위한 호스트 필터링 모듈 (524) 및 설정된 기준으로 호스트를 추출하기 위한 호스트 추출 모듈 (525) 및 호스트와 연관된 사용자-정의 기능 모듈 (526) 이 주 처리 흐름에 포함될 수 있다. N3에서 VC의 서브 그룹에 대한 데이터, 관계 속성, VC 서브 그룹의 분할 크기, 필터링/추출/정렬된 호스트 리스트가 제공된다.
다음으로, 주 처리 흐름에서는 호스트 선택 모듈 (527) 이 호스트 리스트에서 가상 머신이 배치될 특정 호스트를 선택한다. 호스트 선택 모듈 (527) 은 제공된 정보에 기초하여 호스트 선택 모듈이 구동되는 시점에서 가상 머신이 배치될 호스트를 결정한다. 다음으로, 호스트 상태 갱신 모듈 (528) 은, 가상 머신의 배치 후 구동될 호스트가 결정된 VC 내의 가상 머신에 대한 정보를 기초로 호스트의 자원 및 상태 정보를 갱신한다. 주 처리 흐름에서는 전술된 호스트 선택 모듈 (527) 과 호스트 상태 갱신 모듈 (528) 만으로 구성될 수도 있다.
다음으로는 후처리 흐름에서 배치 스케줄링 요청된 VC 내 모든 가상 머신들에 대해 배치될 호스트들이 모두 계산되었는지를 검사하는 VC 배치 종료 검사 모듈 (331) 이 배치 종료 여부를 결정한다. 아직 배치할 가상 머신들이 남은 경우, VC 배치 맵 갱신 모듈 (532) 이 VC의 배치된 가상 머신들에 대한 맵을 갱신하고, 맵을 주 스케일링 처리 모듈들에 제공한다. 이에 따라, N2에서 다시 주 처리 흐름이 반복된다. 즉, 주 처리 흐름의 모듈들은 갱신된 배치 맵에 액세스 가능하도록 구성된다. 이에 따라 호스트 선택 모듈 (527) 은 관계 속성에 따라 가상 머신을 복수의 호스트 중 하나에 배치하도록 배치 맵에 기초하여 호스트를 선택한다. 가상 머신들의 배치가 반복되면서, 가상 머신들은 관계 속성에 따라 동일한 호스트에 배치될 수도 있으며, 서로 다른 호스트에 배치될 수도 있다. VC 내의 모든 가상 머신들에 대한 배치가 완료된 경우 VC 배치 맵 생성 모듈 (533) 이 VC 배치 테이블을 생성하게 되고, VC 배치 전략의 수행이 종료된다.
도 12를 참조하면, 복수의 가상 머신들 (640) 이 배치된 호스트들 (710, 720, 730) 이 도시된다. 도 11a 및 11b에서의 관계 속성에 따라, NameNode_JobTracker01 (641), NameNode_JobTracker02 (642) 는 서로 다른 호스트 (710, 720) 에 배치되었으며, DataNode_TaskTracker01 (643), DataNode_TaskTracker02 (644), DataNode_TaskTracker03 (645) 은 동일한 호스트 (730) 에 그러나 NameNode_JobTracker01 (641), NameNode_JobTracker02 (642) 과는 상이한 호스트 (730) 에 배치되었다.
본 발명의 일 실시예에 따른 가상 클러스터 배치 방법에 따르면, VC의 가상 머신들은 그 동작 특성에 따라 최적화된 동작을 하도록 배치 결정되고 배치될 수 있다. 또한, 다양한 VC 배치 전략에 따라 독립된 계산 모듈의 조합으로 가상 클러스터 배치 방법이 수행될 수 있다. 또한, VC의 어플리케이션은 제한되지 않고, 하둡, R등을 포함할 수 있다.
도 13 내지 도 17은 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법이 나타내는 처리 성능과 성능 지표들을 설명하기 위한 도표들이다.
도 13 내지 도 17에서는 실험을 통해 VC 배치 프레임워크에서 구현 가능한 다양한 VC 배치 알고리즘들이 나타내는 처리 성능, 서비스 대기 시간, 자원 활용률, 배치 계산 시간과 같은 성능 지표들을 측정하여 그 결과를 도시한다.
본 실험을 위해 가상 클러스터 서비스 환경을 시뮬레이션하는 시뮬레이터를 구현하였으며, 시뮬레이터에서는 2000대로 구성된 중규모 내부 클라우드 (PrivateCloud) 에서 VC 사용자 (개인 혹은 집단) 가 사용할 VC에 대한 다양한 양적 조건 (VC 규모, VM 사양) 을 기반으로 가상 클러스터를 생성/사용/소멸하는 상황을 시뮬레이션하였다. 실험에서 사용된 각각의 가상화된 호스트들은 32코어 CPU에 메모리 64GB의 하드웨어 자원 사양을 가지고 있다. 따라서 본 실험에서의 가상 컴퓨팅 서비스 환경은 총 64,000CPU 코어와 128,000GB의 메모리 용량을 사용자들에게 제공한다.
본 실험을 위해 적용된 배치 전략은 기존의 가상 머신 단위의 배치 알고리즘을 기반으로 한 VC 배치 전략 3종 (FirstFit-VM, NextFit-VM, Volume-VM) 과 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법의 일 실시예인 동적 가상 클러스터 분할 배치를 기반으로 하는 VC 배치 전략 3종 (FirstFit-VC, NextFit-VC, Volume-VC) 이며, 이 두군을 비교 평가한다.
동적 VC 분할 기반 배치 전략들은 배치 중 동적으로 VC를 분할하며 배치를 수행한다. 예를 들어, FirstFit-VC의 경우, 첫 번째 가용 호스트 탐색 후 발견 시, 해당 호스트에 배치 가능한 가상 머신의 수만큼을 VC 분할 크기로 결정한 뒤, 해당 분할 크기로 배치 중인 VC를 분할하며 배치를 수행한다.
Volume-VM과 Volume-VC 배치 전략은 Bin-Packing 배치 알고리즘 중 Worst-Fit배치 알고리즘의 한 종류로서, 각 호스트 별 가용 자원에 대한 점수화 과정을 거친 뒤, 가장 점수가 높은 호스트 (가장 여유 자원이 많은 호스트) 에 배치 중인 가상 클러스터의 가상 머신을 분할하여 배치 결정한다. 호스트 점수화 과정에서 사용된 공식은 TimothyWood에 의해 창안된 호스트 점수화 공식을 활용했다. Volume-VM 배치 전략과 Volume-VC 배치 전략의 차이점은 가장 높은 점수를 가진 호스트에 가상 머신들을 최대한 배치하느냐 아니냐의 여부이다. 즉, Volume-VM 의 경우, 가장 높은 점수를 가진 호스트 발견 시 해당 호스트에 배치 중인 가상 클러스터 내 가상 머신들 중 1 대에 대한 배치 결정을 하고, 다시 호스트 점수화 과정을 수행하는 반면, Volume-VC의 경우 점수가 가장 높은 호스트 발견 시, 해당 호스트에 배치 가능한 가상 머신의 수를 산출 한 다음, 산출된 배치 가능한 가상 머신 수만큼 배치 중인 가상 머신들을 배치한 다음, 다시 호스트 점수화 과정을 수행한다.
본 실험에서, VC 사용자들은 VC 규모를 2대에서 256대까지 2의 N승으로 지정할 수 있으며, VC 내 VM 사양은 CPU의 경우, 1개에서 8개까지, 메모리 자원의 경우, 1GB에서 부터 16GB 메모리까지 지정할 수 있다.
또한 VC 사용자들은 일정 시간을 사용한 다음 가상 클러스터 사용 종료를 통해 가상 컴퓨팅 시설에 사용 중인 자원을 반환하는 방식을 취한다. FIFO 구조의 대기 큐 (WaitingQueue) 에 VC 생성 요청이 누적되며, FCFS 방법을 통해 가상 클러스터 배치 및 할당이 이루어진다. 따라서 시뮬레이션이 시작된 다음, 일정 시간이 지나게 되면, 자원 부족으로 인해, 신규 VC 사용자들은 앞서 자원을 점유한 VC 사용자들이 자원을 반환할 때까지 대기하게 되며, 이로 인해 대기 시간이 증가하게 된다.
VC 사용자들이 요청하는 가상 클러스터의 크기, 가상 클러스터 내 가상 머신의 사양, 사용 시간, 요청 빈도 (Inter-ArrivalTime) 등은 Uniform 분포를 따른다고 가정하여 전반적으로 각 조건에 대해 고르게 VC 사용 요청을 형성하여 가상 클러스터 서비스를 사용하도록 실험을 설계/구현하였다. 또한 본 실험에서는 주어진 사용 시간 동안 사용하고 종료하는 것을 가정하였으며, 주어진 컴퓨팅 자원을 적극적으로 사용하는 경우, 생성 요청한 가상 클러스터에서 CPU 집약적인 처리 작업을 하는 것으로 가정한다. 그 이유는 네트워크 집약적인 처리 작업을 할 경우, 가상화 소프트웨어에 따라 각 호스트마다 구동하는 관리 가상 머신 (ManagementVM 또는 Dom0) 의 CPU 부하 및 네트워크 부하로 인해 사용자 가상 머신들 (UserVM 또는 DomU) 의 CPU 등의 주요 컴퓨팅 자원 사용에 영향을 줄 수 있기 때문이다. 이와 같은 맥락에서 각 호스트의 관리 가상 머신은 사용자 가상 머신의 CPU 사 용에 높은 영향을 줄 만큼 부하를 일으키지 않는 상태가 유지됨을 가정한다. 본 실험은 각 배치 알고리즘별로 총 30회 반복 실행하여 결과를 산출했다.
도 13은 VC 배치 전략 별, 분당 요청되는 VC 사용 요청의 수 (Workload의 수) 에 따른 처리량을 나타내며, 도 14은 서비스 응답 시간 (Response Time) 을 나타낸다. 도 13 및 도 14을 참조하면, VM 단위 배치 스케줄링을 수행하는 종래의 VC 배치 전략들은 대체적으로 분당 14개에서 18개 사이의 VC 사용 요청 발생 시점부터 서비스 응답 시간의 급격한 증가를 나타내었으며, 분당 처리량의 한계를 나타내었다. 특히, Volume-VM 배치 전략의 경우, 가장 낮은 처리 성능을 나타내었으며, 분당 14개 (시간 당 840개) 이상의 VC 사용 요청에 대한 급격한 서비스 응답 시간 증가를 보였다. FirstFit-VM과 NextFit-VM은 각각 분당 16개의 VC 사용 요청이 발생한 시점부터 서비스 응답 시간이 5분 이하로 증가하다가 18개 시점부터는 각각 약 8분과 15분으로 증가를 하며, 분당 20개의 VC 사용 요청이 도착할 경우, 급격한 서비스 응답 시간의 증가를 보였다. 뿐만 아니라, 앞서 언급한 분당 18개 시점부터는 처리량의 한계를 보였다.
본 발명의 일 실시예에 따른 가상 클러스터 배치 방법로 구현된 배치 전략들은 분당 20개에서 24개 사이의 VC 사용 요청 발생 시점부터 분당 처리량의 한계를 보였다. 특히, Volume-VM 배치 전략에 대응하는 Voluem-VC 배치 전략은 분당 18개 시점부터 서비스 응답 시간이 증가하기 시작해서 20개를 기점으로 20개 이상의 분당 VC 사용 요청이 도착하는 상황에서 급격한 서비스 응답 시간 증가를 보였다. FirstFit-VC 배치 전략과 NextFit-VC 배치 전략은 분당 20개의 VC 사용 요청이 도착하는 시점에서 미미한 서비스 응답 시간의 증가가 일어나기 시작하다가 22개를 기점으로 22개 이상의 VC 사용 요청이 발생한 시점부터는 급격한 서비스 응답 시간의 증가와 분당 처리량의 한계를 보였다.
분당 처리량의 경우, FirstFit-VC 배치 전략과 NextFit-VC 배치 전략은 기존의 배치 전략들과 비교하여 FirstFit-VM 배치 전략과 NextFit-VM 배치 전략에 비해 약 17%의 처리 성능 차이를 보였다. Volume-VC 배치 전략은 Volume-VM 배치 전략에 비해 약 46%의 처리 성능 차이를 보임으로써, 대응 배치 전략 간에 가장 큰 처리 성능 차이를 보였다.
도 15은 VC 배치 전략 별 자원 활용률을 나타내며, 자원 활용률은 CPU와 메모리 자원 사용량의 평균을 통해서 산출했다. 자원 활용률은 도 8에서 나타난 분당 처리량과 비슷한 양상을 보인다. 따라서 다양한 영향 요인 중 자원 활용률의 차이로 인해 성능 지표 중 하나인 분당 처리량의 차이가 발생됨을 알 수 있다. 더욱이, FirstFit-VC 배치 전략과 NextFit-VC 배치 전략 및 F기존의 irstFit-VM 배치 전략과 NextFit-VM 배치 전략은 상호간 비슷한 처리 성능과 자원 활용률 및 서비스 응답 시간을 보였다. 분당 처리 작업 규모 22개를 기준으로 대응 배치 전략들 간, 즉 FirstFit-VC과 FirstFit-VM 그리고 Next-VC과 NextFit-VM은 약 23%의 분당 처리량의 차이를 보였으며, Volume-VC과 Volume-VM은 약 43%의 분당 처리량의 차이를 나타냈다.
배치 전략 간 성능 차이 발생의 가장 큰 이유는 앞서 언급한 바와 같이, 자원 활용률에서 그 원인을 찾을 수 있다. 부가적인 이유로는 동일한 배치 전략 사상을 기반으로 하더라도, 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법으로 구현된 동적 VC 분할 기반의 배치 전략의 경우, 단일 VM 단위로 VC를 분할하며 배치하는 전략에 비해 빠른 배치가 수행될 수 있다는 점이다. 도 9는 VC 배치 전략 별 VC 크기에 따른 배치 처리 시간을 나타낸다. 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법의 동적 VC 분할 기능을 사용하는 배치 전략들과 각각 대응하는 단일 가상 머신 단위 배치 전략들 사이의 배치 시간 차이는, 가상 클러스터 크기가 커질수록 점점 커진다.
가상 클러스터의 크기가 작을 경우, 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법의 배치 전략들은 배치 시간에 있어서 단일 가상 머신 단위 배치 전략들에 비해 배치 속도에 큰 차이가 없지만, 가상 클러스터 크기 16 에서부터 배치 시간의 격차가 점점 차이가 발생하기 시작해서 가상 클러스터 크기 256에 이르러서는 최대 3배 (Volume-VM과 Volume-VC 비교) 까지 배치 시간의 차이가 발생했다.
도 17은 분당 사용 요청의 수 22개, 가상 클러스터 크기 256을 처리하는 동안 각 배치 전략 별 VC 분할 크기를 나타낸다. 도 10에서 확인할 수 있는 바와 같이, 배치 처리 시간에 영향을 미치는 다양한 요인 중 가상 클러스터 분할 크기의 차이는 배치 속도에 영향을 미치는 중요한 요소임을 확인할 수 있다. 단일 가상 머신 단위 배치 전략들의 경우, 가상 클러스터 분할 크기는 배치 전략에 설계된 바와 같이 공통적으로 1인 반면, FirstFit-VC는 1.4개, NextFit-VC는 1.7개, Volume-VC는 2.9개이다. 기본적으로 가상 클러스터 분할 크기가 1이상 일 경우, 배치 횟수가 그 비율만큼 반감되는 것을 감안하면, Volume-VC가, 단일 가상 머신 단위 배치 전략인 Volume-VM에 비해 약 3배가량 더 큰 가상 클러스터 분할 크기를 바탕으로 약 3배가량 빠른 배치 스케줄링 처리 시간을 나타낸 이유가 설명된다.
동일한 배치 전략과 배치 메커니즘 하에서도 가상 클러스터 분할 크기를 배치 스케줄링 시 고려하는 것은 중대형 가상 클러스터의 배치 처리 시간을 향상하기 위해 매우 중요하기 때문이다.
이러한 배치 처리 시간 향상은 단순히 배치를 빠르게 하는 것에만 의미를 가지지 않는다. 배치 처리 시간 향상은 대규모 가상 컴퓨팅 환경 (또는 시설) 에서 다양한 규모의 가상 클러스터에 대한 보다 빠른 서비스를 제공하기 위해 배치 시간을 단축하기 위한 기본적인 요소이며, 자원의 활용성에도 영향을 미칠 수 있다. 가상 클러스터 사용자들이 일정 시간 뒤, 사용하던 자원을 반환하고 반환된 자원을 기반으로 새로운 가상 클러스터 사용자에게 재 할당하는 상황에서는 빠른 배치를 통해 낮아진 자원 활용률을 보다 빨리 향상시켜서 일정 수준을 유지해야 하므로 배치 처리 시간 향상은 자원 활용률 향상에 기여할 수 있는 요소 중 하나가 될 수 있다.
또한, 가상 컴퓨팅 자원의 지속적인 추가 (호스트 증설 등) 로 컴퓨팅 자 원이 지속적으로 확장되는 환경에서는 사용 후 반환되는 자원에 대한 빠른 재할당과 더불어 신규로 추가되는 자원에 대한 빠른 할당을 동시에 처리해야 하므로 배치 처리 시간 향상은 그 중요성이 더욱 높아질 것이다. 본 발명의 일 실시예에 따른 가상 클러스터 배치 방법은 가상 클러스터 배치 처리 시간 향상과 더불어 가상 클러스터 내 가상 머신들의 다양한 배치 모델을 실현할 수 있다.
도 19는 본 발명의 일 실시예에 따른 가상 클러스터 구동 시간 스케줄링 장치의 개략적인 블록도이다. 가상 클러스터 구동 시간 스케줄링 장치(800)는 시간 계산 요청 수신부(810), 예약 프로세서(820), 비 예약 프로세서(830), 시간 계산부(840) 및 시간 모델 관리부(850)를 포함한다.
가상 클러스터 구동 시간 스케줄링 장치(800)는 사용자의 가상 클러스터 생성 요청이 발생한 경우 사용자가 요청한 시간에 가상 클러스터의 생성이 완료되도록 가상 클러스터의 생성 시간을 스케줄링하기 위한, 컴퓨팅 디바이스에서 수행될 수 있는 모듈일 수 있다. 가상 클러스터 구동 시간 스케줄링 장치(800)는 프로세서 및 메모리를 포함하는 컴퓨팅 디바이스 상에 구현될 수 있다. 또한, 가상 클러스터 구동시간 스케줄링 장치는 가상 클러스터 스케줄 관리 모듈과 연결되고 통신하도록 구성될 수도 있다. 가상 클러스터 구동시간 스케줄링 장치는 가상 클러스터에 대한 생성 시작 시간의 산출 요청이 수신되면 생성 시작 시간을 산출하여 가상 클러스터 스케줄 관리 모듈과 같은 외부 모듈로 송신할 수도 있다. 다양한 실시예에서 산출된 생성 시작 시간을 기초로 가상 클러스터 구동 시간 스케줄링 장치(800)가 직접 가상 클러스터의 생성을 개시할 수도 있다.
가상 클러스터 구동 시간 스케줄링 장치(800)의 시간 계산 요청 수신부(810)는 사용자 또는 외부 모듈로부터 데이터를 수신할 수 있도록 구성된다. 시간 계산 요청 수신부(810)는 사용자 또는 외부 모듈로부터 가상 머신을 사용하고자 하는 시점인 데드라인을 수신할 수 있다. 또한, 시간 계산 요청 수신부(810)는 사용자 또는 외부 모듈로부터 데드라인과 함께 가상 머신에 대한 생성 시작 시간의 산출 요청을 수신할 수 있다. 시간 계산 요청 수신부(810)는 산출 요청을 각기 처리하는 예약 프로세서(820) 및 비 예약 프로세서(830)를 활용하여 가상 머신에 대한 생성 시작 시간을 산출하는 작업을 수행한다.
예약 프로세서(820)는 수신된 산출 요청에 대응하여 가상 머신의 생성 시작 시간을 산출한다. 예약 프로세서(820)는 산출 요청이 수신된 경우 함께 수신된 데드라인에 기초하여 데드라인 전에 가상 머신의 생성이 완료되도록 생성 시작 시간을 산출할 수 있다. 즉, 예약 프로세서(820)는 데드라인 기반의 산출 요청 등과 같이 생성 예약된 가상 머신에 대한 생성 시작 시간을 산출할 수 있다. 예약 프로세서(820)는 실행 슬롯 및 시간 모델 등을 활용하여 생성 시작 시간을 산출할 수도 있다.
비 예약 프로세서(830)는 즉시 생성 유형의 산출 요청이 수신된 경우 가상 머신의 생성 시작 시간을 산출한다. 즉시 생성 유형의 생성 시작 시간 및 구동 종료 시간에 대한 정보가 요청된 경우, 비 예약 프로세서(830)는 생성 시작 시간으로서 현재 시간을 반환하며, 구동 종료 시간으로서 Long Max값을 반환한다.
시간 계산부(840)는 현재 시간을 제공할 수 있고 각종 시간 계산을 수행할 수 있다. 우선, 시간 계산부(840)는 배치 스케줄링 과정 중 자원 상태 계산에서 필요한 가상 머신의 구동 시작 시간 및 구동 종료 시간을 계산한다. 시간 계산부(840)는 가상 머신의 구동 시작 시간 및 구동 종료 시간을 계산을 계산하는 경우 최악의 상황을 고려하여 계산한다. 여기서, 최악의 상황은 가상 클러스터 내의 모든 가상 머신들이 하나의 호스트에서 구동되면서 가상 머신의 가상 컨테이너 생성 시간이 최대로 경과되는 상황을 의미한다. 한편, 시간 계산부(840)는 배치 스케줄링이 완료된 가상 머신의 생성 시작 시간을 산출하기 위한 계산 과정에서 여유 시간 (Margin Time; MT) 을 계산할 수도 있다.
시간 모델 관리부(850)는 가상 머신의 생성을 위한 시간 모델의 제공, 추가, 수정, 및 삭제 등과 같은 시간 모델 정보에 대한 일련의 관리 역할을 수행한다. 시간 모델 관리부(850)에 등록된 시간 모델들은 예약 프로세서(820)에 의해 활용된다. 시간 모델 관리부(850)에 등록되 지 않은 시간 모델이 요청된 경우, 시간 모델 관리부(850)는 ‘기본 시간 모델’로 설정된 시간 모델을 반환한다.
예약 프로세서(820), 비 예약 프로세서(830) 및 시간 계산부(840)는 외부 모듈로 데이터를 송신할 수도 있도록 구성된다. 예약 프로세서(820), 비 예약 프로세서(830) 및 시간 계산부(840)는 산출된 생성 시작 시간 및 여유 시간 등을 외부 모듈로 송신할 수 있다. 외부 모듈은 예약 프로세서(820), 비 예약 프로세서(830) 및 시간 계산부(840)로부터 송신된 생성 시작 시간을 관리하거나 송신된 생성 시작 시간에 기초하여 가상 머신을 생성할 수 있는 모듈일 수 있다. 여기서, 외부 모듈은 시간 계산 요청 수신부(810)로 산출 요청을 송신하는 모듈과 동일한 모듈일 수도 있고 상이한 모듈일 수도 있다.
데드라인 및 산출 요청을 수신하고, 생성 시작 시간을 산출하고 송신하는 구체적인 방법에 대해서는 도 20을 참조하여 후술한다.
다양한 실시예에서, 가상 클러스터 구동 시간 스케줄링 장치(100)는, 생성 시작 시간을 다른 모듈로 송신하지 않고, 생성 시작 시간에 기초하여 가상 머신을 직접 생성할 수 있는 가상 머신 생성부를 더 포함할 수도 있다. 가상 머신 생성부는 산출된 생성 시작 시간부터 가상 머신을 생성하여 데드라인 이전에 가상 머신이 생성 완료되도록 가상 머신을 생성할 수 있다.
도 19에 도시되지 않았으나 가상 클러스터 구동 시간 스케줄링 장치(300)는 시간 계산 요청 수신부(300), 예약 프로세서(820), 비 예약 프로세서(830), 시간 계산부(840) 및 시간 모델 관리부(850)의 데이터가 저장되도록 구성된 저장부, 메모리 등을 더 포함할 수 있다. 저장부는 제한되지 않고 하드 디스크, 플래시 메모리 모듈 등을 포함할 수 있으며, 메모리는 다양한 타입의 RAM(random access memory)를 포함할 수 있다.
도 19에서는 식별의 편의를 위해 가상 클러스터 구동 시간 스케줄링 장치(100) 내에 시간 계산 요청 수신부, 예약 프로세서, 비 예약 프로세서, 시간 계산부 및 시간 모델 관리부가 개별적인 구성으로 도시되었으나, 각각의 모듈은 구현 방법 또는 본 발명의 실시예에 따라 하나의 통합적인 형태 또는 분리적 형태로 설계 구현되는 것도 가능하다.
도 20은 본 발명의 일 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법을 설명하기 위한 흐름도이다. 도 21a 내지 21c는 본 발명의 몇몇 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법에서 예시적인 생성 시간 정보의 산출 단계를 설명하기 위한 개념도들이다. 도 22a 및 22b는 본 발명의 몇몇 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법에서 예시적인 실행 슬롯의 생성 단계를 설명하기 위한 개념도들이다. 설명의 편의를 위해 도 19를 함께 참조하여 설명한다.
먼저, 가상 머신을 사용하고자 하는 시점인 데드라인 및 가상 머신에 대한 생성 시작 시간의 산출 요청이 수신된다(S2010). 데드라인 및 산출 요청은 사용자로부터 직접 수신될 수도 있고, 사용자로부터 외부 모듈을 통해 수신될 수도 있다. 데드라인은 사용자에 의해 지정된 생성, 이주 등 가상 머신에 대한 관리 처리 작업이 완료되는 시점이다. 데드라인은 사용자가 사용을 시작하고자 하는 시점일 수 있다. 본 발명의 일 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법은 데드라인 이전에 가상 머신이 생성 완료되어 데드라인에 가상 머신이 가용 상태가 되도록 가상 머신의 생성을 스케줄링할 수 있다. 산출 요청은 가상 머신에 대한 생성 시작 시간을 산출하게 하는 명령이다. 산출 요청이 수신됨으로써, 가상 머신의 생성 시작 시간의 산출이 개시된다. 여기서, 생성하고자 하는 가상 머신의 개수, 사양 및 배치 특성 등은 외부 모듈을 통해 미리 결정될 수 있다.
본 발명의 몇몇 실시예에 따르면, 가상 머신에 대한 구동 시작 시간 및 구동 종료 시간을 포함하는 구동 주기 및 가상 머신을 주기적으로 구동시키기 위한 산출 요청이 수신될 수도 있다. 구동 시작 시간은 사용자가 가상 머신의 사용을 시작하고자 하는 시점으로서, 데드라인에 대응할 수 있다. 구동 종료 시간은 사용자가 가상 머신의 사용을 종료하고자 하는 시점이다. 예를 들어, 사용자가 매주 월요일 오전 10시부터 오전 11시까지 가상 머신을 사용하고자 하는 경우, 구동 시작 시간이 오전 10시이고 구동 종료 시간이 오전 11시이고 구동 날짜가 매주 월요일인, 구동 주기가 수신될 수 있다. 여기서, 산출 요청은 가상 머신이 구동 주기에 따라 주기적으로 생성되고 소멸되도록 스케줄링하기 위한 요청일 수 있다. 상술한 바와 같이, 구동 주기를 수신함으로써, 해당 시간 주기에 자율적으로 구동 시작 및 구동 종료되도록 스케줄링할 수 있다는 본 발명의 유리한 효과가 획득된다.
다음으로, 수신된 산출 요청에 대응하여, 수신된 데드라인에 기초하여 생성 시작 시간이 산출된다(S2020). 생성 시작 시간은, 데드라인에 가상 머신이 가용 상태에 있도록 가상 머신이 생성되는데 요구되는 시간인 가상 머신의 생성 시간이 산출된 후에 역산함으로써 산출될 수 있다. 여기서, 생성 시간은 생성하고자 하는 가상 머신이 모두 생성되는데 소요되는 시간이다.
생성 시간은 생성 명령 전달 시간(Creation Command Propagation Time; CCPT), 가상 컨테이너 생성 시간(Virtual Container Creation Time; VCCT) 및 총 부팅 시간(Total Boot Time; TBT)에 기초하여 산출될 수 있다. 생성 명령 전달 시간, 가상 컨테이너 생성 시간 및 총 부팅 시간은 미리 설정된 시간일일 수도 있다.
생성 명령 전달 시간은 가상 머신 생성시 가상 클러스터 스케줄러로부터 가상 머신의 관리 시스템으로 가성 머신의 배치 결과 및 시작 명령을 전송하기 위한 시간 및 가상 머신의 관리 시스템으로부터 호스트로 가상 머신의 생성 명령을 전달하기 위한 시간을 포함하는 시간이다. 가상 머신의 관리 시스템에 따라 생성 명령 전달 시간은 호스트의 하이퍼바이저에 전달될 가상 머신 설정 파일을 생성하는 시간을 포함할 수도 있다.
가상 컨테이너 생성 시간은 가상화된 시스템에서 가상 머신의 구동을 위해 가상 컴퓨팅 자원의 생성 및 할당에 소요되는 시간이다. 가상 컨테이너 생성 시간은 가상 CPU 생성 및 할당, 메모리 공간 할당 및 가상 네트워크 장치 생성에 소요되는 시간을 포함할 수 있다. 가상 컨테이너 생성 시간은 가상 머신의 사양에 따라 변화될 수도 있다.
총 부팅 시간은 가상 머신이 생성된 후 가상 머신의 부팅에 소요되는 시간이다. 총 부팅 시간은, 예를 들어, 운영체제 및 부팅 환경 설정을 사용자로부터 입력받기 위해 대기하는 시간인 부팅 선택 시간, 가상 머신 운영체제의 부팅을 위해 소요되는 시간인 부팅 시간, 가상 머신 운영체제가 부팅된 후 미들웨어 및 자동 실행 응용 소프트웨어의 구동을 위해 소요되는 시간인 초기화 시간, 가상 머신의 부팅 과정 중 발생할 수 있는 최대의 지연 시간인 지연 시간 중 적어도 하나 이상의 시간을 합산한 시간일 수 있다. 총 부팅 시간은 가상 머신의 사양 및 운영체제에 따라 변화될 수도 있다.
생성 시간이 산출된 후, 데드라인으로부터 역산하여 생성 시작 시간이 산출될 수 있다. 예를 들어, 데드라인이 10시이고 산출된 생성 시간이 20분인 경우, 생성 시작 시간은 9시 40분으로 산출될 수 있다. 가상 머신이 데드라인을 초과하여 생성되는 것을 방지하기 위해, 가상 머신의 생성 완료 시간과 데드라인 사이에 일정 이상의 여유 시간이 확보되도록 생성 시작 시간이 산출될 수도 있다. 생성 완료 시간은 본 발명의 일 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법을 통해 생성 시작 시간부터 가상 머신의 생성이 개시된 경우 가상 머신이 생성 완료될 것으로 예측되는 시간이다. 여유 시간은 생성 완료 시간과 데드라인 사이의 시간이다. 데드라인을 초과하여 가상 머신이 생성되는 위험을 감소시키기 위해, 여유 시간을 산출함으로써, 여유 시간이 충분한지 여부를 검증할 수 있다. 여기서, 여유 시간은 미리 정해진 시간일 수도 있다. 생성 완료 시간 및 여유 시간의 산출 요청이 수신된 경우, 생성 시작 시간과 함께 생성 완료 시간 및 여유 시간이 산출될 수도 있다. 여기서, 생성 완료 시간은 생성 시작 시간에 생성 시간을 더한 시간일 수 있고, 여유 시간은 데드라인과 생성 완료 시간 사이의 시간일 수 있다.
도 21a를 참조하면, 데드라인이 t2인 가상 머신에 대한 생성 시작 시간의 산출 요청이 시간 t1에 수신된 경우, 미리 저장된 생성 명령 전달 시간(CCPT), 가상 컨테이너 생성 시간(VCCT), 총 부팅 시간(TBT)을 합산하여 생성 시간 t4-t3이 산출될 수 있다. 생성 명령 전달 시간(CCPT), 가상 컨테이너 생성 시간(VCCT), 총 부팅 시간(TBT)은 가상 머신의 사양 및 운영체제에 기초하여 결정될 수도 있다. 생성 시간 t4-t3이 산출된 경우 데드라인 t2로부터 역산하여 생성 시작 시간 t3이 산출될 수 있는데, 이 때 생성 완료 시간 t4와 데드라인 t2 사이에 여유 시간 t2-t4를 두고 생성 시작 시간 t3이 산출될 수 있다.
본 발명의 다른 실시예에 따르면, 2 이상의 가상 머신을 포함하는 가상 클러스터를 생성하고자 하는 경우, 가상 클러스터에 포함된 가상 머신 각각에 대한 생성 명령 전달 시간(CCPT)은 순차적으로 처리되고, 가상 컨테이너 생성 시간(VCCT)은 순차적 또는 병렬적으로 처리되고, 총 부팅 시간(TBT)이 병렬적으로 처리되어 생성 시작 시간이 산출될 수도 있다.
구체적으로, 생성 명령 전달은 가상 머신의 관리 시스템에 의해 수행되므로, 생성 명령 전달은 복수의 가상 머신에 대해 동시에 수행될 수 없다. 따라서, 생성 명령 전달은 가상 머신 각각에 대해 순차적으로 수행되고, 생성 시간을 산출하는 경우 생성 명령 전달 시간(CCPT)은 순차적으로 처리된다. 예를 들어, 제1 가상 머신 및 제2 가상 머신을 포함하는 가상 클러스터를 생성하는 경우, 제1 가상 머신에 대한 생성 명령 전달과 제2 가상 머신에 대한 생성 명령 전달은 동시에 수행될 수 없다. 따라서, 제1 가상 머신에 대한 생성 명령 전달 시간(CCPT)과 제2 가상 머신에 대한 생성 명령 전달 시간(CCPT)은 각각 순차적으로 처리되도록 생성 시간이 산출된다.
가상 컨테이너 생성은 복수의 가상 머신이 배치된 호스트에 따라 순차적으로 수행될 수도 있고 병렬적으로 수행될 수도 있다. 각각의 호스트는 가상 컨테이너 생성을 위한 수퍼바이저를 하나씩 포함한다. 따라서, 복수의 가상 머신이 동일한 호스트에 배치된 경우, 가상 컨테이너 생성은 순차적으로 수행되고, 복수의 가상 머신이 서로 다른 호스트에 배치된 경우, 가상 컨테이너 생성은 병렬적으로 수행된다. 예를 들어, 제1 가상 머신 및 제2 가상 머신이 동일한 호스트에 배치된 경우, 제1 가상 머신에 대한 가상 컨테이너 생성과 제2 가상 머신에 대한 가상 컨테이너 생성은 동시에 수행될 수 없고, 제1 가상 머신 및 제2 가상 머신이 서로 다른 호스트에 배치된 경우, 제1 가상 머신에 대한 가상 컨테이너 생성과 제2 가상 머신에 대한 가상 컨테이너 생성은 동시에 수행될 수 있다. 따라서, 가상 머신이 동일한 호스트에 배치된 경우, 가상 머신 각각에 대한 가상 컨테이너 생성 시간(VCCT)은 순차적으로 처리되고, 가상 머신이 서로 다른 호스트에 배치된 경우, 가상 머신 각각에 대한 가상 컨테이너 생성 시간(VCCT)은 병렬적으로 처리되도록 생성 시간이 산출될 수 있다.
부팅은 복수의 가상 머신에 대해 병렬적으로 수행될 수 있다. 가상 머신이 생성된 후에는 각각의 가상 머신이 독립적으로 동작하게 되므로, 가상 머신의 부팅은 병렬적으로 수행된다. 예를 들어, 제1 가상 머신 및 제2 가상 머신이 생성된 경우, 제1 가상 머신의 부팅과 제2 가상 머신의 부팅은 동시에 수행될 수 있다. 따라서, 가상 머신 각각에 대한 총 부팅 시간(TBT)은 병렬적으로 처리되도록 생성 시간이 산출될 수 있다.
서로 다른 가상 머신에 대한 생성 명령 전달, 가상 컨테이너 생성 및 부팅은 서로 병렬적으로 수행될 수 있다. 예를 들어, 제1 가상 머신에 대한 생성 명령 전달과 제2 가상 머신에 대한 가상 컨테이너 생성은 병렬적으로 수행될 수 있고, 제1 가상 머신에 대한 가상 컨테이너 생성과 제2 가상 머신에 대한 부팅 또한 병렬적으로 수행될 수 있고, 제1 가상 머신에 대한 생성 명령 전달과 제2 가상 머신에 대한 부팅 또한 병렬적으로 수행될 수 있다. 따라서, 서로 다른 가상 머신에 대한 생성 명령 전달 시간(CCPT), 가상 컨테이너 생성 시간(VCCT) 및 총 부팅 시간(TBT)은 서로 병렬적으로 처리되도록 생성 시간이 산출될 수 있다.
도 21b를 참조하면, 데드라인이 t6이고 동일한 호스트에 배치된 제1 가상 머신 및 제2 가상 머신을 포함하는 가상 클러스터에 대한 생성 시작 시간의 산출 요청이 시간 t5에 수신된 경우, 생성 명령 전달 시간(CCPT) 및 가상 컨테이너 생성 시간(VCCT)은 순차적으로 처리되고 총 부팅 시간(TBT)은 병렬적으로 처리되도록 생성 시간 t8-t7이 산출될 수 있다. 여기서, 제1 가상 머신에 대한 가상 컨테이너 생성 시간(VCCT)과 제2 가상 머신에 대한 생성 명령 전달 시간(VCCT)은 병렬적으로 처리될 수 있고, 제1 가상 머신에 대한 총 부팅 시간(TBT)과 제2 가상 머신에 대한 가상 컨테이너 생성 시간(VCCT) 또한 병렬적으로 처리될 수 있다. 생성 시간 t8-t7이 산출된 경우 데드라인 t6로부터 역산하여 생성 시작 시간 t7이 산출될 수 있는데, 이 때 생성 완료 시간 t8와 데드라인 t6 사이에 여유 시간 t6-t8를 두고 생성 시작 시간 t7이 산출될 수 있다.
도 21c를 참조하면, 데드라인이 t10이고 서로 상이한 호스트에 배치된 제1 가상 머신 및 제2 가상 머신을 포함하는 가상 클러스터에 대한 생성 시작 시간의 산출 요청이 시간 t9에 수신된 경우, 생성 명령 전달 시간(CCPT)은 순차적으로 처리되고 가상 컨테이너 생성 시간(VCCT) 및 총 부팅 시간(TBT)은 병렬적으로 처리되도록 생성 시간 t12-t11이 산출될 수 있다. 여기서, 제1 가상 머신에 대한 가상 컨테이너 생성 시간(VCCT)과 제2 가상 머신에 대한 생성 명령 전달 시간(CCPT)은 병렬적으로 처리될 수 있고, 제1 가상 머신에 대한 총 부팅 시간(TBT)과 제2 가상 머신에 대한 가상 컨테이너 생성 시간(VCCT) 또한 병렬적으로 처리될 수 있다. 생성 시간 t12-t11이 산출된 경우 데드라인 t10으로부터 역산하여 생성 시작 시간 t11이 산출될 수 있는데, 이 때 생성 완료 시간 t12와 데드라인 t10 사이에 여유 시간 t10-t12를 두고 생성 시작 시간 t11이 산출될 수 있다.
상술한 바와 같이, 가상 클러스터에 포함된 가상 머신 각각에 대해 동시에 수행될 수 있는 작업에 대한 시간을 병렬적으로 처리함으로써, 가상 클러스터의 생성 시간을 단축할 수 있다는 본 발명의 유리한 효과가 획득된다.
본 발명의 또 다른 실시예에 따르면, 생성 시작 시간은 일정 시간 간격으로 구획된 실행 슬롯을 기반으로 산출될 수도 있다. 실행 슬롯은 가상 클러스터 내의 가상 머신들의 생성 및 소멸 등을 정의하는 제어 스케줄을 시계열적으로 저장하고, 각 실행 슬롯에 대응하는 시간이 도래한 경우, 각 실행 슬롯에 저장된 제어 스케줄에 정의된 제어 명령을 실행하기 위해 사용하는 일종의 저장소이다. 실행 슬롯에 대응하는 시간이 도래한 경우, 스케줄링된 가상 클러스터의 생성이 개시될 수 있다.
도 22a는 본 발명의 또 다른 실시예에 따른 가상 클러스터 구동 시간 스케줄링 방법에서 이용되는 실행 슬롯을 시각적으로 도시한다. 실행 슬롯은 9시 55분 00초부터 10시 00분 00초까지 30초 간격으로 구획되어 있고, 9시 55분 00초부터 10시 00분 00초 사이의 실행 슬롯은 비어있는 상태이다.
도 22b를 참조하면, 데드라인이 10시 00분 00초이고 생성 명령 전달 시간, 가상 컨테이너 생성 시간 및 총 부팅 시간에 기초하여 산출된 가상 클러스터의 생성 시간(tc1)이 2분 45초인 경우, 가상 클러스터의 생성을 위해 생성 시간(tc1) 2분 45초를 포함하는 최소 개수의 실행 슬롯, 즉, 9시 57분 00초부터 데드라인인 10시 00분 00초에 대응하는 6개의 실행 슬롯이 할당된다. 여기서, 생성 시작 시간은 10시 00분 00초로부터 2분 45초 전인 9시 57분 45초가 아니라 할당된 실행 슬롯에 대응하는 가장 빠른 시간인 9분 57분 00초로 산출될 수 있고, 생성 종료 시간인 9시 59분 45초부터 데드라인인 10시 00분 00초 사이에 여유 시간(tm1) 15초가 확보된다.
연속적인 시간 구간에 대해 스케줄을 저장하는 경우에는 비어있는 시간, 즉, 가상 머신의 생성을 수행할 수 있는 시간을 탐색하는데 상당한 시간이 소요된다. 따라서, 일정 시간 간격으로 구획된 실행 슬롯을 이용하여 이산적인 시간 구간에 대해 스케줄 저장함으로써 가상 머신의 생성을 수행할 수 있는 시간을 탐색하는 시간을 감소시킬 수 있다. 또한, 실행 슬롯을 이용하여 스케줄을 저장함으로써, 생성 완료 시간과 데드라인 사이에 여유시간이 확보되도록 생성 시작 시간이 산출될 수 있다.
한편, 도 22c를 참조하면, 데드라인이 10시 00분 00초이고 생성 명령 전달 시간, 가상 컨테이너 생성 시간 및 총 부팅 시간에 기초하여 산출된 가상 클러스터의 생성 시간(tc2)이 2분 50초인 경우, 일단 가상 클러스터의 생성을 위해 생성 시간(tc2) 2분 50초를 포함하는 최소 개수의 실행 슬롯, 즉, 9시 57분 00초부터 데드라인인 10시 00분 00초에 대응하는 6개의 실행 슬롯이 할당될 수 있다. 이 경우, 생성 종료 시간인 9시 59분 50초부터 데드라인인 10시 00분 00초 사이에 여유 시간(tm2) 10초가 확보되는데, 10초의 여유시간이 부족하다고 판단되는 경우, 예를 들어, 최소 15초 이상의 여유 시간이 확보되도록 미리 결정된 경우, 데드라인 전에 하나의 실행 슬롯을 비워두고 가상 클러스터의 생성을 위해 9시 56분 30초부터 9시 59분 30초에 대응하는 6개의 실행 슬롯이 할당될 수 있다. 이 경우, 생성 시작 시간은 9시 56분 30초로 산출되고, 생성 완료 시간은 9시 59분 20초로 산출될 수 있으며, 여유 시간(tm3) 40초가 확보될 수 있다. 상술한 바와 같이, 여유 시간이 일정 이하인 경우 추가적인 여유 시간을 확보함으로써, 데드라인을 도과하여 가상 클러스터가 생성 완료되는 위험성을 감소시킬 수 있다.
본 발명의 몇몇 실시예에 따르면, 구동 주기 및 가상 머신을 주기적으로 구동시키기 위한 산출 요청이 수신된 경우, 구동 시작 시간에 주기적으로 가상 클러스터의 생성이 완료되도록 주기적인 생성 시작 시간을 산출할 수 있다. 예를 들어, 구동 시작 시간이 매주 월요일 10시 00분 00초이고 생성 명령 전달 시간, 가상 컨테이너 생성 시간 및 총 부팅 시간에 기초하여 산출된 가상 클러스터의 생성 시간이 3분인 경우, 매주 월요일 9시 57분 00초를 생성 시작 시간으로서 산출할 수도 있다. 주기적인 생성 시작 시간 또한 실행 슬롯을 기반으로 산출될 수도 있고, 구동 시작 시간과 생성 완료 시간 사이에 여유 시간이 확보되도록 생성 시작 시간이 산출될 수도 있다.
상술한 바와 같이, 가상 클러스터를 주기적으로 생성하고 소멸시킬 수 있도록 스케줄링함으로써, 가상 클러스터를 효율적으로 사용할 수 있는 가상 클러스터 구동 시간 스케줄링 방법 및 장치를 제공할 수 있다는 본 발명의 유리한 효과가 획득된다.
본 발명의 몇몇 실시예에 따르면, 생성 시작 시간이 산출되기 전에, 산출 요청에 대하여 적용하고자 하는 시간 모델이 결정될 수도 있다. 시간 모델은 생성 시작 시간을 산출하기 위해 사용되는 모델이다. 상술한 실시예에서는 생성 명령 전달 시간, 가상 컨테이너 생성 시간 및 총 부팅 시간을 합산하여 가상 머신의 생성 시간을 산출하는 시간 모델이 이용되었으나, 이에 제한되지 않고 가상 머신의 생성 시간을 산출하기 위한 다양한 시간을 이용하는 시간 모델이 이용될 수 있다. 복수의 시간 모델이 저장된 경우, 시간 모델은 사용자의 선택에 의해 특정 시간 모델이 선택됨으로써 결정될 수도 있고, 생성하고자 하는 가상 머신에 적합한 특정 시간 모델이 추출됨으로써 결정될 수도 있다. 시간 모델 또는 시간 모델을 구성하는 각 구성 요소는 사용자의 요청을 통해 추가되거나, 변경되거나, 삭제되는 것이 가능하다.
다시 도 20을 참조하면, 단계 3에서 산출된 생성 시작 시간이 외부 모듈로 송신된다(S2030). 여기서, 외부 모듈은 가상 클러스터의 스케줄링을 관리하거나 가상 클러스터의 생성을 수행하는 모듈로서, 데드라인 및 산출 요청을 송신한 단계 S2010의 외부 모듈과 동일한 모듈일 수도 있고 상이한 모듈일 수도 있다. 생성 시작 시간이 외부 모듈로 송신됨으로써, 생성 시작 시간에 가상 클러스터의 생성이 개시되어 데드라인 전에 가상 클러스터의 생성이 완료될 수 있다.
본 발명의 또 다른 실시예에 따르면, 산출된 생성 시작 시간이 다른 모듈로 송신되지 않고, 생성 시작 시간에 기초하여 데드라인 이전에 가상 머신이 생성 완료되도록 가상 클러스터가 생성될 수도 있다. 가상 클러스터는 생성 시작 시간에 생성 시작되어 데드라인 이전에 생성 완료될 수 있다. 가상 클러스터는 가상 클러스터를 생성하는 통상적인 방법에 따라 생성될 수 있다.
상술한 바와 같이, 가상 클러스터의 구동 시간을 스케줄링하는데 있어서, 사용자가 설정한 데드라인을 기준으로 가상 클러스터가 생성 완료되도록 생성 시간 정보를 산출함으로써, 사용자가 원하는 시간에 가상 클러스터를 사용할 수 있도록 스케줄링할 수 있다는 본 발명의 유리한 효과가 획득된다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형 실시될 수 있다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (44)

  1. 복수의 가상 머신을 포함하는 가상 클러스터 시스템에 대한 제어 요청을 처리함으로써, 상기 가상 클러스터 시스템의 제어 정보를, 관리하도록 구성된 가상 클러스터 제어 정보 관리부; 및
    상기 복수의 호스트에서의 상기 복수의 가상 머신들을 관리하는 외부의 가상 머신 관리 시스템을 통해 또는 상기 복수의 호스트에 직접 접속하여 제어함으로써, 상기 제어 정보에 기초하여 상기 복수의 가상 머신의 동작을 제어하도록 구성된 가상 클러스터 제어부를 포함하는, 가상 클러스터 관리 시스템.
  2. 제1항에 있어서,
    상기 가상 클러스터 제어부는, 상기 외부의 가상 머신 관리 시스템으로 하여금 상기 가상 머신의 생성, 종료, 정지, 재시작, 이주, 가상 클러스터 규모 및 할당된 자원 규모 변경 중 적어도 하나의 동작을 수행시키도록 더 구성된, 가상 클러스터 관리 시스템.
  3. 제1항에 있어서,
    상기 가상 클러스터 제어부에 접속되는, 가상 머신 관리 시스템 접근 드라이버를 더 포함하고,
    상기 가상 머신 관리 시스템 접근 드라이버는 상기 외부의 가상 머신 관리 시스템 또는 호스트에서 사용되는 가상 컴퓨팅 자원 제어 기능을 상기 가상 클러스터 제어부에서 사용가능한 가상 컴퓨팅 자원 제어 기능으로 변환하도록 구성된, 가상 클러스터 관리 시스템.
  4. 제3항에 있어서,
    가상 머신 관리 시스템 접근 드라이버의 등록 또는 변경 또는 삭제를 수행하도록 구성된 드라이버 관리부를 더 포함하는, 가상 클러스터 관리 시스템.
  5. 제1항에 있어서,
    가상 클러스터 시스템의 구동 시점을 스케줄링하도록 구성된 타임 엔진; 및
    상기 복수의 가상 머신이 배치되는 호스트를 결정하도록 구성된 배치 엔진을 더 포함하고,
    상기 가상 클러스터 제어 정보 관리부는, 상기 타임 엔진 또는 상기 배치 엔진에 의해 생성되는 상기 복수의 가상 머신의 제어 정보 또는 상기 가상 클러스터 시스템의 제어 정보를 스케줄 테이블로 저장하는, 가상 클러스터 관리 시스템.
  6. 제5항에 있어서,
    상기 배치 엔진은 상기 복수의 가상 머신을 배치하기 위한 복수의 계산 모듈을 포함하고,
    상기 복수의 계산 모듈은 상기 제어 정보에 액세스 가능하도록 구성된, 가상 클러스터 관리 시스템.
  7. 제5항에 있어서,
    상기 배치 엔진은 상기 복수의 가상 머신의 배치도를 상기 제어 정보의 형태로 저장하도록 더 구성된, 가상 클러스터 관리 시스템.
  8. 제1항에 있어서,
    상기 가상 클러스터 시스템 또는 상기 가상 머신들에 대한 제어 요청을 수신하고, 상기 제어 요청의 속성에 따라 상기 제어 요청을 상기 가상 클러스터 제어 정보 관리부 또는 상기 가상 클러스터 제어부에 할당하도록 구성된 가상 클러스터 운영 관리부를 더 포함하는, 가상 클러스터 관리 시스템.
  9. 제1항에 있어서,
    상기 복수의 호스트의 자원 정보, 상태 정보, 상기 복수의 가상 머신의 자원 정보 및 상태 정보를 수집하고, 상기 복수의 호스트의 자원 정보, 상태 정보, 상기 복수의 가상 머신의 자원 정보, 상태 정보 및 상기 제어 정보 중 적어도 하나를 제공하도록 구성된 정보 관리부를 더 포함하는, 가상 클러스터 관리 시스템.
  10. 복수의 가상 머신을 포함하는 가상 클러스터 시스템에 대한 제어 요청을 수신하는 단계;
    상기 제어 요청에 따라 복수의 가상 클러스터 시스템의 제어 정보를 생성하거나 정정하는 단계;
    복수의 호스트를 관리하는 외부의 가상 머신 관리 시스템을 통해 또는 상기 복수의 호스트에 직접 접속하여 상기 복수의 가상 머신을 제어함으로써, 상기 제어 정보에 기초하여 상기 복수의 호스트에서의 상기 복수의 가상 머신의 동작을 제어하기 위한 명령을 출력하는 단계를 포함하는, 가상 클러스터 관리 시스템의 제어 방법.
  11. 제10항에 있어서,
    상기 제어 요청을 스케줄링이 요구되는 제어 요청 또는 스케줄링이 요구되지 않는 제어 요청으로 분류하는 단계; 및
    상기 스케줄링 요구되지 않는 제어 요청에 따라 상기 복수의 가상 머신의 동작을 제어하기 위한 명령을 출력하는 단계를 더 포함하고,
    상기 스케줄링이 요구되지 않는 제어 요청에 따라 상기 복수의 가상 머신의 동작을 제어하기 위한 명령을 출력하는 단계는 상기 제어 정보와는 독립적으로 수행하도록 하는, 가상 클러스터 관리 시스템의 제어 방법.
  12. 제10항에 있어서,
    상기 가상 클러스터 시스템에 대한 제어 요청에 따라 상기 가상 클러스터 시스템의 동작 시간을 결정하는 단계; 및
    결정된 상기 동작 시간에 따라 상기 제어 정보를 갱신하는 단계를 더 포함하는, 가상 클러스터 관리 시스템의 제어 방법.
  13. 제10항에 있어서,
    상기 가상 클러스터 시스템에 대한 제어 요청에 따라 상기 가상 클러스터 시스템의 배치를 결정하는 단계; 및
    결정된 상기 배치에 따라 상기 제어 정보를 갱신하는 단계를 더 포함하는, 가상 클러스터 관리 시스템의 제어 방법.
  14. 복수의 가상 머신을 포함하는 가상 클러스터 시스템에 대한 시스템 정보를 수신하는 단계;
    상기 복수의 가상 머신을 서브 그룹으로 분류하는 단계;
    상기 서브 그룹 사이의 관계 속성 또는 상기 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 결정하는 단계; 및
    상기 서브 그룹 사이의 관계 속성 또는 상기 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성에 따라, 상기 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계를 포함하는, 가상 클러스터 배치 방법.
  15. 제14항에 있어서,
    상기 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계는, 상기 복수의 가상 머신 중 일부를 상기 복수의 호스트 중 서로 상이한 호스트들에 배치하는 단계를 포함하는, 가상 클러스터 배치 방법.
  16. 제14항에 있어서,
    상기 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계는 적어도 하나의 계산 모듈을 통해 상기 복수의 가상 머신의 배치와 연관된 계산을 수행하는 단계를 포함하고,
    상기 적어도 하나의 계산 모듈 각각은,
    (a) 상기 서브 그룹에 대한 정보를 핸들링하는 단계;
    (b) 상기 서브 그룹을 파티셔닝하는 단계;
    (c) 상기 호스트를 정렬하는 단계;
    (d) 상기 호스트를 필터링하는 단계;
    (e) 상기 호스트를 추출하는 단계; 또는
    (f) 사용자 정의된 기능을 수행하는 단계 중 적어도 하나의 단계를 수행하도록 구성된, 가상 클러스터 배치 방법.
  17. 제16항에 있어서,
    상기 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계는, 상기 관계 속성에 따라 서로 상이한 계산 모듈의 조합을 이용하여 수행되는, 가상 클러스터 배치 방법.
  18. 제16항에 있어서,
    상기 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계는, 상기 관계 속성에 따라 서로 상이한 계산 모듈의 조합을 이용하여 수행되는, 가상 클러스터 배치 방법.
  19. 제16항에 있어서,
    상기 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계 이후에, 상기 가상 클러스터 시스템에 대한 배치 맵을 갱신하는 단계를 더 포함하고,
    상기 적어도 하나의 계산 모듈은 상기 배치 맵에 액세스 가능하도록 구성된, 가상 클러스터 배치 방법.
  20. 제14항에 있어서,
    상기 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계 이후에, 상기 가상 클러스터 시스템에 대한 배치 맵을 갱신하는 단계를 더 포함하는, 가상 클러스터 배치 방법.
  21. 제20항에 있어서,
    상기 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하는 단계는 상기 가상 머신을 상기 복수의 호스트 중 하나에 배치하도록 상기 배치 맵에 기초하여 호스트를 선택하는 단계를 포함하는, 가상 클러스터 배치 방법.
  22. 제14항에 있어서,
    상기 복수의 가상 머신을 서브 그룹으로 분류하는 단계는 상기 복수의 가상 머신의 자원요구사항에 기초하거나 사용자-정의에 기초하여 상기 복수의 가상 머신을 서브 그룹으로 분류하는 단계인, 가상 클러스터 배치 방법.
  23. 제14항에 있어서,
    상기 복수의 가상 머신을 서브 그룹으로 분류하는 단계는,
    분류 기준에 따라 상기 복수의 가상 머신을 서브 그룹으로 분류하는 단계이고,
    상기 분류 기준은 분류 히스토리 또는 기 저장된 분류 정보에 따라 결정되는, 가상 클러스터 배치 방법.
  24. 제14항에 있어서,
    상기 서브 그룹 사이의 관계 속성 또는 상기 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 결정하는 단계는,
    관계 속성의 결정에 대한 히스토리 또는 기 저장된 결정 정보에 따라, 상기 서브 그룹 사이의 관계 속성 또는 상기 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 결정하는 단계인, 가상 클러스터 배치 방법.
  25. 제24항에 있어서,
    상기 서브 그룹 사이의 관계 속성 또는 상기 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 검증하는 단계를 더 포함하는, 가상 클러스터 배치 방법.
  26. 복수의 가상 머신을 포함하는 가상 클러스터 시스템에 대한 시스템 정보를 수신하기 위한 요청 수신부; 및
    상기 요청 수신부와 연결된 배치 엔진을 포함하고,
    상기 배치 엔진은,
    상기 복수의 가상 머신을 서브 그룹으로 분류하고,
    상기 서브 그룹 사이의 관계 속성 또는 상기 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성을 결정하고,
    상기 서브 그룹 사이의 관계 속성 또는 상기 서브 그룹 내의 복수의 가상 머신 사이의 관계 속성에 따라, 상기 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하도록 구성된, 가상 클러스터 배치를 제공하기 위한 장치.
  27. 제26항에 있어서,
    상기 배치 엔진은 적어도 하나의 계산 모듈을 통해 상기 복수의 가상 머신 중 하나를 복수의 호스트에 배치하도록 구성되고,
    상기 적어도 하나의 계산 모듈 각각은,
    (a) 상기 서브 그룹에 대한 정보를 핸들링하는 단계;
    (b) 상기 서브 그룹을 파티셔닝하는 단계;
    (c) 상기 호스트를 정렬하는 단계;
    (d) 상기 호스트를 필터링하는 단계;
    (e) 상기 호스트를 추출하는 단계; 또는
    (f) 사용자 정의된 기능을 수행하는 단계 중 적어도 하나의 단계를 수행하도록 구성된, 가상 클러스터 배치를 제공하기 위한 장치.
  28. 제26항에 있어서,
    상기 배치 엔진은, 상기 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치한 후, 상기 가상 클러스터 시스템에 대한 배치 맵을 갱신하도록 더 구성된, 가상 클러스터 배치를 제공하기 위한 장치.
  29. 제28항에 있어서,
    상기 배치 엔진은, 상기 가상 머신을 상기 복수의 호스트 중 하나에 배치하도록 상기 배치 맵에 기초하여 호스트를 선택함으로써, 상기 복수의 가상 머신 중 하나를 복수의 호스트 중 하나에 배치하도록 구성된, 가상 클러스터 배치를 제공하기 위한 장치.
  30. 가상 머신을 사용하고자 하는 시점인 데드라인 및 상기 가상 머신에 대한 생성 시작 시간의 산출 요청을 수신하는 단계;
    상기 데드라인에 기초하여 상기 생성 시작 시간을 산출하는 단계; 및
    상기 생성 시작 시간을 외부 모듈로 송신하는 단계를 포함하는, 가상 클러스터 구동 시간 스케줄링 방법.
  31. 제 30 항에 있어서,
    상기 생성 시작 시간을 산출하는 단계는,
    생성 명령 전달 시간, 가상 컨테이너 생성 시간 및 총 (total) 부팅 시간에 기초하여 상기 생성 시작 시간을 산출하는 단계인, 가상 클러스터 구동 시간 스케줄링 방법.
  32. 제 31 항에 있어서,
    상기 가상 머신의 수는 2 이상이고,
    상기 생성 시작 시간을 산출하는 단계는,
    상기 가상 머신 각각에 대한 생성 명령 전달 시간이 순차적으로 처리되고, 상기 가상 머신 각각에 대한 가상 컨테이너 생성 시간이 순차적 또는 병렬적으로 처리되고, 상기 가상 머신 각각에 대한 총 부팅 시간이 병렬적으로 처리되도록 상기 생성 시작 시간을 산출하는 단계인, 가상 클러스터 구동 시간 스케줄링 방법.
  33. 제 32 항에 있어서,
    상기 생성 시작 시간을 산출하는 단계는,
    상기 가상 머신이 동일한 호스트에 배치된 경우, 상기 가상 머신 각각에 대한 가상 컨테이너 생성 시간이 하나의 호스트에서 순차적으로 처리되고,
    상기 가상 머신이 서로 다른 호스트에 배치된 경우, 상기 가상 머신 각각에 대한 가상 컨테이너 생성 시간이 서로 다른 호스트에서 병렬적으로 처리되도록 상기 생성 시작 시간을 산출하는 단계인, 가상 클러스터 구동 시간 스케줄링 방법.
  34. 제 31 항에 있어서,
    상기 총 부팅 시간은 부팅 선택 시간, 부팅 시간, 초기화 시간 및 지연 시간 중 적어도 하나 이상의 시간을 합산한 시간인, 가상 클러스터 구동 시간 스케줄링 방법.
  35. 제 30 항에 있어서,
    상기 생성 시작 시간을 산출하는 단계는,
    생성 완료 시간에 기초하여 상기 생성 시작 시간을 산출하는 단계인, 가상 클러스터 구동 시간 스케줄링 방법.
  36. 제 35 항에 있어서,
    상기 산출하는 단계는,
    상기 생성 완료 시간과 상기 데드라인 사이에 상기 여유 시간이 확보되도록 상기 생성 시작 시간을 산출하는 단계인, 가상 클러스터 구동 시간 스케줄링 방법.
  37. 제 30 항에 있어서,
    상기 산출하는 단계는,
    실행 슬롯을 기반으로 상기 생성 시작 시간을 산출하는 단계인, 가상 클러스터 구동 시간 스케줄링 방법.
  38. 제 37 항에 있어서,
    상기 실행 슬롯은 일정 시간 간격으로 구획되는, 가상 클러스터 구동 시간 스케줄링 방법.
  39. 제 30 항에 있어서,
    상기 산출 요청에 대하여 적용하고자 하는 시간 모델을 결정하는 단계를 더 포함하고,
    상기 산출하는 단계는,
    상기 시간 모델에 기초하여 상기 생성 시작 시간을 산출하는 단계인, 가상 클러스터 구동 시간 스케줄링 방법.
  40. 제 39항에 있어서,
    사용자의 요청을 통해 다른 시간 모델을 추가하는 단계;
    상기 사용자의 요청을 통해 상기 시간 모델을 변경하는 단계; 또는
    상기 사용자의 요청을 통해 상기 시간 모델을 삭제하는 단계를 더 포함하는, 가상 클러스터 구동 시간 스케줄링 방법.
  41. 제 30 항에 있어서,
    상기 수신하는 단계는,
    상기 가상 머신에 대한 구동 시작 시간 및 구동 종료 시간을 포함하는 구동 주기 및 상기 가상 머신을 주기적으로 구동시키기 위한 산출 요청을 수신하는 단계인, 가상 클러스터 구동 시간 스케줄링 방법.
  42. 가상 머신을 사용하고자 하는 시점인 데드라인을 수신하는 단계;
    상기 데드라인에 기초하여 생성 시작 시간을 산출하는 단계; 및
    상기 생성 시작 시간에 기초하여 상기 데드라인 이전에 상기 가상 머신이 생성 완료되도록 상기 가상 머신을 생성하는 단계를 포함하는, 가상 클러스터 구동 시간 스케줄링 방법.
  43. 가상 머신을 사용하고자 하는 시점인 데드라인 및 상기 가상 머신에 대한 생성 시작 시간의 산출 요청을 수신하는 수신부;
    상기 데드라인에 기초하여 상기 생성 시작 시간을 산출하는 산출부; 및
    상기 생성 시작 시간을 외부 모듈로 송신하는 송신부를 포함하는, 가상 클러스터 구동 시간 스케줄링 장치.
  44. 가상 머신을 사용하고자 하는 시점인 데드라인을 수신하는 수신부;
    상기 데드라인에 기초하여 생성 시작 시간을 산출하는 산출부; 및
    상기 생성 시작 시간에 기초하여 상기 데드라인 이전에 상기 가상 머신이 생성 완료되도록 상기 가상 머신을 생성하는 생성부를 포함하는, 가상 클러스터 구동 시간 스케줄링 장치.
PCT/KR2016/002985 2015-03-24 2016-03-24 가상 클러스터 관리 시스템 및 이를 제어하기 위한 방법 WO2016153288A1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
KR10-2015-0040457 2015-03-24
KR1020150040495A KR101947221B1 (ko) 2015-03-24 2015-03-24 가상 클러스터 구동 시간 스케줄링 방법 및 장치
KR10-2015-0040459 2015-03-24
KR10-2015-0040495 2015-03-24
KR1020150040457A KR101865994B1 (ko) 2015-03-24 2015-03-24 가상 클러스터 관리 시스템 및 이를 제어하기 위한 방법
KR1020150040459A KR101916809B1 (ko) 2015-03-24 2015-03-24 가상 클러스터 배치 방법 및 이를 제공하기 위한 장치

Publications (2)

Publication Number Publication Date
WO2016153288A1 true WO2016153288A1 (ko) 2016-09-29
WO2016153288A9 WO2016153288A9 (ko) 2017-04-20

Family

ID=56978987

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2016/002985 WO2016153288A1 (ko) 2015-03-24 2016-03-24 가상 클러스터 관리 시스템 및 이를 제어하기 위한 방법

Country Status (1)

Country Link
WO (1) WO2016153288A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112333841A (zh) * 2020-11-18 2021-02-05 赛尔网络有限公司 基于sd-wan的网络切片调度系统及方法
KR20210083465A (ko) * 2019-12-26 2021-07-07 연세대학교 산학협력단 가상머신 워크로드 클러스터링 예측을 활용한 높은 전력 효율성을 제공하는 다중 서버 관리 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030051930A (ko) * 2001-12-20 2003-06-26 한국전자통신연구원 클러스터 시스템의 고 가용성 구현장치 및 방법
KR20090118934A (ko) * 2007-04-26 2009-11-18 인터내셔널 비지네스 머신즈 코포레이션 분산형 고장 허용 및 고가용성 컴퓨팅 시스템
US20140047444A1 (en) * 2011-04-20 2014-02-13 Nec Corporation Virtual machine managing apparatus, virtual machine managing method, and program thereof
KR20140055112A (ko) * 2012-10-30 2014-05-09 삼성에스디에스 주식회사 고가용성 가상머신 구성 시스템 및 방법, 이를 기록한 기록매체
KR20150000160A (ko) * 2013-06-24 2015-01-02 한국전자통신연구원 분산 가상 스위치를 이용한 네트워크 구현 방법, 이를 수행하는 네트워크 장치 및 분산 가상 스위치 기반 네트워크 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030051930A (ko) * 2001-12-20 2003-06-26 한국전자통신연구원 클러스터 시스템의 고 가용성 구현장치 및 방법
KR20090118934A (ko) * 2007-04-26 2009-11-18 인터내셔널 비지네스 머신즈 코포레이션 분산형 고장 허용 및 고가용성 컴퓨팅 시스템
US20140047444A1 (en) * 2011-04-20 2014-02-13 Nec Corporation Virtual machine managing apparatus, virtual machine managing method, and program thereof
KR20140055112A (ko) * 2012-10-30 2014-05-09 삼성에스디에스 주식회사 고가용성 가상머신 구성 시스템 및 방법, 이를 기록한 기록매체
KR20150000160A (ko) * 2013-06-24 2015-01-02 한국전자통신연구원 분산 가상 스위치를 이용한 네트워크 구현 방법, 이를 수행하는 네트워크 장치 및 분산 가상 스위치 기반 네트워크 시스템

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210083465A (ko) * 2019-12-26 2021-07-07 연세대학교 산학협력단 가상머신 워크로드 클러스터링 예측을 활용한 높은 전력 효율성을 제공하는 다중 서버 관리 방법
KR102284074B1 (ko) * 2019-12-26 2021-07-30 연세대학교 산학협력단 가상머신 워크로드 클러스터링 예측을 활용한 높은 전력 효율성을 제공하는 다중 서버 관리 방법
CN112333841A (zh) * 2020-11-18 2021-02-05 赛尔网络有限公司 基于sd-wan的网络切片调度系统及方法

Also Published As

Publication number Publication date
WO2016153288A9 (ko) 2017-04-20

Similar Documents

Publication Publication Date Title
WO2020017843A1 (ko) 클라우드 플랫폼에서의 클러스터 리소스 할당 및 관리 방법
CN101493781B (zh) 一种虚拟机系统及其启动方法
Humphries et al. ghost: Fast & flexible user-space delegation of linux scheduling
US7451443B2 (en) Online computer maintenance utilizing a virtual machine monitor
JP3989911B2 (ja) グローバル割込み待ち行列の仮想化
US8365167B2 (en) Provisioning storage-optimized virtual machines within a virtual desktop environment
US10116735B2 (en) Service migration across cluster boundaries
WO2020017846A1 (ko) 클라우드 플랫폼에서 어플리케이션 컨테이너의 볼륨(스토리지) 프로비저닝 방법
US8635615B2 (en) Apparatus and method for managing hypercalls in a hypervisor and the hypervisor thereof
WO2014114060A1 (zh) 基于当前credit进行预测调度的处理器资源精确分配方法
US20180018244A1 (en) Node system, server apparatus, scaling control method, and program
WO2013051136A1 (ja) 仮想サーバ処理制御方法、システムおよび仮想サーバ処理制御管理サーバ
US20200192689A1 (en) Container migration in computing systems
JP2008269332A (ja) サーバ仮想化環境におけるクラスタシステム構成方法及びクラスタシステム
WO2015106497A1 (zh) 一种基于当前vcpu调度状态的动态中断均衡映射方法
CN1936845A (zh) 一种虚拟机系统输入/输出设备动态分配的方法及其设备
Iordache et al. High performance in the cloud with FPGA groups
WO2016153288A1 (ko) 가상 클러스터 관리 시스템 및 이를 제어하기 위한 방법
JP2016091555A (ja) データステージング管理システム
Singh et al. Advanced memory reusing mechanism for virtual machines in cloud computing
EP3827333A1 (en) Method for controlling execution of heterogeneous operating systems and electronic device and storage medium therefor
WO2020162715A1 (en) Electronic device, storage medium, and method for process scheduling
CN106406978B (zh) 私有云虚拟机模板自动制作装置及方法
US9383986B2 (en) Safe low cost web services software deployments
CN114816665B (zh) 混合编排系统及超融合架构下虚拟机容器资源混合编排方法

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: 16769106

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: 16769106

Country of ref document: EP

Kind code of ref document: A1