WO2012053393A1 - 仮想計算機を配置する方法及び装置 - Google Patents

仮想計算機を配置する方法及び装置 Download PDF

Info

Publication number
WO2012053393A1
WO2012053393A1 PCT/JP2011/073332 JP2011073332W WO2012053393A1 WO 2012053393 A1 WO2012053393 A1 WO 2012053393A1 JP 2011073332 W JP2011073332 W JP 2011073332W WO 2012053393 A1 WO2012053393 A1 WO 2012053393A1
Authority
WO
WIPO (PCT)
Prior art keywords
server
virtual machine
virtual
computer
resource
Prior art date
Application number
PCT/JP2011/073332
Other languages
English (en)
French (fr)
Inventor
レタンマン カオ
信 萱島
Original Assignee
株式会社日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社日立製作所 filed Critical 株式会社日立製作所
Priority to CN2011800499334A priority Critical patent/CN103154896A/zh
Priority to US13/879,659 priority patent/US20130275974A1/en
Priority to JP2012539680A priority patent/JPWO2012053393A1/ja
Publication of WO2012053393A1 publication Critical patent/WO2012053393A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Definitions

  • the present invention relates to a technology for arranging virtual machines.
  • VMs virtual machines
  • the virtualization software absorbs the hardware characteristics, the VM does not depend on the hardware characteristics of the computer, and movement between the VM hardware is easy.
  • a computer that operates a plurality of VMs by executing virtualization software is simply referred to as a “server”.
  • OS operating system
  • an appropriateness is prepared in which the VM types of the combination are arranged on the same server. Based on the score for each combination of VM types, for each server that can place a new VM, the appropriateness (index value) for placing the new VM on the server is calculated. Based on the calculated index value, a new VM placement destination server is determined.
  • the hardware resources required by the virtual desktop may change abruptly. Therefore, in order to always provide comfortable performance for each VM when deploying VMs to the server, it is necessary to implement a layout with a considerable margin compared to the case of virtualizing business servers. . However, this is a waste of server resources.
  • an object of the present invention is to arrange VMs so that hardware resources of a physical computer (for example, a server) do not become excessive or insufficient as much as possible.
  • a VM placement device that places multiple virtual machines (VMs) on multiple physical computers is constructed.
  • the VM placement device stores VM load information, which is information representing the VM resource load value in each of a plurality of time intervals for each VM. Based on the VM load information, the VM placement device selects two or more VMs having the largest difference in resource load value for each time interval, and places the selected two or more VMs on the same physical computer.
  • the VM type placed by this VM placement device may be any type.
  • This VM placement apparatus is suitable for placement of a type of virtual machine in which required hardware resources may change rapidly, such as a virtual machine used as a virtual desktop.
  • VMs can be arranged so that hardware resources of a physical computer do not become excessive or insufficient as much as possible.
  • FIG. 1 shows a configuration example of an entire system including a VM placement apparatus according to Embodiment 1 of the present invention.
  • the structural example of pattern DB201 is shown.
  • positioning evaluation result DB114 is shown.
  • the structural example of the management part 118 is shown.
  • positioning result DB117 is shown.
  • 3 is a flowchart illustrating an example of the overall flow of processing performed in the first embodiment. It is a sequence diagram showing an example of a detailed flow of step 402 and step 403. It is a flowchart which shows an example of the detailed flow of step 504 of FIG.
  • FIG. 9 is a flowchart showing an example of a detailed flow of step 602 in FIG.
  • step 405 of FIG. 10 shows a configuration example of the entire system including a VM placement device according to a second exemplary embodiment of the present invention.
  • positioning apparatus 907 is shown.
  • the structural example of VM detailed information DB1006 is shown.
  • 12 is a flowchart illustrating an example of the overall flow of processing performed in the second embodiment. It is a sequence diagram which shows an example of the detailed flow of step 1103 of FIG. It is a sequence diagram which shows an example of the detailed flow of step 1104 of FIG.
  • DB is an abbreviation of “database”
  • DB is an abbreviation of “database”
  • xxx information various types of information may be described in terms of “xxxDB” and “xxx list” (DB is an abbreviation of “database”), but various types of information are expressed in data structures other than DBs and lists. May be. In order to show that it does not depend on the data structure, “xxxDB” or “xxx list” can be referred to as “xxx information”.
  • a name is used to specify an element, but an ID or a number may be used as identification information instead of the name.
  • a function or program
  • a storage resource for example, a memory
  • a communication interface device for example, a communication port
  • the processor may include a hardware circuit that performs part or all of the processing performed by the processor.
  • the computer program may be installed on each computer from a program source.
  • the program source may be, for example, a program distribution server or a storage medium.
  • This example relates to an example of an arrangement method that takes into account a change in the resource utilization rate of a VM over time.
  • a virtual machine used as a virtual desktop is described as “VM”, and each of a plurality of VMs may be indicated as “VM #” (# is a, b,... Lowercase alphabet).
  • FIG. 1 shows a configuration example of the entire system including a VM placement device according to the first embodiment of the present invention.
  • VMs can be generated, arranged, and operated in accordance with a request from an administrator who operates the management terminal 105.
  • a user of a client computer (hereinafter referred to as a client) 171 can remotely connect to the VM on the data center 100 in a so-called screen transfer type thin client and use the VM.
  • the data center 100 is a corporate data center, which includes a platform for centrally managing virtual desktops. In this embodiment, one VM becomes one virtual desktop.
  • the client 171 may access the VM via the LAN 172. Instead of the LAN 172, another type of communication network may be employed.
  • the data center 100 includes a server group including a server 103 and a server 104, a VM placement apparatus 101 having a function of placing a VM on the server, and a management terminal having a function of operating the VM placement apparatus 101 There are 105.
  • Each server, the VM placement apparatus 101, and the management terminal 105 are connected to a LAN (Local Area Network) 102.
  • LAN Local Area Network
  • another type of communication network may be employed.
  • the server will be described by taking the server 103 as an example.
  • the server 103 includes a communication interface device (for example, NIC (Network Interface Card)), a storage resource (for example, memory and HDD (Hard Disk Drive)), and a CPU connected to them.
  • the storage resource stores virtualization software 131 that is software having a virtualization function, and the CPU executes the virtualization software 131.
  • virtualization software 131 On the virtualization software 131, one or a plurality of VMs, for example, VMa 133 and VMb 134 are arranged.
  • the local storage device 132 includes a VDa (virtual disk file a) 135 that is an image of a virtual storage resource (for example, a virtual HDD) of the VMa 133 and a VDb that is an image of a virtual storage resource (for example, a virtual HDD) of the VMb 134.
  • VDa virtual disk file a
  • VDb virtual storage resource
  • the VMa 133 (VMb 134) refers to and / or changes the VDa 135 (VDb 136) via the virtualization software 131 when operating.
  • the virtualization software 131 receives a command from a device external to the server 103 having the software 131 (for example, another server or the VM placement device 101), and creates, starts, stops, or stops the VM according to the command. It has a function to execute migration (migration of a VM from one server to another).
  • the virtualization software 131 uses the VM operating on the software 131 and the resource usage status of the server 103 having the software 131 (CPU usage rate, memory usage rate, HDD usage rate, and network bandwidth used) At least one of them).
  • each server other than the server 103 in the server group are substantially the same as the configuration and functions of the server 103.
  • the hardware resource performance for example, CPU processing performance
  • the VM placement device 101 generates and places a VM on a server in the server group.
  • the VM placement device 101 is, for example, one or more computers, and includes a communication interface device (for example, NIC (Network Interface Card)), storage resources (for example, memory and HDD (Hard Disk Drive)), and a CPU connected to them. Have.
  • a communication interface device is connected to the management terminal 105 and a plurality of servers via the LAN 102.
  • the storage resource stores the VM list 111, the server list 112, the log DB 113, the placement evaluation result DB 114, the placement result DB 117, and one or more computer programs.
  • the functions of the placement execution unit 115, the placement determination unit 116, and the management unit 118 can be exhibited.
  • Each component of the VM placement apparatus 101 will be described later.
  • the management terminal 105 has a function of communicating with the VM placement apparatus 101, a function of inputting information to the VM placement apparatus 101, and a function of monitoring the activation and operation status of programs in the VM placement apparatus 101.
  • the administrator operates the management terminal 105 to manage the data center 100. That is, in this embodiment, the VM placement apparatus 101 can function as a management server, and the management terminal 105 can function as a management client that accesses the VM placement apparatus 101.
  • the VM list 111 is a list of information on each VM that the administrator wants to operate among a plurality of VMs existing in the server group.
  • the information on the VM is information including, for example, the name of the VM and information indicating the specification of the VM (CPU operating frequency, memory capacity, or HDD capacity).
  • the server list 112 is a list of information regarding each server in the server group.
  • the information regarding the server is information including information indicating the IP address of the server, for example.
  • FIG. 2 shows a configuration example of the pattern DB 201.
  • the pattern DB 201 is a database that stores information indicating changes in the resource usage rate of each VM over a certain period.
  • the “information indicating the change in the VM resource utilization rate” is information indicating the VM resource utilization rate in each time interval (for example, every 6 hours) in a certain period, for example.
  • the pattern DB 201 includes, for example, the following information for each VM: (1) VM name 211, which is the name of the VM, (2) CPU utilization rate change 212 indicating the CPU utilization rate of the VM in each time interval (that is, the VM CPU utilization rate change over a certain period), (3) HDD usage rate change 213 indicating the VM HDD usage rate in each time interval (that is, VM HDD usage rate change in a certain period),
  • the HDD usage rate may be a ratio of time for the VM to access the HDD within a certain period (for example, within one second).
  • the HDD usage rate may be the ratio of the bandwidth used by the VM for writing or reading data to or from the HDD during a certain period (for example, within one second) to the maximum transmission / reception bandwidth of the physical HDD of the server. Good.
  • information indicating the CPU usage rate and the HDD usage rate is recorded on a daily basis, but the length of this period may be another length such as one week or one month.
  • the VM resource usage rate instead of or in addition to at least one of the CPU usage rate and the HDD usage rate, information indicating a change in the VM memory usage rate and a change in the network bandwidth usage rate is stored in the pattern DB 201. Also good.
  • the resource utilization rate in the time interval is an average value of the resource utilization rates in the time interval, but instead of the average value, a value that satisfies a predetermined condition in the time interval (for example, a maximum value or a minimum value) ).
  • FIG. 3 shows a configuration example of the arrangement evaluation result DB 114.
  • the placement evaluation result DB 114 has information indicating evaluation according to the VM placement result for each server. Specifically, the placement evaluation result DB 114 is, for example, for each server, (1) Server name 311 which is the name of the server, (2) Arranged CPU usage rate 312 indicating the total CPU usage rate of all VMs in the server, (3) Operating CPU usage rate 313 indicating the CPU usage rate when the server is operating. (4) Evaluation result 314 indicating whether the placement of the VM on the server is appropriate, Have As the value of the evaluation result 314, there are three types of “insufficient”, “wasted”, and “appropriate”.
  • FIG. 4 shows a configuration example of the management unit 118.
  • the management unit 118 includes a management console 2401, a parameter DB 2402, an initial placement management unit 2403, and a rearrangement management unit 2404.
  • the management console 2401 inputs information that the VM list 111 and the server list 112 have and information that the parameter DB 204 has.
  • the management console 2401 displays information that the arrangement result DB 117 has. Also, the management console 2401 activates the initial placement management unit 2403 and the rearrangement management unit 2404.
  • the parameter DB 2402 is a database having parameters for operating the initial arrangement management unit 2403 and the rearrangement management unit 2404.
  • the parameter DB 2402 includes, for example, the following parameters (1) to (5): (1) Set of VMs to be placed: L, (2) Set of available servers: S, (3) Criteria for judging server resource status: HighCPULevel, LowCPULevel, (4) Criteria for judging how much VM can be placed on the server (acceptable range): K, (5) Time interval (relocation interval) for determining whether relocation is necessary (relocation necessity determination): T Have HighCPULevel, LowCPULevel, and K take any value from 0 to 100%.
  • the “allowable range” is an index indicating to what percentage of the server resources the VM is used. For example, it is necessary to arrange the average CPU utilization rate (average CPU utilization rate) of one or more VMs arranged on the server to be K% or less of the CPU processing capacity of the server. The closer K is to 100, the more VMs can be placed on the server. However, if the VM resource utilization rate suddenly increases, there is a high possibility that the server will not be able to handle it. Conversely, the closer K is to 0, the more waste of server resources may occur.
  • the CPU processing capacity (CPU usage rate) is adopted as a representative of the resource usage rate, but an allowable range may be set in consideration of other types of resource usage rates. The setting range may be different for each type of resource utilization rate.
  • Relocation interval is, for example, “after the end of working hours on the last working day of each week” or “weekly weekend”.
  • the initial placement management unit 2403 manages the first VM placement.
  • the initial arrangement management unit 2403 activates the arrangement determination unit 116 and passes the parameters stored in the parameter DB 2402 to the arrangement determination unit 116.
  • the rearrangement management unit 2404 issues a rearrangement command to the placement determination unit 116 at each rearrangement interval T.
  • FIG. 5 shows a configuration example of the arrangement result DB 117.
  • the placement result DB 117 is a database indicating which VM is placed on which server.
  • the arrangement result DB 117 includes, for example, the following information for each server: (1) a server name 2501, which is the name of the server, (2) a VM set 2502 which is a set of names of VMs to be arranged in the server; Have
  • the placement determination unit 116 refers to the parameters HighCPULevel, LowCPULevel, and K stored in the parameter DB 2402, places one or more VMs represented by the parameter L on one or more servers indicated by the parameter S, and The result is stored in the placement result DB 117.
  • the placement execution unit 115 communicates with the virtualization software 131 and 142 and executes the placement of the VM according to the placement result DB 117.
  • VM placement there are two types of VM placement: “initial placement” and “relocation”.
  • the initial arrangement is the following condition (a) or (b): (A) Arranging VMs in a server group for the first time after starting up the data center 100; (B) The number of VMs arranged in the nth VM placement and the number of VMs placed in the next VM placement (the (n + 1) th VM placement) (current VM number) The difference exceeds a certain number (for example, the number of VMs to be deployed is changed significantly) (C) An initial arrangement is designated by the administrator. It is an arrangement that conforms to For condition (b), either the previous VM count or the current VM count may be large. Information input from the administrator is necessary for the initial arrangement.
  • Relocation is changing at least one of the plurality of VMs in a server group from one server to another. For relocation, no information input from the administrator is required.
  • FIG. 6 is a flowchart illustrating an example of the overall flow of processing performed in the first embodiment.
  • step 400 the data center 100 is activated.
  • the administrator activates the server 133 (104) in which the virtualization software 131 (141) has been installed, and connects the LAN 102 to each server.
  • the administrator activates the VM placement apparatus 101 and the management terminal 105 and connects the apparatus 101 and the terminal 105 to the LAN 102.
  • Step 400 may be performed, for example, a predetermined time before the start of business hours of the company (for example, 30 minutes before).
  • step 401 it is determined whether or not it is an initial arrangement.
  • the determination of whether or not the initial placement is performed may be made by an administrator or a computer (for example, the VM placement device 101). If the determination in step 401 is affirmative, steps 402 and 403 are performed. If the result of determination in step 401 is negative, steps 402 and 403 are skipped and step 404 is performed.
  • the management terminal 105 receives input of specific information (for example, information related to the placement target VM and conditions for placement) from the administrator, and inputs the specific information to the VM placement apparatus 101. To do.
  • specific information for example, information related to the placement target VM and conditions for placement
  • step 403 the VM placement apparatus 101 executes VM placement based on the input specific information.
  • step 404 a relocation necessity determination is performed.
  • the determination as to whether or not to rearrange may be made by an administrator or a computer (for example, the VM placement apparatus 101).
  • the VM placement apparatus 101 performs step 404 at regular intervals. For each rearrangement interval T, a judgment is made as to whether rearrangement is necessary.
  • the rearrangement interval T is, for example, a value included in the specific information input by the administrator in step 402, and is a parameter value included in the parameter DB 2402. If the determination in step 404 is affirmative, steps 405 and 406 are performed. If the result of determination in step 404 is negative, step 405 is skipped and step 406 is performed.
  • step 405 the VM placement apparatus 101 rearranges some (or all) of the VMs that have already been placed in step 403.
  • a service according to the operation of the VM is provided.
  • the VM operates for a certain period of time such as business hours of a day, and as a result, a service is provided to the user of the client 171.
  • the screen transfer software is executed in the VM
  • the virtual desktop provided by the VM is displayed on the display screen of the client 171 connected to the VM.
  • the virtualization software 131 (141) monitors the resource usage rate of the server 103 (104) that executes the software 131 (141) and the resource usage rate of the VM, and monitors them.
  • Information representing the result is accumulated in the VM placement apparatus 101. Specifically, for example, it is as follows.
  • the virtualization software 131 (141) monitors the CPU usage rate and the HDD usage rate for each VM executed on the server 103 (104) having the software 131 (141). For each fixed period (for example, every 6 hours), the virtualization software 131 (141) displays information indicating the CPU usage rate and the HDD usage rate (for example, the average of the CPU usage rate and the average of the HDD usage rate during the fixed period). And stored in the pattern DB 113 of the VM placement apparatus 101.
  • the virtualization software 131 (141) calculates the CPU utilization rate for a certain time (for example, one hour) of the server 103 (104) having the software 131 (141) at regular time intervals.
  • the virtualization software 131 (141) stores a value representing the calculated CPU usage rate in the placement evaluation result DB 114.
  • the VM may execute a monitoring tool (for example, an application program) that monitors the resource usage status of the VM and the resource usage status of the server on which the VM is arranged.
  • the monitoring tool may periodically update the database (for example, the pattern DB 113 or the arrangement evaluation result DB 114).
  • Step 406 is finished after a certain period of time (for example, when the working hours of the day are finished).
  • step 407 the data center 100 stops.
  • the step 407 may be, for example, that the VM in the server group is not used after the business hours of the company. Specifically, for example, the virtualization software 131 (141) stops the VM, and the power of the server 103 (104) is turned off. An administrator may stop the VM placement apparatus 101 and the management terminal 105.
  • FIG. 7 is a sequence diagram showing an example of a detailed flow of step 402 and step 403.
  • step 402 information input by the administrator using the management terminal 105 is transmitted to the management console 2401 in the management unit 118 in the VM placement apparatus 101.
  • the information input by the administrator includes information (for example, VM name) regarding the VM that is desired to operate.
  • the management console 2401 registers information related to the VM in the VM list 111.
  • the information input by the administrator includes information on the server to be used (for example, the IP address of the server).
  • the management console 2401 registers information related to the server in the server list 112.
  • the management console 2401 stores information representing the resource usage rate of the VM in the pattern DB 113 for each VM specified from the VM list 111.
  • the value of the VM resource utilization rate stored in the pattern DB 113 may be determined based on, for example, the resource utilization rate of the virtual desktop (VM) used by the user in the past, or during a predetermined test operation period. It may be a value representing the resource usage rate of the virtual desktop (VM).
  • Information input by the administrator includes parameters “HighCPULevel” and “LowCPULevel”.
  • the management console 2401 stores these parameters in the parameter DB 2402. (5)
  • the information input by the administrator includes the parameter K (allowable range: K) described above.
  • the management console 2401 stores the parameter K in the parameter DB 2402.
  • the information input by the administrator includes the parameter T (relocation interval: T) described above.
  • the management console 2401 stores the parameter T in the parameter DB 2402.
  • the management terminal 105 transmits a VM placement command to the management unit 118 according to the operation of the administrator.
  • the management unit 118 receives the VM placement instruction, activates the placement determination unit 116 in step 502, and passes a plurality of parameters to the placement determination unit 116 in step 503.
  • the plurality of parameters are, for example, the following parameters: (1) Set of VMs to be placed: L, (2) Set of available servers: S, (3) HighCPULevel and LowCPULevel, (4) Tolerance range: K, It is.
  • L is information on all VMs registered in the VM list 111 (for example, VM names of all VMs).
  • the value of S is information on all servers registered in the server list 112 (for example, IP addresses of all servers).
  • the values of HighCPULevel, LowCPULevel, and K are values input by the administrator in step 402.
  • step 504 the placement determination unit 116 determines the placement of the VM based on the plurality of parameters received from the management unit 118, and the placement result (information indicating which VM is placed on which server) is obtained in step 505. Are stored in the arrangement result DB 117.
  • step 506 the arrangement determining unit 116 notifies the arrangement executing unit 115 that the storage of the arrangement result has been completed.
  • the placement execution unit 115 identifies which VM should be placed on which server from the placement result DB 117 in step 507 and step 508, and places the VM as specified in step 509. Execute VM placement. Specifically, for example, the arrangement execution unit 115 activates a server corresponding to the server name 2501 of the arrangement result DB 117 (hereinafter referred to as “target server” in this paragraph).
  • target server the placement execution unit 115 places all the VMs belonging to the VM set 2502 corresponding to the target server on the target server.
  • the processing is as follows, for example. That is, the arrangement execution unit 115 performs a first determination as to whether or not the target VM exists in the target server. When the result of the first determination is negative, the placement execution unit 115 performs a second determination as to whether or not the target VM exists on a server other than the target server. When the result of the second determination is affirmative, the placement execution unit 115 moves the target VM from a server other than the target server to the target server. When the result of the second determination is negative, the placement execution unit 115 causes the target server to create a new target VM.
  • the placement execution unit 115 After completion of such VM placement, the placement execution unit 115 notifies the management unit 118 of completion in step 510.
  • the administrator can check the result of arrangement from the management console 2401 through the management terminal 105.
  • the arrangement result confirmed here (the arrangement result transmitted from the management console 2401 to the management terminal 105) is, for example, (*) Information indicating which VM is placed on which server, (*) Information indicating server resource utilization and VM resource utilization after VM placement, It is.
  • step 504 in FIG. 7 will be described.
  • FIG. 8 is a flowchart showing an example of a detailed flow of step 504 in FIG.
  • the arrangement determining unit 116 selects one server from a plurality of servers represented by the parameter S.
  • the servers may be selected at random or may be selected according to a predetermined rule (for example, the servers may be selected in the order in which the operation time since newly introduced is short). 8 and 9, the server selected in step 601 is referred to as “selected server”, and the information representing the selected server is referred to as “NextServer”.
  • step 602 the arrangement determining unit 116 selects a set of VMs to be arranged in NextServer from one or more VMs represented by the parameter L.
  • the selected VM set is referred to as “selected VM set”, and information indicating the selected VM set is referred to as “Q_in”.
  • step 603 the arrangement determining unit 116 stores NextServer and Q_in in the arrangement result DB 117, and deletes the information indicating the VM belonging to Q_in from the parameter L.
  • Step 601 and step 602 are repeatedly executed until the number of VMs represented by the parameter L becomes zero.
  • the number of servers and the performance are sufficient compared to the number of VMs to be arranged and the performance required for the VMs. If the server installed in the data center 100 is not enough, the VM may be arranged on a server outside the data center 100 (for example, a public cloud server).
  • FIG. 9 is a flowchart showing an example of a detailed flow of step 602 in FIG.
  • the placement determination unit 116 selects a VM to be placed on the selected server (server represented by NextServer) from the VM set represented by the parameter L, and stores the selected VM in the selected VM set (VM set represented by Q_in). To do.
  • a VM that has the most different CPU usage time zone from the previously selected VM may be preferentially selected.
  • the VM selected first may be any VM in the VM set represented by the parameter L, or may be a VM according to a predetermined rule (for example, a VM with the highest CPU utilization).
  • step 701 the placement determination unit 116 creates Q_out as information representing VM candidates to be placed on the selected server.
  • Q_out is information representing a set of VMs.
  • the initial value of Q_out is L.
  • the initial value of Q_in representing the set of VMs arranged on the selected server is zero.
  • step 702 the arrangement determining unit 116 selects the VM with the highest CPU utilization rate from the VM set represented by Q_out.
  • the selected VM is referred to as “first type of selected VM”, and information representing the first type of selected VM is referred to as “BigVM”.
  • the arrangement determining unit 116 includes BigVM in Q_in. Then, the arrangement determining unit 116 deletes BigVM from Q_out.
  • the arrangement determining unit 116 calculates the sum of the CPU utilization rates of one or more VMs (VM sets) represented by Q_in for each time interval.
  • the calculation result is a distribution P.
  • the distribution P can be a graph of an xy orthogonal coordinate system in which time is the x-axis (or y-axis) and the sum of CPU utilization is the y-axis (or x-axis).
  • the distribution P may be calculated as follows, for example. That is, in step 703, the set of VMs represented by Q_in may be ⁇ VM_1, VM_2,..., VM_N ⁇ .
  • N is the number of VMs represented by Q_in.
  • P_w Value_1_w + Value_2_w +... + Value_N_w, Equation 2 below.
  • the arrangement determining unit 116 selects a VM having the lowest distribution P and correlation coefficient from the VM set represented by Q_out.
  • the selected VM is referred to as “second type selected VM”, and the information representing the second type selected VM is referred to as “MinVM”.
  • the arrangement determining unit 116 includes MinVM in Q_in. Then, the arrangement determining unit 116 deletes MinVM from Q_out.
  • the calculation of the correlation coefficient between an arbitrary VM and P called VM_check in Q_out may be performed as follows, for example. That is, the CPU usage rate change 212 of VM_check has the following values: (*) The value of the CPU utilization rate in the h-th time interval of VM_check is Value_check_h.
  • (*) H takes a value between 1 and H. You can assume that. Therefore, the correlation coefficient between VM_check and P may be the following formula 3.
  • Value_check_ave is an average value of H values of Value_check_1, Value_check_2, .., Value_check_H.
  • P_ave is the average of H values of P_1, P_2, .., P_H.
  • step 705 the arrangement determining unit 116 determines whether or not the average value (average CPU usage rate) of the CPU usage rates of all VMs represented by Q_in is higher than the allowable range K. If the result of this determination is affirmative (step 705: YES), steps 706 and 707 are executed. If the result of this determination is negative (step 705: NO), step 706 is skipped and step 707 is executed. Is done.
  • step 706 the arrangement determining unit 116 deletes MinVM from Q_in.
  • step 707 the arrangement determining unit 116 determines whether or not the number of VMs represented by Q_out is zero. If the result of this determination is affirmative (step 707: YES), step 602 in FIG. 8 ends, and if the result of this determination is negative (step 707: NO), step 703 is executed.
  • Q_in which is information representing a set of VMs to be stored in the selected server (the server represented by NextServer), is generated.
  • the VM set (combination of VMs) represented by Q_in has less overlap in CPU utilization in multiple time intervals than all other VM sets that can be configured from multiple VMs represented by parameter L (for example, The number of VMs that make up the VM set is the same).
  • the VM set represented by Q_in (a combination of VMs) has a larger difference in CPU utilization in each time interval than all other VM sets that can be configured from a plurality of VMs represented by the parameter L.
  • the VM set represented by Q_in has a VM with a very high CPU usage rate in the first time interval and a very low CPU usage rate in the second time interval
  • a VM having a very low CPU utilization rate in the first time interval and a very high CPU utilization rate in the second time interval is newly added to the VM set represented by Q_in.
  • “Relocation” means changing at least one of the plurality of VMs in the server group from one server to another as described above. This can be expected to improve the load status of the server.
  • the rearrangement interval T is a parameter input by the administrator in step 402 in FIG.
  • the rearrangement management unit 2404 issues a rearrangement command to the placement determination unit 116 at each rearrangement interval T.
  • the relocation necessity determination is automatically started without a separate instruction from the administrator.
  • FIG. 10 is a sequence diagram showing an example of a detailed flow of step 405 in FIG.
  • step 800 the arrangement management unit 118 issues an arrangement command to the arrangement determining unit 116.
  • the arrangement determination unit 116 determines the evaluation result 314 for each server based on the operating CPU usage rate 313 for each server in the arrangement evaluation result DB 114.
  • the determined evaluation result 314 is, for example, as follows. (1) When the value of the operating CPU utilization rate 313 is equal to or higher than HighCPULevel, the value of the evaluation result 314 is “insufficient”. (2) When the value of the operating CPU utilization rate 313 is equal to or higher than LowCPULevel, the value of the evaluation result 314 is “wasted”. (3) When the value of the operating CPU utilization rate 313 is between HighCPULevel and LowCPULevel, the value of the evaluation result 314 is “appropriate”.
  • the arrangement determining unit 116 sets the following parameters based on the arrangement evaluation result DB 114.
  • the parameter L is a set of VMs on the server whose evaluation result 314 of the placement evaluation result DB 114 is “insufficient” or “wasted”.
  • the parameter S is a set of a server whose evaluation result 314 in the placement evaluation result DB 114 is “insufficient” or “wasted” and a server represented by the server list 112.
  • HighCPULevel and LowCPULevel are values input by the administrator in step 402.
  • the allowable range K is an average of the CPU utilization rate (average CPU utilization rate) of the VM at the time of the initial arrangement on the server whose evaluation result 314 of the arrangement evaluation result DB 114 is “success”. However, in the case of the second and subsequent relocations from the initial placement, the allowable range K is the CPU utilization rate (average CPU) of the VM at the time of the last relocation on the server whose evaluation result 314 of the placement evaluation result DB 114 is “success” The average of utilization.
  • steps 504, 505, 506, 507, 508, 509 and 510 are executed based on the plurality of parameters set in step 802.
  • step 803 the arrangement determining unit 116 notifies the rearrangement managing unit 118 that the arrangement has been completed.
  • step 403 of FIG. 6 initial placement is performed for a plurality of VMs. Then, while the VM on the server is in operation, the load status of the server is evaluated at each relocation interval T. In step 405, relocation is performed only for servers that have run out of resources or are wasted. As a result, the number of servers that are lacking and wasting resources can be reduced as much as possible.
  • the servers are selected one by one, and the VMs are arranged on the selected servers so that the total CPU utilization is within the allowable range K or less.
  • the VMs are arranged on the selected servers so that the total CPU utilization is within the allowable range K or less.
  • the VM having the smallest correlation with the CPU usage rate distribution P of one or more VMs already determined to be arranged in the server is determined as the VM arranged in the server.
  • the allowable range K is updated by the server operation results in the placement evaluation result DB 114. For this reason, it can be expected that the allowable range K is an appropriate value according to the operating status of the server. That is, according to the present embodiment, it can be expected to increase the probability of more appropriately allocating VMs by referring to the evaluation results of already operated servers at the time of rearrangement.
  • the placement target VM described in the first embodiment is a VM (hereinafter referred to as a local VM) in which a virtual storage resource (virtual HDD, hereinafter referred to as “VD”) is stored in a local storage device of the server.
  • VD virtual HDD
  • a VM stored in a storage device hereinafter referred to as network storage
  • a network such as the Internet or WAN (Wide Area Network) or LAN (Local Area Network) (hereinafter referred to as network VM) May be called).
  • a protocol capable of transmitting and receiving data via a network such as iSCSI (Internet Small Computer System Interface) or NFS (network file system) may be used for connection between the VM and VD.
  • the server that is the operation base of the VM may have a network communication function using iSCSI, NFS, or the like, and may be used as network storage.
  • the server is also used as network storage, even if the VD of the network VM is stored in the server's local storage device, the communication between the VM and VD uses a protocol such as iSCSI or NFS that transmits and receives data over the network. Good.
  • iSCSI Internet Small Computer System Interface
  • NFS network file system
  • the arrangement target described in the first embodiment may be a group of VMs in which local VMs and network VMs are mixed.
  • placement on a VD network storage may be performed independently of placement on the server of the VM.
  • the VD may be arranged in each network storage by a method similar to the VM arrangement method described in the first embodiment.
  • the HDD utilization rate change 213 may be used instead of or in addition to the CPU utilization rate change 212 used in the first embodiment.
  • the placement method is such that the VM is placed on a server that can communicate with the network storage in which the VD is stored at high speed so that the VM can easily access the VD. It may be adjusted.
  • Example 2 of the present invention will be described. At that time, differences from the first embodiment will be mainly described, and description of common points with the first embodiment will be omitted or simplified.
  • FIG. 11 shows a configuration example of the entire system including the VM placement apparatus according to the second embodiment of the present invention.
  • the VM can be arranged not only on the server (internal server) 103 (104) in the internal resource 902 but also on the server (external server) 904 in the external resource 903.
  • the internal resource 902 includes a server 103 (104) and a network file server (hereinafter, file server) 906.
  • the external resource 903 includes an external server 904.
  • the VM placement device 907 can communicate with the file server 906 via the LAN 102, and can communicate with the external server 904 via the WAM 905.
  • servers when the internal server and the external server are not particularly distinguished, they are simply referred to as “servers”.
  • External resource 903 is a platform that lends information processing capability such as so-called public cloud.
  • the external server 904 includes virtualization software (hereinafter, “external virtual or software”) 911.
  • the VM can be operated by the virtualization software 911 of the external server 904.
  • the external virtualization software 912 and the virtualization software 131 (141) have a function of moving a running VM between servers.
  • the VD (virtual HDD) of the moved VM (network VM) needs to be placed in the file server 906.
  • FIG. 12 shows a configuration example of the VM placement device 907.
  • the VM placement device 907 includes a local VM placement unit 1001, a resource monitoring unit 1003, a network VM moving unit 1004, an external resource usage information DB 1005, and a VM detailed information DB 1006.
  • Each function 1001, 1003, and 1004 is a function that is exhibited when a predetermined computer program is executed by the CPU in the VM placement apparatus 907.
  • the local VM placement unit 1001 places a VM on the internal server 103 (104).
  • the resource monitoring unit 1003 periodically monitors the resource usage status of each server.
  • the network VM moving unit 1004 selects a local VM on the server and changes it to a network VM. Further, the network VM migration unit 1004 executes migration of the network VM between the internal server 103 (104) and the external server 904.
  • the external resource usage information DB 1005 stores information for using the external resource 903 such as account information.
  • the VM detailed information DB 1006 stores information for selecting a network VM.
  • the management terminal 105 displays information indicating the update of information in the external resource usage information DB 1005 and the VM detailed information DB 1006 and the operation status of the VM placement device 907.
  • FIG. 13 shows a configuration example of the VM detailed information DB 1006.
  • the VM detailed information DB 1006 includes the following information for each VM: (1) VM name 2301, which is the name of the VM, (2) Importance 2302 indicating whether the VM handles important data, (3) External access 2303 indicating whether or not there is an external (for example, outside) access to the VM, Have
  • the value of the importance 2032 may be “YES” for a VM that handles data determined as confidential information in the company policy, and the value of the importance 2032 may be “NO” for other VMs.
  • the value of the external access 2303 is “NO” for a VM that has never been connected for screen transfer from an internal (for example, in-house) IP address, and the value of the external access 2303 is set for other VMs. It can be “YES”.
  • FIG. 14 is a flowchart illustrating an example of the overall flow of processing performed in the second embodiment.
  • step 1100 the internal server group, the VM placement device 907 and the management terminal 105 are activated and connected to the LAN 102.
  • the local VM placement unit 1001 places a VM on the internal server 103 (104). Note that all the VMs placed by the VM placement device 901 are local VMs that use VD (virtual HDD) stored in the local storage device 132 of the internal server.
  • VD virtual HDD
  • the local VM placement unit 1001 may realize the same function as the VM placement apparatus 101 described in the first embodiment.
  • the VM placement method in step 1101 may be the same as the method described in the first embodiment.
  • the management terminal 105 receives input of information from the administrator, and stores the information in the external resource usage information DB 1005 and / or the VM detailed information DB 1006.
  • Step 1103 and Step 1104 are performed, and then, in Step 1105, for example, the same processing as Step 407 in FIG.
  • FIG. 15 is a sequence diagram showing an example of a detailed flow of step 1103 in FIG.
  • step 1200 the administrator activates the network VM moving unit 1004.
  • step 1201 the network VM migration unit 1004 connects to the external server 904 based on the external resource usage information DB 1005, and prepares to migrate the VM from the internal server (for example, log in in advance). Do. As a result of step 1201, the external server 904 becomes ready to accept the VM in step 1202.
  • the network VM moving unit 1004 selects one local VM as a target to be changed to the network VM for each server on which the VM is arranged.
  • the network VM moving unit 1004 can select a local VM based on the following criteria. (1) When the VM placement method in step 1101 is the same as the placement method described in the first embodiment, in step 704, the VM included in the VM set represented by Q_in last is selected as the network VM. By moving the selected VM to another server, it is expected that the degree of duplication of the resource use time interval of the VM in the server will be lowered. (2)
  • the local VM may be selected as the network VM based on the following criteria without depending on the VM arrangement method used in step 1101.
  • a local VM whose importance 2302 value in the VM detailed information DB 1006 is “NO” is preferentially selected. That is, a VM without important data is selected.
  • a local VM whose external access 2303 value in the VM detailed information DB 1006 is “YES” is preferentially selected. That is, a VM accessed from outside the company is selected. The number of accesses from outside the company may be counted, and a VM with a higher count value may be preferentially selected first. As a result, VMs that are frequently accessed from outside the company are selected. “External access” refers to access via a WAN or the Internet.
  • a VM with a smaller HDD usage rate may be preferentially selected.
  • step 1204 the network VM moving unit 1004 moves the VD of the VM selected in step 1203 to the file server 906. As a result, the VM becomes a network VM.
  • step 1205 the network VM moving unit 1004 instructs the resource monitoring unit 1003 to start monitoring.
  • the resource monitoring unit 1003 starts monitoring the resource usage status of the internal server group.
  • the resource usage status monitoring is to notify the network VM moving unit 1004 when the resource usage rate (for example, CPU usage rate) of the server is higher than G%.
  • the default value of the threshold G may be an arbitrary value (for example, 85%) by the administrator. Note that the administrator may change the value of the threshold G.
  • FIG. 16 is a sequence diagram showing an example of a detailed flow of step 1104 in FIG.
  • step 1104 the resource monitoring unit 1003 monitors the load on the server during VM operation, and moves the network VM when the load is high.
  • step 1300 the resource monitoring unit 1003 enters a state (mode) for monitoring the resources of the internal server 103 (104).
  • step 1301 the VM operates on the internal server 103.
  • step 1302 the CPU usage rate of the server 103 becomes higher than G%.
  • the resource monitoring unit 1003 detects a resource shortage of the server 103 (the CPU utilization rate of the server 103 has exceeded G% (for example, HighCPULevel)), and in step 1304, the resource monitoring unit 1003 transfers to the network VM moving unit 1004.
  • the first notification is sent.
  • the first notification may include, for example, a value representing a difference between the CPU usage rate of the server 103 and G%.
  • the network VM moving unit 1004 receives the first notification and issues a command to the server 103 to move one or more network VMs (for example, VMb 134) to the external server 904.
  • the one or more network VMs are one or more VMs determined based on the first notification, for example, the sum of the CPU utilization is larger than the difference between the CPU utilization of the server 103 and G% (for example, HighCPULevel) 1 It may be the above VM.
  • G% for example, HighCPULevel
  • a VM with a higher CPU utilization may be preferentially selected as a network VM.
  • step 1306 the server 103 moves the VMb 134 to the external server 904.
  • step 1307 the VMb 134 operates on the external virtualization software 911 on the external server 904.
  • the state of the server 103 is in a state where sufficient resources for the VMb 134 to operate are secured. For example, a state where the CPU utilization rate of the server 103 is G% (for example, HighCPULevel) or less continues for a certain time.
  • G% for example, HighCPULevel
  • the resource monitoring unit 1003 detects that the server 103 is in a state where sufficient resources for the VMb 134 to operate are secured, and sends the second information to the network VM moving unit 1004. Send notifications for.
  • the second notification may include, for example, a value indicating a difference between the CPU usage rate of the server 103 and G%.
  • the VM moving unit 1004 receives the second notification and issues a command for returning the VMb 134 to the server 103 to the external server 904.
  • the external virtualization software 911 of the external server 904 moves the VMb 134 to the server 103.
  • One or more VMs returned from the external server are one or more VMs determined based on the second notification, for example, the CPU utilization rate of the server 103 and G% ( For example, it may be one or more VMs whose total CPU utilization is smaller than the difference from (HighCPULevel).
  • a VM with a lower CPU utilization may be preferentially selected as a network VM.
  • the network VM moving unit 1004 may return the VMb 134 to the server 103 by executing step 1310 at the next system startup.
  • a VM can be moved from one server to another while the VM is running so that the server resource can be changed as quickly as possible. That is, according to the present embodiment, an appropriate server can be selected as the placement destination of the VM based on the VM type.
  • the importance of the data handled by the VM, the location of the client accessing the VM (for example, outside or inside the company), and the HDD usage rate of the VM are based on at least one external.
  • the VM to be moved to the resource is selected. As a result, it can be expected that the movement of the VM has little influence on the user.
  • the VM when a shortage of server resources occurs, the VM is moved to the external resource (for example, public cloud) 903, and when the server resource is wasted, the VM is transferred from the external resource 903 to the VM. Can be realized without requiring an administrator's operation.
  • the external resource for example, public cloud
  • the server where the VM is placed may be one server or a group (server pool) composed of a plurality of servers.
  • server pool composed of a plurality of servers.
  • server group described above may include a plurality of server pools.
  • first embodiment and the second embodiment can operate independently, or one system in which the first and second embodiments are combined may be realized. Further, a part of the configuration of a certain embodiment may be added to the configuration of another embodiment. In addition, it is possible to add, delete, or replace another configuration for a part of the configuration of each embodiment.
  • one system in which the first embodiment and the second embodiment are combined may be realized as follows.
  • each of the above-described configurations, functions, processing units, and the like may be realized by hardware by designing a part or all of them with, for example, an integrated circuit.
  • each of the above-described configurations, functions, and the like may be realized by software by interpreting and executing a program that realizes each function by the CPU.
  • Information such as programs and databases for realizing each function can be stored in a storage device such as a memory or HDD, or a storage medium such as an IC memory card, an SD memory card, or a DVD (Digital Versatile Disk).

Landscapes

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

Abstract

【課題】物理計算機のハードウェア資源の過不足がなるべく生じないように仮想計算機(VM)を配置する。 【解決手段】複数の物理計算機に複数のVMを配置するVM配置装置が構築される。VM配置装置は、複数の時区間のそれぞれにおけるVMの資源負荷値をVM毎に表す情報であるVM負荷情報を記憶する。VM配置装置は、VM負荷情報を基に、各時区間について資源負荷値の差が最も大きくなるような2以上のVMを選択し、選択した2以上のVMを同一の物理計算機に配置する。

Description

仮想計算機を配置する方法及び装置
 本発明は,仮想計算機を配置する技術に関する。
 計算機の物理資源を複数の論理資源に見せかける仮想化ソフトウェアにより、一台の計算機上に複数の仮想計算機(VM)を稼動させることができる。また、仮想化ソフトウェアがハードウェアの特性を吸収するため、VMは計算機のハードウェアの特性に依存せず、VMのハードウェア間の移動が容易である。以下、仮想化ソフトウェアを実行することにより複数のVMを動作させる計算機を単に「サーバ」と言う。
 例えば、VMに業務サーバ用のOS(Operating System)を導入して、VMを業務サーバとして運用する企業がある。この場合、通常、1つのVMは複数のクライアントに利用される。
 一方、VMにデスクトップ用のOSを導入し、VMを仮想デスクトップとして利用する技術がある。この場合、通常、1つのVMは1つのクライアントに利用される。
 VMを利用する場合、複数のVMが同じサーバのハードウェア資源を共有するため、VM間でハードウェア資源の利用が競合する可能性がある。このため、1サーバに何台のVMを稼動させるかを決定することが難しい。
 特許文献1によれば、VM種別の組合せ毎に、その組合せのVM種別同士が同じサーバに配置される適切度(スコア)が用意される。VM種別の組合せ毎のスコアを基に、新規のVMを配置可能な各サーバについて、新規のVMを当該サーバに配置する適切度(指標値)が計算される。この計算した指標値を基に、新規のVMの配置先サーバが決定される。
国際公開第2007/136021号パンフレット
 VMを仮想デスクトップとして利用する場合には、仮想デスクトップのクライアントのユーザの操作により、仮想デスクトップが必要とするハードウェア資源(例えば、CPU処理時間、メモリ量、HDDアクセス帯域およびHDDアクセス時間、又はネットワーク帯域)が急激に変化することがある。そのため、VMをサーバへ配置する際に、各VMに常に快適なパフォーマンスを提供するためには、業務サーバを仮想化する場合と比較すると、相当な余裕を持たせた配置を実施する必要がある。しかし、それでは、サーバの資源の浪費となる。
 そこで、本発明の目的は、物理計算機(例えばサーバ)のハードウェア資源の過不足がなるべく生じないようにVMを配置することにある。
 複数の物理計算機に複数の仮想計算機(VM)を配置するVM配置装置が構築される。VM配置装置が、複数の時区間のそれぞれにおけるVMの資源負荷値をVM毎に表す情報であるVM負荷情報を記憶する。VM配置装置は、VM負荷情報を基に、各時区間について資源負荷値の差が最も大きくなるような2以上のVMを選択し、選択した2以上のVMを同一の物理計算機に配置する。
 このVM配置装置によって配置されるVMのタイプは、どのようなタイプでも良い。このVM配置装置は、仮想デスクトップとして利用される仮想計算機のように、必要とされるハードウェア資源が急激に変化することがあるタイプの仮想計算機の配置に適している。
 本発明によれば、物理計算機のハードウェア資源の過不足がなるべく生じないようにVMを配置することができる。
本発明の実施例1に係るVM配置装置を含んだシステム全体の構成例を示す。 パターンDB201の構成例を示す。 配置評価結果DB114の構成例を示す。 管理部118の構成例を示す。 配置結果DB117の構成例を示す。 実施例1で行われる処理の全体の流れの一例を示すフローチャートである。 ステップ402およびステップ403の詳細な流れの一例を示すシーケンス図である。 図7のステップ504の詳細な流れの一例を示すフローチャートである。 図9は、図8のステップ602の詳細な流れの一例を示すフローチャートである。 図6のステップ405の詳細な流れの一例を示すシーケンス図である。 本発明の実施例2に係るVM配置装置を含んだシステム全体の構成例を示す。 VM配置装置907の構成例を示す。 VM詳細情報DB1006の構成例を示す。 実施例2で行われる処理の全体の流れの一例を示すフローチャートである。 図14のステップ1103の詳細な流れの一例を示すシーケンス図である。 図14のステップ1104の詳細な流れの一例を示すシーケンス図である。
 以下、本発明の幾つかの実施例を、図面を参照して詳細に説明する。
 なお、以下の説明では「xxxDB」、「xxxリスト」の表現にて各種情報を説明することがあるが(DBは「データベース」の略)、各種情報は、DBやリスト以外のデータ構造で表現されていても良い。データ構造に依存しないことを示すために「xxxDB」や「xxxリスト」を「xxx情報」と言うことができる。
 また、以下の説明では、要素を特定するために名称が使用されるが、名称に代えて、識別情報として、ID又は番号などが使用されて良い。
 また、以下の説明では、プログラムがプロセッサ(例えばCPU(Central Processing Unit))によって実行されることで発揮される機能(又はプログラム)を主語にして処理を説明することがあるが、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インタフェース装置(例えば通信ポート)を用いながら行うため、処理の主語がプロセッサとされても良い。プロセッサは、プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでも良い。コンピュータプログラムは、プログラムソースから各計算機にインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
 本実施例は、VMの資源利用率の時間による変化を考慮した配置方法の一例に関する。なお、以下の説明では、仮想デスクトップとして利用される仮想計算機を「VM」と記載し、複数のVMの各々について、「VM#」と標記することがある(#は、a、b、…といった小文字のアルファベットである)。
 図1は、本発明の実施例1に係るVM配置装置を含んだシステム全体の構成例を示す。
 データセンタ100では、管理端末105を操作する管理者の要求に従い、VMを生成、配置及び動作させることができる。クライアント計算機(以下、クライアント)171のユーザが、このデータセンタ100上のVMへいわゆる画面転送型シンクライアントと呼ばれる形態でリモート接続し、VMを利用することができる。データセンタ100の一つの例は、企業のデータセンタであり、仮想デスクトップを集中管理する基盤を含む。本実施例では、一つのVMが一つの仮想デスクトップになる。クライアント171は、LAN172を介してVMにアクセスして良い。LAN172に代えて、他種の通信ネットワークが採用されても良い。
 本実施例に係るデータセンタ100には、サーバ103及びサーバ104を含んだサーバ群と、サーバにVMを配置する機能を有するVM配置装置101と、VM配置装置101を操作する機能を有する管理端末105とがある。各サーバ、VM配置装置101及び管理端末105は、LAN(Local Area Network)102に接続されている。LAN102に代えて他種の通信ネットワークが採用されても良い。
 サーバについて、サーバ103を例に取り説明する。
 サーバ103は、通信インタフェース装置(例えばNIC(Network Interface Card))、記憶資源(例えばメモリ及びHDD(Hard Disk Drive))、及びそれらに接続されたCPUを有する。記憶資源が、仮想化機能を備えたソフトウェアである仮想化ソフト131を記憶し、CPUが、仮想化ソフト131を実行する。仮想化ソフト131上に、1又は複数のVM、例えば、VMa133およびVMb134が配置される。
 サーバ103が有する記憶資源として、例えば、サーバ103にLAN102を介することなく接続された記憶装置(以下、ローカル記憶装置)132がある。ローカル記憶装置132には、VMa133の仮想的な記憶資源(例えば仮想HDD)のイメージであるVDa(仮想ディスクファイルa)135と、VMb134の仮想的な記憶資源(例えば仮想HDD)のイメージであるVDb(仮想ディスクファイルb)136とが格納される。VMa133(VMb134)は、動作する際に、仮想化ソフト131を介して、VDa135(VDb136)を参照及び/又は変更する。
 なお、仮想化ソフト131は、そのソフト131を有するサーバ103の外部の装置(例えば、別のサーバ、或いは、VM配置装置101)から命令を受け、その命令に従い、VMの作成、起動、停止又は移動(或るサーバから別のサーバへのVMの移動)を実行する機能を有する。また、仮想化ソフト131は、そのソフト131上で動作するVM及びそのソフト131を有するサーバ103の資源利用状況(CPU利用率、メモリ利用率、HDD利用率、及び、利用したネットワーク帯域幅のうちの少なくとも1つ)を監視する機能を有する。
 サーバ群におけるサーバ103以外の各サーバの構成及び機能は、サーバ103の構成及び機能と実質的に同じである。ただし、サーバ群における全てのサーバのハードウェア資源の性能(例えば、CPUの処理性能)が同じであるとは限らない。
 VM配置装置101は、サーバ群中のサーバにVMを生成及び配置する。VM配置装置101は、例えば、1以上の計算機であり、通信インタフェース装置(例えばNIC(Network Interface Card))、記憶資源(例えばメモリ及びHDD(Hard Disk Drive))、及びそれらに接続されたCPUを有する。通信インタフェース装置が、LAN102を介して管理端末105及び複数のサーバに接続される。記憶資源が、VMリスト111と、サーバリスト112と、ログDB113と、配置評価結果DB114と、配置結果DB117と、1以上のコンピュータプログラムを記憶する。CPUが、その記憶資源内の1以上のコンピュータプログラムを実行することにより、配置実行部115と、配置決定部116と、管理部118としての機能を発揮することができる。VM配置装置101の各構成要素に関しては後述する。
 管理端末105は、VM配置装置101と通信する機能と、VM配置装置101へ情報を入力する機能と、VM配置装置101の中のプログラムの起動や動作状況を監視する機能とを有する。管理者は、管理端末105を操作して、データセンタ100を管理する。すなわち、本実施例では、VM配置装置101が、管理サーバとして機能し、管理端末105が、VM配置装置101にアクセスする管理クライアントとして機能することができる。
 次に、VM配置装置101が各構成要素に関して説明する。
 VMリスト111は、サーバ群に存在する複数のVMのうち管理者が稼働させたい各VMに関する情報のリストである。VMに関する情報は、例えば、VMの名称と、そのVMの仕様(CPUの動作周波数、メモリ容量、又はHDD容量)を表す情報とを含んだ情報である。
 サーバリスト112は、サーバ群における各サーバに関する情報のリストである。サーバに関する情報は、例えば、サーバのIPアドレスを表す情報を含んだ情報である。
 図2は、パターンDB201の構成例を示す。
 パターンDB201は、一定期間における各VMの資源利用率の変化を示す情報を格納するデータベースである。「VMの資源利用率の変化を示す情報」は、例えば、一定期間における各時区間(例えば6時間毎)でのVMの資源利用率を示す情報である。より具体的には、パターンDB201は、例えば、VM毎に、下記の情報、
(1)VMの名称であるVM名211、
(2)各時区間でのVMのCPU利用率(すなわち、一定期間におけるVMのCPU利用率変化)を示すCPU利用率変化212、
(3)各時区間でのVMのHDD利用率(すなわち、一定期間におけるVMのHDD利用率変化)を示すHDD利用率変化213、
を有する。HDD利用率は、或る期間内(例えば一秒間内)にVMがHDDにアクセスする時間の割合であってもよい。また、HDD利用率は、或る期間中(例えば一秒間内)にVMがHDDにデータ書き込みまたは読み出しに用いた帯域の、サーバの物理的なHDDの最大送受信可能な帯域に対する割合であってもよい。本実施例では、CPU利用率及びHDD利用率を示す情報が一日単位で記録されるが、この期間の長さは、一週間或いは一ヶ月といった別の長さであっても良い。なお、VM資源利用率として、CPU利用率及びHDD利用率の少なくとも一方に代えて又は加えて、VMのメモリ利用率の変化、ネットワーク帯域の利用率の変化を示す情報が、パターンDB201に格納されもよい。また、本実施例では、時区間における資源利用率は、その時区間における資源利用率の平均値であるが、平均値に代えて、時区間における所定の条件を満たす値(例えば最大値又は最小値)であっても良い。
 図3は、配置評価結果DB114の構成例を示す。
 配置評価結果DB114は、VMの配置結果に従う評価を示す情報をサーバ毎に有する。具体的には、配置評価結果DB114は、例えば、サーバ毎に、
(1)サーバの名称であるサーバ名311、
(2)サーバ内の全てのVMのCPU利用率の合計を示す配置CPU利用率312、
(3)サーバが稼動したときのCPU利用率を示す稼働CPU利用率313、
(4)サーバへのVMの配置が適切かどうかを示す評価結果314、
を有する。評価結果314の値としては、「不足」、「浪費」及び「適切」の3種類がある。
 図4は、管理部118の構成例を示す。
 管理部118は、管理コンソール2401と、パラメータDB2402と、初期配置管理部2403と、再配置管理部2404を有する。
 管理コンソール2401は、VMリスト111、サーバリスト112が有する情報及びパラメータDB204が有する情報を入力する。管理コンソール2401は、配置結果DB117が有する情報を表示する。また、管理コンソール2401は、初期配置管理部2403及び再配置管理部2404を起動する。
 パラメータDB2402は、初期配置管理部2403及び再配置管理部2404を動作させるためのパラメータを有するデータベースである。パラメータDB2402は、例えば、下記の(1)~(5)のパラメータ、
(1)配置すべきVMの集合: L、
(2)利用可能なサーバの集合: S、
(3)サーバの資源状況を判断するための基準: HighCPULevel, LowCPULevel、
(4)サーバにどれぐらいVMを乗せるかを判断するための基準(許容範囲): K、
(5)再配置が必要か否かの判断(再配置要否判断)を実行する時間間隔(再配置間隔): T
を有する。HighCPULevel、LowCPULevel、及びKは、0から100%におけるいずれかの値となる。
 なお、「許容範囲」とは、サーバの資源の何パーセントまでVMで利用するかを示す指標である。例えば、サーバ上に配置する1以上のVMのCPUの平均利用率(平均CPU利用率)はサーバのCPU処理能力のK%以下になるように配置する必要がある。Kが100に近いほど、サーバに多くのVMを配置することができるが、VMの資源利用率が急に高くなった場合、サーバが対応できなくなる可能性が高い。逆に、Kが0に近いほど、サーバの資源の浪費が発生する可能性がある。なお、本実施例では、資源利用率の代表としてCPUの処理能力(CPU利用率)が採用されるが、他種の資源利用率も考慮されて、許容範囲が設定されてもよい。設定範囲は、資源利用率の種類毎に異なっていても良い。
 「再配置間隔」は、例えば、「毎週の最終勤務日の勤務時間終了後」或いは「毎週の週末」である。
 初期配置管理部2403は、一回目のVM配置を管理する。初期配置管理部2403は、配置決定部116を起動し、パラメータDB2402に格納されるパラメータを配置決定部116に渡す。また、再配置管理部2404は、再配置間隔Tごとに配置決定部116に再配置命令を出す。
 図5は、配置結果DB117の構成例を示す。
 配置結果DB117は、どのサーバにどのVMを配置するかを示すデータベースである。具体的には、配置結果DB117は、例えば、サーバ毎に、下記の情報、
(1)サーバの名称であるサーバ名2501、
(2)サーバに配置された配置されるVMの名称の集合であるVM集合2502、
を有する。
 配置決定部116は、パラメータDB2402に格納されているパラメータであるHighCPULevel、LowCPULevel、及びKを参照し、パラメータSが示す1以上のサーバに、パラメータLが表す1以上のVMを配置し、配置の結果を配置結果DB117に格納する。
 配置実行部115は、仮想化ソフト131や142と通信し、配置結果DB117に従う、VMの配置を、実行する。
 本実施例では、VMの配置として、「初期配置」と「再配置」の2種類がある。
 初期配置は、下記の(a)又は(b)の条件、
(a)データセンタ100の起動後に初めてサーバ群にVMを配置すること、
(b)n回目のVM配置で配置されたVMの数と(直前回VM数)、次のVM配置((n+1)回目のVM配置)で配置されるVMの数(今回VM数)との差が、所定数を超えている(例えば、配置されるVMの数が大幅に変更される)、
(c)管理者から初期配置であることが指定された、
に適合する配置である。条件(b)については、直前回VM数と今回VM数のどちらが大きくても良い。初期配置のためには、管理者からの情報入力が必要である。
 再配置は、サーバ群における複数のVMのうちの少なくとも1つの配置先を或るサーバから別のサーバに変更することである。再配置のために、管理者からの情報入力は格別必要としない。
 図6は、実施例1で行われる処理の全体の流れの一例を示すフローチャートである。
 まず、ステップ400では、データセンタ100が起動する。具体的には、例えば、管理者が、仮想化ソフト131(141)を導入済みのサーバ133(104)を起動し、各サーバにLAN102を接続する。また、管理者が、VM配置装置101および管理端末105を起動し、装置101及び端末105をLAN102に接続する。ステップ400は、例えば、企業の業務時間開始の所定時間前(例えば30分前)に行われて良い。
 次に、ステップ401で、初期配置か否かが判断される。初期配置か否かの判断は、管理者が行っても良いしコンピュータ(例えば、VM配置装置101)が行っても良い。ステップ401の判断の結果が肯定的の場合、ステップ402及び403が行われる。ステップ401の判断の結果が否定的の場合、ステップ402及び403がスキップされ、ステップ404が行われる。
 ステップ402では、管理端末105が、管理者から、特定の情報(例えば、配置対象のVMに関する情報や配置する際の条件など)の入力を受け、その特定の情報を、VM配置装置101に入力する。
 ステップ403では、VM配置装置101が、入力された特定の情報を基に、VMの配置を実行する。
 次に、ステップ404で、再配置要否判断が行われる。再配置か否かの判断は、管理者が行っても良いしコンピュータ(例えば、VM配置装置101)が行っても良い。本実施例では、VM配置装置101は、一定期間ごとにステップ404を行う。再配置間隔T毎に、再配置要否判断が実行される。再配置間隔Tは、例えば、ステップ402で管理者が入力した特定の情報に含まれる値であって、パラメータDB2402に含まれるパラメータ値である。ステップ404の判断の結果が肯定的の場合、ステップ405及び406が行われる。ステップ404の判断の結果が否定的の場合、ステップ405がスキップされ、ステップ406が行われる。
 ステップ405では、VM配置装置101が、ステップ403においてVM配置済みの複数のVMの一部(又は全て)のVMを再配置する。
 ステップ406では、VMの動作に従うサービスが提供される。例えば、一日の業務時間など、一定期間VMが動作し、その結果として、クライアント171のユーザへサービスが提供される。具体的には、VMで画面転送ソフトウェアが実行されることで、VMが提供する仮想デスクトップが、そのVMに接続したクライアント171のディスプレイ画面に表示される。VMが動作している間に、仮想化ソフト131(141)が、そのソフト131(141)を実行するサーバ103(104)の資源利用率、及び、VMの資源利用率を監視し、その監視結果を表す情報をVM配置装置101に蓄積する。具体的には、例えば、下記の通りである。
(1)仮想化ソフト131(141)が、そのソフト131(141)を有するサーバ103(104)で実行される各VMについて、CPU利用率及びHDD利用率を監視する。一定期間毎(例えば6時間毎)に、仮想化ソフト131(141)が、CPU利用率及びHDD利用率(例えば、その一定期間におけるCPU利用率の平均及びHDD利用率の平均)を表す情報を、VM配置装置101のパターンDB113に格納する。
(2)仮想化ソフト131(141)が、そのソフト131(141)を有するサーバ103(104)の一定時間(例えば1時間)におけるCPU利用率を一定時間毎に算出する。仮想化ソフト131(141)は、算出したCPU利用率を表す値を、配置評価結果DB114に格納する。
 なお、仮想化ソフト131(141)に代えて、VMが、VMの資源利用状況とそのVMが配置されたサーバの資源利用状況とを監視する監視ツール(例えばアプリケーションプログラム)を実行して良い。この場合、その監視ツールが、周期的に、データベース(例えば、パターンDB113又は配置評価結果DB114)を更新して良い。
 一定期間終了後(例えば一日の業務時間が終了すると)、ステップ406が終了する。
 ステップ407では、データセンタ100が停止する。ステップ407は、例えば、企業の業務時間後、サーバ群におけるVMが利用されなくなることであっても良い。具体的には、例えば、仮想化ソフト131(141)がVMを停止し、そして、サーバ103(104)の電源がターンオフされる。管理者が、VM配置装置101および管理端末105を停止させてもよい。
 図7は、ステップ402およびステップ403の詳細な流れの一例を示すシーケンス図である。
 まず、ステップ402では、管理者が管理端末105を使用して入力した情報が、VM配置装置101における管理部118内の管理コンソール2401へ送信される。具体的には、例えば、ステップ402では、下記が行われる。
(1)管理者によって入力された情報は、稼動したいVMに関する情報(例えば、VM名)を含む。管理コンソール2401が、そのVMに関する情報を、VMリスト111に登録する。
(2)管理者によって入力された情報は、利用されるサーバに関する情報(例えば、サーバのIPアドレス)を含む。管理コンソール2401が、そのサーバに関する情報を、サーバリスト112に登録する。
(3)管理コンソール2401が、VMリスト111から特定されるVM毎に、VMの資源利用率を表す情報を、パターンDB113に格納する。パターンDB113に格納される、VMの資源利用率の値は、例えば、利用者が過去に利用した仮想デスクトップ(VM)の資源利用率を基に決定されて良いし、所定の試験運用期間中での仮想デスクトップ(VM)の資源利用率を表す値であっても良い。
(4)管理者によって入力された情報は、パラメータ「HighCPULevel」及び「LowCPULevel」を含む。管理コンソール2401が、それらのパラメータを、パラメータDB2402に格納する。
(5)管理者によって入力された情報は、前述したパラメータK(許容範囲:K)を含む。管理コンソール2401が、パラメータKを、パラメータDB2402に格納する。
(6)管理者によって入力された情報は、前述したパラメータT(再配置間隔:T)を含む。管理コンソール2401が、パラメータTを、パラメータDB2402に格納する。
 次に、ステップ501では、管理端末105が、管理者の操作に従い、管理部118にVM配置命令を送信する。管理部118は、VM配置命令を受け、ステップ502において、配置決定部116を起動し、ステップ503で、配置決定部116に複数のパラメータを渡す。それら複数のパラメータは、例えば、下記のパラメータ、
(1)配置すべきVMの集合: L、
(2)利用可能なサーバの集合: S、
(3)HighCPULevel及びLowCPULevel、
(4)許容範囲: K、
である。ただし、Lの値は、VMリスト111に登録されている全てのVMに関する情報(例えば、全てのVMのVM名)である。また、Sの値は、サーバリスト112に登録されている全てのサーバに関する情報(例えば、全てのサーバのIPアドレス)である。また、HighCPULevel、LowCPULevel及びKの値は、ステップ402において管理者が入力した値である。
 ステップ504では、配置決定部116が、管理部118から受けた複数のパラメータに基づいて、VMの配置を決定し、配置結果(どのサーバにどのVMを配置するかを表す情報)を、ステップ505において、配置結果DB117に格納する。
 ステップ506では、配置決定部116が、配置結果の格納が完了したことを、配置実行部115に通知する。配置実行部115は、その通知を受けて、ステップ507およびステップ508において、配置結果DB117から、どのサーバにどのVMを配置すべきかを特定し、ステップ509において、特定した通りにVMを配置するべくVM配置を実行する。具体的には、例えば、配置実行部115は、配置結果DB117のサーバ名2501に該当するサーバ(以下、この段落において「対象サーバ」と言う)を起動する。配置実行部115は、対象サーバに対応するVM集合2502に属する全てのVMを対象サーバに配置する。対象サーバに対応するVM集合2502に属する1つのVM(以下、この段落において「対象VM」と言う)を例に取ると、その処理は、例えば次の通りである。すなわち、配置実行部115は、対象VMが対象サーバに存在するか否かの第1の判断を行う。この第の判断の結果が否定的の場合、配置実行部115は、対象サーバ以外のサーバに対対象VMが存在するか否かの第2の判断を行う。この第2の判断の結果が肯定的の場合、配置実行部115は、対象サーバ以外のサーバから対象サーバに対象VMを移動する。この第2の判断の結果が否定的の場合、配置実行部115は、対象サーバに対象VMを新規に作成させる。このようなVM配置の完了後、配置実行部115が、ステップ510で、管理部118に完了を通知する。ステップ511において、管理者は、管理コンソール2401から管理端末105を通じて、配置の結果を確認することができる。なお、ここで確認される配置結果(管理コンソール2401から管理端末105に送信される配置結果)は、例えば、
(*)どのサーバにどのVMが配置されたかを表す情報、
(*)VM配置後におけるサーバの資源利用率とVMの資源利用率を表す情報、
である。
 次に、図7のステップ504を説明する。
 図8は、図7のステップ504の詳細な流れの一例を示すフローチャートである。
 まず、ステップ601において、配置決定部116が、パラメータSが表す複数のサーバの中から、1つのサーバを選ぶ。サーバは、ランダムに選択されても良いし、所定の規則に従って選択されても良い(例えば、新規導入されてからの稼動時間が少ない順にサーバが選択されるようになっていても良い)。図8及び図9の説明において、ステップ601で選択されたサーバを「選択サーバ」と言い、選択サーバを表す情報を、「NextServer」と言う。
 ステップ602では、配置決定部116が、NextServerに配置するVMの集合を、パラメータLが表す1以上のVMの中から選択する。図8及び図9の説明において、選択されたVM集合を「選択VM集合」と言い、選択VM集合を表す情報を「Q_in」と意う。
 ステップ603では、配置決定部116が、NextServerとQ_inとを配置結果DB117へ格納し、Q_inに属するVMを示す情報を、パラメータLより削除する。
 ステップ601およびステップ602は、パラメータLが表すVMの数がゼロになるまで繰り返し実行される。なお、本実施例では、配置するVMの数及びVMに要求される性能に比べて、サーバの数及び性能は十分あると仮定する。データセンタ100に設置されたサーバだけでは足りない場合は、データセンタ100の外部のサーバ(例えば、パブリッククラウドのサーバ)にVMが配置されても良い。
 図9は、図8のステップ602の詳細な流れの一例を示すフローチャートである。
 ステップ602では、配置決定部116が、選択サーバ(NextServerが表すサーバ)に配置するVMを、パラメータLが表すVM集合より選択し、選択したVMを選択VM集合(Q_inが表すVM集合)に格納する。ここでは、例えば、既に先に選択されているVMとCPU利用時間帯が最も違うVMが優先的に選択されて良い。最初に選択されるVMは、パラメータLが表すVM集合のうちのいずれのVMであっても良いし、所定の規則に従うVM(例えば、CPU利用率が最も高いVM)であっても良い。
 ステップ701では、配置決定部116が、選択サーバに配置するVMの候補を表す情報として、Q_outを作成する。Q_outは、VMの集合を表す情報である。Q_outの初期値はLである。そして、選択サーバに配置されるVMの集合を表すQ_inの初期値は、ゼロである。
 ステップ702では、配置決定部116が、Q_outが表すVM集合のうち、CPU利用率の一番高いVMを選択する。ここで選択されたVMを、「第1種の選択VM」と言い、第1種の選択VMを表す情報を「BigVM」と言う。配置決定部116が、BigVMをQ_inに含める。そして、配置決定部116が、BigVMをQ_outから削除する。
 次に、ステップ703では、配置決定部116が、Q_inが表す1以上のVM(VM集合)のCPU利用率の和を、時区間別に計算する。その計算結果を、分布Pとする。例えば、分布Pは、時間をx軸(又はy軸)としCPU利用率の和をy軸(又はx軸)としたxy直行座標系のグラフとすることができる。なお、分布Pの計算を、例えば次のように行ってもよい。すなわち、ステップ703では、Q_inが表すVMの集合が、{VM_1,VM_2,…,VM_N}とで良い。ここで、Nは、Q_inが表すVMの数である。なお、VM_nのCPU利用率の変化212は、以下の値を持つと仮定して良い。すなわち、VM_nのw番目の時区間のCPU利用率=Value_n_w、下記数1。
Figure JPOXMLDOC01-appb-M000001
Hは、VMのCPU利用率の変化212の時区間の数である。図2に示す例では、0時~6時,7時~12時,13時~18時,19時~24時という4時区間があるため、この場合、H=4となる。そこで、分布PのH個の時区間のCPU利用率をP_1,P_2,…,P_Hとする。P_1,P_2,…,P_Hの各値は、以下のように計算されてもよい。P_w=Value_1_w+Value_2_w+…+Value_N_w、下記数2。
Figure JPOXMLDOC01-appb-M000002
 次に、ステップ704では、配置決定部116が、Q_outが表すVM集合から、分布Pと相関係数が一番低いVMを選択する。ここで選択されたVMを、「第2種の選択VM」と言い、第2種の選択VMを表す情報を「MinVM」と言う。配置決定部116が、MinVMをQ_inに含める。そして、配置決定部116が、MinVMをQ_outから削除する。なお、Q_outの中にあるVM_checkという任意のVMとPの相関係数の計算は、例えば、次のように行ってもよい。すなわち、VM_checkのCPU利用率の変化212は、以下の値を持つ、
(*)VM_checkのh番目の時区間のCPU利用率の値は、Value_check_hである。
(*)hは1からHまでの間の値を取る。
と仮定して良い。そこで、VM_checkとPの相関係数は、下記数3でもよい。ここで、Value_check_aveは、Value_check_1,Value_check_2,..,Value_check_Hの H個の値の平均値である。なおP_ave は、P_1,P_2,..,P_Hの H個の値の平均値である。
Figure JPOXMLDOC01-appb-M000003
 次に、ステップ705では、配置決定部116が、Q_inが表す全てのVMのCPU利用率の平均値(平均CPU利用率)が許容範囲Kよりも高いか否かを判断する。この判断の結果が肯定的の場合(ステップ705:YES)、ステップ706及び707が実行され、この判断の結果が否定的の場合(ステップ705:NO)、ステップ706がスキップされ、ステップ707が実行される。
 ステップ706では、配置決定部116が、MinVMをQ_inから削除する。
 ステップ707では、配置決定部116が、Q_outが表すVMの数がゼロか否かを判断する。この判断の結果が肯定的の場合(ステップ707:YES)、図8のステップ602が終了となり、この判断の結果が否定的の場合(ステップ707:NO)、ステップ703が実行される。
 図8のステップ602の結果として、選択サーバ(NextServerが表すサーバ)に格納すべきVMの集合を表す情報であるQ_inができる。Q_inが表すVM集合(VMの組合せ)は、パラメータLが表す複数のVMから構成し得る他の全てのVM集合に比べて、複数の時区間でのCPU利用率の重複が小さい(但し、例えば、VM集合を構成するVMの数は、同じである)。言い換えれば、Q_inが表すVM集合(VMの組合せ)は、パラメータLが表す複数のVMから構成し得る他の全てのVM集合に比べて、各時区間でのCPU利用率の差が大きい。具体的には、例えば、Q_inが表すVM集合に、第1の時区間でのCPU利用率が非常に高く第2の時区間でのCPU利用率が非常に低いVMがあった場合には、第1の時区間でのCPU利用率が非常に低く第2の時区間でのCPU利用率が非常に高いVMが、Q_inが表すVM集合に新たに追加されることになる。
 次に、図6のステップ405での再配置を説明する。
 「再配置」とは、前述したように、サーバ群における複数のVMのうちの少なくとも1つの配置先を或るサーバから別のサーバに変更することである。これにより、サーバの負荷状況の改善が期待できる。
 再配置間隔Tは、図6のステップ402で管理者により入力されるパラメータである。再配置管理部2404は、再配置間隔T毎に、配置決定部116に再配置命令を出す。これにより、管理者が別途指示をすることなく自動で再配置要否判断が開始される。
 図10は、図6のステップ405の詳細な流れの一例を示すシーケンス図である。
 まず、ステップ800において、配置管理部118が、配置命令を配置決定部116に出す。
 そして、ステップ801において、配置決定部116が、配置評価結果DB114内のサーバ毎の稼働CPU利用率313を基に、サーバ毎に評価結果314を決定する。決定される評価結果314は、例えば、以下の通りである。
(1)稼働CPU利用率313の値がHighCPULevel以上の場合、評価結果314の値は「不足」である。
(2)稼働CPU利用率313の値がLowCPULevel以上の場合、評価結果314の値は「浪費」である。
(3)稼働CPU利用率313の値がHighCPULevelとLowCPULevelの間の場合、評価結果314の値は「適切」である。
 また、本実施例では、説明をわかりやすくするため、資源利用率としてCPU利用率だけに着目するが、CPU利用率だけではなく、HDD、メモリ、ネットワーク帯域に関しても同じような評価が可能である。また、複数種類のハードウェア資源の負荷(利用率)を考慮した評価も可能である。例えば、CPU、HDD及びメモリのそれぞれの利用率を同時に考慮した場合、以下のような評価基準が採用されても良い。
(1)CPU利用率が「不足」、HDD利用率が「不足」、又はメモリ利用率が「不足」の場合、評価結果314の値は「不足」である。
(2)上記の(1)の条件に該当せず、且つ、CPU利用率が「浪費」、HDD利用率が「浪費」又はメモリ利用率が「浪費」の場合、評価結果314の値は「浪費」である。
(3)上記の(1)と(2)のいずれの条件も満たされない場合、:評価結果314の値は「適切」である。
 ステップ802では、配置決定部116が、配置評価結果DB114を基に、以下のパラメータを設定する。
(1)パラメータLは、配置評価結果DB114の評価結果314が「不足」又は「浪費」となったサーバ上のVMの集合である。
(2)パラメータSは、配置評価結果DB114の評価結果314が「不足」又は「浪費」となったサーバと、サーバリスト112が表すサーバとの集合である。
(3)HighCPULevel及びLowCPULevelは、管理者がステップ402で入力した値である。
(4)許容範囲Kは、配置評価結果DB114の評価結果314が「成功」のサーバ上の初期配置時のVMのCPU利用率(平均CPU利用率)の平均である。ただし、初期配置から2回目以降の再配置の場合では、許容範囲Kは、配置評価結果DB114の評価結果314が「成功」のサーバ上の前回の再配置時のVMのCPU利用率(平均CPU利用率)の平均である。
 ステップ803では、ステップ802において設定された複数のパラメータを基に、ステップ504、505、506、507、508、509及び510が実行される。
 ステップ803が終了した後、配置決定部116が、配置完了したことを再配置管理部118へ通知する。
 本実施例では、まず、図6のステップ403において、複数のVMについて初期配置が行われる。そして、サーバ上のVMが運用されている間、再配置間隔T毎に、サーバの負荷状況が評価される。資源が不足又は浪費となったサーバだけを対象に、ステップ405において、再配置が実行される。これによって、資源が不足及び浪費しているサーバの数をなるべく少なくすることができる。
 本実施例によれば、サーバが一台ずつ選択され、選択されたサーバに、CPU利用率の合計が許容範囲K以下になるようにVMが配置される。これにより、サーバの台数を事前に決める必要がなく、必要最小限のサーバ数で必要なVMを稼動させることができる。
 また、本実施例によれば、サーバに既に配置されることが決定された1以上のVMのCPU利用率の分布Pと相関関係が最も小さいVMが、そのサーバに配置されるVMとして決定される。これにより、各時区間で、1つのサーバにおいて、複数のCPU利用率がバランス良くばらつくので、サーバの資源に過不足が生じないようにすることが期待できる。
 さらに、本実施例によれば、再配置の場合、許容範囲Kが、配置評価結果DB114の中のサーバ稼動実績により更新される。このため、許容範囲Kが、サーバの稼働状況に応じた適切な値になることが期待できる。つまり、本実施例によれば、再配置の際に、すでに運用したサーバの評価結果を参考に、より適切にVMを配置することの確率を上げることが期待できる。
 なお、実施例1で述べた配置対象のVMは、仮想的な記憶資源(仮想HDD、以下「VD」と呼ぶ)がサーバのローカル記憶装置に格納されるVM(以下、ローカルVMと呼ぶ)に限らず、VDがインターネット或いはWAN(Wide Area Network)或いはLAN)(Local Area Network)などのネットワークを介してアクセスされる記憶装置(以下、ネットワークストレージと呼ぶ)に格納されるVM(以下、ネットワークVMと呼ぶ)でもよい。ネットワークVMの場合、VMとVDの間の接続には、例えばiSCSI(Internet Small Computer System Interface)またはNFS(ネットワークファイルシステム)など、ネットワーク経由でデータを送受信できるプロトコルが使用されてもよい。また、VMの動作基盤であるサーバは、iSCSIやNFSなどを用いたネットワーク通信機能を有して、ネットワークストレージとして利用されても良い。サーバがネットワークストレージとしても利用される場合、ネットワークVMのVDがサーバのローカル記憶装置に格納されても、VMとVDの間の通信はiSCSIやNFSなど、ネットワーク経由でデータ送受信するプロトコルが使用されて良い。ネットワークVMの一つの特徴は、ステップ403および405は、VM稼働中でも実行できることにある。
 なお、実施例1で述べた配置の対象は、ローカルVMとネットワークVMが混在したVMのグループであってもよい。
 実施例1で述べた配置の対象がネットワークVMの場合、VMのサーバへの配置とは独立して、VDのネットワークストレージへの配置が行われてもよい。具体的には、例えば、実施例1で述べたVM配置手法と同様の手法でVDが各ネットワークストレージへ配置されてもよい。この場合、実施例1で用いられたCPU利用率の変化212に代えて又は加えて、HDD利用率の変化213が利用されてもよい。
 実施例1で述べた配置の対象がネットワークVMの場合、VMがVDへアクセスしやすくするために、VDが格納されるネットワークストレージと高速に通信できるサーバにVMが配置されるように配置方法が調整されてもよい。
 以下、本発明の実施例2を説明する。その際、実施例1との相違点を主に説明し、実施例1との共通点については説明を省略或いは簡略する。
 本実施例では、異なる複数のタイプのVMが配置される。
 図11は、本発明の実施例2に係るVM配置装置を含んだシステム全体の構成例を示す。
 本実施例によれば、内部資源902におけるサーバ(内部サーバ)103(104)の他に、外部資源903におけるサーバ(外部サーバ)904にも、VMが配置され得る。内部資源902は、サーバ103(104)と、ネットワークファイルサーバ(以下、ファイルサーバ)906とを含む。外部資源903は、外部サーバ904を含む。VM配置装置907が、LAN102を介してファイルサーバ906と通信することができ、且つ、WAM905を介して外部サーバ904と通信することができる。以下、内部サーバと外部サーバを特に区別しない場合には、単に「サーバ」と言う。
 外部資源903は、いわゆるパブリッククラウドなど、情報処理能力を貸し出す基盤である。外部サーバ904は、仮想化ソフト(以下、外部仮想かソフト)911を有する。外部サーバ904の仮想化ソフト911により、VMを動作させることが可能である。また、外部仮想化ソフト912と仮想化ソフト131(141)は、動作中のVMをサーバ間で移動する機能を有する。ただし、移動されるVM(ネットワークVM)のVD(仮想HDD)は、ファイルサーバ906に置かれる必要がある。
 図12は、VM配置装置907の構成例を示す。
 VM配置装置907は、ローカルVM配置部1001と、資源監視部1003と、ネットワークVM移動部1004と、外部資源利用情報DB1005と、VM詳細情報DB1006とを有する。各機能1001、1003及び1004は、VM配置装置907内のCPUで所定のコンピュータプログラムが実行されることにより発揮される機能である。
 ローカルVM配置部1001は、内部サーバ103(104)へVMを配置する。
 資源監視部1003は、各サーバの資源使用状況を定期的に監視する。
 ネットワークVM移動部1004は、サーバ上のローカルVMを選択してネットワークVMへ変える。また、ネットワークVM移動部1004は、内部サーバ103(104)と外部サーバ904との間でのネットワークVMの移動を実行する。
 外部資源利用情報DB1005は、アカウント情報など外部資源903を利用するための情報を格納する。
 VM詳細情報DB1006は、ネットワークVMを選択するための情報を格納する。
 管理端末105は、外部資源利用情報DB1005及びVM詳細情報DB1006の情報の更新、及び、VM配置装置907の動作状況を表す情報を表示する。
 図13は、VM詳細情報DB1006の構成例を示す。
 VM詳細情報DB1006は、VM毎に、下記の情報、
(1)VMの名称であるVM名2301、
(2)VMで重要なデータを扱うかどうかを表す重要性2302、
(3)VMへ外部(例えば社外)からのアクセスがあるかどうかを表す外部アクセス2303、
を有する。例えば、社内ポリシー上で機密情報と決めたデータを扱うVMについては、重要性2032の値が「YES」となり、それ以外のVMについては、重要性2032の値が「NO」となって良い。また、例えば、内部(例えば社内)のIPアドレスからの画面転送の接続が一度もないVMについては、外部アクセス2303の値が「NO」となり、それ以外のVMについては、外部アクセス2303の値が「YES」であって良い。
 図14は、実施例2で行われる処理の全体の流れの一例を示すフローチャートである。
 まず、ステップ1100において、内部サーバ群、VM配置装置907および管理端末105が起動され、LAN102に接続される。
 次に、ステップ1101において、ローカルVM配置部1001が、内部サーバ103(104)上にVMを配置する。なお、VM配置装置901が配置するVMは、全て、内部サーバのローカル記憶装置132に格納されるVD(仮想HDD)を利用するローカルVMである。
 ローカルVM配置部1001は、実施例1で述べたVM配置装置101と同じ機能を実現してもよい。この場合、ステップ1101におけるVM配置手法は、実施例1で述べた手法と同様の手法であって良い。
 ステップ1102では、管理端末105が、管理者から情報の入力を受け、その情報を、外部資源利用情報DB1005及び/又はVM詳細情報DB1006へ格納する。
 その後、ステップ1103及びステップ1104が行われ、その後、ステップ1105で、例えば図6のステップ407と同様処理が終了する。
 図15は、図14のステップ1103の詳細な流れの一例を示すシーケンス図である。
 まず、ステップ1200において、管理者が、ネットワークVM移動部1004を起動する。
 次に、ステップ1201では、ネットワークVM移動部1004が、外部資源利用情報DB1005を基に、外部サーバ904に接続し、内部サーバからVMを移動できるような準備(例えば、事前にログインすること)を行う。ステップ1201の結果、外部サーバ904が、ステップ1202において、VMを受け入れ可能な状態になる。
 次に、ステップ1203において、ネットワークVM移動部1004が、VMを配置したサーバごとに、ネットワークVMに変更する対象として、一つのローカルVMを選択する。ネットワークVM移動部1004は、次の基準により、ローカルVMを選択することができる。
(1)ステップ1101におけるVM配置手法が、実施例1で述べた配置方法と同様である場合、ステップ704において最後にQ_inが表すVM集合に含められるVMが、ネットワークVMとして選択される。その選択されたVMを別のサーバに移動することにより、サーバ内のVMの資源利用時区間の重複度が低くなることが期待できる。
(2)ステップ1101で利用するVM配置手法に依存せず、以下の基準で、ローカルVMがネットワークVMとして選択されて良い。
(*)VM詳細情報DB1006内の重要性2302の値が「NO」のローカルVMが優先的に選択される。つまり、重要なデータがないVMが選択される。
(*)VM詳細情報DB1006内の外部アクセス2303の値が「YES」のローカルVMが優先的に選択される。つまり、社外からアクセスされるVMが選択される。社外からのアクセスの数がカウントされ、そのカウント値が多いVMほど優先的に先に選択されても良い。これにより、社外からのアクセスが多いVMが選択されることになる。「社外からのアクセス」とは、WAN又はインターネットを介したアクセスである。
(*)資源監視部1003の監視結果を表す情報を基に、HDD利用率が小さいVMほど優先的に選択されて良い。
 ステップ1204では、ネットワークVM移動部1004が、ステップ1203で選択されたVMのVDをファイルサーバ906へ移動する。これにより、そのVMがネットワークVMとなる。
 次に、ステップ1205では、ネットワークVM移動部1004が、資源監視部1003へ監視を開始するように命令する。
 すると、ステップ1206において、資源監視部1003が、内部サーバ群の資源利用状況の監視を開始する。資源利用状況の監視とは、サーバの資源利用率(例えばCPU利用率)がG%より高くなる場合に、ネットワークVM移動部1004へ通知を行うことである。なお、閾値Gのデフォルト値は、管理者任意の値(例えば85%)でよい。なお、管理者が閾値Gの値を変更してもよい。
 図16は、図14のステップ1104の詳細な流れの一例を示すシーケンス図である。
 ステップ1104では、資源監視部1003が、VM運用中のサーバの負荷を監視し、負荷が高い時に、ネットワークVMを移動させる。
 まず、ステップ1300において、資源監視部1003が、内部サーバ103(104)の資源を監視する状態(モード)となる。
 ステップ1301では、内部サーバ103でVMが稼動する。
 ステップ1302において、サーバ103のCPU利用率がG%より高くなる。
 そこで、ステップ1303において、資源監視部1003が、サーバ103の資源不足(サーバ103のCPU利用率がG%(例えばHighCPULevel)を越えたこと)を検出し、ステップ1304において、ネットワークVM移動部1004への第1の通知を送信する。第1の通知は、例えば、サーバ103のCPU利用率とG%との差分を表す値を含んで良い。
 ステップ1305において、ネットワークVM移動部1004が、その第1の通知を受けて、サーバ103へ1以上のネットワークVM(例えば、VMb134)を外部サーバ904へ移動する命令を出す。1以上のネットワークVMは、第1の通知を基に決定された1以上のVM、例えば、サーバ103のCPU利用率とG%(例えばHighCPULevel)との差分よりもCPU利用率の合計が大きい1以上のVMであって良い。CPU利用率が大きいVMほど優先的にネットワークVMとして選択されて良い。
 すると、ステップ1306において、サーバ103が、VMb134を外部サーバ904へ移動する。
 ステップ1307では、VMb134が、外部サーバ904上の外部仮想化ソフト911上で動作する。
 ステップ1308では、サーバ103の状態が、VMb134が動作するための資源を十分に確保されている状態になる。例えば、サーバ103のCPU利用率がG%(例えばHighCPULevel)以下の状態が一定時間続いている。
 すると、ステップ1309で、資源監視部1003が、サーバ103の状態が、VMb134が動作するための資源を十分に確保されている状態になっていることを検出し、ネットワークVM移動部1004へ第2の通知を送信する。第2の通知は、例えば、サーバ103のCPU利用率とG%との差分を表す値を含んで良い。
 ステップ1310において、VM移動部1004が、第2の通知を受けて、外部サーバ904へVMb134をサーバ103へ戻す命令を出す。ステップ1211において、外部サーバ904の外部仮想化ソフト911が、VMb134をサーバ103へ移動する。外部サーバから戻される1以上のVM(戻す命令の対象となる1以上のVM)は、第2の通知を基に決定された1以上のVM、例えば、サーバ103のCPU利用率とG%(例えばHighCPULevel)との差分よりもCPU利用率の合計が小さい1以上のVMであって良い。CPU利用率が小さいVMほど優先的にネットワークVMとして選択されて良い。
 なお、ステップ1308で想定した状況が発生しない場合は、VMb134がシステム動作終了まで外部サーバ904で動作することになる。この場合は、次回システム起動する時に、ネットワークVM移動部1004が、ステップ1310を実行することで、VMb134をサーバ103に戻しても良い。
 上記のように、本実施例においては、VDへのアクセス速度が速いローカルVMをメインに利用することで利用者の満足度を高く維持することができる。一方、サーバの資源変動になるべく迅速に対応できるように、VM稼働中でもVMを或るサーバから別のサーバへ移動することができる。つまり、本実施例は、VMのタイプを基に、そのVMの配置先として適切なサーバを選択することができる。
 また、本実施例によれば、サーバの資源不足が発生した時、外部資源へ移動するVMとして、サーバに残るVM同士の資源利用時区間が互いにかさならないようなVMを選択することができる。これにより、サーバの資源を有効に活用することが期待できる。
 また、本実施例によれば、VMの扱うデータの重要性、VMにアクセスするクライアントの存在場所(例えば、社外か社内か)、及び、VMのHDD利用率を少なくとも1つを基に、外部資源へ移動するVMが選択される。これにより、VMの移動によるユーザへの影響が少ないことが期待できる。
 また、本実施例によれば、サーバの資源の不足が発生した際に、外部資源(例えばパブリッククラウド)903にVMが移動され、サーバの資源が浪費となった際に、外部資源903からVMが戻されるといったことを、管理者の操作を必要とせずに実現することができる。
 以上、本発明の幾つかの実施例を説明したが、これらは、本発明の説明のための例示であって、本発明の範囲をこれらの実施例にのみ限定する趣旨ではない。すなわち、本発明は、他の種々の形態でも実施する事が可能である。
 例えば、VMの配置先のサーバは、1つのサーバでも良いし、複数のサーバからなるグループ(サーバプール)であっても良い。後者の場合、上述した「サーバ群」は、複数のサーバプールを含んで良い。
 また、例えば、実施例1と実施例2が独立して動作することもできるし、実施例1と2が組み合わされた1つのシステムが実現されても良い。また、或る実施例の構成の一部が他の実施例の構成を加えられても良い。また、各実施例の構成の一部について、他の構成の追加、削除又は置換が可能である。
 たとえば、以下のように実施例1と実施例2が組み合わされた1つのシステムが実現されてもよい。
 また、上記の各構成、機能、処理部等は、それらの一部または全部を、例えば集積回路で設計するなどによりハードウェアで実現してもよい。また、上記の各構成、機能等は、CPUがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、データベースなどの情報は、メモリやHDDなどの記憶装置またはICメモリカード、SDメモリカード、DVD(Digital Versatile Disk)などの記憶媒体に置くことができる。
101…VM配置装置 103,104…サーバ 105…管理端末 131,141…仮想化ソフト

Claims (15)

  1.  複数の物理計算機に複数の仮想計算機を配置する装置であって、
     複数の時区間のそれぞれにおける仮想計算機の資源負荷値を仮想計算機毎に表す情報である仮想計算機負荷情報を記憶する記憶部と、
     前記仮想計算機負荷情報を基に、各時区間について資源負荷値の差が最も大きくなるような2以上の仮想計算機を選択し、選択した2以上の仮想計算機を同一の物理計算機に配置する制御部と
    を有する装置。
  2.  請求項1記載の装置であって、
     前記制御部が、複数の仮想計算機が配置された後の複数の物理計算機の資源負荷値を基に、前記複数の物理計算機のうち、資源の過不足が生じている物理計算機を特定し、特定した物理計算機に対して、仮想計算機の追加又は削除である再配置を行う、
    装置。
  3.  請求項2記載の装置であって、
     前記複数の物理計算機は、1以上の内部物理計算機と外部物理計算機とを含み、
     前記制御部が、資源が不足している内部物理計算機である対象内部物理計算機を特定した場合、前記対象内部物理計算機から前記外部物理計算機に或る仮想計算機を移動する、
    装置。
  4.  請求項3記載の装置であって、
     前記或る仮想計算機は、前記対象物理計算機がアクセスするローカル型の記憶装置に格納される仮想計算機であるローカル型の仮想計算機であり、
     前記制御部が、前記ローカル型の仮想計算機の仮想的な記憶資源のイメージである仮想資源ファイルを、前記ローカル型の記憶装置から前記外部物理計算機がアクセス可能なファイルサーバに移動することで、前記ローカル型の仮想計算機をネットワーク型の仮想計算機に変更し、その後、前記ネットワーク型の仮想計算機を前記対象内部物理計算機から前記外部物理計算機に移動する、
    装置。
  5.  請求項4記載の装置であって、
     各仮想計算機は、仮想デスクトップとして利用される仮想計算機である、
    装置。
  6.  請求項4記載の装置であって、
     前記外部物理計算機は、パブリッククラウドの物理計算機である、
    装置。
  7.  請求項4記載の装置であって、
     前記制御部は、同一の内部物理計算機に配置する仮想計算機を、前記同一の内部物理計算機に配置されるVMの資源負荷値の合計が所定の値以下の範囲で、1つずつ選択するようになっており、その際、選択される仮想計算機は、既に選択されている1以上の仮想計算機の各時区間での資源負荷値との差がなるべく大きくなるような資源負荷値となった仮想計算機であり、
     前記ネットワーク型の仮想計算機は、前記対象内部物理計算機に配置される仮想計算機として最後に選択された仮想計算機である、
    装置。
  8.  請求項4記載の装置であって、
     前記ネットワーク型の仮想計算機は、重要ではないデータを扱う仮想計算機である、
    装置。
  9.  請求項4記載の装置であって、
     前記ネットワーク型の仮想計算機は、WAN又はインターネットを介してアクセスされる仮想計算機である、
    装置。
  10.  請求項4記載の装置であって、
     前記ネットワーク型の仮想計算機は、記憶資源の利用率が最も小さい仮想計算機である、
    装置。
  11.  請求項3記載の装置であって、
     前記制御部が、前記対象内部物理計算機の資源不足が解消したことを検出した場合、前記外部物理計算機から前記移動した仮想計算機を前記対象内部物理計算機に戻す、
    装置。
  12.  請求項2記載の装置であって、
     前記記憶部が、配置結果評価情報を記憶し、
     前記配置結果評価情報は、物理計算機毎に、物理計算機の資源負荷値を示す情報を含み、
     資源が不足している物理計算機は、前記配置結果評価情報が表す資源負荷値が、第1の値以上の物理計算機であり、
     資源が過剰な物理計算機は、前記配置結果評価情報が表す資源負荷値が、前記第1の値より小さい第2の閾値以下の物理計算機である、
    装置。
  13.  請求項1記載の装置であって、
     前記制御部は、前記同一の物理計算機に配置する仮想計算機を、前記同一の物理計算機に配置されるVMの資源負荷値の合計が所定の値以下の範囲で、1つずつ選択する、
    装置。
  14.  複数の物理計算機に複数の仮想計算機を配置する方法であって、
     複数の時区間のそれぞれにおける仮想計算機の資源負荷値を仮想計算機毎に表す情報である仮想計算機負荷情報を基に、各時区間について資源負荷値の差が最も大きくなるような2以上の仮想計算機を選択し、
     選択した2以上の仮想計算機を同一の物理計算機に配置する、
    方法。
  15.  複数の物理計算機に複数の仮想計算機を配置することをコンピュータに実行させるためのコンピュータプログラムであって、
     複数の時区間のそれぞれにおける仮想計算機の資源負荷値を仮想計算機毎に表す情報である仮想計算機負荷情報を基に、各時区間について資源負荷値の差が最も大きくなるような2以上の仮想計算機を選択し、
     選択した2以上の仮想計算機を同一の物理計算機に配置する、
    ことコンピュータに実行させるためのコンピュータプログラム。
PCT/JP2011/073332 2010-10-19 2011-10-11 仮想計算機を配置する方法及び装置 WO2012053393A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN2011800499334A CN103154896A (zh) 2010-10-19 2011-10-11 配置虚拟计算机的方法和装置
US13/879,659 US20130275974A1 (en) 2010-10-19 2011-10-11 Method and apparatus for allocating virtual computer
JP2012539680A JPWO2012053393A1 (ja) 2010-10-19 2011-10-11 仮想計算機を配置する方法及び装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-234778 2010-10-19
JP2010234778 2010-10-19

Publications (1)

Publication Number Publication Date
WO2012053393A1 true WO2012053393A1 (ja) 2012-04-26

Family

ID=45975110

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/073332 WO2012053393A1 (ja) 2010-10-19 2011-10-11 仮想計算機を配置する方法及び装置

Country Status (4)

Country Link
US (1) US20130275974A1 (ja)
JP (1) JPWO2012053393A1 (ja)
CN (1) CN103154896A (ja)
WO (1) WO2012053393A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015046140A (ja) * 2013-08-28 2015-03-12 財團法人資訊工業策進會 統合ネットワーク装置ならびにそのサービス統合方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5684170B2 (ja) * 2012-02-28 2015-03-11 株式会社東芝 情報処理装置、クライアント管理システムおよびクライアント管理方法
US8938541B2 (en) * 2012-10-29 2015-01-20 Ericsson Ab Method and system to allocate bandwidth in cloud computing networks
US9569233B2 (en) 2012-12-31 2017-02-14 F5 Networks, Inc. Elastic offload of prebuilt traffic management system component virtual machines
US9065734B2 (en) 2013-03-08 2015-06-23 Telefonaktiebolaget L M Ericsson (Publ) Network bandwidth allocation in multi-tenancy cloud computing networks
US9817699B2 (en) * 2013-03-13 2017-11-14 Elasticbox Inc. Adaptive autoscaling for virtualized applications
US9621425B2 (en) 2013-03-27 2017-04-11 Telefonaktiebolaget L M Ericsson Method and system to allocate bandwidth for heterogeneous bandwidth request in cloud computing networks
JP6550822B2 (ja) * 2015-03-20 2019-07-31 日本電気株式会社 情報処理資源管理装置、情報処理資源管理方法、及び、情報処理資源管理プログラム
US10255652B2 (en) * 2017-01-18 2019-04-09 Amazon Technologies, Inc. Dynamic and application-specific virtualized graphics processing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002202959A (ja) * 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
JP2005115653A (ja) * 2003-10-08 2005-04-28 Ntt Data Corp 仮想マシン管理装置及びプログラム
WO2008062864A1 (en) * 2006-11-24 2008-05-29 Nec Corporation Virtual machine locating system, virtual machine locating method, program, virtual machine management device and server
JP2009237859A (ja) * 2008-03-27 2009-10-15 Nec Corp 仮想マシン管理システム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03219360A (ja) * 1990-01-24 1991-09-26 Nec Corp マルチプロセッサ制御方式
JP5110315B2 (ja) * 2006-05-24 2012-12-26 日本電気株式会社 仮想マシン管理装置、仮想マシン管理方法およびプログラム
US9047083B2 (en) * 2008-09-15 2015-06-02 Vmware, Inc. Reducing power consumption in a server cluster
CN101452406B (zh) * 2008-12-23 2011-05-18 北京航空航天大学 一种对操作系统透明的机群负载平衡方法
US9384062B2 (en) * 2008-12-27 2016-07-05 Vmware, Inc. Artificial neural network for balancing workload by migrating computing tasks across hosts
CN101504620A (zh) * 2009-03-03 2009-08-12 华为技术有限公司 一种虚拟化集群系统负载平衡方法、装置及系统
CN101593133B (zh) * 2009-06-29 2012-07-04 北京航空航天大学 虚拟机资源负载均衡方法及装置
US8316125B2 (en) * 2009-08-31 2012-11-20 Red Hat, Inc. Methods and systems for automated migration of cloud processes to external clouds
CN101719081B (zh) * 2009-12-01 2012-10-10 北京大学 一种虚拟机调度方法
US8887172B2 (en) * 2009-12-31 2014-11-11 Microsoft Corporation Virtualized management of remote presentation sessions using virtual machines having load above or below thresholds
US9063769B2 (en) * 2010-02-04 2015-06-23 Telefonaktiebolaget Lm Ericsson (Publ) Network performance monitor for virtual machines
US8271814B2 (en) * 2010-03-22 2012-09-18 Microsoft Corporation Migrating a client computer to a virtual machine server when the client computer is deemed to be idle

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002202959A (ja) * 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
JP2005115653A (ja) * 2003-10-08 2005-04-28 Ntt Data Corp 仮想マシン管理装置及びプログラム
WO2008062864A1 (en) * 2006-11-24 2008-05-29 Nec Corporation Virtual machine locating system, virtual machine locating method, program, virtual machine management device and server
JP2009237859A (ja) * 2008-03-27 2009-10-15 Nec Corp 仮想マシン管理システム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015046140A (ja) * 2013-08-28 2015-03-12 財團法人資訊工業策進會 統合ネットワーク装置ならびにそのサービス統合方法
US9253052B2 (en) 2013-08-28 2016-02-02 Institute For Information Industry Integration network device and service integration method thereof

Also Published As

Publication number Publication date
CN103154896A (zh) 2013-06-12
JPWO2012053393A1 (ja) 2014-02-24
US20130275974A1 (en) 2013-10-17

Similar Documents

Publication Publication Date Title
WO2012053393A1 (ja) 仮想計算機を配置する方法及び装置
JP7138126B2 (ja) リソース配置を最適化するための適時性リソース移行
JP4367406B2 (ja) コンピュータ割り当て方法
US9722853B2 (en) Endpoint data centers of different tenancy sets
US9971823B2 (en) Dynamic replica failure detection and healing
CN103399778B (zh) 一种虚拟机在线整体迁移方法和设备
US9230001B2 (en) Intelligent data propagation using performance monitoring
JP5614226B2 (ja) 仮想マシン制御装置、仮想マシン制御プログラムおよび仮想マシン制御方法
US9466036B1 (en) Automated reconfiguration of shared network resources
US9396026B2 (en) Allocating a task to a computer based on determined resources
US20120233315A1 (en) Systems and methods for sizing resources in a cloud-based environment
KR101503209B1 (ko) 휴대용 컴퓨팅 디바이스의 스위치 패브릭들 내에서 그리고 스위치 패브릭들에 걸쳐 마스터-슬레이브 쌍들을 동적으로 생성하고 서비스하는 방법 및 시스템
JP2017529585A (ja) マルチテナント・システムにおける処理変更
JP7143434B2 (ja) クラウドサービスのデータキャッシング
WO2013029487A1 (zh) 一种资源分配方法及资源管理平台
JP2005209203A (ja) 要求に応じて資源を動的に区分し、割り振るアプリケーション対応システム
JP2012038152A (ja) 接続管理システム、及びシンクライアントシステムにおける接続管理サーバの連携方法
JP2005056391A (ja) コンピューティング環境の作業負荷を均衡させる方法およびシステム
WO2012125144A1 (en) Systems and methods for sizing resources in a cloud-based environment
US20150154042A1 (en) Computer system and control method for virtual machine
JP2012069056A (ja) クラウドサービス再配置システムと方法およびプログラム
JP2004318741A (ja) ネットワーク管理プログラム、管理計算機及び管理方法
JP2017091330A (ja) 計算機システム及び計算機システムのタスク実行方法
US8621260B1 (en) Site-level sub-cluster dependencies
US8650330B2 (en) Self-tuning input output device

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201180049933.4

Country of ref document: CN

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

Ref document number: 11834233

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2012539680

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13879659

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 11834233

Country of ref document: EP

Kind code of ref document: A1