Sign In to Follow Application
View All Documents & Correspondence

Method And Device For Deploying Virtual Computers

Abstract: To deploy virtual computers (VMs) so that excesses or deficiencies of hardware resources of physical computers are caused to not occur as much as possible. [Solution] A VM deployment device for deploying a plurality of VMs in a plurality of physical computers is constructed. The VM deployment device stores VM load information which is information representing for each VM the resource load value of the VM in each of a plurality of temporal periods. The VM deployment device on the basis of the VM load information selects 2 or more VMs so that the difference between the resource load values for each temporal period is maximized and deploys the selected 2 or more VMs in the same physical computer.

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
16 April 2013
Publication Number
22/2016
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
Parent Application

Applicants

HITACHI LTD.
6 6 Marunouchi 1 chome Chiyoda ku Tokyo 1008280

Inventors

1. CAO Le Thanh Man
c/o Yokohama Research Laboratory HITACHI LTD. 292 Yoshida cho Totsuka ku Yokohama shi Kanagawa 2440817
2. KAYASHIMA Makoto
c/o Yokohama Research Laboratory HITACHI LTD. 292 Yoshida cho Totsuka ku Yokohama shi Kanagawa 2440817

Specification

e [DESCRIPTION] [Title of Invention] METHOD AND APPARATUS FOR ALLOCATING VIRTUAL COMPUTER [Technical Field] [0001] The present invention relates to a technique for allocating a virtual computer. [Background Art] [0002] A plurality of virtual computers (VMs) can be operated on one computer by virtualization software that is configured to make a physical resource of a computer seem to be a plurality of logical resources. Moreover, since the virtualization software absorbs a characteristic of hardware, a VM does not depend on a characteristic of hardware of a computer, and a VM can be moved between hardware easily. Hereafter, a computer that is configured to operate a plurality of VMs by executing the virtualization software is simply referred to as a "server". [0003] For instance, some corporate enterprises introduce an OS (Operating System) for a business server to a VM and operate the VM as a business server. In this case, one VM is utilized by a plurality of clients by ordinary. [0004] On the other hand, there is a technique for introducing an OS for a desktop to a VM and utilizing the VM as a virtual desktop. In this case, one VM is utilized by one client by ordinary. [0005] In the case in which a VM is utilized, SInce a plurality of VMs share a hardware resource of the same server, there is a possibility that a utilization ofa hardware resource conflict with each other between VMs. ""- Conseq~eritly,it is difficult to determine how mahy VMs "are operated for one server. [0006] In accordance with Patent Literature 1, for every combination of VM types, an adequacy degree (score) for allocating VM types of the combination to the same server is prepared. Based on a score for every combination of VM types, for each server to which a new VM can be allocated, an adequacy degree (index value) for allocating the new VM to the server is calculated. Based on the index value that has been calculated, an allocation destination server of the new VM is decided. [Citation List] [Patent Literature] [0007] [PTL 1] International Publication No. 2007/136021 Pamphlet [Summary of Invention] [Technical Problem] [0008] In the case in which a VM is utilized as a virtual desktop, a hardware resource that is required for the virtual desktop (such as a CPU processing time, a memory amount, an HDD access bandwidth, and an HDD access time, or a network band) is rapidly changed by a user operation of a client of the virtual desktop in some cases. Consequently, in the case in which a VM is allocated to a server, in order to provide a comfortable performance to each VM on a constant basis, it is necessary to execute an allocation that is provided with a considerable degree of allowance as compared with the case of virtualizing a business server. However, that causes dissipation of a resource of a server. [0009] An object of the present invention is to allocate a VM in such a manner that the' excess or deficiency of a.hardware resource:of a ph)rsicaleOinlJuter {such e as a server) does not occur preferably. [Solution of Problem] [0010] AVM allocation apparatus that is configured to allocate a plurality of virtual computers (VM) to a plurality of physical computers is constructed. The VM allocation apparatus stores the VM load information that is information that indicates a resource load value of a VM for each of a plurality of time sections for every VM. The VM allocation apparatus selects at least two VMs in which a difference of resource load values is largest for every time section based on the VM load information and allocates the at least two VMs that have been selected to the same physical computer. [oon] Any type can be adopted for the VM that is allocated by the VM allocation apparatus. The VM allocation apparatus is suitable for an allocation of a virtual computer of a type in which a hardware resource that is required is changed rapidly in some cases like a virtual computer that is used as a virtual desktop. [Advantageous Effects of Invention] [0012] In accordance with the present invention, a VM can be allocated in such a manner that the excess or deficiency of a hardware resource of a physical computer does not occur preferably. [Brief Description of Drawings] [0013] [Fig. 1] Fig. 1 is a view showing a configuration example of an entire system that includes a VM allocation apparatus in accordance with an embodiment 1 of the present invention. [Fig. 2] . Fig." 2 is a view showing a configuration example-of a pattern DB 201. - 4- e [Fig. 3] Fig. 3 is a view showing a configuration example of an allocation evaluation result DB 114. [Fig. 4] Fig. 4 is a view showing a configuration example of a management part 118. [Fig. 5] Fig. 5 is a view showing a configuration example of an allocation result DB 117. [Fig. 6] Fig. 6 is a flowchart showing an example of an entire flow of a processing that is executed in the embodiment 1. [Fig. 7] Fig. 7 is a sequence drawing showing an example of a detailed flow of a step 402 and a step 403. [Fig. 8] Fig. 8 is a flowchart showing an example of a detailed flow of the step 504 of Fig. 7. [Fig. 9] Fig. 9 is a flowchart showing an example of a detailed flow of the step 602 of Fig. 8. [Fig. 10] Fig. 10 is a sequence drawing showing an example of a detailed flow of the step 405 of Fig. 6. [Fig. 11] Fig. 11 is a view showing a configuration example of an entire system that includes a VM allocation apparatus in accordance with an embodiment 2 of the present invention. [Fig. 12] Fig. 12 is a VIew showing a configuration example of a ,VM allocation apparatus 907. .',' e [Fig. 13] Fig. 13 is a View showing a configuration example of the VM detailed information DB 1006. [Fig. 14] Fig. 14 is a flowchart showing an example of an entire flow of a processing that is executed in the embodiment 2. [Fig. 15] Fig. 15 is a sequence drawing showing an example of a detailed flow of the step 1103 of Fig. 14. [Fig. 16] Fig. 16 is a sequence drawing showing an example of a detailed flow of the step 1104 of Fig. 14. [Description of Embodiments] [0014] Some embodiments of the present invention will be described in detail with reference to drawings in the following. [0015] In the following descriptions, while a wide variety of information will be described in the expression of "xxx DB" and "xxx list" in some cases (DB is an abbreviation of a database), a wide variety of information can also be represented by a data structure other than DB and a list. In order to indicate that a wide variety of information is not depended on a data structure, the expressions of "xxx DB" and "xxx list" can also be referred to as "xxx information". [0016] In the following descriptions, while a name is used for identifying an element, an ID or a number can also be used as the identification information as substitute for a name. [0017] In "the following descriptions, the processmgwill be described while a" e function (or a program) that is displayed in the case in which a program is executed by a processor (such as a CPU (Central Processing Unit» is handled as a subject in some cases. However, since the processor executes the predetermined processing by using a storage resource (such as a memory) and/or a communication interface device (such as a communication port) as it decides proper, a subject of a processing can also be a processor. Moreover, the processor can include a hardware circuit that executes a part or a whole of a processing that is executed by the processor. A computer program can be installed from a program source to each of the computers. The program source can be a program distribution server or a storage medium for instance. [Embodiment 1] [0018] The present embodiment is associated with an example of an allocation method in consideration of a variation of a resource utilization ratio of a VM depending on a time. In the following descriptions, a virtual computer that is utilized as a virtual desktop is described as a "VM" and each of a plurality of VMs is described as "VM#" in some cases (# is an alphabet of a lower-case letter such as a and b). [0019] Fig. 1 is a view showing a configuration example of an entire system that includes a VM allocation apparatus in accordance with an embodiment 1 of the present invention. [0020] For a data center 100, a VM can be created, allocated, and operated in accordance with a request of a manager who operates a management terminal 105. A user of a client computer (hereafter referred to as a client) 171 can carry out a remote connection to a VM on the data center 100 in a mode that is called a screen transfer type thin client that has been referred to as- andean utilize-,:the ;VM.· An example of the- data center 100 is a data e 'center 100 of a corporate enterprise and includes a base for a centralized management of a virtual desktop. In the present embodiment, one VM can be one virtual desktop. A client 171 can access a VM via a LAN 172. As substitute for the LAN 172, a communication network of other kind can also be adopted. [0021] The data center 100 in accordance with the present embodiment is provided with a server group that includes a server 103 and a server 104, a VM allocation apparatus 101 that is provided with a function for allocating a VM to a server, a management terminal 105 that is provided with a function for operating the VM allocation apparatus 101. Each server, the VM allocation apparatus 101, and the management terminal 105 are coupled to a LAN (Local Area Network) 102. As substitute for the LAN 102, a communication network of other kind can also be adopted. [0022] A server will be described while taking the server 103 as an example. [0023] The server 103 is provided with a communication interface apparatus (such as a NIC (Network Interface Card)), a storage resource (such as a memory and an HDD (Hard Disk Drive)), and a CPU that is coupled to the communication interface apparatus and the storage resource. The storage resource stores virtualization software 131 that is software that is provided with a virtualization function. Moreover, the CPU executes the virtualization software 131. One or a plurality of VM, such as a VMa 133 and a VMb 134, is allocated on the virtualization software 131. [0024] As a storage resource that is included in the server 103, there is a storage apparatus 132 that is coupled to the server 103 without a mediate LAN 102 (hereafter referred to as a local storage apparatus) for instance. The local storage apparatus ·13~ is.configured.to store a VDa (a virttialdiskfile a). 135 - 8 - e .that is an image of a virtual storage re$Qurce (such as a virtual HDD) ofthe . VMa 133 and a VDb (a virtual disk file b) 136 that is an image of a virtual storage resource (such as a virtual HDD) of the VMb 134. The VMa 133 (the VMb 134) refers to and/or modifies the VDa 135 (the VDb 136) via the virtualization software 131 in operation. [0025] The virtualization software 131 is provided with a function for receiving an instruction from an external apparatus (such as another server or the VM allocation apparatus 101) of the server 103 that is provided with the software 131 and execute to instantiate, start, stop, and move VM (a movement of a VM from a certain server to another server) in accordance with the instruction. Moreover, the virtualization software 131 is provided with a function for monitoring the resource utilization status (at least one of a CPU utilization ratio, a memory utilization ratio, an HDD utilization ratio, and a network bandwidth that has been utilized) of a VM that is operated on the software 131 and the server 103 that is provided with the software 131. [0026] The configuration and function of each server other than the server 103 in the server group are equivalent to the configuration and function of the server 103 in a practical way. However, the performance of hardware resources (such as a processing performance of a CPU) of all servers in the server group is not always equivalent to each other. [0027] The VM allocation apparatus 101 is configured to create and allocate a VM to a server in a server group. The VM allocation apparatus 101 is at least one computer for instance and is provided with a communication interface apparatus (such as a NIC (Network Interface Card», a storage resource (such as a memory and an HDD (Hard Disk Drive», and a CPU that is coupled to the communication interface apparatus andthe storage resource. . The communication '.interface apparatus .. is ,coupled to':·a"management . 9' e terminal 105 and a plurality of servers VIa the LAN 102." The storage resource stores a VM list 111, a server list 112, a log DB 113, an allocation evaluation result DB 114, an allocation result DB 117, and at least one computer program. In the case in which the CPU executes at least one computer program in the storage resource, the functions of an allocation execution part 115, an allocation determination part 116, and a management part 118 can be displayed. Each configuration element of the VM allocation apparatus 101 will be described later. [0028] The management terminal 105 IS provided with a function for communicating with the VM allocation apparatus 101, a function for inputting information to the VM allocation apparatus 101, and a function for monitoring the status of activation and an operation of a program in the VM allocation apparatus 101. A manager operates the management terminal 105 to manage the data center 100. In other words, in the present embodiment, the VM allocation apparatus 101 can function as a management server, and the management terminal 105 can function as a management client that accesses the VM allocation apparatus 101. [0029] In the next place, each configuration element of the VM allocation apparatus 101 will be described in the following. [0030] The VM list 111 is a list of information that is associated with each VM that will be operated by a manager among a plurality of VMs that exist in the server group. The information that is associated with a VM is information that includes information that indicates a name of a VM and the specification of the VM (an operating frequency of a CPU, a memory capacity, or an HDD capacity) for instance. [0031] The server list 112 is a list of information that isassociatedwit·h;each· ser.ver - 10· e· .in the server group. The information·that is associated with a server IS information that includes information that indicates an IP address of the server for instance. [0032] Fig. 2 is a view showing a configuration example of a pattern DB 20l. [0033] The pattern DB 201 is a database that is configured to store information that indicates a change of a resource utilization ratio of each VM for a certain period of time. The information that indicates a change of a resource utilization ratio of a VM is information that indicates a resource utilization ratio of a VM in each time section (for every 6 hours for instance) for a certain period of time for instance. More specifically, the pattern DB 201 is provided with the following information for every VM for instance: (1) a VM name 211 that is a name ofa VM; (2) a CPU utilization ratio change 212 that indicates a CPU utilization ratio of a VM in each time section (that is, a CPU utilization ratio change of a VM for a certain period of time); and (3) an HDD utilization ratio change 213 that indicates an HDD utilization ratio of a VM in each time section (that is, an HDD utilization ratio change of a VM for a certain period of time). The HDD utilization ratio can be a ratio of time when a VM accesses an HDD in a period of time (in one second for instance). Moreover, the HDD utilization ratio can be a ratio of a band that is used for data writing or reading to an HDD by a VM in a period of time (in one second for instance) to a band in which the physical maximum transmission/reception is possible to an HDD for a server. In the present embodiment, the information that indicates a CPU utilization ratio and an HDD utilization ratio is recorded on a day-to-day basis. However, a length of the period of time can also be other period of time such as one week and one month. As a VM resource ... utilization ratio,· assuDstitute Jorbr in addition to at least-oheof the CPU· - 11- -e .utilization' ratio and the -HDD utilization ratio;-the information that. indicates a change of a memory utilization ratio of a VM and a change of a utilization ratio of a network band can also be stored into the pattern DB 20l. In the present embodiment, a resource utilization ratio in a time section is an average value of a resource utilization ratio in the time section. However, as substitute for an average value, a value that satisfies the predetermined conditions in a time section (a maximum value or a minimum value for instance) can also be adopted. [0034] Fig. 3 is a view showing a configuration example of an allocation evaluation result DB 114. [0035] The allocation evaluation result DB 114 is provided with information that indicates an evaluation in accordance with an allocation result of a VM for every server. More specifically, the allocation evaluation result DB 114 is provided with the following information for every server for instance: (1) a server name 311 that is a name of a server; (2) an allocation CPU utilization ratio 312 that indicates the total of a CPU utilization ratio of all VMs in the server; (3) an operation CPU utilization ratio 313 that indicates a CPU utilization ratio when a server is operated; and (4) an evaluation result 314 that indicates whether or not an allocation of a VM to a server is suitable. As a value of the evaluation result 314, there are three types of deficiency, dissipation, and adequacy. [0036] Fig. 4 is a view showing a configuration example of a management part 118. [0037] The management part 118 is provided with a management console 2401, a ., -parameter- DB 2402, an .initial 'alloeation management p-art 2403, and-a" - 12- relocation management part 2404. [0038] The management console 2401 is configured to input information that is included in the VM list 111 and the server list 112 and information that is included in the parameter DB 204. The management console 2401 is configured to display information that is included in the allocation result DB 117. Moreover, the management console 2401 is configured to activate the initial allocation management part 2403 and the relocation management part 2404. [0039] The parameter DB 2402 is a database that is provided with a parameter for operating the initial allocation management part 2403 and the relocation management part 2404. The parameter DB 2402 is provided with the following parameters (1) to (5) for instance: (1) a collection ofVMs to be allocated: L; (2) a collection of servers that can be utilized: S; (3) a standard for judging a resource status of a server: HighCPULevel, LowCPULevel; (4) a standard (an acceptable range) for judging an amount of VMs that is located on a server: K; and (5) a time interval (a relocation interval) for executing a judgment of whether or not a relocation is required (a relocation necessity judgment): T. Each of HighCPULevel, LowCPULevel, and K is one of values in the range of oto 100%. [0040] The acceptable range is an index that indicates until what percent of server resources is utilized for a VM. For instance, it is necessary that an average utilization ratio of a CPU (an average CPU utilization ratio) of at least one VM that is allocated on a server is equal to or less than K% of a CPU " ~,pFocessing ability Of a' server. As'·c K:iscloser tb 100', more VMs can be." - 13 . allocated onthe.!3erver. However, in the case inwhioh.a-resourceutilization ratio of a VM becomes higher rapidly, there is a high possibility that a server cannot be addressed. In an opposite manner, as K is closer to 0, there is a possibility that a dissipation of a resource of a server occurs. In the present embodiment, a processing ability of a CPU (a CPU utilization ratio) is adopted as a representative of a resource utilization ratio. However, an acceptable range can also be set in consideration of a resource utilization ratio of other kind. A setting range can be different depending on a kind of a resource utilization ratio. [0041] The "relocation interval" is "after the end of working hours of the final working day of every week" or "weekend of every week" for instance. [0042] The initial allocation management part 2403 is configured to manage a VM allocation of the first time. The initial allocation management part 2403 is configured to activate the allocation determination part 116 and provide a parameter that is stored into the parameter DB 2402 to the allocation determination part 116. Moreover, the relocation management part 2404 issues a relocation instruction to the allocation determination part 116 for every relocation interval T. [0043] Fig. 5 is a view showing a configuration example of an allocation result DB 117. [0044] The allocation result DB 117 is a database that is configured to indicate a server and a VM that is allocated to the server. More specifically, the allocation result DB 117 is provided with the following information for every server for instance: (1) a server name 2501 that is a name ora server; and (2). a VM collection 2502 that is arl- cQllection of a nanie;Qfa VMthat is' ': . 14· allocated to a server. [0045] The allocation determination part 116 refers to HighCPULevel, LowCPULevel, and K that are parameters that have been stored into the parameter DB 2402, allocates at least one VM that is indicated by the parameter L to at least one server that is indicated by the parameter S, and stores a result of the allocation into the allocation result DB 117. [0046] The allocation execution part 115 communicates with the virtualization software 131 and 142 and executes an allocation of a VM that conforms to the allocation result DB 117. [0047] As an allocation of a VM in the present embodiment, there are two types of the "initial allocation" and "relocation". [0048] The initial allocation is an allocation that conforms to the following condition (a) or (b): (1) a VM is allocated to a server group in the first place after an activation of the data center 100; (2) a difference between the number ofVMs that have been allocated at a VM allocation of n-th time (previous VM number) and the number of VMs that are allocated at the next VM allocation (a VM allocation of (n+l)-th time) (this time VM number) exceeds the predetermined number (for instance, the number ofVMs that are allocated are changed to a large degree); and (3) an initial allocation is indicated by a manager. For the condition (b), anyone of the previous VM number and the this time VM number can be larger. For an initial allocation, an information input from a manager is necessary. [0049] .. The relocation is. cha-nging an allocatien -destination of afteast one of a-:- - 15 - ". plurality of VMs.in the server group from a certain server to another server. An information input from a manager is not necessary in particular for relocation. [0050] Fig. 6 is a flowchart showing an example of an entire flow of a processing that is executed in the embodiment l. [0051] In the step 400, the data center 100 is activated. More specifically, a manager activates a server 133 (104) to which the virtualization software 131 (141) has been introduced and couples a LAN 102 to each server for instance. Moreover, a manager activates a VM allocation apparatus 101 and a management terminal 105 and couples the VM allocation apparatus 101 and the management terminal 105 to the LAN 102. The step 400 can be carried out a predetermined time (such as 30 minutes) before a work start time of a corporate enterprise for instance. [0052] In the step 401 in the next place, whether it is an initial allocation or not is judged. A judgment of whether it is an initial allocation or not can be carried out by a manager or a computer (such as the VM allocation apparatus 101). In the case in which a result of a judgment of the step 401 is positive, a step 402 and a step 403 are executed. In the case in which a result of a judgment of the step 401 is negative, the step 402 and the step 403 are skipped and a step 404 is executed. [0053] In the step 402, the management terminal 105 receIves an input of the specified information (such as information that is associated with a VM of an allocation target and a condition for an allocation) from a manager and inputs the specified information to the VM allocation apparatus 10l. [0054] In.the step 403,. the' VM allocation apparatus 101 executes an allocation ofa ., . 16- e VM based on the specified information that has been input. [0055] In the step 404 in the next place, a relocation necessity judgment is carried out. Ajudgment of whether the relocation is necessary or not can be carried out by a manager or a computer (such as the VM allocation apparatus 101). In the present embodiment, the VM allocation apparatus 101 executes the step 404 at every given time interval. The relocation necessity judgment is carried out at every relocation time interval T. The relocation time interval T is a value that is included in the specified information that has been input by a manager in the step 402 and is a parameter value that is included in a parameter DB 2402. In the case in which a result of a judgment of the step 404 is positive, a step 405 and a step 406 are executed. In the case in which a result of a judgment of the step 404 is negative, the step 405 is skipped and the step 406 is executed. [0056] In the step 405, the VM allocation apparatus 101 relocates a part (or a whole) ofVMs of a plurality ofVMs that have been allocated in the step 403. [0057] In the step 406, a service in accordance with an operation of a VM is supplied. For instance, a VM is operated for a certain period of time, such as a work time of one day, and as a result, a service is supplied to a user of a client 17l. More specifically, in the case in which the screen transfer software is executed by a VM, a virtual desktop that is supplied by a VM is displayed on a display screen of the client 171 that has been coupled to the VM. During an operation of the VM, the virtual software 131 (141) monitors a resource utilization ratio of a server 103 (104) that executes the virtual software 131 (141) and a resource utilization ratio of the VM, and stores the information that indicates the monitoring results into the VM allocation apparatus 10l. More specifically, the following steps are executed: (1)'The virttials6ftwar'e 131 (141) monitors a CPU utilization ratio and an' - 17- ·.e HDDutilization ratio for each VM that is executed by 8.$erver 103 (104) that is provided with the virtual software 131 (141). At every given time interval (at every 6 hours for instance), the virtual software 131 (141) stores the information that indicates a CPU utilization ratio and an HDD utilization ratio (such as an average of a CPU utilization ratio and an average of an HDD utilization ratio for a certain period of time) into a pattern DB 113 of the VM allocation apparatus 10l. (2) The virtual software 131 (141) calculates a CPU utilization ratio for a certain period of time (such as one hour) for a server 103 (104) that is provided with the virtual software 131 (141) at every given time interval. The virtual software 131 (141) stores a value that indicates a CPU utilization ratio that has been calculated into the allocation evaluation result DB 114. [0058] As substitute for the virtual software 131 (141), the VM can also execute a monitoring tool (such as an application program) that is configured to monitor a resource utilization status of the VM and a resource utilization status of a server on which the VM has been allocated. In this case, the monitoring tool can update a database (such as the pattern DB 113 and the allocation evaluation result DB 114) on a periodic basis. [0059] Mter a certain period of time (when a work time of one day is ended for instance), the step 406 is terminated. [0060] In the step 407, the data center 100 is stopped. In the step 407, it is also possible that a VM in a server group cannot be utilized after a work time of a corporate enterprise for instance. More specifically, the virtual software 131 (141) stops a VM and a power supply of the server 103 (104) is turned off. A manager can also stop the VM allocation apparatus 101 and the management terminal 105. [0061] - 18 . .. , Fig~ 7 is a sequence'drawing showing an example of a netailed flow of a step 402 and a step 403. [0062] In the step 402, the information that has been input with the management terminal 105 by a manager is transmitted to a management console 2401 in a management part 118 of the VM allocation apparatus 101. More specifically, the following steps are executed in the step 402 for instance: (1) The information that has been input by a manager includes information that is associated with a VM that will be operated (such as a VM name). The management console 2401 registers the information that is associated with a VM to a VM list 111. (2) The information that has been input by a manager includes information that is associated with a server that is utilized (such as an IP address of a server). The management console 2401 registers the information that is associated with a server to a server list 112. (3) The management console 2401 stores the information that indicates a resource utilization ratio of a VM into a pattern DB 113 for every VM that is identified by the VM list 111. A value of the resource utilization ratio of a VM, which is stored into the pattern DB 113, can be determined based on a resource utilization ratio of a virtual desktop (VM) that was utilized in the past by a user or can a value that indicates a resource utilization ratio of a virtual desktop (VM) during a predetermined test operation period for instance. (4) The information that has been input by a manager includes a parameter "HighCPULevel" and a parameter "LowCPULevel". The management console 2401 stores the parameters into a parameter DB 2402. (5) The information that has been input by a manager includes the parameter K (an acceptable range: K) that has been described before. The management console 2401 stores the parameter K into a parameter DB - 19 - 0- (6), The information. that has been input by a manager includes the parameter T (a relocation interval: T) that has been described before. The management console 2401 stores the parameter T into a parameter DB 2402. [0063] In the step 501 in the next place, the management terminal 105 transmits a VM allocation instruction to the management part 118 in accordance with an operation of a manager. The management part 118 receives the VM allocation instruction, activates the allocation determination part 116 in a step 502, and gives a plurality of parameters to the allocation determination part 116 in a step 503. The plurality of parameters is the following parameters for instance: (1) a collection ofVMs to be allocated: L; (2) a collection of servers that can be utilized: S; (3) HighCPULevel and LowCPULevel; and (4) an acceptable range: K. A value of L is the information that is associated with all VMs that are registered to the VM list 111 (such as a VM name of all VMs). A value of S is the information that is associated with all servers that are registered to the server list 112 (such as an IP address of all servers). The values of HighCPULevel, LowCPULevel, and K are values that have been input by a manager in the step 402. [0064] In the step 504, the allocation determination part 116 determines an allocation of a VM based on a plurality of parameters that have been received from the management part 118 and stores an allocation result (information that indicates a server and a VM that is allocated to the server) into the allocation result DB 117 in the step 505. [0065] In the step 506, the allocation determination part 116 notifies the allocation execution part 115 of ac.ompletion of the' st6rage of an allocationresult. The - 20- allocation execution-part 115 receives the notification, ident.ifies a server and a VM that is allocated to the server from the allocation result DB 117 in the step 507 and the step 508, and executes a VM allocation in such a manner that a VM is allocated in accordance with the identification in the step 509. More specifically, the allocation execution part 115 activates a server that is corresponded to a server name 2501 of the allocation result DB 117 (hereafter referred to as a target server in this paragraph) for instance. The allocation execution part 115 allocates all VMs that belong to a VM collection 2502 that is corresponded to the target server to the target server. To take a VM that belongs to a VM collection 2502 that is corresponded to the target server (hereafter referred to as a target VM in this paragraph) as an example, the processing is as follows for instance. That is, the allocation execution part 115 executes a first judgment whether or not a target VM exists in a target server. In the case in which a result of the judgment is negative, the allocation execution part 115 executes a second judgment whether or not a target VM exists in a server other than the target server. In the case in which a result of the second judgment is positive, the allocation execution part 115 moves a target VM from a server other than the target server to the target server. In the case in which a result of the second judgment is negative, the allocation execution part 115 makes the target server newly create a target VM. After a completion of this VM allocation, the allocation execution part 115 notifies the management part 118 of the completion in the step 510. In the step 511, a manager can confirm a result of an allocation through the management terminal 105 from the management console 240l. The allocation result that is confirmed here (an allocation result that is transmitted from the management console 2401 to the management terminal 105) is in the following for instance: (*) the information that indicates a server and a VM that is allocated to the server; and (*) the information that indicates a resource utilization ratio of a server and· ·21 . e a resource utili~atiorrratioof a VM after the VM allocation.,: [0066] In the next place, the step 504 of Fig. 7 will be described in the following. [0067] Fig. 8 is a flowchart showing an example of a detailed flow of the step 504 of Fig. 7. [0068] In the step 601 in the first place, the allocation determination part 116 selects one server from a plurality of servers that are indicated by a parameter S. A server can be selected in a random manner or can be selected in accordance with the predetermined rules and regulations (for instance, a server can be selected in order in which an operation time is less from when the server was introduced newly). In the descriptions of Fig. 8 and Fig. 9, a server that is selected in the step 601 is referred to as a selection server and the information that indicates a selection server is referred to as "NextServer". [0069] In the step 602, the allocation determination part 116 selects a collection of VMs that are allocated to NextServer from at least one VM that is indicated by a parameter L. In the descriptions of Fig. 8 and Fig. 9, a VM collection that has been selected is referred to as a selected VM collection and the information that indicates a selected VM collection is referred to as "Q_in". [0070] In the step 603, the allocation determination part 116 stores NextServer and Q_in into the allocation result DB 117 and deletes the information that indicates a VM that belongs to Q_in from the parameter L. [0071] The step 601 and the step 602 are executed in a repetitive manner until the number of VMs that is indicated by the parameter L becomes zero. In the present embodiment, it'-isassumed that the number of servers and the - 22 - C. performance of the server are sufficient as. compared: wit.h: the number of . VMs that are allocated and a performance that is required for the VM. In the case in which servers that have been set to the data center 100 are insufficient, a VM can be allocated to an external server outside the data center 100 (such as a server of a public cloud). [0072] Fig. 9 is a flowchart showing an example of a detailed flow of the step 602 of Fig. 8. [0073] In the step 602, the allocation determination part 116 selects a VM that is allocated to a selection server (a server that is indicated by NextServer) from a VM collection that is indicated by the parameter L and stores the selected VM into a selection VM collection (a VM collection that is indicated by Q_in). Here for instance, a VM of which a CPU utilization time zone is most different from that of a VM that has already been selected can be selected on a priority basis. A VM that is selected in the first place can be any VM of a VM collection that is indicated by the parameter L or can be a VM that conforms to the predetermined rules and regulations (for instance, a VM of which a CPU utilization ratio is highest). [0074] In the step 701, the allocation determination part 116 creates Q_out as the information that indicates a candidate of a VM that is allocated to the selection server. Q_out is the information that indicates a collection ofVMs. An initial value of Q_out is L. Moreover, an initial value of Q_in that indicates a collection ofVMs that are allocated to the selection server is zero. [0075] In the step 702, the allocation determination part 116 selects a VM of which a CPU utilization ratio is highest in the VM collection that is indicated by Q_out. The VM that is selected here is referred to as a selection VM of the fust·kind, and the information that indicates the selectionVMof the first ..~ kind .isreferred to~asBigVM. The allocation determination part 116 includes BigVM into Q_in. Moreover, the allocation determination part 116 deletes BigVM from Q_out. [0076] In the step 703 in the next place, the allocation determination part 116 calculates a sum of a CPU utilization ratio of at least one VM (a VM collection) that is indicated by Q_in for every time section. The calculation result is referred to as a distribution P. For instance, the distribution P can be a graph of an XY orthogonal coordinate system in which time is an X axis (or a Y axis) and a sum of a CPU utilization ratio is a Y axis (or an X axis). A calculation of the distribution P can also be executed as described in the following for instance. That is, a collection of VMs that are indicated by Q_in can be {VM_1, VM_2, ... , and VM_N} in the step 703. Here, N is the number ofVMs that are indicated by Q_in. It can be assumed that a change 212 of a CPU utilization ratio of VM_n has the following value. That is, CPU utilization ratio of the w·th time section of VM_n = Value_n_w, the following formula 1. [Formula 1] \iwl w=l..H, \in In =l..N H is the number of time sections of the change 212 of a CPU utilization ratio of a VM. In the example as shown in Fig. 2, since there are four time sections of 0:00 to 6:00, 7:00 to 12:00, 13:00 to 18:00, and 19:00 to 24:00, H = 4 in this case. Here, the CPU utilization ratios of H time sections of the distribution Pare P_1, P_2, ''', and P_H. Each value of P_1, P_2, ... , and P_H can also be calculated as described in the following. P_w = Value_1_w + Value_2_w +...+ Value_N_w, the following formula 2. [Formula 2] \iwlw=1..H [0077] In the step 704, the allocation determination pa'rt 116 selects·'aVM of which ·24· a correlation coefficient with the distribution P is lowest in theVM collection that is indicated by Q_out. The VM that is selected here is referred to as a selection VM of the second kind, and the information that indicates the selection VM of the second kind is referred to as MinVM. The allocation determination part 116 includes MinVM into Q_in. Moreover, the allocation determination part 116 deletes MinVM from Q_out. A calculation of a correlation coefficient of P and any VM of VM_check that is in Q_out can also be executed as described in the following for instance. That is, it can be assumed that a change 212 of a CPU utilization ratio of VM_check has the following value: (*) a value of a CPU utilization ratio of the h-th time section of VM_check is Value_check_h; and (*) h is a value in the range of 1 to H. A correlation coefficient ofVM_check and P can also be the following formula 3. Value_check_ave is an average value of H values of Value_check_I, Value_check_2, .. , and Value_check_H. P_ave is an average value of H values of P_1, P_2, .. , and P_H. [Formula 3] H I (Value_check_w - Value_check_ave)(P_w-P_ave) w=H H I(Value_check_w- Value_check_ave)2 I(p_w- P_ave)2 w~ w~ [0078] In the step 705 in the next place, the allocation determination part 116 judges whether or not an average value of a CPU utilization ratio of all VMs that are indicated by Q_in (an average CPU utilization ratio) is higher than an acceptable range K. In the case in which a result of the judgment is positive (the step 705: YES), the step 706 and the step 707 are executed. In the case in which a result of the judgment is negative (the step 705: NO), the step 706 is skipped and the step 707 is executed. [0079]· - 25 - e .In the·step 706,the'allocationdeterminationpart 116 deletes MinVM from Q_in. [0080] In the step 707, the allocation determination part 116 judges whether or not the number ofVMs that are indicated by Q_out is zero. In the case in which a result of the judgment is positive (the step 707: YES), the step 602 of Fig. 8 is terminated. In the case in which a result of the judgment is negative (the step 707: NO), the step 703 is executed. [0081] As a result of the step 602 of Fig. 8, Q_in that is the information that indicates a collection of VMs that are to be stored into a selection server (a server that is indicated by NextServer) is created. The duplication of a CPU utilization ratio in a plurality of time sections for a VM collection (a combination of VMs) that is indicated by Q_in is smaller than that of all other VM collection that can be configured by a plurality of VMs that are indicated by the parameter L (however for instance, the number ofVMs that configure a VM collection is equal to each other). In other words, a difference of a CPU utilization ratio in each time section for a VM collection (a combination of VMs) that is indicated by Q_in is larger than that of all other VM collection that can be configured by a plurality of VMs that are indicated by the parameter L. More specifically, in the case in which a VM collection that is indicated by Q_in includes a VM in which a CPU utilization ratio in a first time section is extremely high and a CPU utilization ratio in a second time section is extremely low for instance, a VM in which a CPU utilization ratio in a first time section is extremely low and a CPU utilization ratio in a second time section is extremely high is newly added to a VM collection that is indicated by Q_in. [0082] In the next place, a relocation of the step 405 of Fig. 6 will be described in the following." . ·26· e [0083] The "relocation" is to change an allocation destination of at least one VM of a plurality ofVMs in a server group from a certain server to another server as described before. By this configuration, it can be expected that a load status of a server is improved. [0084] A relocation interval T is a parameter that is input by a manager in the step 402 of Fig. 6. The relocation management part 2404 issues a relocation instruction to the allocation determination part 116 for every relocation interval T. By this configuration, a relocation necessity judgment IS automatically started without a separate instruction from a manager. [0085] Fig. 10 is a sequence drawing showing an example of a detailed flow of the step 405 of Fig. 6. [0086] In the step 800 in the first place, an allocation management part 118 issues an allocation instruction to the allocation determination part 116. [0087] In the step 801, the allocation determination part 116 determines an evaluation result 314 for every server based on an operation CPU utilization ratio 313 for every server in the allocation evaluation result DB 114. The evaluation result 314 that is determined is as follows for instance: (1) In the case in which a value of an operation CPU utilization ratio 313 is equal to or larger than HighCPULevel, a value of the evaluation result 314 is "deficiency". (2) In the case in which a value of an operation CPU utilization ratio 313 is equal to or larger than LowCPULevel, a value of the evaluation result 314 is "dissipation". (3) In the case in which a value of an operation CPU utilization ratio 313 is between HighCPULeveland LowCPULevet, a value of the evaluation result ·27· e 314is "adequacy". [0088] In the present embodiment, only a CPU utilization ratio is focused on as a resource utilization ratio to make the descriptions understood easily. However, a similar evaluation is possible for not only a CPU utilization ratio but also an HDD, a memory, and a network band. Moreover, an evaluation in consideration of a load (a utilization ratio) of hardware resources of a plurality of kinds is also possible. For instance, in the case in which a utilization ratio of each of a CPU, an HDD, and a memory is considered simultaneously, the following evaluation standard can also be adopted: (1) In the case in which a CPU utilization ratio is "deficiency", an HDD utilization ratio is "deficiency", or a memory utilization ratio is "deficiency", a value of the evaluation result 314 is "deficiency". (2) In the case in which the condition of the above (1) is not corresponded, and a CPU utilization ratio is "dissipation", an HDD utilization ratio is "dissipation", or a memory utilization ratio is "dissipation", a value of the evaluation result 314 is "dissipation". (3) In the case in which any condition of the above (1) and (2) is not satisfied, a value of the evaluation result 314 is "adequacy" [0089] In the step 801, the allocation determination part 116 sets the following parameters based on the allocation evaluation result DB 114: (1) The parameter L is a collection of VMs on a server m which the evaluation result 314 of the allocation evaluation result DB 114 is "deficiency" or "dissipation". (2) The parameter S is a collection of a server in which the evaluation result 314 of the allocation evaluation result DB 114 is "deficiency" or "dissipation" and a server that is indicated by a server list 112. (3) HighCPULevel and LowCPULevel are values that have been input by a manger in the step' 402. - 28- G (4) An acceptable range.K is an average value ofa CPU utilization ratio (an average CPU utilization ratio) of a VM in an initial allocation on a server in which the evaluation result 314 of the allocation evaluation result DB 114 is "success". However, in the case of the relocation of the second time or later from the initial allocation, an acceptable range K is an average value of a CPU utilization ratio (an average CPU utilization ratio) of a VM in the previous relocation on a server in which the evaluation result 314 of the allocation evaluation result DB 114 is "success". [0090] In the step 803, the steps 504, 505, 506, 507, 508, 509, and 510 are executed based on a plurality of parameters that have been configured in the step 802. [0091] After the step 803 is terminated, the allocation determination part 116 notifies a relocation management part 118 of a completion of an allocation. [0092] In the present embodiment, an initial allocation is executed for a plurality of VMs in the step 403 of Fig. 6 in the first place. A load status of a server is then evaluated for every relocation interval T when a VM on a server is operated. A relocation is executed in the step 405 for only a server in which a resource is "deficiency" or "dissipation". By this configuration, the number of servers in which a resource is "deficiency" or "dissipation" can be as less as possible. [0093] In accordance with the present embodiment, a server is selected one by one and a VM is allocated on the selected server in such a manner that the total sum of CPU utilization ratios is equal to or less than an acceptable range K. By this configuration, it is not necessary that the number of servers is determined in advance and required VMs can be operated by the requisite minimum number of servers. [0094] ,. o In accordance with the .present embodiment moreover,aVM of which a correlative relationship with a distribution P of a CPU utilization ratio of at least one VM that has been determined to be allocated to a server is smallest is determined to be a VM that is allocated to the server. By this configuration, since a proper balance of dispersion of a plurality of CPU utilization ratios occurs in one server for each time section, it can be expected that the excess or deficiency of a resource of a server does not occur. [0095] In accordance with the present embodiment moreover, in the case of the relocation, an acceptable range K is updated by a practical operation accomplishment of a server in the allocation evaluation result DB 114. Consequently, it can be expected that an acceptable range K is a suitable value corresponding to a practical operation status of a server. In other words, in accordance with the present embodiment, in the case of the relocation, it can be expected that a probability of a more appropriate allocation of a VM is increased by reference to an evaluation result of a server that has already been operated. [0096] A VM of an allocation target that has been described in the embodiment 1 can be not only a VM (hereafter referred to as a local VM) in which a virtual storage resource (a virtual HDD, hereafter referred to as a that is stored into a local storage apparatus of a server but also a VM (hereafter referred to as a network VM) in which a VD is stored into a storage apparatus that is accessed via the Internet or a network such as a WAN (Wide Area Network) or a LAN (Local Area Network) (hereafter referred to as network storage). In the case of a network VM, a protocol by which data can be transmitted or received via a network such as an iSCSI in the Case in-which a - 39· e resource deficiency of a server occurs, a VM can be selected in such a manner that a resource utilization time section ofVMs that remain in the server does not overlap with each other. By this configuration, it can be expected that a resource of a server is utilized in an effective manner. [0143] In accordance with the present embodiment moreover, a VM that is moved to an external resource is selected based on at least one of the importance of data that is handled by a VM, a location in which a client that accesses a VM exists (such as the outside of the company or the inside of the company), and an HDD utilization ratio of a VM. By this configuration, it can be expected that an influence to a user due to a movement of a VM is less. [0144] In accordance with the present embodiment moreover, a VM is moved to the external resource (such as a public cloud) 903 in the case in which a resource deficiency of a server occurs, and a VM is returned from the external resource 903 in the case in which a dissipation of a resource of a server occurs. The above configuration can be implemented without an operation of a manager. [0145] While the some preferred embodiments in accordance with the present invention have been described above, the embodiments are examples for describing the present invention and the scope of the present invention is not restricted to the above embodiments. In other words, the present invention can also be executed by other modes of every sort and kind. [0146] For instance, a server of an allocation destination of a VM can also be one server or a group (a server pool) that is provided with a plurality of servers. In the latter case, the server group described above can include a plurality of server pools. [0147] ·40 - e Moreover, the-embodiment 1 and the. embodiment 2 can be operated independently, or one system in which the embodiment 1 and the embodiment 2 are combined can be implemented for instance. Furthermore, a part of a configuration of one embodiment can be added to a configuration of another embodiment. For a part of a configuration of each embodiment, an addition, a deletion, and a substitution of other configuration can also be possible. [0148] For instance, one system in which the embodiment 1 and the embodiment 2 are combined can be implemented as described below for instance. [0149] A part or a whole of the configuration, the function, and the processing part that are described above can also be implemented with hardware by designing it with integrated circuits for instance. Moreover, the configuration, the function, and others that are described above can also be implemented with software in such a manner that a CPU interprets and executes a program that is configured to implement each of the functions. The information of the program that is configured to implement each of the functions and the database can be stored into storage apparatuses such as a memory and an HDD or storage media such as an IC memory card, an SD memory card, and a DVD (Digital Versatile Disk). [Reference Signs List] [0150] 101: VM allocation apparatus 103 and 104: Servers 105: Management terminal 131 and 141: Virtualization software __ We claim: [Claim 1] An apparatus that is configured to allocate a plurality of virtual computers to a plurality of physical computers, comprising: a storage part that is configured to store the virtual computer load information that is information that indicates a resource load value of a virtual computer for each of a plurality of time sections for every virtual computer; and a control part that is configured to select at least two virtual computers in which a difference of resource load values is largest for every time section based on the virtual computer load information and to allocate the at least two virtual computers that have been selected to the same physical computer. [Claim 2] An apparatus according to claim 1, wherein: the control part identifies a physical computer III which the excess or deficiency of a resource occurs among the plurality of physical computers based on the resource load value of the plurality of physical computers after the plurality of virtual computers are allocated and executes a relocation that is an addition or a deletion of a virtual computer to the identified physical computer. [Claim 3] An apparatus according to claim 2, wherein: the plurality of physical computers includes at least one internal physical computer and at least one external physical computer, and in the case in which the control part identifies a target internal physical . computer that is an internal physical computer in which a deficiency of a ·42· .. e resource occurs, a certain virtual computer is moved from the target internal physical computer to the external physical computer. [Claim 4] An apparatus according to claim 3, wherein: the certain virtual computer is a virtual computer of a local type that is a virtual computer that is stored into a local type storage apparatus that is accessed by the target physical computer, and in the case in which the control part moves a virtual resource file that is an image of a virtual storage resource of the virtual computer of a local type to a file server that can be accessed from the local type storage apparatus by the external physical computer, the virtual computer of a local type is changed to a virtual computer of a network type and the virtual computer of a network type is then moved from the target internal physical computer to the external physical computer. [Claim 5] An apparatus according to claim 4, wherein: each of the virtual computers is a virtual computer that is utilized as a virtual desktop. [Claim 6] An apparatus according to claim 4, wherein: the external physical computer is a physical computer of a public cloud. [Claim 7] An apparatus according to claim 4, wherein: the control part selects one-by-one virtual computer that is allocated to the same internal physical computer in the range in which the total of resource . load- values ofVMs'that are allocated to the same internal physical computer . 43' e· is equal to or .less than a predetermined value, and the virtual computer selected in the case is a virtual computer in which a difference of a resource load value with a resource load value of each time section of at least one virtual computer that has already been selected is larger preferably, and the virtual computer of a network type is a virtual computer that is selected in the last place as a virtual computer that is allocated to the target internal physical computer. [Claim 8] An apparatus according to claim 4, wherein: the virtual computer of a network type is a virtual computer that IS configured to handle data that is not important. [Claim 9] An apparatus according to claim 4, wherein: the virtual computer of a network type is a virtual computer that is accessed via a WAN or the Internet. [Claim 10] An apparatus according to claim 4, wherein: the virtual computer of a network type is a virtual computer in which a utilization ratio of a storage resource is smallest. [Claim 11] An apparatus according to claim 3, wherein: in the case in which the control part detects that the deficiency of a resource of the target internal physical computer is resolved, the control part returns the moved virtual computer from the external physical computer to the target internal physical computer. ·44· _ [Claim .12] An apparatus according to claim 2, wherein: the storage part stores the allocation result evaluation information, the allocation result evaluation information includes information that indicates a resource load value of the physical computer for every physical computer, a physical computer in which a deficiency of a resource occurs is a physical computer in which a resource load value that is indicated by the allocation result evaluation information is equal to or larger than a first value, and a physical computer in which an excess of a resource occurs is a physical computer in which a resource load value that is indicated by the allocation result evaluation information is equal to or less than a second threshold value that is less than the first value. [Claim 13] An apparatus according to claim 1, wherein: the control part selects one-by·one virtual computer that is allocated to the same internal physical computer in the range in which the total of resource load values ofVMs that are allocated to the same internal physical computer is equal to or less than a predetermined value. [Claim 14] A method for allocating a plurality of virtual computers to a plurality of physical computers, comprising the steps of. selecting at least two virtual computers in which a difference of resource load values is largest for every time section based on the virtual computer load information that is information that indicates a resource load value of a virtual computer for each of a plurality of time sections for every virtual computer; and allocating the at least two virtual computers that have been selected to the - 45· e same physical computer. [Claim 15] A computer program that is configured to make a computer execute an allocation of a plurality of virtual computers to a plurality of physical computers, wherein: the computer program makes a computer execute the steps of. selecting at least two virtual computers in which a difference of resource load values is largest for every time section based on the virtual computer load information that is information that indicates a resource load value of a virtual computer for each of a plurality of time sections for every virtual computer; and allocating the at least two virtual computers that have been selected to the same physical computer. Dated this 16th day ofApril 2013 ~et4 OfAnand an~ates Agent for the Applicant

Documents

Application Documents

# Name Date
1 3386-delnp-2013-Correspondence-Others-(23-04-2013).pdf 2013-04-23
2 3386-DELNP-2013.pdf 2013-04-26
3 3386-delnp-2013-GPA-(14-06-2013).pdf 2013-06-14
4 3386-delnp-2013-Correspondence Others-(14-06-2013).pdf 2013-06-14
5 3386-delnp-2013-Form-1-(01-08-2013).pdf 2013-08-01
6 3386-delnp-2013-Correspondence-Others-(01-08-2013).pdf 2013-08-01
8 3386-delnp-2013-Form-5.pdf 2013-08-20
9 3386-delnp-2013-Form-3.pdf 2013-08-20
10 3386-delnp-2013-Form-2.pdf 2013-08-20
11 3386-delnp-2013-Form-18.pdf 2013-08-20
12 3386-delnp-2013-Form-1.pdf 2013-08-20
13 3386-delnp-2013-Drawings.pdf 2013-08-20
14 3386-delnp-2013-Description(Complete).pdf 2013-08-20
15 3386-delnp-2013-Correspondence-others.pdf 2013-08-20
16 3386-delnp-2013-Claims.pdf 2013-08-20
17 3386-delnp-2013-Abstract.pdf 2013-08-20
18 3386-delnp-2013-Form-3-(13-09-2013).pdf 2013-09-13
19 3386-delnp-2013-Correspondence Others-(13-09-2013).pdf 2013-09-13
20 3386-DELNP-2013-FER.pdf 2019-02-20
21 3386-DELNP-2013-AbandonedLetter.pdf 2019-10-14

Search Strategy

1 2019-02-0817-06-16_09-02-2019.pdf