WO2012056731A1 - リソース管理サーバ、リソース管理方法及びリソース管理プログラムが格納された記憶媒体 - Google Patents

リソース管理サーバ、リソース管理方法及びリソース管理プログラムが格納された記憶媒体 Download PDF

Info

Publication number
WO2012056731A1
WO2012056731A1 PCT/JP2011/051176 JP2011051176W WO2012056731A1 WO 2012056731 A1 WO2012056731 A1 WO 2012056731A1 JP 2011051176 W JP2011051176 W JP 2011051176W WO 2012056731 A1 WO2012056731 A1 WO 2012056731A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual machine
deployment
resource management
resource
resources
Prior art date
Application number
PCT/JP2011/051176
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 US13/881,063 priority Critical patent/US9477503B2/en
Publication of WO2012056731A1 publication Critical patent/WO2012056731A1/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Definitions

  • the present invention relates to a resource management technique for managing pooled computer resources.
  • the present invention relates to a resource allocation technique for allocating resources that meet user requirements from pooled computer resources.
  • the computer resource is, for example, a CPU, a memory, a hard disk drive, etc. provided in the computer.
  • VM Virtual Machine
  • Computer resources are allocated according to the execution of the virtual computer. For example, if the CPU has four cores, one core is assigned to a certain virtual machine. At this time, the remaining three cores are managed as a computer pool until another virtual machine is executed.
  • Computer resources are managed by virtualization software that implements virtual computers. The virtualization software manages computer resources by pooling them, and assigns resources as needed when executing virtual computers.
  • a computer resource user has a required amount of resources allocated from the pooled resources when necessary, and returns the used computer resources to the computer pool when the use is completed.
  • pooling computer resources the reusability of computer resources can be improved, and the utilization efficiency of computer resources can be improved.
  • pooling operation of physical computers is widespread.
  • the pooling operation of physical computers is based on computer virtualization technology.
  • the resource provider prepares a large number of physical computers equipped with computer virtualization software. These physical computers constitute a computer pool.
  • a user of the computer pool generates a virtual machine (VM: Virtual Machine) having a required specification in the computer pool.
  • VM Virtual Machine
  • By generating a virtual computer physical computer resources possessed by the computer pool are allocated to the virtual computer.
  • the user deletes the virtual computer from the physical computer.
  • the computer resource assigned to the virtual computer is returned to the computer pool.
  • generation of virtual machines is performed in the order of virtual machine deployment and virtual machine startup.
  • the deployment of a virtual machine means copying an execution image of a virtual machine stored in advance in a storage device (a permanent storage device such as a hard disk drive) to a storage device of a physical computer on which the virtual machine operates.
  • the activation of the virtual machine means that the virtualization software starts the virtual machine from the execution image of the virtual machine.
  • copying the execution image of the virtual machine consumes a large amount of CPU and memory of both the copy source computer and the copy destination computer. Similarly, a large amount of network bandwidth is consumed between both computers. Therefore, it is necessary to avoid copying execution images of a large number of virtual machines at a time.
  • the following documents are available as prior art for shortening the time required for deployment of virtual machines.
  • the following prior art includes a technique for shortening the deployment time of a physical computer, but it can also be applied to shorten the deployment time of a virtual machine.
  • Patent Document 1 discloses that a system resource provided as a hosting environment and a system resource configuration to be provided next are optimized according to the resource allocation request contents from the client. .
  • the information system is provided with a function for dynamically grouping standby computers (multiple) for each difference between the software configuration of the standby computer and the software configuration required by the business system. It is disclosed that, when a computer is accommodated, a software environment construction is quickly completed by searching and extracting standby computers grouped by software configuration.
  • the specifications of virtual machines requested by users are not always uniform. Therefore, the problem is how to quickly deploy a virtual machine that meets the specifications required by the user.
  • Patent Document 1 predicts a future resource request amount from an analysis of a user's resource request history, and adjusts the amount of resource in advance.
  • Patent Document 1 only a virtual machine is deployed when requested, and no preparation is made in advance to deploy a virtual machine.
  • Patent Document 2 can quickly construct a requested software configuration by classifying standby computers into groups according to the software configuration provided and searching for the grouped standby computers. It is disclosed.
  • the software configuration is speeded up by preparing a standby computer equipped with software in advance. However, the amount of resources necessary for executing individual applications is not adjusted.
  • a typical example of the invention disclosed in the present application is as follows. That is, a resource management server that is connected to a plurality of physical computers via a network and allocates a plurality of virtual computers using resources implemented in the plurality of physical computers, and is implemented in the plurality of physical computers Implemented in a virtual machine for deployment, a resource management unit that manages correspondence between resource usage used by the virtual machine for deployment, the plurality of physical computers, and the plurality of physical computers Pool management unit for managing pool management information including a correspondence relationship between the total amount of resources and the total amount of free resources that are not allocated to the virtual machines installed in the plurality of physical computers, and an allocation request for a new virtual machine Is received together with the required specifications including the amount of resources required by the newly allocated virtual machine.
  • a specification receiving unit, and a search unit that searches for a virtual computer that can allocate the amount of the resource included in the received request specification, and the search unit includes a deployment virtual included in the resource management information
  • a virtual machine for deployment having an amount of resources satisfying the required specification from the computer, and the request by adding a free resource included in the pool management information that does not have an amount of resource satisfying the required specification It is characterized by searching a virtual machine for deployment that can secure an amount of resources satisfying the specifications.
  • FIG. 1 is an overall system configuration diagram of Embodiment 1 of the present invention.
  • FIG. 3 is an explanatory diagram illustrating a hypervisor configuration table according to the first embodiment. It is explanatory drawing which shows the VM pool information table of Embodiment 1. 3 is a flowchart of required specification processing according to the first embodiment. 5 is a flowchart of search result list creation processing according to the first embodiment. It is explanatory drawing which shows the input screen in the request
  • FIG. FIG. 6 is an explanatory diagram illustrating a search result list output screen according to the first embodiment. It is explanatory drawing which shows the log information table of Embodiment 1. It is explanatory drawing which shows the utilization information table of Embodiment 1.
  • 4 is a flowchart of virtual machine deployment processing according to the first embodiment.
  • 5 is a flowchart of usage information creation processing according to the first embodiment.
  • 3 is a flowchart of usage calculation processing according to the first embodiment.
  • 3 is a flowchart of deployment specification determination processing according to the first exemplary embodiment.
  • 3 is a flowchart of a deployment process of the deployment virtual machine according to the first embodiment. It is explanatory drawing which shows the log
  • 10 is a flowchart of virtual machine deployment processing according to the second embodiment.
  • 12 is a flowchart of usage information creation processing according to the second embodiment. 12 is a flowchart of usage information creation processing according to the second embodiment.
  • FIG. 10 is a sub-flowchart of virtual machine deployment processing according to the second embodiment.
  • FIG. 10 is an explanatory diagram illustrating a level option input screen according to the second embodiment. It is explanatory drawing which shows the input screen in the request
  • FIG. 10 is an explanatory diagram illustrating a hypervisor configuration table according to the third embodiment. It is explanatory drawing which shows the VM pool information table of Embodiment 3.
  • 10 is a flowchart of required specification processing according to the third embodiment.
  • 14 is a flowchart of search result list review processing according to the third embodiment. It is explanatory drawing which shows the search result list in the search result list output screen of Embodiment 3.
  • the resource management server receives a virtual machine request from a user and presents a virtual machine that satisfies the received request to the user.
  • the resource management server analyzes the virtual machine request history input by the user in the past, and estimates a virtual machine for which a future request is expected.
  • the resource management server deploys a virtual machine based on this assumption before an actual request is input.
  • the resource management server searches for virtual machines that satisfy the request from the already deployed virtual machines and presents them to the user. If the specification of the virtual machine input in the resource request is different from the specification of the already deployed virtual machine, the resource management server checks whether the specification of the deployed virtual machine can be changed.
  • the resource management server adds this deployed virtual machine to the list of virtual machines to be presented to the user.
  • the resource management server deploys virtual machines having a high request frequency in advance, the user can immediately use the virtual machines. That is, the user does not have to wait until the deployment of the virtual machine is completed, and the convenience for the user is improved.
  • FIG. 1 is an overall system configuration diagram of the first embodiment.
  • the resource management server 100 is a physical computer, and includes a CPU 101, a memory 102, a network interface card (NIC) 109, an input interface (I / F) 103, an output interface (I / F) 105, and an HDD interface (I / F) 107. It has.
  • An input I / F 103 of the resource management server 100 is connected to an input device such as a mouse or a keyboard 104, and accepts an operation from a user.
  • the output I / F 105 is connected to an output device such as the display 0106 and outputs information to the user. Other output devices (for example, a printer) can also be connected.
  • the HDD I / F 107 is connected to a hard disk drive (HDD) 108 and stores various programs and various data and tables processed by the CPU 101.
  • the NIC 109 is connected to the network 120 and is connected to other physical computers 130 and 140 via the network 120.
  • a resource management program 110 is installed in the memory 102.
  • the resource management program 110 is usually stored in the HDD 108 and mounted by being loaded into the memory at the request of the CPU 101.
  • the resource management program 110 includes a request reception process 111, a resource search process 112, a virtual machine allocation process 113, a measurement process 114 for calculating the usage status of a virtual machine, and a deployment process 115 for pre-deploying virtual machines with many requests.
  • a subprogram that executes a management process 116 that collects and manages information about virtual machines actually allocated to users in other physical computers 130 and 140 and information on virtual machines deployed in advance from the respective physical computers 130 and 140 Including.
  • the memory 102 stores a search result list 700 for holding information on deployable virtual machines searched based on a user's request, a history information table (history information TBL) for storing specifications of virtual machines requested by the user, and the like. 800, a usage information table (usage information TBL) 900 calculated for grasping a user's usage tendency from the history information stored in the history information table 800, and the virtual computer collected from each of the physical computers 0130 and 0140
  • a hypervisor configuration table (hypervisor configuration TBL) 200 that holds a state, a resource amount of resources such as a CPU and a memory mounted on each physical computer 0130, 0140, and a VM that holds an amount of free resources that are not used by a virtual computer or the like
  • Various tables such as a pool information table (VM pool information TBL) 300 It holds Le, the resource management program 110, as appropriate depending on the treatment, to read and write these tables. These tables are also stored in the HDD 108, and the CPU 101 reads out from the HDD 108 and
  • the physical computer 130 is a computer having a hardware configuration similar to that of the resource management server 100 and includes a CPU 131, a memory 132, a NIC 133 for connecting to the resource management server 100 over a network, and an HDD I / F 134 for connecting to the HDD 138.
  • the physical computer 140 is a computer having a hardware configuration similar to that of the resource management server 100, and is mounted with a CPU 141, a memory 142, a NIC 143, and an HDD I / F 144.
  • other input I / F 103 and output I / F 105 implemented in the resource management server 100 can also be implemented.
  • Hypervisors 136 and 146 are loaded on the memories 132 and 142 of the physical computers 130 and 140, and perform various management such as generation, allocation, specification change, and deletion of a plurality of virtual computers.
  • the identifier of the hypervisor 136 of the physical computer 130 is HV1
  • the identifier of the hypervisor 146 of the physical computer 140 is HV2.
  • Each hypervisor 136, 146 assigns a plurality of virtual machines on each computer. For example, on the physical computer 130, a virtual computer VM1 (137) and a virtual computer VM2 (138) are allocated. On the physical computer 140, a virtual machine VM3 (147) and a virtual machine VM4 (148) are allocated.
  • the resource management program of the resource management server 100 can transmit and receive information by communicating with the hypervisors 136 and 146 of the respective physical computers 130 and 140, and appropriately acquires the allocation state of the virtual computers to obtain the hypervisor configuration table 200,
  • the VM pool information table 300 is updated.
  • the resource management server 100 instructs the assignment of a virtual machine that can respond to a request received from the user, or instructs the deployment of a virtual machine having a specification with many requests in advance.
  • the virtual machine VM1 (137) and the virtual machine VM2 (138) are virtual machines that operate on the hypervisor HV1 (136).
  • the hypervisor HV1 (136) divides and allocates the resources of the physical computer 130, for example, the CPU 131 and the memory 132 to each virtual computer. Further, the hypervisor HV1 (136) can change the amount of resources allocated to each virtual machine. The same applies to the physical computer 140.
  • the HDD images 135 and 145 connected to the physical computers 130 and 140 store VM images 139 and 149, respectively.
  • the VM image is an operating image of a virtual machine operating system and an application operating on the operating system.
  • the virtual machine mounts a virtual HDD and loads and executes an operating system or application stored in the virtual HDD.
  • the VM image is a substance of the virtual HDD.
  • the virtual machine can be processed as a virtual HDD.
  • An actual VM image is one file that is actually stored in the HDD when viewed from the hypervisor. Accordingly, one or more VM images are required for one virtual machine.
  • the virtual machine VM1 (137) on the physical machine 0130 uses one VM image 139 stored in the HDD 135.
  • the hypervisor controls these VM images. Further, the hypervisor can newly generate another virtual machine, and the hypervisor generates a VM image used by the new virtual machine by copying another VM image already stored in the HDD. .
  • the remote management server 100 performs operations such as a new virtual machine generation instruction and a VM image copy instruction by instructing the hypervisor.
  • the “deployment of virtual machine” refers to an operation in which the resource management server 100 copies the VM image 139 to the storage device (HDD 135) of the physical machine 0130.
  • FIG. 2 shows the hypervisor configuration table 200.
  • the hypervisor configuration table 200 stores the allocation states of the virtual machines VM1 (137), VM2 (138), VM3 (147), and VM4 (148) controlled by the hypervisor HV1 (136) and the hypervisor HV2 (146).
  • the assignment state includes a hypervisor identifier 201, a VM identifier 202, a CPU 203, a memory 204, a VM state 205, a VM image 206, and a user 206.
  • the hypervisor configuration table 200 assigns one row to one virtual machine.
  • the hypervisor configuration table 200 stores assignment states for five virtual machines operating on each hypervisor.
  • the hypervisor identifier column 201 stores identifiers for identifying the hypervisor HV1 (136), the hypervisor HV2 (146), etc. operating on the physical computers 130 and 140.
  • the hypervisor configuration table 200 includes a hypervisor (HV3) of another physical computer in the row 215.
  • the VM identifier column 202 stores an identifier for identifying a virtual machine controlled on the hypervisor.
  • the row 211 stores an identifier “VM1” for identifying the virtual machine VM1 (137) controlled by the hypervisor HV1: 0136 on the physical computer 130.
  • the CPU column 203 stores the CPU frequency assigned to the virtual machine.
  • this column 203 shows one of the resource amounts allocated to the virtual machine.
  • the row 211 indicates that the frequency of the CPU 131 in the physical computer 130 assigned to the virtual machine VM1 (137) is 2 GHz.
  • the frequency assigned to the virtual machine VM1 (137) is a quarter of the whole.
  • the frequency is shown, but it may be the number of CPU cores, for example.
  • the memory column 204 stores the memory capacity allocated to the virtual machine. In other words, this column 204 indicates one of the resource amounts of the resources allocated to the virtual machine.
  • the row 211 indicates that the capacity of the memory 132 in the physical computer 130 allocated to the virtual computer VM1 (137) is 2 GB.
  • the total capacity of the memory 132 is 8 GB, which means that the capacity of the memory allocated to the virtual machine VM1 (137) is a quarter of the total.
  • the VM status column 205 stores an identifier indicating the allocation status of the virtual machine.
  • allocation states there are two types of allocation states, “allocated” and “allocated”. “Assigned” means that the virtual machine has already been assigned to the user. “Deployed” means that a virtual machine has been deployed, although not assigned to a specific user.
  • the VM image column 206 stores the type of VM image used by the virtual machine.
  • the row 211 means that the type of the VM image used by the virtual machine VM1 (137) is “AP server”.
  • the virtual machine VM5 in the row 215 is also an “AP server”, but this does not mean that VM1 and VM5 use exactly the same VM image, but the type of VM image used is the same.
  • the VM images used by each virtual machine are different from each other.
  • the user column 207 stores an identifier (user ID) for uniquely identifying a user who uses the virtual machine.
  • Each virtual computer in the rows 211, 214, and 215 stores a user ID for identifying each user.
  • the virtual computers in the rows 212 and 213 when the virtual computer is “deployed” but the user to be used has not yet been determined, “---” is stored.
  • FIG. 3 shows the VM pool information table 300.
  • the table 300 manages the total capacity and the free capacity of resources held by all the physical computers 130 and 140 that are managed by the resource management server 100.
  • the hypervisor identifier column 301 stores an identifier for uniquely identifying a hypervisor operating on the physical computer. As this identifier, the same identifier as that stored in the hypervisor identifier column 201 of the hypervisor configuration table 200 is used.
  • the resource pool identifier column 302 is an identifier for recognizing that the resource is implemented on the same physical computer. For example, “RP1” in the row 311 and “RP1” in the row 312 each have the resources “CPU” and “memory”, but both are resources mounted on the same physical computer, and the same hypervisor “HV1”. Means to control.
  • the resource type column 303 stores information indicating the type of resource to be managed by the resource management server 100.
  • the resource type column 303 stores information indicating the type of resource to be managed by the resource management server 100.
  • two resources of “CPU” and “memory” are illustrated, but “NIC” as a network I / F, “HDD” as a hard disk drive, and the like can also be included in the resource type.
  • the total capacity column 304 and the free capacity column 305 respectively indicate all the mounted capacities of the resource indicated by the resource type 303 and free capacities that are not allocated to the virtual machines.
  • the total capacity “8 GHz” of the “CPU” shown in the row 311 indicates the total capacity of all frequencies of the CPU, and the free capacity “2 GHz” is allocated to the virtual machine out of the total capacity of all frequencies of the CPU. Indicates free space that is not available.
  • This table 300 indicates whether it is possible to allocate from the free capacity described in the free capacity column 305 of this table 300 as well as search from the deployed virtual machine
  • FIG. 4 is a flowchart showing the required specification processing of this embodiment.
  • the resource management program 100 shown in FIG. 1 executes the processing shown in FIG.
  • the resource management program 100 displays an input screen for receiving a request from the user and receives an input operation from the user (S401).
  • An example of the input screen and the input operation result from the user is shown in FIG.
  • FIG. 6 shows an example of an input screen in the request reception process 0111.
  • the title 600 displays that this screen performs “virtual computer search”.
  • the user name column 611 displays the user ID that is the user name of the logged-in user.
  • the resource management server 100 has a user authentication function, and the resource management program 110 uses the user ID authenticated by the user authentication function as user information.
  • “User1” in the figure is a user ID authenticated by the user authentication function.
  • the requested specification 612 is a column for specifying the specifications of the virtual machine requested by the user.
  • the VM image 613 and the resource 615 are specified by the required specification.
  • the VM image 613 designates a VM image requested by the user from various VM images displayed in the pull-down menu 614.
  • FIG. 6 shows a screen in which a VM image of “DB server” is designated.
  • the resource 615 an input field for inputting the necessary required amounts of each of the CPU 616 and the memory 617, which are the two resource types, is displayed.
  • FIG. 6 shows a screen in which “6” Ghz and “4” GB are designated, respectively.
  • the input screen 600 for searching for virtual machines displays a cancel button 601 and a search button 602.
  • the cancel button 601 the processing shown in FIG.
  • the search button 602 a search for an assignable virtual machine is started based on the requirement specification specified by the user.
  • step S402 a search result list is created based on the requirement specifications input by the user.
  • the search result list is a list indicating virtual machines that satisfy the required specifications required by the user.
  • a detailed flowchart of step S402 for creating the search result list is shown in FIG.
  • the created search result list is shown in FIG.
  • the search result list is generated by searching based on the requirement specification specified by the user. Therefore, it may be assumed that there is no virtual machine that satisfies the user's required specifications depending on the search result.
  • Step S403 is a step of determining whether the search result list is an empty list. If the search result list is an empty list, the process proceeds to step S404, a message for requesting the user to re-input the requested specification is output, and the process is returned to the requested specification receiving process in step S401. . If the search result list is not an empty list in step S403, step S405 displays the search result list. A display example of the search result list is shown in FIG.
  • FIG. 7 is a search result list output screen for outputting a search result list searched based on user's required specifications.
  • the user name column 711 displays a user ID that specifies the required specification.
  • Table 712 is a search result list.
  • the user designates a virtual machine with a CPU 6 GHz having a VM image of a DB server and a memory 4 GHz as a required specification.
  • Table 712 shows the search result based on the required specifications. As a result of the search, three virtual machines that meet the required specifications are identified.
  • the VM identifier field stores virtual machine identifiers that meet the required specifications.
  • the current specification column includes three columns (a VM image column 703, a CPU column 704, and a memory column 705).
  • the VM image column 703 stores an identifier for specifying a VM image held by the virtual machine.
  • the CPU column 704 stores frequencies that can be allocated to the virtual machine.
  • the memory column 705 stores a memory capacity that can be allocated to the virtual machine.
  • the VM status column 706 indicates the deployment status of the searched virtual machine, and corresponds to the VM status column 205 of the hypervisor configuration table 200 (FIG. 2).
  • a search is made from virtual machines whose VM status column 205 of the hypervisor configuration table 200 is “deployed”.
  • the virtual machine indicated by the row 713 is a virtual machine with the VM identifier “VM2” and the VM state is “deployed”. This corresponds to the row 212 of the hypervisor configuration table 200.
  • the resource amount of the CPU deployed in the virtual machine VM2 is “4 GHz”, which is different from the required specification “6 GHz”.
  • the virtual machine VM2 is extracted as a search result (row 713 in FIG. 7). This is because the virtual machine VM2 can determine that the required specification is satisfied by adding an empty resource to the current specification currently deployed.
  • the resource management program 110 refers to the free capacity of the resource related to the virtual machine VM2 from the VM pool information table. As a result, the resource management program 110 finds that the CPU resources allocated to the hypervisor HV1 that controls the virtual machine VM2 have a surplus of “2 GHz”.
  • the resource management program 110 determines that the CPU “6 GHz” as the required specification can be realized by adding “2 GHz” for the surplus power to the CPU “4 GHz” currently deployed in the virtual machine VM2. In this way, even for deployed virtual machines that do not match the required specifications, virtual machines that satisfy the required specifications are also extracted by performing operations such as allocating free capacity of resources. The number of computers can be increased, and the number of virtual computer options that can be actually allocated for the user can be increased.
  • the change column 707 of the search result list 712 displays whether or not it is necessary to change the addition / deletion of a free resource when allocating a deployed virtual machine.
  • an operation for adding a free resource is required to satisfy the required specifications.
  • “necessary” is stored in the change column 707. If the deployed virtual machine already satisfies the required specifications, the change column 707 stores “NO” because the addition operation of the free resource is unnecessary.
  • the selection field 701 is a selection field for selecting one virtual machine to be assigned by the user from the output virtual machines.
  • a check mark is displayed in the column to indicate the virtual machine currently designated by the user.
  • the resource management program 110 performs a process of allocating the selected virtual machine for the user.
  • the row 714 of the search result list 712 is a search result indicating that the already deployed VM 3 is a virtual machine that matches the required specifications. This is the VM 3 described in the row 213 of the hypervisor configuration information table 200 shown in FIG.
  • the VM 3 is a virtual machine that already has the same CPU frequency and memory amount as the required specifications.
  • the search result list also includes deployed virtual machines that match the required specifications.
  • the row 715 of the search result list 712 indicates that a virtual computer that is not deployed but matches the required specifications can be constructed.
  • the VM identifier column 702 in the row 715 stores a state “( ⁇ )” in which the virtual machine is not yet deployed.
  • the VM image column 703 stores “undeployed” because the VM image of the virtual machine has not been deployed yet.
  • the VM status column 706 stores “undeployed”.
  • “new” is stored. “New” indicates that when the user selects the undeployed virtual machine, the resource management program 110 requires a change such as newly deploying the virtual machine. This is because, when the VM pool information table in FIG. 3 is searched, it is determined that a virtual machine satisfying the required specifications can be constructed from the CPU and memory free capacity of the hypervisor HV3 shown in rows 315 and 316.
  • the virtual machine search result screen 700 displays a cancel button 708, a return button 709, and an allocation execution button 710.
  • a cancel button 708 is a button for interrupting the search for the virtual machine, and the search process is interrupted when the user operates the cancel button 708.
  • a return button 709 is a button for redisplaying the input screen of the request reception process shown in FIG. 6 in order to execute the search again.
  • the allocation execution button 710 is a button for actually allocating the virtual machine selected by the user in the selection field 701 of the search result list 712. In FIG. 7, the user designates the virtual machine indicated by the row 714 in the search result list 712 in the selection column 701. When the user operates the allocation execution button in this state, the resource management program 110 executes a process of allocating the virtual machine VM3 to the user.
  • step S405 after the search result list 712 shown in FIG. 7 is displayed, selection is accepted (step S406).
  • the user selects one of the selection fields 701 in the search result list 712, and executes an input process for operating any one of the allocation execution button 710, the return button 709, and the cancel button 708.
  • step S407 it is determined whether or not the button operated by the user is the allocation execution button 710 (step S407). If the button operated by the user is the allocation execution button 0710, the process of step S409 is executed. If the button operated by the user is any other button, the process of step S408 is executed. In step S408, it is determined whether or not the operated button is the return button 709. If the button operated by the user is the return button 709, the process returns to step S401, and the requested specification acceptance process is executed again. If the button operated by the user is not the return button 709, it is determined that the cancel button 708 has been operated, and the search process is interrupted. Before interruption, the allocation result recording process (0412) or the already-determined deployment specification review process (S413) may be executed.
  • step S409 is executed.
  • step S409 one virtual machine selected by the user in the selection column 701 of the search result list 712 is specified, and it is determined whether or not the current specification needs to be changed when the virtual machine is assigned. Specifically, it is specified whether the change column 707 of the search result list 712 is “necessary” or “new”. When the change column 707 of the search result list 712 is “necessary” or “new”, step S410 is executed. On the other hand, when the change column 707 of the search result list 712 is “No”, step S411 is executed.
  • step S410 the specification of the virtual machine selected by the user is changed so that the required specification specified by the user is obtained.
  • the resource management program 110 since the user has selected the virtual machine VM3, the resource management program 110 does not execute step S410.
  • step S410 is the current specification shown in line 713 of the search result list 712, that is, the VM image 703 and the CPU.
  • the difference between the column 704, the memory column 704, and the required specification input by the user is specified.
  • step S410 it is specified from the row 212 of the hypervisor configuration information table 200 shown in FIG. 2 that the hypervisor that controls the VM2 is HV1, and the hypervisor identifier is referenced with reference to the VM pool information table 300 shown in FIG.
  • the column 301 refers to HV1
  • the resource type column 303 refers to the free capacity column 305 in the row 311 of the CPU.
  • the free capacity column 305 can specify that the free capacity of the CPU is 2 GHz. Therefore, the hypervisor HV1 that controls the VM 2 is assigned to the virtual machine of the VM 2 so that all of the free capacity 2 GHz is allocated to the VM 2 virtual machine. Instruct.
  • the hypervisor HV1 receives the allocation instruction, and adds the CPU frequency allocation to the VM2.
  • the hypervisor indicating undeployment is HV3
  • the HV3 is instructed to add / change / delete resource allocation.
  • the VM image of the “DB server” held by another virtual machine can be copied so that the VM image can be used by the virtual machine that is the allocation execution target. To the hypervisor HV3.
  • the VM image copy process may be executed in step S410.
  • the hypervisor HV3 has a VM image designated by the virtual machine to be controlled, the hypervisor HV3 itself only needs to perform the copy process. However, if the hypervisor HV3 does not have the required VM image, it is more efficient to execute the process of diverting the VM image held by another hypervisor in step S410.
  • the VM image copy process can be realized by a file transfer process via a network.
  • the hypervisor that holds the requested VM image is operating on another physical computer
  • the VM image storage destination is acquired from the hypervisor operating on the other physical computer via the network, and the acquired storage destination After the VM image is read once by the resource management server, it can be transferred to the physical computer that operates the virtual computer assigned to the user.
  • the VM image copy process can be further expanded without departing from the spirit of the present application.
  • step 411 the selected virtual machine is assigned to the user. Specifically, the resource amount and user identifier assigned to the VM 3 are registered in the hypervisor configuration information table 200 shown in FIG. 2 (not shown). Further, the free capacity of the VM pool information table 300 shown in FIG. 3 is updated (not shown).
  • step S412 the result assigned to the user in step S411 is recorded in the log information table 800.
  • the structure of the log information table 800 is shown in FIG.
  • the log information table 800 shown in FIG. 8 is a table for recording the result assigned to the user in step S411 as the log information.
  • the log information table 800 includes a user column 801, a VM image column 802 as a required specification, a CPU column 803, a memory column 804, an allocation source column 805, a change column 806, and a request date / time column 807 as allocation statuses.
  • a row 811 shows the result of resource allocation based on the user requirement specifications illustrated in FIGS. 6 and 7.
  • the user column 801 stores a user ID that is an identifier for identifying the user who has input the required specification.
  • the VM image column 802 of the requirement specification stores the VM image type designated by the user.
  • the CPU column 803 stores the CPU frequency designated by the user.
  • the memory column 804 stores the memory capacity designated by the user.
  • the allocation status allocation source column 805 stores the status of the allocation source of the virtual machines allocated to the user by the resource management server 111. “Deployed” indicates that the virtual machine assigned to the user is a “deployed” virtual machine before accepting the request. “Free resource” indicates that the virtual machine assigned to the user was in an “unassigned” state before accepting the request. That is, when the user selects an undeployed virtual machine (row 715) in the search result list 712 of FIG. 7, the state of the selected virtual machine is recorded.
  • the change column 806 stores whether resource addition / change / deletion, VM image copy processing, or the like has been executed so as to satisfy the required specifications when assigning a virtual machine to a user.
  • the request date / time column 807 stores the date / time when the user inputs the required specification. Specifically, it is the time when the user inputs the required specification and operates the allocation execution button 710 on the search result list output screen of FIG.
  • the resource management program 110 can determine the specifications of the virtual machines to be deployed in the future and arrange the specifications in accordance with the user's request in advance.
  • FIG. 10 is a flowchart of a virtual machine deployment process for deploying a virtual machine for deployment from the history information table 800.
  • the usage trend is first analyzed based on the history information stored in the history information table 800.
  • the usage frequency of the requirement specification is summarized for each user from the history information table 800, and the requirement specification with the highest usage frequency is set as the specification of the virtual machine for deployment.
  • step S1001 usage information is first created from the log information table 800.
  • the usage information includes the frequency of the required specifications assigned to the user by the resource management program and the usage calculated from the frequency. Details of the usage information are shown in the usage information table 900 of FIG. Details of the processing in step S1001 are shown in the usage information creation processing flowchart of FIG.
  • step S1002 the usage is calculated for each required specification based on the usage information created in step S1001.
  • step S1002 the calculated usage is stored in the usage information table 900. Detailed processing in step S1002 is shown in the usage calculation processing flowchart of FIG.
  • step S1003 a deployment specification is determined based on the usage calculated in step S1002. Specifically, in step S1003, the required specification with the highest usage is determined as the specification for deployment to the user. Details of the processing of step S1003 are shown in the deployment specification determination processing flowchart of FIG. In step S1004, a virtual machine for deployment is deployed based on the deployment specifications determined in step S1003. The detailed processing in step S1004 is shown in the deployment processing flowchart of the deployment virtual machine in FIG.
  • a virtual machine for deployment based on the history information can be deployed in advance before the user requests.
  • the present application can improve the degree of coincidence between the specifications requested by the user and the specifications of the deployment virtual machine. The frequency of changing the computer specifications can be reduced.
  • FIG. 9 is an explanatory diagram of the usage information table 900 that stores the usage information created in step S1001.
  • the usage information table 900 is used to determine the deployment specifications of the deployment virtual machine.
  • the usage information table 900 holds information indicating what requirement specifications are used for each user.
  • the user column 901 stores a user ID.
  • Each information stored in the VM image column 902, the CPU column 903, and the memory column 904, which are required specifications, indicates what required specifications the user indicated by the user ID has requested in the past.
  • the row 911 requests a virtual machine in which “User2” is a VM image of “Web server”, the CPU frequency is “2 GHz”, and the memory capacity is “1 GB”, and the required specification is This indicates that the virtual machine that the user has has been assigned to the user.
  • the allocation count column stores the frequency of allocation of virtual machines described in the required specifications.
  • the allocation number column is composed of the following three columns in detail.
  • the deployed no change column 905 stores the number of times the virtual machine is assigned without changing the specification when the virtual machine is assigned.
  • the changed / changed column 906 stores the number of times the specification has been changed and allocated from the deployed virtual machine.
  • the new column 907 stores the number of times a virtual machine has been allocated from free resources that are not deployed at all.
  • the deployment column includes a usage column 908 and a specification column 909.
  • the usage column 908 stores the usage calculated based on the number of times stored in the allocation number column.
  • the specification column 909 stores an identifier indicating that the required specification having the highest usage among the calculated usages is determined as the deployment specification.
  • Multiple deployment specifications are determined for the same user. For example, as indicated by lines 912 to 914, “User2” has three required specifications determined as deployment specifications. This is because the virtual machine deployment process determines the deployment specifications for each VM image type. The user uses the virtual machine by changing the required specification for each VM image type. In the virtual machine deployment process, the deployment specifications according to the user's request can be deployed in advance by determining the deployment specifications for each VM image type.
  • FIG. 11 is a flowchart of usage information creation processing.
  • step S1101 the history information stored in the history information table 800 is sorted in ascending order in the order of the user column 801, the VM image column 802, the CPU column 803, and the memory column 804.
  • step S1102 the processing up to step S1107 is repeatedly executed until all the individual history information stored in the history information table 800 is referred to.
  • step S1103 one piece of log information to be referred to is selected, and the selected log information is extracted as usage information.
  • one of the history information stored in the sorted history information table 800 is selected, and one line of data in the history information table 800 is stored in the memory as usage information.
  • step S1104 the usage information stored before and the usage information stored this time are compared.
  • the information to be compared is four pieces of information stored in the user column 801, the VM image column 802, the CPU column 803, and the memory column 804 of the history information table 800, and is information stored in the memory as usage information. .
  • step S1104 the four pieces of previously stored information and the four pieces of information stored this time are respectively compared to determine whether all are the same information. If the four pieces of information are the same, step S1105 is executed. If even one piece of information is different, step S1106 is executed. Further, when the first row of the history information table 800 is stored in the memory as usage information, S1104 does not hold the previous usage information to be compared and cannot be compared.
  • step S1106 is executed.
  • step S1106 the four pieces of usage information stored this time are stored as new data in the usage information table 900. Specifically, one line of new data is added to the user column 901, VM image column 902, CPU column 903, and memory column 904 of the usage information table 900.
  • step S1105 since the four usage information stored last time and the four usage information stored this time are the same, the four usage information is already stored in the usage information table 900. Accordingly, the frequency is increased by +1 in the allocation number column of the corresponding row. Which of the allocation frequency columns is to be increased is determined by referring to information stored in the allocation status column of the corresponding log information table 800. For example, when the assignment source field 805 in the assignment status field is “deployed” and the change field 806 is “none”, the frequency of the “deployed no change field” that is the allocation number field in the usage information table 900 is increased. . As described above, the number of allocations is calculated based on the history information stored in the history information table 800, and the usage frequency is analyzed for each user's required specification.
  • Step S1107 is the end of the iterative process from S1102. That is, in step S1107, the above-described steps are repeatedly executed until all the history information stored in the history information table 800 is referred to.
  • step S1108 since the history information in the history information table 800 is sorted by user / VM image or the like in step S1101, the order of the original history information is restored. Specifically, the order can be restored by sorting the requested date and time in ascending order.
  • the resource management program 110 stores the information from the column 901 to the column 909 of the usage information table 900.
  • FIG. 12 is a flowchart of the usage calculation process, and is a flowchart showing in detail step S1002 of the virtual machine deployment process flowchart of FIG.
  • step S1201 the steps up to step S1203 are repeatedly executed until all the usage information stored in the usage information table 900 is referred to.
  • step S1202 one piece of usage information stored in the usage information table 900 is selected, and the usage is calculated from three types of frequencies described in the allocation count column of the usage information table 900.
  • a required specification with high usage is determined as a deployment specification, so the usage is calculated by weighting each of the three types of frequencies.
  • the frequency of the deployed changeless column 905 is tripled, the frequency of the deployed changed column 906 is doubled, the frequency of the new column 907 is multiplied by 1, and the sum is calculated as the usage. If the weighting ratio can be changed according to the overall usage frequency, virtual machines that meet the specifications required by the user can be deployed in advance.
  • the calculated usage is stored in the usage column 908 of the usage information table 900.
  • Step S1203 is the end of the iterative process from S1201.
  • the resource management program 110 stores the information in the column 908 of the usage information table 900 for all the usage information.
  • FIG. 13 is a flowchart of the deployment specification determination process, and is a flowchart showing in detail step S1003 of the virtual machine deployment process flowchart of FIG.
  • step S1301 the determined specifications stored in the specification column 909 of the usage information table 900 are once cleared. Specifically, the specification column 909 for all usage information is left blank.
  • step S1302 all the usage information stored in the usage information table 900 is sorted in the ascending order of the user column 901, the VM image column 902, the CPU column 903, the memory column 904, and the usage column 908.
  • steps up to S1310 are repeated until all the usage information stored in the usage information table 900 is referenced.
  • step S1304 one piece of usage information stored in the usage information table 900 is extracted. Specifically, the two pieces of information stored in the user column 901 and the VM image column 902 are stored in the memory.
  • step S1305 the two pieces of information previously stored in the memory are compared with the two pieces of information stored in the memory this time.
  • the usage information of the user and the VM image is the same in both cases, the required specifications stored in the CPU column 903 and the memory column 904 are different. Therefore, the steps after step S1307 for comparing the usage of both and determining the deployment specifications according to the usage are executed. If the usage information of the VM image is different from that of the user, step S1306 is executed.
  • step S1306 the usage information extracted this time is determined as the deployment specification. Specifically, an identifier indicating the determination is stored in the specification column 909 of the usage information table 900.
  • Step S1307 is executed when the two pieces of information of the user and the VM image stored in the previous memory coincide with the two pieces of information of the user and the VM image stored in the memory this time. Therefore, the previous usage information and the current usage information have different resource amounts for the CPU and the memory, and also have different usage frequencies. Therefore, there is a difference in utilization.
  • step S1307 the usage corresponding to the two pieces of information stored in the previous memory is compared with the usage corresponding to the two pieces of information stored in the current memory. If the usage corresponding to the two pieces of information stored in the current memory is higher than the usage corresponding to the two pieces of information stored in the previous memory, step S1308 is executed. If the current usage is lower, the previous specification has already been determined as the deployment specification, so there is no need to perform the deployment specification determination process, and the process advances to step S1310.
  • step S1308 since the usage corresponding to the two pieces of information stored in the memory this time is high, the required specification corresponding to the two pieces of information is determined as the deployment specification. Specifically, an identifier indicating that it has been determined as the deployment specification is stored in the specification column 909 of the usage information table 900. In step S1309, the required specifications corresponding to the two pieces of information stored in the previous memory are determined not to be deployment specifications. Specifically, a blank is stored in the specification column 909 of the usage information table 900. Step S1310 is the end of the iterative process of step S1303.
  • the required specification with the highest usage can be determined as the deployment specification.
  • FIG. 14 is a flowchart showing the deployment processing of the deployment virtual machine.
  • This flowchart is a flowchart showing in detail step S1004 of the virtual machine deployment processing of FIG.
  • the deployment specification is determined for each required specification.
  • This flowchart shows a process of deploying a deployment virtual machine in advance using the determined deployment specifications.
  • step S1401 the usage information stored in the usage information table 900 is sorted in descending order based on the usage stored in the usage column 908. This is intended to deploy the virtual machines for deployment in order of the required specifications with the highest usage. Since the virtual machines for deployment are deployed from free resources, the number that can be deployed is limited. In other words, it is not always possible to deploy all the virtual machines for deployment based on the usage information determined as the specifications for deployment in the specification column 909 of the usage information table 900. Therefore, it is necessary to deploy the virtual machines for deployment in order from the highest usage information.
  • step S1402 the process up to step S1410 is repeated until all the usage information stored in the usage information table 900 is referred to.
  • step S1403 one piece of usage information stored in the usage information table 900 is extracted.
  • step S1404 it is determined whether an identifier indicating that the specification for deployment is determined is stored in the specification column 909 of the extracted usage information. If the identifier is not stored, it is not necessary to deploy a virtual machine based on the usage information, and the process advances to step S1410. If the identifier is stored, the process proceeds to step S1405.
  • step S1405 the processing up to step S1409 is repeatedly executed until all resource pool information stored in the VM pool information table 300 is referred to.
  • step S1406 one of the resource pool information stored in the VM pool information table 300 is selected.
  • step S1407 using the selected resource pool information, it is determined whether the virtual machine having the deployment specification extracted in step S1403 can be deployed.
  • step S1407 the free capacity column 305 of the selected resource pool information is referred to, and it is confirmed that the free capacity is larger than the resource amount required for the deployment specification, and it is determined whether the virtual machine with the deployment specification can be deployed. .
  • step S1408 is executed, and when it is less, the process proceeds to step S1409.
  • step S1408 the virtual machine for deployment is deployed with the required resource amount.
  • Step S1409 is the end of the iterative process from step S1405.
  • Step S1410 is the end of the iterative process from step S1402.
  • the virtual machine for deployment can be deployed in advance according to the deployment specification and its usage, it is possible to deploy virtual machines with more user requests in advance.
  • the virtual machine deployment process shown in FIG. 10 can be executed in advance to distribute the virtual machines for deployment in advance.
  • the process of determining the deployment specification from step S1001 to step S1003 and the process of deploying the deployment virtual machine in step S1004 may be executed at different timings.
  • step S1001 is to review the deployment specification. From step S1003 to deployment specification determination processing may be executed. Further, another virtual machine having the same specification as that of the virtual machine assigned to the user may be deployed from a free resource as a deployment virtual machine. The deployment process of the virtual machine for deployment is aimed at pre-deploying the virtual machine that matches the user's request in this way. Therefore, the virtual machine for deployment can be deployed or requested based on the deployment specifications. A virtual machine for deployment may be deployed based on the assigned specifications.
  • the use start time of the virtual machine As described above, in the first embodiment, it is possible to shorten the use start time of the virtual machine according to the user's required specifications. In addition, by analyzing the combination tendency and placement tendency of virtual machines, which are the user's usage patterns so far, and preparing to respond immediately to the user's required specifications, the use start time is shortened. be able to.
  • the usage information table 900 is created from the history information table 800, the usage frequency is analyzed, and the deployment specification is determined. This assumes that the user starts using the assigned virtual machine immediately after searching and selecting a virtual machine that satisfies the required specifications.
  • the second embodiment it is assumed that there is a time lag (temporal difference) between the time when a virtual machine is assigned to the user and the time when the use is started.
  • a user may reserve a virtual machine that satisfies the required specifications in advance and start using the reserved virtual machine later.
  • the user searches ahead of other users to secure the virtual computer and secure the shared resources before using the virtual computer, The user can reliably use the virtual machine.
  • a user who really wants to use a virtual machine immediately reduces the number of virtual machines that should be assigned to the user, making it difficult to ensure and execute a virtual machine.
  • the date and time when the use of the virtual machine assigned by the user is started is recorded as history information, and the user immediately uses the virtual machine from the difference between the date and time when the assignment is requested and the use start date and time. Whether or not to calculate the immediacy. Since the immediacy is higher as the difference is shorter, the immediacy with a higher value is set, and the immediacy is lower as the difference is longer, so that the immediacy with a lower value is set. By calculating the degree of immediacy in this way, control is performed so that a deployment virtual machine that meets the specifications required by a user with high immediacy is deployed first.
  • the degree of occupancy indicating how much the virtual machine assigned to the user occupies the physical computer resource is calculated.
  • the resource management program 110 must secure a large amount of resources at a time. Since the amount of resources to be mounted on the physical computer is limited, it is necessary to deploy a virtual machine with a high occupancy as much as possible over a virtual machine with a low occupancy.
  • FIG. 15 shows a history information table 1500 according to the second embodiment.
  • the log information table 1500 of the second embodiment has the same structure as the log information table 800 (FIG. 8) of the first embodiment.
  • the same reference numerals as those shown in FIG. 8 are used for the same columns as the log information table 800 of the first embodiment, and the description thereof is omitted, and different parts will be described below.
  • the virtual machine column 1501 stores the identifiers of virtual machines selected and assigned by the user.
  • the occupancy rate column 1502 stores a percentage indicating how much the resource amount indicated in the required specification occupies the total capacity.
  • the CPU column 803 and the memory column 804 are 2 GHz and 2 GB, respectively.
  • This is a resource allocated to the virtual machine VM1 indicated by the virtual machine column 1501.
  • the resource management program 110 refers to the hypervisor configuration information table 200 shown in FIG. 2 and identifies that the hypervisor assigned to the virtual machine VM1 is “HV1”, and the VM pool information table 300 shown in FIG.
  • the total capacity of each of the CPU and memory of the hypervisor HV1 is specified with reference to FIG.
  • the resource management program 110 can calculate the occupancy rate from each total capacity and the resource amount allocated to the virtual machine VM1.
  • the occupation ratio is calculated for each resource, and the value with the highest occupation ratio is set as the occupation ratio of the virtual machine.
  • the CPU of the virtual machine VM1 occupies 2 GHz.
  • the VM pool information table 300 since the total capacity of the CPU managed by the hypervisor HV1 is 8 GHz, the occupation ratio of the CPU is 25%.
  • the memory capacity of the virtual machine VM1 is 2 GB, and the total memory capacity managed by the hypervisor HV1 is 8 GB, so the memory occupation ratio is 25%. Since the CPU and memory occupancy are both 25%, the virtual machine occupancy is 25%. If the CPU occupancy is 50% and the memory occupancy is 25%, the occupancy with a large value is determined as the occupancy of the virtual machine.
  • the occupation ratio is 50%. It is more difficult to deploy and assign a virtual machine with a high occupation rate than to deploy and assign a virtual machine with a low occupation rate. For this reason, in the second embodiment, by setting the occupancy rate as high as possible, even when allocation is difficult, a case where the required specifications are not satisfied after allocation is prevented.
  • the occupation ratios may be considered separately, and the two occupation degrees may be calculated and evaluated.
  • the difficulty of resource acquisition can be changed for each resource.
  • the resource management program 110 calculates the information to be stored in the virtual machine column 1501 and the occupancy rate column 1502 at the same timing as storing other requirement specifications, allocation status, and request date and time, and stores them in the history information table 1500. To do.
  • the start date / time column 1503 stores the time when the user actually starts the assigned virtual machine.
  • the virtual machine assigned to the user is controlled by the corresponding hypervisor.
  • the hypervisor HV1 controls the virtual machine VM1 described in the first line of FIG.
  • the hypervisor HV1 performs execution start processing of the virtual machine VM1 based on a user request.
  • the resource management program 110 may identify the start date and time by inquiring to the hypervisor HV1 via the network whether the virtual machine VM1 has been started. Further, the hypervisor “HV1” may notify the resource management program of the start of execution of the virtual machine VM1 using the start of execution of the virtual machine as a trigger.
  • the resource management program 110 After storing the history information in the history information table 1500, the resource management program 110 starts monitoring the corresponding hypervisor, and stores the start date and time in the corresponding start date and time column 1503 when the start date and time can be specified.
  • a function of saving the execution start process of the virtual machine as a log may be implemented in the hypervisor, and the resource management program 110 may monitor the update of the log. In this way, the date and time when the user starts using the assigned virtual machine is specified, and the immediacy can be evaluated.
  • FIG. 16 shows a usage information table 1600 according to the second embodiment.
  • the usage information table 1600 of the second embodiment has the same structure as the usage information table 900 (FIG. 9) of the first embodiment.
  • the same reference numerals as those shown in FIG. 9 are used in the same column as the usage information table 900 of the first embodiment, and the description thereof is omitted. To do.
  • FIG. 17 is a flowchart of virtual machine deployment processing in the second embodiment.
  • FIG. 17 basically includes the same steps as those in the flowchart of FIG. 10, and the same reference numerals are used for steps performing the same processing.
  • step S1001 to step S1003 The processing from step S1001 to step S1003 is the same as that of the first embodiment.
  • the virtual machine deployment processing of the second embodiment includes step S1702 in which step S1701 is newly added and a virtual machine for deployment is deployed based on the calculated occupancy and immediacy.
  • Step S1701 is a step of calculating the occupancy and immediacy from the usage information in the usage information table 1600. The details are shown in FIGS. 18A and 18B.
  • step S1702 a virtual machine for deployment is deployed based on the occupancy and immediacy calculated in step S1701. The details are shown in FIG.
  • FIGS. 18A and 18B are flowcharts of the usage information creation processing of the second embodiment, and show step S1701 in FIG. 17 in detail. Therefore, at the time of execution of the processing, the usage information from the user column 901 to the usage column 908 and the specification column 909 of the usage information table 1600 has already been stored.
  • step S1801 the usage information of the usage information table 1600 is sorted in ascending order in the order of the user column 901, the VM image column 902, the CPU column 903, and the memory column 904.
  • step S1802 the history information in the history information table 1500 is sorted in ascending order in the order of the user column 801, the VM image column 802, the CPU column 803, and the memory column 804.
  • step S1803 the processing up to step 1824 in FIG. 18B is repeated until all the usage information stored in the usage information table 1600 is referred to.
  • step S1804 one piece of usage information is extracted from the usage information table 1600.
  • step S1805 the frequency variable (N), the time difference total variable (Ss), and the occupation ratio total variable (Sd) are cleared to zero.
  • step S1806 the processing up to step 1812 is repeated until all the history information stored in the history information table 1500 is referred to.
  • step S1807 one piece of history information is extracted from the history information table 1500.
  • step S1808 it is determined whether the extracted history information has the same required specifications as the usage information extracted in step 1804. If the log information has the same required specifications as the usage information, step S1809 is executed. If the log information has a required specification different from the usage information, the iterative processing from step S1806 to step S1811 is stopped, and step S1813 is executed.
  • step S1809 the occupation rate described in the history information having the same required specifications as the usage information is added to the total variable (Sd) of the occupation rate.
  • step S1810 the start date / time and the request date / time described in the history information are converted into seconds, the mutual difference is calculated, and the difference is added to the sum variable (Ss) of the time difference.
  • step S1811 the frequency (N) is increased by one.
  • Step S1812 is the end of the iterative process from step S1806.
  • step S1808 if history information having a required specification that is not the same as the usage information is extracted, this repetitive processing is interrupted and step S1813 is executed. Alternatively, after all the history information is referred to, step S1813 is executed.
  • step S1813 the average value of the occupation ratio and the average value of the time difference are calculated from the calculated total sum variable (Sd), time difference total variable (Ss), and frequency variable (N), respectively.
  • the average occupancy variable (Pd) and the average time difference variable (Ps) are stored. Thereafter, Step S1814 of FIG. 18B is executed.
  • the level of occupancy is determined from the value of the average occupancy variable (Pd).
  • the level of immediacy is determined from the value of the average time difference variable (Ps).
  • step S1814 it is determined whether the value of the average occupancy variable (Pd) is 75% or more. If the value of the average occupancy variable (Pd) is 75% or more, the occupancy is set to “high” and stored in the occupancy column 1601 of the usage information table 1600 (step S1815). When the value of the average occupancy variable (Pd) is not less than 30% and less than 75% (step S1816), the occupancy is set to “medium” and stored in the occupancy column 1601 of the usage information table 1600 (step S1817). . If the value of the average occupancy variable (Pd) is less than 30%, the occupancy is set to “low” and stored in the occupancy column 1601 of the usage information table 1600 (step S1818).
  • step S1819 it is determined whether the value of the average time difference variable (Ps) is within 15 minutes.
  • the immediacy is set to “high” and stored in the immediacy column 1602 of the usage information table 1600 (step S1820).
  • the immediacy is set to “medium” and stored in the immediacy column 1602 of the usage information table 1600 (step S1822). ). If the value of the average time difference variable (Ps) exceeds 4 hours, the immediacy is set to “low” and stored in the immediacy column 1602 of the usage information table 1600 (step S1823).
  • Step S1824 is the end of the iterative process from step S1803.
  • step S1825 in order to return the history information sorted in step S1802 to the original state, the history information is sorted in ascending order based on the request date and time stored in the request date and time column 807 of the history information table 1500.
  • FIG. 20 shows an output example of the input screen.
  • FIG. 20 shows a level option input screen 2000 of the second embodiment.
  • the input screen 2000 has fields in which values that determine the level of usage weighting, occupancy, and immediacy can be input.
  • the row 2011 has a column for inputting a value that determines the weighting of the usage.
  • the row 2012 has a column for inputting a value that determines the level of occupancy.
  • the threshold value for determining the level “medium” and the threshold value for determining the level “low” are the same value. Therefore, the administrator has only to input two values of the levels “high” and “medium”.
  • the row 2013 has a column for inputting a value that determines the level of immediacy.
  • the level is determined in units of minutes and hours. However, as shown in FIG. 20, the level determination threshold is input in the unit of “minutes”. May be.
  • the level option input screen 2000 has a reference field 2001.
  • the resource management program 110 according to the first embodiment deploys virtual machines by once sorting the usage information in the usage information table 900 in descending order based on the usage 0908 column.
  • the resource management program not only deploys virtual machines on the basis of usage, but also enables virtual machines to be deployed based on the criteria set in advance by the administrator.
  • the administrator can select one of the three check boxes indicated in the reference field 2001. For example, when the administrator checks the occupancy check box, the resource management program 110 deploys virtual machines based on the occupancy.
  • the administrator operates the apply button after completing input for all items.
  • the resource management program 110 stores values regarding all input items in the memory 102 or the HDD 108 by operating the apply button.
  • the resource management program 110 discards the input values for all items.
  • the administrator can deploy a flexible virtual machine in advance to users having various requirements.
  • FIG. 19 is a sub-flowchart of the virtual machine deployment process, and shows step S1702 in FIG. 17 in detail.
  • step S1901 it is determined whether the check box designated by the administrator in the standard column 2801 of the level option input screen 2800 in FIG. Since the resource management program 110 stores the value set on the level option input screen 2800 in a memory, HDD, or the like, in step S1901, the stored value is determined with reference to the stored value.
  • the usage information in the usage information table 1600 is sorted in descending order based on the usage column 908 (step S1401), and when the administrator selects the occupancy (step S1902).
  • the usage information in the usage information table 1600 is sorted in descending order based on the occupancy column 1601 (step S1903).
  • the usage information in the usage information table 1600 is sorted in descending order based on the immediacy field 1602 (S1903). Thereafter, the resource management program executes the same steps as those in the flowchart of FIG. In this way, the resource management program can execute the deployment of virtual machines based on the selected criteria by sorting the usage information according to the criteria specified by the administrator.
  • the user assigns one virtual machine, but in the third embodiment, the user can assign a plurality of virtual machines at one time. In addition, several options can be given to the virtual machine searched by the user.
  • FIG. 21 shows an input screen for request acceptance processing in the third embodiment.
  • the request acceptance process input screen of the third embodiment is the same as the request acceptance process input screen (FIG. 6) of the first embodiment.
  • the different parts are a number input column 2101 in which the user can specify the number of virtual machines and an option input column 2102 for selecting three options.
  • the option input field 2102 includes three check boxes: a dedicated use option check box 2103, a cluster use option check box 2104, and a differential disk use check box 2105.
  • the dedicated option is an option for the user to use it as a dedicated virtual machine that does not share the virtual machine resources with another user.
  • the resource management program 110 is a virtual machine that operates on one physical computer, and a virtual computer that operates for another user is not allocated on the physical computer. The thing is output as a search result and assigned to the user.
  • the cluster use option is an option for allocating at least two virtual machines requested by the user and constructing a configuration in which each virtual machine is operated on a separate physical computer. This is a form for improving the fault tolerance of the virtual machine assigned by the user.
  • the resource management program 110 searches for the specified number of virtual computers and identifies the physical computers on which each operates. Next, a search is made for the number of virtual computers specified on a physical computer different from the physical computer. Eventually, the resource management program 110 searches for the number of virtual machines that is twice the designated number.
  • FIG. 22 shows a hypervisor configuration table 2200 according to the third embodiment.
  • the hypervisor configuration table 2200 in the third embodiment has the same structure as the hypervisor configuration table 200 (FIG. 2) in the first embodiment.
  • the same reference numerals as those shown in FIG. 2 are used in the same column as the hypervisor configuration table 200 of the first embodiment, and the description thereof is omitted.
  • a dedicated column 2201, a cluster column 2202, and a difference disk column 2203 are newly added.
  • the dedicated column 2201 stores an identifier when a dedicated option is designated by the user and the resource management program 110 assigns the virtual machine as dedicated.
  • the hypervisor configuration table 2200 stores information indicating that the virtual machine VM5 is assigned as dedicated.
  • the cluster column stores an identifier indicating a cluster configuration when a cluster use option is designated by the user and the resource management program 110 allocates two virtual machines in a cluster configuration.
  • the VM identifier of the counterpart virtual machine constituting the cluster is stored.
  • “VM6” is stored in the cluster column 2202 of the virtual machine VM1. This means that the virtual machine VM1 has a cluster configuration, and the VM identifier of the counterpart virtual machine is “VM6”, that is, the virtual machine VM1 and the virtual machine VM6 form a cluster.
  • the difference disk column 2203 stores an identifier indicating that the virtual machine uses a difference disk.
  • FIG. 23 is a VM pool information table in the third embodiment.
  • the VM pool information table 2300 in the third embodiment has the same configuration as the VM pool information table 300 (FIG. 3) in the first embodiment, but has a dedicated state column 2301 newly.
  • the dedicated status column 2301 stores an identifier indicating whether each resource is used exclusively or shared. Specifically, “dedicated” is stored when the resource is used exclusively, and “shared” is stored when the resource is used shared. In addition, if the resource is used by the deployment virtual machine and it is undecided which usage to use, “undecided” is stored.
  • FIG. 24 is a flowchart of required specification processing in the third embodiment.
  • This flowchart has the same steps as the flowchart of the requirement specification process in the first embodiment, but step S2401 is newly added, the determination content of step S403 is changed, and step S2402 is newly set.
  • step S402 creates the search result list based on the user's required specifications
  • step S2401 the search result list is reviewed based on the option specified by the user.
  • step S402 since a plurality of candidate virtual machines are extracted based on the resource amount that is the user's required specification, the option specified by the user is not considered. In particular, even when the user designates a dedicated option, in step S402, virtual machines that share resources with other virtual machines are also extracted.
  • step S2401 the contents of the created search result list are checked, and virtual machines that do not conform to the designated dedicated option are deleted from the list. Details of this processing are shown in FIG.
  • another cluster use option is specified, it is only necessary to select a cluster configuration using all the extracted virtual machines, so there is no need to revisit it like the dedicated option.
  • the difference disk use option is the same as the cluster use option and does not need to be reviewed.
  • step S2402 it is determined whether the number of virtual machines finally extracted in the search result list is greater than the number specified by the user. If the number is greater than the designated number, step S405 is executed. On the other hand, if the number is smaller than the designated number, a message requesting re-input of the required specifications is output (step S404). Further, the resource management program 110 may make the same determination as in step S403 instead of step S2402. That is, even when the number of extracted virtual machines is smaller than the number specified by the user, or when one virtual machine is extracted, step S405 is executed. The subsequent processing is the same as the flowchart of FIG. However, since the user can designate a plurality of units, the processing content is changed so that each step of the flowchart can execute the processing for the plurality of units.
  • FIG. 25 is a flowchart of the search result list review process, which shows step S2401 of the required specification process of FIG. 24 in detail.
  • This flowchart shows a process of deleting, from the search result list, virtual machines that cannot be used exclusively among virtual machines extracted in the search result list when the user designates a dedicated option.
  • step S2501 it is determined whether the user has designated a dedicated option. If the user designates a dedicated option, step S2502 is executed. If not specified, the process ends.
  • step S2502 the processing up to step S2507 is repeated until the data of all virtual machines stored in the search result list are read.
  • step S2503 one virtual machine is extracted from the search result list. For the sake of explanation, the extracted virtual machine is assumed to be “X”.
  • step S2504 the hypervisor that controls the extracted virtual machine (X) is specified, and other virtual machines that are controlled by the same hypervisor and are assigned are extracted with reference to the hypervisor configuration information table 2200.
  • step S2505 it is determined whether the corresponding virtual machine has been extracted in step S2504.
  • step S2506 is executed.
  • step S2506 since the virtual machine (X) shares resources with other assigned virtual machines, the virtual machine (X) is identified as a virtual machine that cannot be used exclusively. Therefore, the virtual machine (X) is deleted from the search result list.
  • Step S2507 is the end of the iterative process from step S2502.
  • FIG. 26 shows an example of a search result list when the user designates only a dedicated option.
  • the search result list 2600 is output instead of the search result list 0712 on the search result list output screen shown in FIG.
  • the search result list 2600 has the same structure as the search result list 0712 of FIG. 7, but has two columns, a hypervisor identifier column 2601 and a dedicated status column 2602.
  • the hypervisor identifier field 2601 stores the identifier of the hypervisor that controls the searched virtual machine.
  • an identifier stored in the hypervisor identifier column 201 of the hypervisor configuration table 2200 in FIG. 22 is used.
  • the dedicated status column 2602 stores information indicating the dedicated status of the searched virtual machine.
  • Information stored in the dedicated state column 2301 of the VM pool information table 2300 in FIG. 23 is used as the information indicating the dedicated state.
  • the search result list 2600 shown in FIG. 26 includes four virtual machines.
  • the resource management program 110 cannot select the information related to the virtual machine VM9 indicated by the row 2612 (for example, , Italics, strikethrough, etc.).
  • the virtual machine VM8 and the virtual machine VM9 share resources. For this reason, when the user selects the virtual machine VM8, the resource management program 110 displays that the user cannot select the virtual machine VM9 that shares the resource.
  • the resource management program 110 When the user cancels the selection of the virtual machine VM8, that is, when the check is removed by operating the check box again, the resource management program 110 turns off the display indicating that the virtual machine VM9 cannot be selected. As described above, the resource management program 110 can display a virtual machine that can be selected and a virtual machine that cannot be selected in accordance with the selection from the user, thereby realizing a dedicated option designation request by the user.
  • FIG. 27 shows an example of a search result list when the user designates a difference disk use option.
  • a difference disk column 2701 is added to the search result list 2600 shown in FIG.
  • a check box is displayed in the difference disk column 2701.
  • FIG. 28 shows an example of the search result list 2800 when the user designates the cluster use option.
  • the search result list 2800 includes columns for the cluster 1 side and the cluster 2 side in the search result list 2700 shown in FIG. 27.
  • the cluster 1 side has the same structure as the search result list shown in FIG.
  • the side column 2801 has a matrix of extracted virtual machines.
  • the cluster 2 side column 2801 includes four columns.
  • a check box is displayed in each cell of the cluster 2 side column 2801 so that the user can select two virtual machines simultaneously as a cluster configuration. “-” Is displayed for combinations that cannot be selected as a cluster configuration. For example, the combination of VM8 and VM9 cannot be selected.
  • a combination condition that can be selected as a cluster configuration is that they are operating on different physical computers. Therefore, a combination of virtual machines operating on the same physical computer cannot be selected as a cluster configuration.
  • the resource management program 110 identifies whether the combination condition is satisfied with reference to the hypervisor configuration table 2200 and the VM pool information table 2300.
  • the resource management program 110 displays “strikethrough” in the check box of the other virtual machine (VM11) combined with VM8 because VM8 is selected. To indicate that it cannot be selected. Next, “strikethrough” is displayed in the check box of another virtual machine (for example, VM9) combined with the VM10. In the example shown in FIG. 28, the only combinations of virtual machines that can be finally selected by the user are “VM9” and “VM11”.
  • the resource management program can change the output format of the search result list according to the contents of the option specification by the user and control the selectable range, so that it can be flexibly adapted to various combinations of option specification by the user. It can correspond to.
  • FIG. 29 shows a history information table 2900 according to the third embodiment.
  • the log information table 2900 according to the third embodiment has the same structure as the log information table 1500 (FIG. 15) according to the second embodiment, but includes a number column 2901, a dedicated column 2902, a cluster column 2903, and a difference column 2904. ing.
  • the number-of-units column 2901 stores the number designated by the user. For example, “2” is stored in the number field 2901 of the row 2911.
  • This virtual machine is the first of the two assigned by the resource management program 110 when the user requests “two” “DB servers” of “6 GHz” and “4 GB”. The remaining one is a virtual machine indicated by the next row 2912.
  • the dedicated field 2902, the cluster field 2903, and the difference field 2904 each store option contents designated by the user. “Shared” in the dedicated column 2902 is stored when the user does not specify a dedicated option.
  • the resource management program 110 stores “dedicated”.
  • the cluster column 2903 stores “Yes” when the user selects the cluster use option, and stores “No” when not selected.
  • the difference column 2904 stores “present” when the user designates the difference disk use option, and stores “none” when not designated.
  • FIG. 30 shows a utilization information table 3000 according to the third embodiment.
  • the usage information table 3000 according to the third embodiment has the same structure as the usage information table 1600 (FIG. 16) according to the second embodiment, but includes an average number column 3001, a dedicated degree column 3002, a cluster degree 3003, and a difference degree 3004. It has a column.
  • the average number column 3001 stores an average value calculated from the numbers stored in the number column 2901 of the log information table 2900.
  • the dedicated degree column 3002 stores the value of “shared” or “dedicated” stored in the dedicated column 2902 of the history information table 2900 or the calculated ratio. For example, if the user has requested the required specifications of “Web server”, “8 GHz”, and “2 GB” 10 times in the past and the user designates “dedicated” in any request, the resource management program 110 sets the dedicated door to 100%. And calculate. The requested number of times can be calculated from the total number of times of allocation stored in the column 905 to the column 907 of the usage information table 3000. The resource management program 110 obtains the ratio of the number of times of “dedicated” with respect to the total number of allocations.
  • the resource management program 110 is the ratio of the number of times “Yes” is designated to the total number of allocations.
  • the difference degree column 3004 stores a percentage calculated from the “present” and “none” values stored in the difference column 2904 of the history information table 2900.
  • the resource management program 110 calculates the ratio in the same manner as in the cluster degree column 3003.
  • the processing (not shown) for calculating each column of these usage information tables 3000 is the same as the processing of the embodiment 2 shown in FIGS. 18A and 18B, but the calculation step of the average number, the degree of dedicatedness, the clustering degree, and the difference degree. This can be achieved by adding
  • “dedicated degree”, “cluster degree”, and “difference degree” are selected on the level option input screen (FIG. 20) of the second embodiment. Add a column to allow the user to select as a reference.
  • the usage information is sorted based on the designated criterion as shown in FIG. 19 of the second embodiment. . Based on the sorted usage information, virtual machines are deployed based on the usage information determined as specifications.
  • the deployment virtual machine can be secured as “dedicated”.
  • the virtual machine secured as “dedicated” is extracted in the search result list.
  • a virtual machine secured as “dedicated” can be extracted in the search result list and can be selected by the user.

Abstract

 複数の物理計算機に実装されたリソースを用いて複数の仮想計算機を割り当てるリソース管理サーバであって、前記配備用仮想計算機と前記リソースの使用量とを管理するリソース管理部と、前記リソースの量と空きリソースの量とを管理するプール管理部と、リソースの量の要求仕様を含む仮想計算機の割当要求を受け付ける要求仕様受付部と、前記要求仕様を満たすリソースを有する配備用仮想計算機、及び、前記要求仕様を満たすリソースを有さないが、前記空きリソースを追加することによって前記要求仕様を満たすリソースを確保できる配備用仮想計算機を検索する検索部と、を備える。

Description

リソース管理サーバ、リソース管理方法及びリソース管理プログラムが格納された記憶媒体 参照による取り込み
 本出願は、平成22年(2010年)10月27日に出願された日本特許出願特願2010-240261の優先権を主張し、その内容を参照することにより、本出願に取り込む。
 本発明は、プール化された計算機リソースを管理するリソース管理技術に関する。特に、プール化された計算機リソースから利用者の要求に合うリソースを割り当てるリソース割り当て技術に関する。
 計算機リソースをプール化して運用するリソース管理技術がある。計算機リソースとは、例えば、計算機に具備されているCPU、メモリ、ハードディスクドライブなどである。通常1つの物理計算機に複数の仮想計算機(VM:Virtual Machine)を実行させ、各仮想計算機が物理計算機の計算機リソースの一部を利用する。計算機リソースは、仮想計算機の実行に応じて割り当てられる。例えば、CPUが4つのコアを有していれば、1コアをある仮想計算機に割り当てる。このとき残りの3コアを他の仮想計算機が実行されるまでの間、計算機プールとして管理する。計算機リソースは、仮想計算機を実装する仮想化ソフトウェアが管理する。仮想化ソフトウェアは、計算機リソースをプール化して管理し、仮想計算機を実行する際に必要に応じてリソースを割り当てている。計算機リソースの利用者は、プール化されたリソースから必要なときに、必要な分量だけリソースを割り当ててもらい、利用が終われば使用していた計算機リソースを計算機プールへ返却する。このように、計算機リソースをプール化することによって、計算機リソースの再利用性を高めることができ、計算機リソースの利用効率を向上できる。
 リソース管理技術の中でも、物理計算機のプール化運用が普及している。物理計算機のプール化運用は、計算機の仮想化技術をベースにしている。リソースの提供者は、計算機の仮想化ソフトウェアを搭載した物理計算機を多数用意する。これらの物理計算機は、計算機プールを構成する。計算機プールの利用者は、計算機プールに、必要な仕様の仮想計算機(VM:Virtual Machine)を生成する。仮想計算機を生成することにより、計算機プールが持つ物理的な計算機リソースが、当該仮想計算機に割り当てられる。利用者は、仮想計算機の利用が終わると、仮想計算機を物理計算機から削除する。仮想計算機を削除することによって、当該仮想計算機に割り当てられていた計算機リソースが計算機プールへ戻される。
 また、仮想計算機の生成は、仮想計算機の配備、仮想計算機の起動、の順に行われる。仮想計算機の配備とは、あらかじめ記憶デバイス(ハードディスクドライブなどの永続的な記憶デバイス)に記憶されている仮想計算機の実行イメージを、当該仮想計算機が動作する物理計算機の記憶デバイスへコピーすることである。また、仮想計算機の起動とは、仮想化ソフトウェアが、仮想計算機の実行イメージから仮想計算機を起動することである。
 仮想計算機の起動は、通常、数分程度の時間で完了する。一方、仮想計算機の配備は、仮想計算機の実行イメージのコピー処理に時間がかかるため、通常、完了までに数十分から数時間程度の時間を要する。多数の仮想計算機を必要とする利用者は、全仮想計算機の配備完了までに、多大な時間を待つ必要がある。そのため、仮想計算機の配備にかかる時間を短縮し、利用者の利便性を向上させる必要がある。
 また、仮想計算機の実行イメージのコピーは、コピー元計算機及びコピー先計算機の双方のCPU及びメモリを多量に消費する。また、同様に、両計算機間のネットワーク帯域も多量に消費する。そのため、一度に多数の仮想計算機の実行イメージをコピーすることを避ける必要がある。
 仮想計算機の配備にかかる時間を短縮する先行技術として以下の文献がある。なお、以下の先行技術には、物理計算機の配備時間を短縮する技術を含むが、仮想計算機の配備時間短縮にも適用可能である。
 特許文献1には、ホスティング環境として提供されているシステムリソースと、クライアントからのリソース割り当て要求内容に応じて、次に提供されるシステムリソースの構成を最適な構成にすること、が開示されている。
 また、特許文献2には、待機計算機が具備するソフトウェア構成と、業務システムが要求するソフトウェア構成との差異毎に、待機計算機(複数)を動的にグループ分けする機能を情報システムに持たせ、計算機を融通する際に、ソフトウェア構成でグループ分けした待機計算機を検索し、抽出することによって、ソフトウェアの環境構築を迅速に完了させる、ことが開示されている。
特開2006-18561号公報 特開2007-114983号公報
 利用者が要求する仮想計算機の仕様は必ずしも一様ではない。従って、如何に利用者が要求する仕様に合致した仮想計算機を早期に配備できるかが課題である。
 特許文献1に記載された発明は、利用者のリソース要求履歴の分析から将来的なリソース要求量を予測してリソース量の過不足を予め調整する。しかし、特許文献1に記載された技術では、要求された時点で仮想計算機を配備するのみで、事前に仮想計算機が配備できるよう準備していない。
 また、特許文献2で記載された発明は、具備するソフトウェア構成で待機計算機をグループで分類し、グループ分けされた待機計算機を検索することによって、要求されたソフトウェアの構成を迅速に構築することが開示されている。特許文献2に記載された技術では、予めソフトウェアを具備した待機計算機を準備することによって、ソフトウェアの構成を迅速化している。しかし、更に個々のアプリケーションを実行する上で必要なリソース量を調整していない。
 このように、ユーザが要求する仮想計算機の仕様、特に仮想計算機に必要なリソースを迅速に配備することが課題である。
 本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、複数の物理計算機とネットワークを経由して接続され、前記複数の物理計算機に実装されたリソースを用いて複数の仮想計算機を割り当てるリソース管理サーバであって、前記複数の物理計算機に実装された配備用仮想計算機と、前記配備用仮想計算機が用いるリソースの使用量との対応関係を含むリソース管理情報を管理するリソース管理部と、前記複数の物理計算機と、前記複数の物理計算機に実装されたリソースの総量と、前記複数の物理計算機に実装された前記仮想計算機に割り当てられていない空きリソースの総量との対応関係を含むプール管理情報を管理するプール管理部と、新たな仮想計算機の割当要求を、前記新たに割り当てが要求された仮想計算機で必要とするリソースの量を含む要求仕様と共に受け付ける要求仕様受付部と、前記受け付けた要求仕様に含まれる前記リソースの量を割り当てることが可能な仮想計算機を検索する検索部と、を備え、前記検索部は、前記リソース管理情報に含まれる配備用仮想計算機から、前記要求仕様を満たす量のリソースを有する配備用仮想計算機、及び、前記要求仕様を満たす量のリソースを有さないが、前記プール管理情報に含まれる空きリソースを追加することによって前記要求仕様を満たす量のリソースを確保できる配備用仮想計算機を検索することを特徴とする。
 本発明の代表的な実施の形態によれば、利用者の要求スペックに応じた仮想計算機の利用開始時間を短縮することができる。
本発明の実施形態1の全体システム構成図である。 実施形態1のハイパバイザ構成テーブルを示す説明図である。 実施形態1のVMプール情報テーブルを示す説明図である。 実施形態1の要求仕様処理のフローチャートである。 実施形態1の検索結果リスト作成処理のフローチャートである。 実施形態1の要求受付処理での入力画面を示す説明図である。 実施形態1の検索結果リスト出力画面を示す説明図である。 実施形態1の来歴情報テーブルを示す説明図である。 実施形態1の利用度情報テーブルを示す説明図である。 実施形態1の仮想計算機配備処理のフローチャートである。 実施形態1の利用度情報作成処理のフローチャートである。 実施形態1の利用度算出処理のフローチャートである。 実施形態1の配備用仕様決定処理のフローチャートである。 実施形態1の配備用仮想計算機の配備処理のフローチャートである。 本発明の実施形態2の来歴情報テーブルを示す説明図である。 実施形態2の利用度情報テーブルを示す説明図である。 実施形態2の仮想計算機配備処理のフローチャートである。 実施形態2の利用度情報作成処理のフローチャートである。 実施形態2の利用度情報作成処理のフローチャートである。 実施形態2の仮想計算機配備処理のサブフローチャートである。 実施形態2のレベルオプション入力画面を示す説明図である。 本発明の実施形態3の要求受付処理での入力画面を示す説明図である。 実施形態3のハイパバイザ構成テーブルを示す説明図である。 実施形態3のVMプール情報テーブルを示す説明図である。 実施形態3の要求仕様処理のフローチャートである。 実施形態3の検索結果リスト見直し処理のフローチャートである。 実施形態3の検索結果リスト出力画面における検索結果リストを示す説明図である。 実施形態3の検索結果リスト出力画面における検索結果リストを示す説明図である。 実施形態3の検索結果リスト出力画面における検索結果リストを示す説明図である。 実施形態3の来歴情報テーブルを示す説明図である。 実施形態3の利用度情報テーブルを示す説明図である。
 <実施形態1>
 本発明の実施形態の一つでは、リソース管理サーバが、利用者からの仮想計算機要求を受け付け、受け付けた要求を満たす仮想計算機を利用者に提示する。リソース管理サーバは、利用者が過去に入力した仮想計算機の要求の履歴を分析して、今後の要求が見込まれる仮想計算機を推測する。リソース管理サーバは、実際の要求が入力される前に、この推測に基づいて、仮想計算機を配備する。実際に、利用者からリソース要求が入力されると、リソース管理サーバは、既に配備された仮想計算機の中から、要求を満たす仮想計算機を検索し、利用者へ提示する。リソース要求で入力された仮想計算機の仕様が既に配備された仮想計算機の仕様と異なる場合には、リソース管理サーバは、配備済仮想計算機の仕様を変更可能かをチェックする。リソース管理サーバは、仕様の変更が可能であれば、この配備済仮想計算機を利用者へ提示する仮想計算機のリストへ加える。このように、リソース管理サーバが、要求頻度が多い仮想計算機を予め配備しておくことによって、利用者は、同仮想計算機を即座に使用することができる。つまり、利用者は、仮想計算機の配備が完了するまで待つ必要がなく、利用者の利便性が向上する。
 図1は、実施形態1の全体システム構成図である。リソース管理サーバ100は物理計算機であり、CPU101、メモリ102、ネットワークインターフェースカード(NIC)109、入力インターフェース(I/F)103、出力インターフェース(I/F)105、HDDインターフェース(I/F)107を具備する。リソース管理サーバ100の入力I/F103は、マウスやキーボード104等の入力デバイスと接続され、ユーザからの操作を受け付ける。出力I/F105は、ディスプレイ0106等の出力デバイスと接続され、ユーザへ情報を出力する。なお、他の出力デバイス(例えば、プリンタ)も接続可能である。HDD I/F107はハードディスクドライブ(HDD)108と接続され、種々のプログラムやCPU101で処理される各種データ及びテーブル等を格納する。NIC109は、ネットワーク120と接続され、ネットワーク120を介して他の物理計算機130、140と接続される。
 メモリ102には、リソース管理プログラム110が実装されている。リソース管理プログラム110は、通常、HDD108に格納され、CPU101の要求によりメモリへロードされることによって実装される。リソース管理プログラム110は、要求受付処理111、リソースの検索処理112、仮想計算機の割当処理113、仮想計算機の利用状況を算出する計測処理114、要求の多い仮想計算機を予め配備するための配備処理115、他の物理計算機130、140で実際にユーザへ割り当てられた仮想計算機や、予め配備された仮想計算機等の情報を各物理計算機130、140から収集し管理する管理処理116を実行するサブプログラムを含む。メモリ102は、ユーザの要求に基づいて検索された配備可能な仮想計算機の情報を保持するための検索結果リスト700、ユーザの要求した仮想計算機の仕様等を格納する来歴情報テーブル(来歴情報TBL)800、来歴情報テーブル800に格納された来歴情報からユーザの利用傾向を把握するために算出された利用度情報テーブル(利用度情報TBL)900、各物理計算機0130、0140から収集した仮想計算機の実装状態を保持するハイパバイザ構成テーブル(ハイパバイザ構成TBL)200、各物理計算機0130、0140に実装されるCPUやメモリ等のリソースのリソース量と、仮想計算機等で使用されていない空きリソース量を保持するVMプール情報テーブル(VMプール情報TBL)300等の種々のテーブルを保持しており、リソース管理プログラム110が、処理に応じて適宜、これらのテーブルを読み書きする。これらのテーブルは、HDD108にも格納され、必要に応じてCPU101が、HDD108から読み出してメモリ102へロードしたり、メモリ102上の各種テーブルの情報をHDD108へ格納する。
 物理計算機130は、リソース管理サーバ100と同様のハードウエア構成を有した計算機で、CPU131、メモリ132、リソース管理サーバ100とネットワーク接続するためのNIC133、HDD138と接続するためのHDD I/F134を実装する。同様に、物理計算機140は、リソース管理サーバ100と同様のハードウエア構成を有した計算機で、CPU141、メモリ142、NIC143、HDD I/F144を実装する。図示していないが、リソース管理サーバ100に実装された他の入力I/F103、出力I/F105を実装することもできる。各物理計算機130、140のメモリ132、142上にはハイパバイザ136、146がロードされており、複数の仮想計算機の生成、割当、仕様変更、削除等の様々な管理を行う。図1では、物理計算機130のハイパバイザ136の識別子をHV1とし、物理計算機140のハイパバイザ146の識別子をHV2としている。各ハイパバイザ136、146は、各々の計算機上で複数の仮想計算機を割り当てている。例えば、物理計算機130上では、仮想計算機VM1(137)と仮想計算機VM2(138)とが割り当てられている。物理計算機140上では、仮想計算機VM3(147)と仮想計算機VM4(148)とが割り当てられている。
 リソース管理サーバ100のリソース管理プログラムは、各物理計算機130、140のハイパバイザ136、146と通信することによって情報の送受信を行うことができ、適宜仮想計算機の割当状態を取得してハイパバイザ構成テーブル200、VMプール情報テーブル300を更新する。また、リソース管理サーバ100は、ユーザから受け付けた要求に対応できる仮想計算機の当該ユーザへの割り当てを指示したり、予め要求の多い仕様を有した仮想計算機の配備を指示したりする。
 また仮想計算機VM1(137)、仮想計算機VM2(138)は、ハイパバイザHV1(136)上で動作する仮想的な計算機である。ハイパバイザHV1(136)は、物理計算機130のリソース、例えば、CPU131やメモリ132を各々の仮想計算機に分割して割り当てる。また、ハイパバイザHV1(136)は、各仮想計算機へ割り当てるリソースの量を変更することができる。物理計算機140においても同様である。物理計算機130、140に接続されているHDD135、145には、各々VMイメージ139、149が格納されている。VMイメージとは、仮想計算機のオペレーティングシステム、および、オペレーティングシステムで動作するアプリケーションの動作イメージである。仮想計算機は、仮想的なHDDをマウントし仮想的なHDDに格納されているオペレーティングシステムやアプリケーションをロードして実行する。VMイメージはその仮想的なHDDの実体である。ハイパバイザが仮想計算機で使用するVMイメージを制御することによって、仮想計算機が仮想的なHDDとして処理することができる。実体であるVMイメージは、ハイパバイザからみれば実際にHDDに格納されている1つのファイルである。従って、1つの仮想計算機に1つ以上のVMイメージが必要となる。例えば、物理計算機0130上の仮想計算機VM1(137)は、HDD135に格納されている1つのVMイメージ139を用いる。
 これらのVMイメージをハイパバイザが制御する。またハイパバイザは、新たに別の仮想計算機を生成することが可能で、その際ハイパバイザは、既にHDDに格納されている別のVMイメージをコピーすることによって新たな仮想計算機が用いるVMイメージを生成する。リモート管理サーバ100は、ハイパバイザに対して指示することによって、新たな仮想計算機の生成指示、VMイメージのコピー指示等の操作をする。なお、「仮想計算機の配備」とは、リソース管理サーバ100が、物理計算機0130の記憶デバイス(HDD135)へ、VMイメージ139をコピーする操作を指す。
 図2はハイパバイザ構成テーブル200を示す。ハイパバイザ構成テーブル200は、ハイパバイザHV1(136)、ハイパバイザHV2(146)が制御している仮想計算機VM1(137)、VM2(138)、VM3(147)、VM4(148)の割当状態を格納する。割当状態は、ハイパバイザ識別子201、VM識別子202、CPU203、メモリ204、VM状態205、VMイメージ206、利用者206を含む。また、ハイパバイザ構成テーブル200は、1つの仮想計算機に対して1つの行を割り当てる。ハイパバイザ構成テーブル200は、各々のハイパバイザ上で稼働する5つの仮想計算機に対する割当状態を記憶している。
 まず、ハイパバイザ構成テーブル200の各列について説明する。ハイパバイザ識別子欄201は、各物理計算機130、140上で稼働するハイパバイザHV1(136)、ハイパバイザHV2(146)等を識別するための識別子を格納する。図1には図示していないが、ハイパバイザ構成テーブル200には、行215において別の物理計算機のハイパバイザ(HV3)も含まれる。VM識別子欄202は、当該ハイパバイザ上で制御される仮想計算機を識別するための識別子を格納する。行211には、物理計算機130上のハイパバイザHV1:0136が制御する仮想計算機VM1(137)を識別するための識別子「VM1」が格納される。
 CPU欄203は、当該仮想計算機に割り当てられているCPUの周波数を格納する。即ち、本欄203は、当該仮想計算機に割り当てられているリソース量の1つを示すものである。例えば、行211の場合、仮想計算機VM1(137)に割り当てられている物理計算機130内のCPU131の周波数が2GHzであることを示している。本実施形態ではCPU131は総容量8GHzの周波数を有しているので、仮想計算機VM1(137)に割り当てられている周波数は全体の4分の1であることを意味している。本実施形態では、周波数を示しているが、例えば、CPUのコア数であってもよい。
 メモリ欄204は、当該仮想計算機に割り当てられているメモリの容量を格納する。言い換えれば、本欄204は、当該仮想計算機に割り当てられているリソースのリソース量の1つを示している。例えば、行211の場合、仮想計算機VM1(137)に割り当てられている物理計算機130内のメモリ132の容量が2GBであることを示している。本実施形態ではメモリ132の総容量が8GBであるので、仮想計算機VM1(137)に割り当てられているメモリの容量が全体の4分の1であることを意味している。
 VM状態欄205は、当該仮想計算機の割当状態を示す識別子を格納する。本実施形態では、「割当済」と「配備済」の2種類の割当状態がある。「割当済」とは、既にユーザに対して当該仮想計算機が割り当て済であることを意味する。また「配備済」とは、特定のユーザには割り当てられていないが、仮想計算機を配備済みであることを意味する。
 VMイメージ欄206は、当該仮想計算機が使用するVMイメージのタイプを格納する。本実施形態では、「APサーバ」「DBサーバ」「WEBサーバ」の3種類のVMイメージがある。例えば、行211の場合、仮想計算機VM1(137)が使用するVMイメージのタイプが「APサーバ」であることを意味する。また、行215の仮想計算機VM5も「APサーバ」であるが、VM1とVM5とで全く同じVMイメージを用いる、という意味ではなく、使用しているVMイメージのタイプが同じであることを意味しており、各々の仮想計算機が使用するVMイメージは各々異なっている。
 利用者欄207は、当該仮想計算機を利用する利用者を一意に識別するための識別子(ユーザID)を格納する。行211、214及び215の各仮想計算機には、それぞれの利用者を識別するユーザIDが格納されている。行212及び213の各仮想計算機のように、仮想計算機が「配備済」であるが、まだ利用するユーザが決定されていない場合、「---」を格納する。
 図3は、VMプール情報テーブル300を示す。本テーブル300は、リソース管理サーバ100が管理対象とする全ての物理計算機130、140等が保持するリソースの総容量と空き容量とを管理する。ハイパバイザ識別子欄301は、物理計算機上で稼働するハイパバイザを一意に識別するための識別子を格納する。この識別子は、ハイパバイザ構成テーブル200のハイパバイザ識別子欄201に格納される識別子と同じ識別子を用いる。リソースプール識別子欄302は、同じ物理計算機上で実装するリソースであることを認識するための識別子である。例えば、行311の「RP1」と行312の「RP1」は、各々リソース「CPU」「メモリ」を有しているが、何れも同一物理計算機に実装されたリソースであり、同じハイパバイザ「HV1」が制御することを意味する。
 リソース種別欄303は、リソース管理サーバ100が管理対象とするリソースの種別を示す情報を格納する。本実施形態では、「CPU」「メモリ」の2つのリソースを例示するが、ネットワークI/Fである「NIC」、ハードディスクドライブである「HDD」などもリソース種別に含めることができる。総容量欄304と空き容量欄305とは、リソース種別303で示されたリソースの、実装されている全ての容量と、仮想計算機に割り当てられていない空きとなっている容量とをそれぞれ示す。例えば、行311で示す「CPU」の総容量「8GHz」は、当該CPUの全周波数の総容量を示し、空き容量「2GHz」は、当該CPUの全周波数の総容量のうち仮想計算機に割り当てられていない空き容量を示す。本テーブル300は、新たにユーザから仮想計算機の割り当てを要求された場合、配備済の仮想計算機から検索するだけでなく、本テーブル300の空き容量欄305に記載される空き容量から割り当て可能かを検索する際にも用いられる。
 次に、図4を用いて実施形態1における要求仕様処理を説明する。図4は、本実施形態の要求仕様処理を示すフローチャートである。図1で示したリソース管理プログラム100が、図4に示す処理を実行する。
 まず、リソース管理プログラム100は、要求受付処理111において、ユーザからの要求を受け付ける入力画面を表示し、ユーザからの入力操作を受け付ける(S401)。入力画面とユーザからの入力操作結果の例を図6に示す。
 図6は、要求受付処理0111での入力画面の例を示す。タイトル600は本画面が「仮想計算機検索」を行うことを表示する。利用者名欄611は、ログインされたユーザの利用者名であるユーザIDを表示する。本実施形態では図示していないが、リソース管理サーバ100はユーザ認証機能を有しており、リソース管理プログラム110は当該ユーザ認証機能によって認証されたユーザIDを利用者情報として利用する。図中の「User1」は、ユーザ認証機能によって認証されたユーザIDである。
 要求スペック612は、ユーザが要求する仮想計算機の仕様を指定する欄である。本実施形態では、VMイメージ613と、リソース615を要求仕様によって指定する。VMイメージ613は、プルダウンメニュー614で表示される各種のVMイメージからユーザの要求するVMイメージを指定する。図6は、「DBサーバ」のVMイメージが指定された画面を示す。リソース615では、2種類のリソース種別であるCPU616とメモリ617について、各々の必要な要求量をキーボード等により入力する入力欄を表示する。図6は、各々「6」Ghz、「4」GBが指定された画面を示す。
 仮想計算機を検索するための入力画面600は、キャンセルボタン601と検索ボタン602を表示する。ユーザがキャンセルボタン601を操作すると、図4で示す処理を中止する。ユーザが検索ボタン602を操作すると、ユーザが指定した要求仕様に基づいて、割り当て可能な仮想計算機の検索を開始する。
 説明を図4のフローチャートに戻す。以上の図6の入力画面による要求仕様受付処理(S401)において、ユーザが必要とする要求仕様を入力し、入力画面600検索ボタン602を操作すると、処理は次のステップS402へ進む。ステップS402では、ユーザが入力した要求仕様に基づいて検索結果リストを作成する。検索結果リストは、ユーザが必要とする要求仕様を満たす仮想計算機を示すリストである。検索結果リストを作成するステップS402の詳細なフローチャートは図5で示す。また作成された検索結果リストは図7で示す。検索結果リストは、ユーザが指定した要求仕様に基づいて検索することで生成される。従って、検索結果によってはユーザの要求仕様を満たす仮想計算機がなかった場合も想定される。このような場合、検索結果リストは空のリストとなる。ステップS403は、検索結果リストが空のリストかを判定するステップである。もし検索結果リストが空のリストであった場合、処理はステップS404へ移行し、ユーザに対して要求仕様の再入力を依頼するメッセージを出力し、ステップS401の要求仕様受付処理に再度処理を戻す。もしステップS403で検索結果リストが空のリストでなければ、ステップS405が検索結果リストを表示する。検索結果リストの表示例を図7で示す。
 図7は、ユーザの要求仕様に基づいて検索した検索結果リストを出力する検索結果リスト出力画面である。利用者名欄711は要求仕様を指定したユーザIDを表示する。表712は、検索結果リストである。図6において、ユーザはDBサーバのVMイメージを持つCPU6GHz、メモリ4GHzの仮想計算機を要求仕様として指定している。表712は、当該要求仕様に基づいて検索した結果を示す。検索した結果、当該要求仕様に当てはまる3つの仮想計算機を特定している。
 VM識別子欄は、要求仕様に当てはまる仮想計算機の識別子を格納する。現状の仕様欄は3つの欄(VMイメージ欄703、CPU欄704、メモリ欄705)を含んでいる。VMイメージ欄703は、当該仮想計算機が保有するVMイメージを特定する識別子を格納する。CPU欄704は、当該仮想計算機に割当可能な周波数を格納する。メモリ欄705は、当該仮想計算機に割当可能なメモリ容量を格納する。VM状態欄706は、検索した仮想計算機の配備状態を示し、ハイパバイザ構成テーブル200(図2)のVM状態欄205と対応する。要求仕様を満たす仮想計算機を探索する場合、ハイパバイザ構成テーブル200のVM状態欄205が「配備済」である仮想計算機から探索する。例えば、行713で示す仮想計算機は、VM識別子が「VM2」の仮想計算機であり、VM状態が「配備済」である。これは、ハイパバイザ構成テーブル200の行212と対応する。
 尚、図2の行212で示すように、仮想計算機VM2に配備されているCPUのリソース量は「4GHz」であり、要求仕様「6GHz」と異なっている。しかし、本実施形態では、当該仮想計算機VM2が検索結果として抽出される(図7の行713)。これは、仮想計算機VM2が、現在配備されている現状の仕様に空きリソースを加えることで、要求仕様を満たすと判定できるからである。リソース管理プログラム110は、仮想計算機VM2に関連するリソースの空き容量をVMプール情報テーブルから参照する。その結果、リソース管理プログラム110は仮想計算機VM2を制御するハイパバイザHV1に割り当てられているCPUリソースには「2GHz」分の余剰があることが分かる。リソース管理プログラム110は、現在、仮想計算機VM2に配備されているCPU「4GHz」に余剰力分の「2GHz」を加えることによって要求仕様であるCPU「6GHz」を実現できると判定する。このように、要求仕様と合致しない配備済仮想計算機であっても、リソースの空き容量を割り当てるなどの操作をすれば、要求仕様を満たす仮想計算機をも抽出するので、検索結果として抽出される仮想計算機の数を増加させることが可能となり、ユーザにとっては実際に割当可能な仮想計算機の選択肢の数を増加させることができる。
 検索結果リスト712の変更欄707は、配備済仮想計算機を割り当てる場合に空きリソースの追加・削除等の変更を行う必要があるか否かを表示する。行712に示す「VM2」の配備済仮想計算機の場合、要求仕様を満たすために、空きリソースを追加する操作が必要である。このような空きリソースの追加操作が必要である場合、変更欄707には「要」が格納される。配備済仮想計算機が既に要求仕様を満たしている場合、空きリソースの追加操作は不要であるため、変更欄707は「否」を格納する。
 選択欄701は、出力された仮想計算機の中からユーザが割り当てる仮想計算機を1つ選択するための選択欄である。ユーザが一つの欄を選択すると、当該欄内にチェックマークを表示し、現在ユーザが指定する仮想計算機を示す。選択された状態でユーザが「割当実行」ボタン710を操作すると、リソース管理プログラム110は、選択された仮想計算機を当該ユーザ用に割り当てる処理を行う。
 検索結果リスト712の行714は、既に配備済みであるVM3が要求仕様と合致する仮想計算機であることを示す検索結果である。これは、図2に示すハイパバイザ構成情報テーブル200の行213に記載されているVM3である。VM3は、既に要求仕様と同じCPUの周波数、及びメモリ量を保有した仮想計算機である。検索結果リストには、要求仕様と合致する配備済の仮想計算機も含まれる。
 検索結果リスト712の行715は、未配備ではあるが要求仕様と合致する仮想コンピュータを構築できることを示している。行715のVM識別子欄702は、仮想計算機がまだ配備されていない状態「(---)」を格納する。VMイメージ欄703は、まだ当該仮想計算機のVMイメージが配備されていないので「未配備」を格納する。VM状態欄706も同様に、「未配備」を格納する。変更欄707には、「新規」が格納される。「新規」は、当該未配備の仮想計算機をユーザが選択した場合、リソース管理プログラム110が新たに仮想計算機を配備するなどの変更を必要とすることを示す。これは、図3のVMプール情報テーブルを検索した際に、行315及び316に示すハイパバイザHV3のCPUやメモリの空き容量から要求仕様を満たす仮想計算機を構築できると判定したからである。
 仮想計算機検索結果画面700は、キャンセルボタン708、戻るボタン709、割当実行ボタン710を表示する。キャンセルボタン708は、仮想計算機の検索を中断するためのボタンであり、ユーザがキャンセルボタン708を操作することによって検索処理が中断する。戻るボタン709は、検索を再度実行するために図6で示す要求受付処理の入力画面を再表示するためのボタンである。割当実行ボタン710は、ユーザが検索結果リスト712の選択欄701で選択した仮想計算機を実際に割り当てるためのボタンである。図7では、ユーザは検索結果リスト712の行714で示す仮想計算機を選択欄701で指定している。この状態でユーザが割当実行ボタンを操作すると、リソース管理プログラム110は、当該仮想計算機VM3を当該ユーザへ割り当てる処理を実行する。
 図4の要求仕様処理を示すフローチャートについて引き続き説明する。ステップS405で、図7で示す検索結果リスト712を表示した後、選択を受け付ける(ステップS406)。ここでは、ユーザが検索結果リスト712の選択欄701の1つを選択し、割当実行ボタン710、戻るボタン709、キャンセルボタン708のいずれか一つのボタンを操作する入力処理を実行する。
 次に、ユーザにより操作されたボタンが割当実行ボタン710であるか否かを判定する(ステップS407)。ユーザによって操作されたボタンが割当実行ボタン0710である場合、ステップS409の処理を実行する。ユーザにより操作されたボタンがそれ以外である場合、ステップS408の処理を実行する。ステップS408は、操作されたボタンが戻るボタン709であるか否かを判定する。ユーザによって操作されたボタンが戻るボタン709である場合、処理はステップS401へ戻り、再度要求仕様の受付処理を実行する。ユーザによって操作されたボタンが戻るボタン709でない場合、キャンセルボタン708が操作されたと判定し、検索処理を中断する。中断する前に割当結果の記録処理(0412)や、既に決定されている配備用仕様の見直し処理(S413)を実行してもよい。
 ユーザによって操作されたボタンが割当実行ボタン710である場合、ステップS409を実行する。ステップS409では、ユーザが検索結果リスト712の選択欄701で選択した一つの仮想計算機を特定し、当該仮想計算機を割り当てる際に現在の仕様を変更する必要があるか否かを判定する。具体的には、検索結果リスト712の変更欄707が「要」か「新規」かを特定する。検索結果リスト712の変更欄707が「要」又は「新規」である場合、ステップS410を実行する。一方、検索結果リスト712の変更欄707が「否」である場合は、ステップS411を実行する。
 ステップS410では、ユーザが指定した要求仕様となるよう、ユーザが選択した仮想計算機の仕様を変更する。図7では、ユーザは仮想計算機VM3を選択しているので、リソース管理プログラム110はステップS410を実行しない。
 もしユーザが、図7においてVM2の仮想計算機を選択(行713)し、割当実行ボタン710を操作した場合、ステップS410は検索結果リスト712の行713で示す現在の仕様、即ちVMイメージ703とCPU欄704とメモリ欄704と、ユーザが入力した要求仕様との差異を特定する。
 具体的には、現状の仕様のうちCPUの周波数が2GHz不足していることを特定する。そこで、ステップS410では、図2に示すハイパバイザ構成情報テーブル200の行212から、VM2を制御するハイパバイザがHV1であることを特定し、図3に示すVMプール情報テーブル300を参照して、ハイパバイザ識別子欄301がHV1で、リソース種別欄303がCPUの行311の空き容量欄305を参照する。ステップS410では、空き容量欄305によって、CPUの空き容量が2GHzであることを特定できるので、当該空き容量である2GHzの全てをVM2の仮想計算機に割り当てるように、当該VM2を制御するハイパバイザHV1に対して指示する。ハイパバイザHV1は、当該割当指示を受信し、VM2に対するCPU周波数の割り当てを追加する。
 もしユーザが、図7の検索結果リスト712の行0715の「未配備」の仮想計算機を選択した場合、同様に要求仕様との差異を特定して、要求仕様を満たすようにリソースの割り当てを指示する。この場合、未配備を示すハイパバイザはHV3であるので、S410では、当該HV3に対してリソースの割り当ての追加・変更・削除を指示する。また、本ケースでは、VMイメージが未配備であるため、ステップS410では、他の仮想計算機が保持する「DBサーバ」のVMイメージをコピーし、割当実行対象の仮想計算機でVMイメージを利用できるよう、当該ハイパバイザHV3に指示する。
 VMイメージのコピー処理は、ステップS410において実行してもよい。当該ハイパバイザHV3が、制御する仮想計算機に指示されたVMイメージを有している場合は、当該ハイパバイザHV3自身がコピー処理を行うだけでよい。しかし、当該ハイパバイザHV3が、必要とするVMイメージを有さない場合は、ステップS410において、他のハイパバイザが保有するVMイメージを流用する処理を実行する方が効率的である。VMイメージのコピー処理は、ネットワークを介したファイル転送処理によって実現可能である。要求されたVMイメージを保持するハイパバイザが別の物理計算機で稼働している場合は、ネットワークを介して当該別の物理計算機で稼働するハイパバイザからVMイメージの格納先を取得し、取得した格納先のVMイメージを一旦リソース管理サーバが読み出した後、ユーザに割り当てた仮想計算機を稼働する物理計算機へ転送することができる。VMイメージのコピー処理は、本願の趣旨を逸脱しない範囲でさらに拡張することができる。
 次にステップ411では、選択された仮想計算機を当該ユーザに割り当てる処理を行う。具体的には、図2に示すハイパバイザ構成情報テーブル200に、当該VM3に割り当てられたリソース量や利用者識別子を登録する(図示省略)。また、図3に示すVMプール情報テーブル300の空き容量を更新する(図示省略)。
 ステップS412では、ステップS411でユーザに割り当てた結果を来歴情報テーブル800へ記録する。来歴情報テーブル800の構成を図8に示す。
 図8に示す来歴情報テーブル800は、ステップS411でユーザに割り当てた結果を来歴情報として記録するテーブルである。来歴情報テーブル800は、利用者欄801、要求仕様としてVMイメージ欄802、CPU欄803、メモリ欄804、割当状況として割当元欄805、変更欄806、及び要求日時欄807を含む。行811においては、図6、図7で例示したユーザの要求仕様に基づいて、リソースを割り当てた結果を示している。利用者欄801は、要求仕様を入力したユーザを特定する識別子であるユーザIDを格納する。要求仕様のVMイメージ欄802は、当該ユーザが指定したVMイメージのタイプを格納する。CPU欄803は、当該ユーザが指定したCPUの周波数を格納する。メモリ欄804は、当該ユーザが指定したメモリ容量を格納する。割当状況の割当元欄805は、当該リソース管理サーバ111がユーザに割り当てた仮想計算機の、割当元の状態を格納する。「配備済」とは、ユーザに割り当てた仮想計算機は、要求を受け付ける前は「配備済」の仮想計算機であることを示す。「空きリソース」は、ユーザに割り当てた仮想計算機は、要求を受け付ける前には「未割当」の状態であったことを示す。即ち、図7の検索結果リスト712でユーザが未配備の仮想計算機(行715)を選択した場合に、当該選択された仮想計算機の状態を記録する。変更欄806は、ユーザへ仮想計算機を割り当てる際に要求仕様を満たすようリソースの追加・変更・削除、VMイメージのコピー処理等を実行したかを格納する。変更欄806が「有」の場合、リソース管理プログラム110が「配備済」の仮想計算機から要求仕様にあうように変更したことを示す。変更欄806が「無」の場合、リソース管理プログラム110が「配備済」の仮想計算機が要求仕様と合致しており、変更する必要がなかったことを示す。「新規」の場合、リソース管理プログラム110が「空リソース」から新規に仮想計算機を割り当てたことを示す。行811の場合は変更する必要がなかったので「無」を示す。要求日時欄807は、ユーザが要求仕様を入力した日時を格納する。具体的には、ユーザが要求仕様を入力し、図7の検索結果リスト出力画面で割当実行ボタン710を操作した時刻である。
 このように、実際にユーザに対して割当処理を行った結果を来歴情報として記録することは重要である。この来歴情報テーブル800に記録されたデータに基づいて、リソース管理プログラム110は、今後配備すべき仮想計算機の仕様を決定し、ユーザの要求に沿った仕様を事前に配置することできる。
 図10は、来歴情報テーブル800から配備用仮想計算機を配備する仮想計算機配備処理のフローチャートである。本処理は、来歴情報テーブル800に記憶されている来歴情報に基づいてまず利用傾向を分析する。本処理は、来歴情報テーブル800から各ユーザ毎に要求仕様の利用頻度を纏め、最も利用頻度の高い要求仕様を配備用仮想計算機の仕様とする。
 ステップS1001では、来歴情報テーブル800からまず利用度情報を作成する。利用度情報とは、リソース管理プログラムがユーザに割り当てた要求仕様の頻度と、頻度から算出された利用度を含む。利用度情報の詳細を、図9の利用度情報テーブル900に示す。また、ステップS1001の処理の詳細を、図11の利用度情報作成処理フローチャートで示す。
 ステップS1002では、ステップS1001で作成した利用度情報に基づいて各要求仕様毎に利用度を算出する。また、ステップS1002では、算出した利用度を利用度情報テーブル900に格納する。ステップS1002の詳細処理を、図12の利用度算出処理フローチャートで示す。
 ステップS1003では、ステップS1002で算出された利用度に基づいて、配備用仕様を決定する。具体的には、ステップS1003では、最も利用度の高い要求仕様を、当該ユーザへの配備用仕様として決定する。ステップS1003の処理の詳細を、図13の配備用仕様決定処理フローチャートで示す。
ステップS1004では、ステップS1003で決定された配備用仕様に基づいて、配備用仮想計算機を配備する。ステップS1004の詳細処理を、図14の配備用仮想計算機の配備処理フローチャートで示す。
 以上の仮想計算機配備処理を実行することによって、来歴情報に基づいた配備用仮想計算機をユーザが要望する前に事前に配備することができる。また、利用頻度の多い要求仕様を配備用仕様としているので、本願は、ユーザが要求する仕様と配備用仮想計算機の仕様との一致度を向上することができ、また、要求受付後に配備用仮想計算機の仕様を変更する頻度を小さくすることができる。
 図9は、ステップS1001で作成する利用度情報を格納する利用度情報テーブル900の説明図である。利用度情報テーブル900は、配備用仮想計算機の配備用仕様を決定するために用いられる。利用度情報テーブル900は、利用者毎にどのような要求仕様を利用したのかを示す情報を保持する。利用者欄901はユーザIDを格納する。要求仕様であるVMイメージ欄902、CPU欄903、メモリ欄904に格納される各々の情報は、当該ユーザIDで示した利用者がどのような要求仕様を過去に要望したのかを示す。例えば、行911は、「User2」が、「Webサーバ」のVMイメージであり、CPUの周波数が「2GHz」であり、かつメモリ容量が「1GB」である仮想計算機を要望し、当該要求仕様を有する仮想計算機が当該ユーザに割り当てられたことを示す。
 割当回数欄は、要求仕様で記載された仮想計算機を割り当てた頻度を格納する。割当回数欄は、詳細には次の3つの欄から構成される。配備済変更無欄905は、仮想計算機を割り当てた際に、配備済仮想計算機から仕様の変更無しに割り当てた回数を格納する。変更済変更有欄906は、配備済仮想計算機から仕様を変更して割り当てた回数を格納する。新規欄907は、全く配備されていない空きリソースから仮想計算機を割り当てた回数を格納する。
 配備欄は、利用度欄908及び仕様欄909を含む。利用度欄908は、割当回数欄に格納された各回数に基づいて算出された利用度を格納する。仕様欄909は、算出された利用度のうち最も利用度の高い要求仕様を配備用仕様として決定したことを示す識別子を格納する。配備用仕様が同じ利用者に対して複数決定している。例えば、行912から行914で示すように、「User2」は3つの要求仕様を配備用仕様として決定されている。これは、仮想計算機配備処理がVMイメージのタイプ毎に配備用仕様を決定しているからである。ユーザは、VMイメージのタイプ毎に要求仕様を変えて、仮想計算機を利用する。仮想計算機配備処理は、配備用仕様をVMイメージのタイプ毎に決定しておくことによって、ユーザの要望に応じた配備用仕様を事前に配備することが可能となる。
 図11は、利用度情報作成処理のフローチャートである。ステップS1101では、来歴情報テーブル800に格納された来歴情報を、利用者欄801、VMイメージ欄802、CPU欄803、メモリ欄804の順序で昇順にソートする。ステップS1102では、来歴情報テーブル800に格納された個々の来歴情報を全て参照するまで、ステップS1107までの処理を繰り返し実行する。ステップS1103では、参照する来歴情報を1つ選択し、選択された来歴情報を利用度情報として抽出する。具体的には、ソートされた来歴情報テーブル800に格納された来歴情報の1つを選択し、来歴情報テーブル800の1行分のデータを利用度情報としてメモリに格納する。
 ステップS1104では、前に格納した利用度情報と今回格納した利用度情報とを比較する。比較する情報は、来歴情報テーブル800の利用者欄801、VMイメージ欄802、CPU欄803、及びメモリ欄804の各々格納された4つの情報で、利用度情報としてメモリに格納された情報である。ステップS1104では、前に格納された4つの情報と、今回格納された4つの情報を各々比較し、全て同じ情報か否かを判定する。もし4つの情報が共に同じ情報である場合、ステップS1105を実行し、1つでも情報が異なっていた場合は、ステップS1106を実行する。また、来歴情報テーブル800の最初の1行を利用度情報としてメモリに格納した場合、S1104は比較対象である前の利用度情報を保持せず比較できない。この場合、ステップS1106を実行する。ステップS1106は、今回格納した4つの利用度情報を、利用度情報テーブル900に新たなデータとして格納する。具体的には、利用度情報テーブル900の利用者欄901、VMイメージ欄902、CPU欄903、メモリ欄904に新規データを1行追加する。
 ステップS1105では、前回格納した4つの利用度情報と今回格納した4つの利用度情報とが同一であるので、当該4つの利用度情報は既に利用度情報テーブル900に格納済みである。従って、該当する行の割当回数欄に頻度を+1増加する。割当回数欄のどの欄の頻度を増加させるかは、対応する来歴情報テーブル800の割当状況欄に格納された情報を参照して決定する。例えば、割当状況欄の割当元欄805が「配備済」で、変更欄806が「無」の場合、利用度情報テーブル900の割当回数欄である「配備済変更無欄」の頻度を増加する。このように、来歴情報テーブル800に格納された来歴情報に基づいて、割当回数を算出し、ユーザの要求仕様毎に利用頻度を分析する。
 ステップS1107は、S1102からの繰り返し処理の終端である。すなわち、ステップS1107では、来歴情報テーブル800に格納された全ての来歴情報を参照するまで、繰り返し前述のステップを実行する。ステップS1108は、ステップS1101が来歴情報テーブル800の来歴情報をユーザ・VMイメージ等でソートしたので、元の来歴情報の順序を元に戻す。具体的には、要求日時を対象に昇順でソートすることによって、順序を元に戻すことができる。
 以上の処理を実行することによって、リソース管理プログラム110は利用度情報テーブル900の欄901から欄909までの情報を格納する。
 図12は、利用度算出処理のフローチャートであり、図10の仮想計算機配備処理フローチャートのステップS1002を詳細に示したフローチャートである。ステップS1201は、利用度情報テーブル900に格納された全ての利用度情報を参照するまで、ステップS1203までのステップを繰り返し実行する。ステップS1202は、利用度情報テーブル900に格納された一つの利用度情報を選択し、利用度情報テーブル900の割当回数欄に記載する3種類の頻度から利用度を算出する。仮想計算機配備処理で、利用度の高い要求仕様を配備用仕様として決定するので、3種類の頻度に各々重み付けをして利用度を算出する。具体的には、配備済変更無欄905の頻度を3倍、配備済変更有欄906の頻度を2倍、新規欄907の頻度を1倍とし、その総和を利用度として算出する。重み付けの割合は、全体の利用頻度に応じて変更できるようにすれば、よりユーザの要求する仕様に合致した仮想計算機を事前に配備することができる。算出した利用度を利用度情報テーブル900の利用度欄908に格納する。ステップS1203は、S1201からの繰り返し処理の終端である。以上の処理を実行することによって、リソース管理プログラム110は利用度情報テーブル900の欄908の情報を全ての利用度情報に対して格納する。
 図13は、配備用仕様決定処理のフローチャートであり、図10の仮想計算機配備処理フローチャートのステップS1003を詳細に示したフローチャートである。ステップS1301では、利用度情報テーブル900の仕様欄909に格納されている決定済みの仕様を一旦クリアする。具体的には、全ての利用度情報に対する仕様欄909を空白とする。ステップS1302では、利用度情報テーブル900に格納された全ての利用度情報を、利用者欄901、VMイメージ欄902、CPU欄903、メモリ欄904、利用度欄908の順に昇順でソートする。ステップS1303では、利用度情報テーブル900に格納された全ての利用度情報を参照するまで、S1310までのステップを繰り返す。ステップS1304では、利用度情報テーブル900に格納された利用度情報の1つを抽出する。具体的には、利用者欄901、VMイメージ欄902に格納された2つの情報をメモリに格納する。
 ステップS1305では、前にメモリに格納した2つの情報と、今回メモリに格納した2つの情報とをそれぞれ比較する。利用者とVMイメージの利用度情報が双方で同一であった場合は、双方の要求仕様、即ちCPU欄903とメモリ欄904に格納された要求仕様が異なる場合である。そのため双方の利用度を比較して利用度に応じて配備仕様を決定するステップS1307以降のステップを実行する。もし利用者とVMイメージの利用度情報が異なるのであれば、ステップS1306を実行する。ステップS1306では、今回抽出した利用度情報を配備仕様として決定する。具体的には、利用度情報テーブル900の仕様欄909に決定したことを示す識別子を格納する。
 ステップS1307は、前回メモリに格納した利用者とVMイメージの2つの情報と、今回メモリに格納した利用者とVMイメージの2つの情報とが、各々一致した場合に実行される。従って、前回の利用度情報と今回の利用度情報とは、CPUとメモリのリソース量が異なっており、また各々の利用頻度も異なっている。そのため利用度に相違が生じている。ステップS1307は、前回メモリに格納された2つの情報に対応する利用度と、今回メモリに格納した2つの情報に対応する利用度とを比較する。もし今回メモリに格納された2つの情報に対応する利用度の方が、前回メモリに格納した2つの情報に対応する利用度よりも高い場合は、ステップS1308を実行する。また今回の方の利用度が低い場合は、既に前回の方の仕様を配備仕様として決定しているので、配備仕様の決定処理を行う必要がなく、ステップS1310へ進む。
 ステップS1308では、今回メモリに格納した2つの情報に対応する利用度が高いので、当該2つの情報に対応する要求仕様を配備仕様として決定する。具体的には、利用度情報テーブル900の仕様欄909に、配備仕様として決定したことを示す識別子を格納する。またステップS1309は、前回メモリに格納した2つの情報に対応する要求仕様を配備仕様ではないものとして決定する。具体的には、利用度情報テーブル900の仕様欄909に、空白を格納する。ステップS1310は、ステップS1303の繰り返し処理の終端である。
 このように利用度情報テーブル900に格納された利用度情報を順次参照して配備用仕様を決定することにより、利用度の最も高い要求仕様を配備用仕様として決定することができる。
 図14は、配備用仮想計算機の配備処理を示すフローチャートである。本フローチャートは、図10の仮想計算機配備処理のステップS1004を詳細に示したフローチャートである。図13の配備用仕様決定処理を実行することによって、各要求仕様毎に配備用仕様が決定される。本フローチャートは、決定した配備用仕様を用いて事前に配備用仮想計算機を配備する処理を示す。
 ステップS1401では、利用度情報テーブル900に格納されている利用度情報を利用度欄908に格納されている利用度に基づいて降順にソートする。これは、利用度の最も高い要求仕様の順に配備用仮想計算機を配備することを目的としている。配備用仮想計算機は空きリソースから配備するため、配備可能な数は有限である。言い換えれば、利用度情報テーブル900の仕様欄909で配備用仕様として決定された利用度情報に基づく配備用仮想計算機を、必ずしも全て配備することが可能とは限らない。従って、利用度の最も高い利用度情報から順に、配備用仮想計算機を配備する必要がある。
 ステップS1402では、利用度情報テーブル900に格納された全ての利用度情報を参照するまで、以下ステップS1410までの処理を繰り返す。ステップS1403では、利用度情報テーブル900に格納された利用度情報の一つを抽出する。ステップS1404では、抽出した利用度情報の仕様欄909に配備用仕様として決定したことを示す識別子が格納されているかを判定する。識別子が格納されていなければ、当該利用度情報に基づく仮想計算機の配備は不要であるため、ステップS1410へ進む。もし識別子が格納されていればステップS1405へ進む。
 ステップS1405では、VMプール情報テーブル300に格納されている全てのリソースプール情報を参照するまで、以下ステップS1409までの処理を繰り返し実行する。ステップS1406では、VMプール情報テーブル300に格納されているリソースプール情報の1つを選択する。ステップS1407では、選択したリソースプール情報を用いて、ステップS1403で抽出した配備用仕様の仮想計算機が配備可能かを判定する。ステップS1407では、選択したリソースプール情報の空き容量欄305を参照し、空き容量が配備用仕様で必要とするリソース量より多いことを確認して配備用仕様の仮想計算機が配備可能かを決定する。空き容量が必要とするリソース量より多い場合は、ステップS1408を実行し、少ない場合はステップS1409へ進む。ステップS1408では、当該必要とするリソース量で配備用仮想計算機を配備する。
 ステップS1409は、ステップS1405からの繰り返し処理の終端である。またステップS1410は、ステップS1402からの繰り返し処理の終端である。
 これにより、配備用仕様とその利用度に応じて、事前に配備用仮想計算機を配備することができるので、よりユーザ要望の多い仮想計算機を事前に配備することができる。また、図10で示した仮想計算機配備処理は、定期的に実行することによって、配備用仮想計算機を事前配布することができる。また、例えば、ステップS1001からステップS1003までの配備用仕様を決定する処理とステップS1004の配備用仮想計算機を配備する処理とを別々のタイミングで実行してもよい。
 例えば、図4で示した要求仕様処理で、ユーザ要求に基づく仮想計算機を割り当て(ステップS411)、割当結果を来歴情報テーブル800へ格納(ステップS412)した後に、配備用仕様を見直すためにステップS1001からステップS1003までの配備用仕様の決定処理を実行してもよい。また、ユーザに割り当てた仮想計算機と同じ仕様の別の仮想計算機を配備用仮想計算機として空きリソースから配備してもよい。配備用仮想計算の配備処理は、このようにユーザの要求に合致する仮想計算機を事前に配備することを目的としているので、配備用仕様に基づいて配備用仮想計算機を配備したり、要求されて割り当てた仕様に基づいて配備用仮想計算機を配備してもよい。
 以上実施形態1では、利用者の要求スペックに応じた仮想計算機の利用開始時間を短縮することができる。また、今までの利用者の利用形態である仮想計算機の組み合わせ傾向や配置傾向を予め分析しておき、利用者の要求スペックに即時に応答できるよう準備することで、利用開始時間の短縮を図ることができる。
 また、ユーザの要求仕様を受け付け、該当する配備済仮想計算機の検索処理、また割り当てた仮想計算機の来歴情報に基づいて配備用仕様を決定し、事前に仮想計算機を配備する処理を説明した。検索する場合においても、要求仕様と同じ仕様を有する仮想計算機だけでなく、現在の仕様を変更することで要求仕様を満たす仮想計算機も検索結果として抽出できる。もし要求仕様と合致する仮想計算機が存在しなくとも、ユーザは現在の仕様を変更することで対応できる仮想計算機を選択対象とすることができるので、ユーザはより多くの仮想計算機から選択することが可能となる。また、来歴情報を用いることによって、事前に配備する仮想計算機の仕様をユーザ要求の多い仕様とすることができるので、より選択可能な仮想計算機の数を増やすことができる。
 <実施形態2>
 次に実施形態2について説明する。実施形態1では、来歴情報テーブル800から利用度情報テーブル900を作成し、その利用頻度を分析して配備用仕様を決定した。これは、ユーザが要求仕様を満たす仮想計算機を検索・選択した直後から、割り当てられた仮想計算機の利用を開始することを想定している。
 実施形態2では、当該ユーザに仮想計算機を割り当てた時点から利用を開始する時点までの間に、タイムラグ(時間的な差異)がある場合を想定する。あるユーザは、予め要求仕様を満たす仮想計算機を確保し、後に確保された仮想計算機の利用を開始する場合もある。特に、複数のユーザが一つの物理計算機を共有する場合、他のユーザに先駆けてユーザが予め検索して仮想計算機を確保して共有されたリソースを、仮想計算機の利用前に確保することで、当該ユーザは確実に仮想計算機を利用できる。しかし、本当に仮想計算機を即時に利用したいユーザにとっては、自身に割り当てられるべき仮想計算機の数が減少するので、確実に仮想計算機を確保して実行することが困難となる。
 そこで、実施形態2では、ユーザが割り当てた仮想計算機の利用を開始した日時を来歴情報として記録し、割り当てを要求した日時と利用開始日時との差分から、ユーザが当該仮想計算機を即時に利用したか否かを分析し、即時度を算出する。差分が短いほど即時性が高いので、数値の高い即時度を設定するようにし、また差分が長いほど即時性が低いので、低い値の即時度を設定するようにする。このように即時度を算出することで、即時性の高いユーザが要求する仕様に合致した配備用仮想計算機を先に配備するように制御する。
 また実施形態2では、ユーザに割り当てた仮想計算機が物理計算機のリソースをどの程度占有しているかを示す占有度を算出する。あるユーザの要求するリソース量が他に比べて多い場合、リソース管理プログラム110は一回に多くのリソース量を確保しなればならない。物理計算機に実装するリソース量には限りがあるので、なるべく占有度の高い仮想計算機を占有度の低い仮想計算機よりも優先して配備する必要がある。
 実施形態2では、即時度と占有度の2つを用いた具体的な処理を説明する。この2つは各々独立した因子であるので、必ず2つの因子を用いないと配備用仕様を決定できない、というものではなく、各々を別々に実装してもよい。
 図15は、実施形態2における来歴情報テーブル1500を示す。実施形態2の来歴情報テーブル1500は、実施形態1の来歴情報テーブル800(図8)と同様の構造を有する。実施形態2の来歴情報テーブル1500において、実施形態1の来歴情報テーブル800と同じ欄には、図8で示した符号と同じ符号を用い、それらの説明は省略し、異なる部分について以下説明する。
 実施形態1の来歴情報テーブルと異なる欄は、割当状況欄の仮想計算機欄1501、占有率欄1502及び開始日時欄1503の3つである。仮想計算機欄1501は、当該ユーザが選択して割り当てられた仮想計算機の識別子を格納する。占有率欄1502は、要求仕様で示されるリソース量が全体の総容量に対してどの程度の割合を占めているかを百分率で示したものが格納される。
 例えば、1行目の来歴情報の場合、CPU欄803とメモリ欄804は、各々2GHzと2GBである。これは、仮想計算機欄1501で示される仮想計算機VM1に割り当てられているリソースである。リソース管理プログラム110は、図2に示すハイパバイザ構成情報テーブル200を参照して、仮想計算機VM1に割り当られているハイパバイザが「HV1」であることを特定し、図3で示すVMプール情報テーブル300を参照して、ハイパバイザHV1のCPU及びメモリの各々の総容量を特定する。リソース管理プログラム110は、各々の総容量と仮想計算機VM1に割り当てられたリソース量とから占有率を算出することができる。
 実施形態2では、各々のリソース毎に占有率を算出し、最も占有率の高い値を当該仮想計算機の占有率に設定する。例えば、1行目の来歴情報の場合、仮想計算機VM1のCPUは2GHzを占有している。VMプール情報テーブル300ではハーパバイザHV1が管理するCPUの総容量は8GHzであるので、CPUの占有率は25%となる。仮想計算機VM1のメモリ容量は2GBであり、ハイパバイザHV1が管理するメモリ総容量が8GBであるので、メモリの占有率は25%となる。CPU、メモリの占有率は、共に25%であるので、当該仮想計算機の占有率は25%となる。仮に、CPUの占有率が50%でメモリの占有率が25%であった場合、値の大きい占有率を当該仮想計算機の占有率に決定する。よって、この場合、占有率は50%となる。占有率の高い仮想計算機を配備・割り当てる方が、低い占有率の仮想計算機を配備・割り当てるよりも困難である。そのため、実施形態2は、占有率をなるべく高い値で設定することにより、割り当ては困難であっても、割り当て後に要求仕様を満たさないことになる場合を防止している。
 またリソースは各々独立であるから、その占有率も各々分けて考え、2つの占有度を算出・評価してもよい。リソース毎にリソース取得の困難度を変えることができる。また、各々の占有率に対して重み付けをして平均値を算出する加重平均値を用いてもよい。加重平均値により、リソース取得の困難なものをより加重させることによって、占有率を高く設定することができる。
 リソース管理プログラム110は、他の要求仕様、割当状況、及び要求日時を格納するのと同じタイミングで、仮想計算機欄1501と占有率欄1502に格納する情報を算出して、来歴情報テーブル1500に格納する。
 開始日時欄1503は、割り当てられた仮想計算機を実際にユーザが起動した時刻を格納する。ユーザに割り当てられた仮想計算機は、対応するハイパバイザが制御する。例えば、図15の1行目に記載される仮想計算機VM1を、ハイパバイザHV1が制御している。ハイパバイザHV1は、ユーザ要求に基づいて仮想計算機VM1の実行開始処理を行う。リソース管理プログラム110は、当該ハイパバイザHV1にネットワークを介して、仮想計算機VM1が開始されたかを問い合わせることによって、開始日時を特定すればよい。また、ハイパバイザ「HV1」が、仮想計算機の実行開始をトリガとして、リソース管理プログラムに仮想計算機VM1の実行開始を通知してもよい。リソース管理プログラム110は、来歴情報テーブル1500に来歴情報を格納した後、対応するハイパバイザのモニタリングを開始し、開始日時を特定できた時点で、該当する開始日時欄1503に開始日時を格納する。また、別の方法として、仮想計算機の実行開始処理をログとして保存する機能をハイパバイザに実装し、リソース管理プログラム110が当該ログの更新を監視してもよい。このようにユーザが割り当てられた仮想計算機の利用を開始する日時を特定し、即時度を評価できるようにする。
 図16は、実施形態2における利用度情報テーブル1600を示す。実施形態2の利用度情報テーブル1600は、実施形態1の利用度情報テーブル900(図9)と同様の構造を有する。実施形態2の利用度情報テーブル1600において、実施形態1の利用度情報テーブル900と同じ欄には、図9で示した符号と同じ符号を用い、それらの説明は省略し、異なる部分について以下説明する。実施形態1の利用度情報テーブル900と異なる欄は、占有度欄1601及び即時度欄1602の2つである。各欄は、利用度情報毎に「高」「中」「低」の3レベルのうちの1つを格納する。具体的なレベルの決定方法は、図17以降のフローチャートを用いて説明する。
 図17は、実施形態2における仮想計算機配備処理のフローチャートである。図17は基本的に図10のフローチャートと同じステップを有しており、同一処理を行うステップには同じ符号用いる。
 ステップS1001からステップS1003までの処理は実施形態1と同じである。実施形態2の仮想計算機配備処理は、ステップS1701が新たに加えられて、算出した占有度と即時度とに基づいて配備用仮想計算機を配備するステップS1702を含む。ステップS1701は、利用度情報テーブル1600の利用度情報から占有度と即時度を算出するステップである。その詳細を図18A及び図18Bに示す。またステップS1702はで、ステップS1701により算出した占有度と即時度に基づいて配備用仮想計算機を配備する。その詳細を図19に示す。
 図18A及び図18Bは、実施形態2の利用度情報作成処理のフローチャートであり、図17のステップS1701を詳細に示す。従って、当該処理の実行時には、利用度情報テーブル1600の利用者欄901から利用度欄908と仕様欄909までの利用度情報が既に格納済みである。
 ステップS1801では、利用度情報テーブル1600の利用度情報を、利用者欄901、VMイメージ欄902、CPU欄903、メモリ欄904の順に昇順でソートする。ステップS1802では、来歴情報テーブル1500の来歴情報を、利用者欄801、VMイメージ欄802、CPU欄803、メモリ欄804の順に昇順でソートする。ステップS1803では、利用度情報テーブル1600に格納された全ての利用度情報を参照するまで、以下、図18Bのステップ1824までの処理の繰り返しを開始する。
 ステップS1804では、利用度情報テーブル1600から1つの利用度情報を抽出する。ステップS1805では、頻度変数(N)、時間差分の総和変数(Ss)、占有率の総和変数(Sd)を0にクリアする。ステップS1806では、来歴情報テーブル1500に格納された全ての来歴情報を参照するまで、以下ステップ1812までの処理を繰り返す。
 ステップS1807では、来歴情報テーブル1500の来歴情報を1つ抽出する。ステップS1808では、抽出した来歴情報がステップ1804で抽出した利用度情報と同じ要求仕様を有するものであるかを判定する。来歴情報が利用度情報と同じ要求仕様を有する場合、ステップS1809を実行する。来歴情報が利用度情報と異なる要求仕様を有する場合、ステップS1806からステップS1811までの繰り返し処理を中止し、ステップS1813を実行する。
 ステップS1809では、利用度情報と同じ要求仕様を有する来歴情報に記載されている占有率を占有率の総和変数(Sd)に加算する。ステップS1810では、来歴情報に記載されている開始日時と要求日時とを各々秒換算し、相互の差分を算出して、差分を時間差分の総和変数(Ss)に加算する。ステップS1811では、頻度(N)を1つ増加する。ステップS1812は、ステップS1806からの繰り返し処理の終端である。本フローチャートでは、利用度情報と同一の要求仕様を有する来歴情報が存在する間は、前述したステップS1806からステップS1811までを繰り返し実行する。ステップS1808で、利用度情報と同一でない要求仕様を有する来歴情報が抽出された場合、この繰り返し処理を中断してステップS1813を実行する。または、全ての来歴情報を参照した後、ステップS1813を実行する。
 ステップS1813では、算出された占有率の総和変数(Sd)、時間差分の総和変数(Ss)及び頻度変数(N)から、占有率の平均値と時間差分の平均値とを算出し、各々、平均占有率変数(Pd)、平均時間差分変数(Ps)に格納する。その後、図18BのステップS1814を実行する。
 ステップS1814からステップS1818までの処理では、平均占有率変数(Pd)の値から占有度のレベルを決定する。また、ステップS1819からステップS1823までの処理では、平均時間差分変数(Ps)の値から即時度のレベルを決定する。
 具体的には、ステップS1814では、平均占有率変数(Pd)の値が75%以上であるかを判定する。平均占有率変数(Pd)の値が75%以上の場合は、占有度を「高」と設定して利用度情報テーブル1600の占有度欄1601に格納する(ステップS1815)。平均占有率変数(Pd)の値が30%以上75%未満の場合(ステップS1816)、占有度を「中」と設定して利用度情報テーブル1600の占有度欄1601に格納する(ステップS1817)。平均占有率変数(Pd)の値が30%未満の場合は、占有度を「低」と設定して利用度情報テーブル1600の占有度欄1601に格納する(ステップS1818)。
 ステップS1819では、平均時間差分変数(Ps)の値が15分以内であるかを判定する。平均時間差分変数(Ps)の値が15分以内である場合は、要求受付から利用開始までの平均時間が15分以内であることを示す。この場合、即時度を「高」と設定し、利用度情報テーブル1600の即時度欄1602に格納する(ステップS1820)。平均時間差分変数(Ps)の値が15分を超え4時間以内の場合(ステップS1821)、即時度を「中」と設定して利用度情報テーブル1600の即時度欄1602に格納する(ステップS1822)。平均時間差分変数(Ps)の値が4時間を超える場合は、即時度を「低」と設定して利用度情報テーブル1600の即時度欄1602に格納する(ステップS1823)。
 以上のステップを実行することによって、ステップS1804で抽出した利用度情報テーブル1600の一つの利用度情報に対する占有度と即時度とを算出する。ステップS1824は、ステップS1803からの繰り返し処理の終端である。利用度情報テーブル1600の全ての利用度情報を抽出して、占有度と即時度とを算出すると、繰り返し処理を終了し、ステップS1825を実行する。ステップS1825では、ステップS1802でソートした来歴情報を元の状態に戻すため、来歴情報テーブル1500の要求日時欄807に格納された要求日時に基づいて昇順でソートする。
 ステップS1814以降で用いた占有度のレベルの判定に用いる閾値(75%、30%など)や即時度のレベルの判定に用いる閾値(15分、4時間など)は、別の配備オプション画面を出力する処理を加えることによって、リソース管理プログラムを操作する管理者が自由にそれらの値を設定できるようにする。これにより、管理者はより柔軟な運用管理を行うことができる。図20に入力画面の出力例を示す。
 図20は、実施形態2のレベルオプション入力画面2000を示す。入力画面2000は、利用度の重み付けや占有度、即時度のレベルを決定づける値を入力できるフィールドを有する。行2011は利用度の重み付けを決定付ける値を入力する欄を有する。行2012は占有度のレベルを決定付ける値を入力する欄を有する。レベル「中」を判定するための閾値と、レベル「低」を判定するための閾値とは同じ値である。従って、管理者はレベル「高」と「中」の2つの値を入力すればよい。行2013は即時度のレベルを決定付ける値を入力する欄を有する。実施形態2の図18における利用度情報作成処理は、分、時間を単位にレベルの判定を行ったが、図20に示すように「分」の単位に統一してレベルの判定閾値を入力してもよい。
 また、レベルオプション入力画面2000は、基準欄2001を有する。実施形態1におけるリソース管理プログラム110は、利用度情報テーブル900の利用度情報を一旦利用度0908欄を基準に降順でソートして仮想計算機を配備する。実施形態2では、リソース管理プログラムが利用度を基準として仮想計算機を配備するだけでなく、管理者が事前に設定した基準に基づいて仮想計算機を配備できるようにする。具体的には、管理者が基準欄2001で示された3つのチェックボックスのうちの1つを選択できるようにする。例えば、管理者が占有度のチェックボックス内をチェックすると、リソース管理プログラム110は占有度を基準に仮想計算機を配備する。
 管理者は、全ての項目について入力を完了した後、適用ボタンを操作する。リソース管理プログラム110は、適用ボタンの操作によって、入力された全ての項目に関する値をメモリ102、もしくはHDD108に格納する。管理者がキャンセルボタンを操作すると、リソース管理プログラム110は、全ての項目に関する入力された値を破棄する。
 このように、管理者が配備する仮想計算機の基準を選択できるようにすることによって、管理者は様々な要求を有する利用者に対して柔軟な仮想計算機を事前に配備することができる。
 図19は、仮想計算機配備処理のサブフローチャートであり、図17のステップS1702を詳細に示す。ステップS1901は、管理者が図28のレベルオプション入力画面2800の基準欄2801で指定したチェックボックスが、利用度であるかを判定する。リソース管理プログラム110は、レベルオプション入力画面2800で設定された値をメモリやHDD等に格納しているので、ステップS1901では、格納された値を参照して判定する。管理者が利用度を選択した場合は、利用度情報テーブル1600の利用度情報を利用度欄908に基づいて降順でソートする(ステップS1401)、管理者が占有度を選択した場合(ステップS1902)、利用度情報テーブル1600の利用度情報を占有度欄1601に基づいて降順でソートする(ステップS1903)。管理者が即時度を選択した場合は、利用度情報テーブル1600の利用度情報を即時度欄1602に基づいて降順でソートする(S1903)。以降、リソース管理プログラムは図14のフローチャートと同じステップを実行する。このように、リソース管理プログラムは、管理者によって指定された基準に合わせて利用度情報をソートすることによって、選択された基準に基づく仮想計算機の配備を実行することができる。
 <実施形態3>
 実施形態1、2は、ユーザが1台の仮想計算機を割り当てるものであったが、実施形態3では、ユーザが一度に複数の仮想計算機を割り当てることができる。また、ユーザが検索する仮想計算機に幾つかのオプションを付与できる。
 図21は、実施形態3における要求受付処理の入力画面を示す。実施形態3の要求受付処理の入力画面は、実施形態1の要求受付処理入力画面(図6)と同様である。異なる部分は、ユーザが仮想計算機の台数を指定できる台数入力欄2101と、3つのオプションを選択するオプション入力欄2102である。オプション入力欄2102は、専用利用オプション用のチェックボックス2103、クラスタ利用オプション用のチェックボックス2104、差分ディスク利用用のチェックボックス2105の3つのチェックボックスを含む。
 専用オプションとは、ユーザが仮想計算機のリソースを別のユーザと共有しない専用型の仮想計算機として利用するオプションである。当該オプションがユーザによって指定されると、リソース管理プログラム110は、1つの物理計算機上で稼働する仮想計算機であって、当該物理計算機上に他のユーザのために稼働する仮想計算機が割り当てられていないものを検索結果として出力し、ユーザへ割り当てる。
 クラスタ利用オプションとは、ユーザが要求する仮想計算機を最低2台割り当て、各々の仮想計算機を別々の物理計算機上で稼働させる構成を構築するオプションである。これはユーザが割り当てる仮想計算機の耐障害性を向上させるための形態である。当該オプションが台数と共にユーザによって指定されると、リソース管理プログラム110は、指定された台数の仮想計算機を検索し、各々が稼働する物理計算機を特定する。次に当該物理計算機とは異なる物理計算機上で指定された台数分の仮想計算機を検索する。最終的には、リソース管理プログラム110は、指定された台数の倍の数の仮想計算機を検索する。
 図22は、実施形態3におけるハイパバイザ構成テーブル2200を示す。実施形態3におけるハイパバイザ構成テーブル2200は、実施形態1におけるハイパバイザ構成テーブル200(図2)と同様の構造を有する。実施形態3のハイパバイザ構成テーブル2200において、実施形態1のハイパバイザ構成テーブル200と同じ欄には、図2で示した符号と同じ符号を用い、それらの説明は省略する。実施形態3におけるハイパバイザ構成テーブル2200は、専用欄2201、クラスタ欄2202及び差分ディスク欄2203が新たに追加される。専用欄2201は、ユーザにより専用オプションが指定され、リソース管理プログラム110が当該仮想計算機を専用として割り当てた場合に、識別子を格納する。ハイパバイザ構成テーブル2200には、仮想計算機VM5が専用として割り当てられていることを示す情報が格納されている。クラスタ欄は、ユーザによりクラスタ利用オプションが指定され、リソース管理プログラム110が2つの仮想計算機をクラスタ構成で割り当てた場合に、クラスタ構成であることを示す識別子を格納する。具体的には、クラスタを構成する相手方の仮想計算機のVM識別子を格納する。例えば、図21のハイパバイザ構成テーブル2200では、仮想計算機VM1のクラスタ欄2202に「VM6」が格納されている。これは、仮想計算機VM1がクラスタ構成であり、相手方仮想計算機のVM識別子が「VM6」であること、すなわち、仮想計算機VM1と仮想計算機VM6とがクラスタを構成していることを意味する。このようにリソース管理プログラム110がクラスタ欄を利用することによって、単にクラスタ構成を有していることを把握するだけでなく、クラスタを構成する相手方仮想計算機をも容易に特定することができる。差分ディスク欄2203は、当該仮想計算機が差分ディスクを用いていることを示す識別子を格納する。
 図23は、実施形態3におけるVMプール情報テーブルである。実施形態3におけるVMプール情報テーブル2300は、実施形態1におけるVMプール情報テーブル300(図3)と同様の構成を有するが、新たに専用状態欄2301を有している。専用状態欄2301は、各リソースが専用で使用されているか、共用で使用されているかを示す識別子を格納する。具体的には、リソースが専用で使用されている場合は「専用」が格納され、共用で使用されている場合は「共用」が格納される。また、配備用仮想計算機が利用しているリソースであり、どちらの利用形態で使用するか未定である場合は、「未定」が格納される。
 図24は、実施形態3における要求仕様処理のフローチャートである。本フローチャートは実施形態1における要求仕様処理のフローチャートと同様のステップを有するが、ステップS2401が新たに追加され、ステップS403の判定内容が変更され、新たにステップS2402とした。ステップS402がユーザの要求仕様に基づいて検索結果リストを作成した後、ステップS2401では、ユーザが指定したオプションに基づいて検索結果リストを見直す。ステップS402では、ユーザの要求仕様であるリソース量に基づいて候補となる仮想計算機を複数抽出するため、ユーザが指定したオプションを考慮していない。特に、ユーザが専用オプションを指定した場合であっても、ステップS402は、他の仮想計算機とリソースを共用する仮想計算機も抽出される。
 そこで、ステップS2401では、作成された検索結果リストの内容をチェックし、指定された専用オプション適合しない仮想計算機をリストから削除する。この処理の詳細を図25に示す。また、他のクラスタ利用オプションが指定された場合は、抽出された全ての仮想計算機を用いてクラスタ構成となるよう選択すればよいので、専用オプションのようにあえて見直す必要はない。また差分ディスク利用オプションも、クラスタ利用オプションと同様で見直す必要はない。
 その後、ステップS2402において、最終的に検索結果リストに抽出された仮想計算機の数が、ユーザが指定した台数より多いかを判定する。指定された台数以上の場合は、ステップS405を実行する。一方、指定された台数より少ない場合は、要求仕様の再入力を依頼するメッセージを出力する(ステップS404)。また、リソース管理プログラム110は、ステップS2402の代わりにステップS403と同じ判定をしてもよい。つまり、抽出された仮想計算機の数がユーザが指定した台数より少ない場合でも、仮想計算機が1台でも抽出されていた場合、ステップS405を実行する。後の処理は、図4のフローチャートと同じである。ただし、ユーザが複数台数を指定することができるので、フローチャートの各ステップが複数台数分の処理を実行できるよう、処理内容を変更する。
 図25は、検索結果リスト見直し処理のフローチャートであり、図24の要求仕様処理のステップS2401を詳細に示す。本フローチャートは、ユーザが専用オプションを指定した場合、検索結果リストに抽出された仮想計算機のうち、専用として利用できない仮想計算機を検索結果リストから削除する処理を示す。ステップS2501は、ユーザが専用オプションを指定したかを判定する。ユーザが専用オプションを指定した場合、ステップS2502を実行する。指定していない場合は、処理を終了する。ステップS2502では、検索結果リストに格納されている全ての仮想計算機のデータを読み出すまで、ステップS2507までの処理を繰り返す。ステップS2503では、検索結果リストから1つの仮想計算機を抽出する。説明上、抽出した仮想計算機を「X」とする。ステップS2504では、抽出した仮想計算機(X)を制御するハイパバイザを特定し、ハイパバイザ構成情報テーブル2200を参照して、同じハイパバイザで制御され、かつ割当済の他の仮想計算機を抽出する。ステップS2505では、該当する仮想計算機がステップS2504で抽出されたかを判定する。該当する仮想計算機が抽出された場合、ステップS2506を実行する。ステップS2506では、当該仮想計算機(X)が他の割当済の仮想計算機とリソースを共用するので、当該仮想計算機(X)は専用として利用できない仮想計算機であることを特定する。従って、当該仮想計算機(X)を検索結果リストから削除する。ステップS2507は、ステップS2502からの繰り返し処理の終端である。
 図26は、ユーザが専用オプションのみを指定した場合の検索結果リストの例を示す。検索結果リスト2600は、図7で示す検索結果リスト出力画面上に検索結果リスト0712の代わりに出力される。検索結果リスト2600は、図7の検索結果リスト0712と同様の構造を有するが、ハイパバイザ識別子欄2601と専用状態欄2602の2つの欄を有している。ハイパバイザ識別子欄2601は、検索した仮想計算機を制御するハイパバイザの識別子を格納する。ハイパバイザの識別子は、図22のハイパバイザ構成テーブル2200のハイパバイザ識別子欄201に格納されている識別子を用いる。専用状態欄2602は、検索した仮想計算機の専用状態を示す情報を格納する。専用状態を示す情報は、図23のVMプール情報テーブル2300の専用状態欄2301に格納されている情報を用いる。
 図26に示す検索結果リスト2600は、4つの仮想計算機を含む。ユーザが例えば、行2611で示す仮想計算機VM8を選択し、選択欄701のチェックボックスをユーザが選択すると、リソース管理プログラム110は、行2612で示す仮想計算機VM9に関する情報が選択不可であること(例えば、斜字、取消線など)を表示する。仮想計算機VM8と仮想計算機VM9とはリソースを共有する。そのため、ユーザが仮想計算機VM8を選択した場合、リソース管理プログラム110は、リソースを共有する仮想計算機VM9をユーザが選択できないことを示す表示をする。ユーザが仮想計算機VM8の選択を解除した場合、即ちチェックボックスを再度操作してチェックを外した場合、リソース管理プログラム110は、仮想計算機VM9が選択不可であることの表示を消す。このようにリソース管理プログラム110が、ユーザからの選択に応じて、選択可能な仮想計算機と選択不可な仮想計算機を区別して表示することによって、ユーザによる専用オプション指定の要求を実現することができる。
 図27は、ユーザが差分ディスク利用オプションを指定した場合の検索結果リストの例を示す。検索結果リスト2700は、図26に示す検索結果リスト2600に、差分ディスク欄2701が追加されている。差分ディスク欄2701には、チェックボックスが表示される。ユーザが差分ディスクを利用したい仮想計算機にチェックすることによって、リソース管理プログラムは、チェックされた仮想計算機のVMイメージを差分ディスクとして利用できるよう制御する。
 図28は、ユーザがクラスタ利用オプションを指定した場合の検索結果リスト2800の例を示す。検索結果リスト2800は、図27に示す検索結果リスト2700に、クラスタ1側とクラスタ2側の欄を設け、クラスタ1側は図27に示す検索結果リストの構造と同じ構造を有し、クラスタ2側欄2801は、抽出された仮想計算機のマトリックスを有する。図28に示す検索結果リスト2800は、4つの仮想計算機が抽出されているので、クラスタ2側欄2801は4つの列を含む。ユーザがクラスタ構成として同時に2つの仮想計算機を選択できるよう、クラスタ2側欄2801の各セルにチェックボックスが表示される。クラスタ構成として選択できない組み合わせには「-」が表示される。例えば、VM8とVM9の組み合せは選択できない。クラスタ構成として選択できる組み合わせの条件は、お互い異なる物理計算機上で稼働していることである。従って、同じ物理計算機上で稼働する仮想計算機の組み合わせは、クラスタ構成として選択できない。リソース管理プログラム110は、組合せ条件が成立するかを、ハイパバイザ構成テーブル2200及びVMプール情報テーブル2300を参照して特定する。
 ユーザがVM8とVM10の組み合わせでクラスタ構成を選択した場合、リソース管理プログラム110は、VM8が選択されたので、VM8と組み合わされる他の仮想計算機(VM11)のチェックボックスに「取消線」を表示して、選択できないことを表示する。次に、VM10と組み合わされる他の仮想計算機(例えば、VM9)のチェックボックスに「取消線」を表示する。図28に示す例では、最終的にユーザが選択可能な仮想計算機の組み合わせは「VM9」及び「VM11」のみである。
 以上のように、リソース管理プログラムは、ユーザのオプション指定の内容に応じて検索結果リストの出力フォーマットを変更し、選択可能な範囲を制御することによって、ユーザの様々なオプション指定の組み合せにも柔軟に対応することができる。
 図29は、実施形態3における来歴情報テーブル2900を示す。実施形態3における来歴情報テーブル2900は、実施形態2における来歴情報テーブル1500(図15)と同様の構造を有するが、台数欄2901、専用欄2902、クラスタ欄2903、差分欄2904の欄を有している。台数欄2901は、ユーザが台数を指定した数を格納する。例えば、行2911の台数欄2901に「2」が格納されている。この仮想計算機は、ユーザが「6GHz」「4GB」の「DBサーバ」を「2台」要求した際に、リソース管理プログラム110が割り当てた2台中の1台目である。残りの1台は、次の行2912によって示される仮想計算機である。同様に行2912にも台数欄に「2」が格納されている。この仮想計算機は、行2911と同じユーザ要求により割り当てられた2台中の2台目である。このような数値を格納する理由は、リソース管理プログラム110が、来歴情報テーブル2900の台数欄2901を用いて平均台数を算出するためである。
 専用欄2902、クラスタ欄2903、差分欄2904は、各々ユーザの指定したオプション内容を格納する。専用欄2902の「共用」は、ユーザが専用オプションを指定しなかった場合に格納される。ユーザが専用オプションを指定した場合、リソース管理プログラム110は「専用」を格納する。クラスタ欄2903は、ユーザがクラスタ利用オプションを選択した場合「有」が格納され、選択されなかった場合は「無」を格納する。差分欄2904は、ユーザが差分ディスク利用オプションを指定した場合「有」を格納し、指定しなかった場合は「無」を格納する。
 図30は、実施形態3における利用度情報テーブル3000を示す。実施形態3における利用度情報テーブル3000は、実施形態2における利用度情報テーブル1600(図16)と同様の構造を有するが、平均台数欄3001、専用度欄3002、クラスタ度3003、差分度3004の欄を有している。
 平均台数欄3001には、来歴情報テーブル2900の台数欄2901に格納された数字から算出した平均値が格納される。
 専用度欄3002には、来歴情報テーブル2900の専用欄2902に格納された「共用」又は「専用」の値か、算出された割り合いが格納される。例えば、ユーザが「Webサーバ」「8GHz」「2GB」の要求仕様を過去に10回要求し、何れの要求においてもユーザが「専用」を指定した場合、リソース管理プログラム110は専用戸を100%と算出する。要求された回数は、利用度情報テーブル3000の欄905から欄907までに格納された割当回数の総和から算出できる。リソース管理プログラム110は、総割当回数に対する「専用」を指定した回数の割合で求める。
 クラスタ度欄3003には、来歴情報テーブル2900のクラスタ欄2903に格納された「有」「無」の値から算出された割り合いが格納される。前の専用度欄3002と同様、リソース管理プログラム110は、総割当回数に対する「有」を指定した回数の割合である。
 差分度欄3004は、来歴情報テーブル2900の差分欄2904に格納された「有」「無」の値から算出された割り合いが格納される。リソース管理プログラム110は、クラスタ度欄3003と同様の方法で割合を算出する。
 これらの利用度情報テーブル3000の各欄を算出する処理(図示せず)は、図18A、図18Bで示した実施形態2の処理に、平均台数、専用度、クラスタ度、差分度の算出ステップを加えることで実現できる。
 また、利用度情報テーブル3000の各欄を用いて配備用仮想計算機を配備する場合、実施形態2のレベルオプション入力画面(図20)に、「専用度」「クラスタ度」「差分度」の選択欄を加え、ユーザが基準として選択できるようにする。ユーザが「専用度」「クラスタ度」「差分度」のうちいずれかの基準を選択した場合、実施形態2の図19で示したように、指定された基準に基づいて利用度情報をソートする。そしてソートされた利用度情報に基づいて、仕様として決定されている利用度情報に基づいて仮想計算機を配備する。
 また、利用度情報テーブル3000に格納された利用度情報の専用度欄3002の値が「100%」であった場合、配備用仮想計算機を「専用」として確保することもできる。この場合、ユーザが専用オプションを指定した場合、「専用」として確保された仮想計算機を検索結果リストに抽出する。逆に、ユーザが専用オプションを指定しなかった場合でも、「専用」として確保された仮想計算機を検索結果リストに抽出し、ユーザの選択対象とすることもできる。
 以上のように、ユーザのオプション指定を含む要求仕様を来歴情報に記録し、当該ユーザの利用傾向を把握することによって、よりユーザの要求に適合する仮想計算機を仮想計算機の起動前に配備することができる。これにより、ユーザが仮想計算機を要求した時に、要求仕様と合致する仮想計算機だけでなく、要求仕様とは合致しなくとも容易に変更可能な仮想計算機を検索結果としてユーザに提示することができるので、ユーザへ提示する選択の幅を増やすことができるだけでなく、実際にユーザへ仮想計算機を割り当てる時間を短縮することができる。
 以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。

Claims (15)

  1.  複数の物理計算機とネットワークを経由して接続され、前記複数の物理計算機に実装されたリソースを用いて複数の仮想計算機を割り当てるリソース管理サーバであって、
     前記複数の物理計算機に実装された配備用仮想計算機と、前記配備用仮想計算機が用いるリソースの使用量との対応関係を含むリソース管理情報を管理するリソース管理部と、
     前記複数の物理計算機と、前記複数の物理計算機に実装されたリソースの総量と、前記複数の物理計算機に実装された前記仮想計算機に割り当てられていない空きリソースの総量との対応関係を含むプール管理情報を管理するプール管理部と、
     新たな仮想計算機の割当要求を、前記新たに割り当てが要求された仮想計算機で必要とするリソースの量を含む要求仕様と共に受け付ける要求仕様受付部と、
     前記受け付けた要求仕様に含まれるリソースの量を割り当てることが可能な仮想計算機を検索する検索部と、を備え、
     前記検索部は、前記リソース管理情報に含まれる配備用仮想計算機から、前記要求仕様を満たす量のリソースを有する配備用仮想計算機、及び、前記要求仕様を満たす量のリソースを有さないが、前記プール管理情報に含まれる空きリソースを追加することによって前記要求仕様を満たす量のリソースを確保できる配備用仮想計算機を検索することを特徴とするリソース管理サーバ。
  2.  請求項1に記載のリソース管理サーバであって、
     前記受け付けた要求仕様を来歴情報として管理する来歴情報管理部と、
     前記来歴情報管理部によって管理される前記来歴情報を参照して、前記リソースが割り当てられる頻度を算出し、前記算出された頻度に基づいて、前記要求仕様の利用度を算出する利用度算出部と、
     前記利用度算出部によって算出された前記利用度に基づいて、配備用仕様を決定する配備用仕様決定部と、
     前記配備用仕様決定部によって決定された前記配備用仕様を満たす量のリソースを有する配備用仮想計算機を、前記空きリソースの総量を参照して、新たに配備し、前記新たに配備された配備用仮想計算機と、前記配備用仮想計算機に割り当てられた前記リソースの量との対応関係を前記リソース管理情報を用いて管理する仮想計算機配備部と、を、更に、備えることを特徴とするリソース管理サーバ。
  3.  請求項2に記載のリソース管理サーバであって、
     前記検索された配備用仮想計算機から、割り当てるべき仮想計算機の選択を受け付ける割当選択受付部と、
     前記選択された配備用仮想計算機が、前記要求仕様を満たす量のリソースを有さず、前記プール管理情報に含まれる空きリソースを追加することによって前記要求仕様を満たす量のリソースを確保できる配備用仮想計算機である場合、前記配備用仮想計算機のリソースに前記空きリソースを追加して、前記要求仕様を満たす量のリソースを有する仮想計算機を割り当てる仮想計算機割当部と、を、更に有することを特徴とするリソース管理サーバ。
  4.  請求項3に記載のリソース管理サーバであって、
     前記来歴情報管理部は、前記受け付けた要求仕様に基づいて前記仮想計算機割当部が前記仮想計算機を割り当てた要求時刻と、前記仮想計算機割当部が割り当てた前記仮想計算機の利用開始時刻とを取得して、前記取得した要求時刻と利用開始時刻とを前記来歴情報に格納し、
     前記利用度算出部は、前記来歴情報に格納された前記要求時刻と前記利用開始時刻との差を算出し、前記時刻の差に基づいて前記要求仕様の即時度を算出し、
     前記仮想計算機配備部は、前記決定された配備用仕様を満たす量のリソースを有する配備用仮想計算機を、前記即時度に基づいて配備する、ことを特徴とするリソース管理サーバ。
  5.  請求項3に記載のリソース管理サーバであって、
     前記来歴情報管理部は、前記受け付けた要求仕様に基づいて前記仮想計算機割当部が割り当てた前記仮想計算機が使用するリソースの使用量に基づいて、前記リソースの占有率を算出して、前記算出された占有率を前記来歴情報に格納し、
     前記利用度算出部は、更に、前記来歴情報に記憶された占有率に基づいて、前記要求仕様の占有度を算出し、
     前記仮想計算機配備部は、前記決定された配備用仕様を満たす量のリソースを有する配備用仮想計算機を、前記算出された占有度に基づいて、配備する、ことを特徴とするリソース管理サーバ。
  6.  複数の物理計算機とネットワークを経由して接続され、前記複数の物理計算機に実装されたリソースを用いて複数の仮想計算機を割り当てるリソース管理サーバにおけるリソース管理方法であって、
     前記リソース管理サーバは、プログラムを実行するプロセッサと、前記プロセッサによってアクセスされる記憶装置と、を備え、 前記方法は、
     前記リソース管理サーバが、前記複数の物理計算機に実装された配備用仮想計算機と、前記配備用仮想計算機が用いるリソースの使用量との対応関係を含むリソース管理情報を前記記憶装置に格納し、
     前記リソース管理サーバが、前記複数の物理計算機と、前記複数の物理計算機に実装されたリソースの総量と、前記複数の物理計算機に実装された前記仮想計算機に割り当てられていない空きリソースの総量との対応関係を含むプール管理情報を前記記憶装置に格納し、
     前記リソース管理サーバが、新たな仮想計算機の割当要求を、前記新たに割り当てが要求された仮想計算機で必要とするリソースの量を含む要求仕様と共に受け付け、
     前記リソース管理サーバが、前記リソース管理情報に含まれる配備用仮想計算機から、前記要求仕様を満たす量のリソースを有する配備用仮想計算機、及び、前記要求仕様を満たす量のリソースを有さないが、前記プール管理情報に含まれる空きリソースを追加することによって、前記要求仕様を満たす量のリソースを確保できる配備用仮想計算機を検索する、ことを特徴とするリソース管理方法。
  7.  請求項6に記載のリソース管理方法であって、
     前記リソース管理サーバが、前記受け付けた要求仕様を来歴情報として前記記憶装置に格納し、
     前記リソース管理サーバが、前記記憶装置にに格納された来歴情報を参照して、前記リソースが割り当てられる頻度を算出し、前記算出された頻度に基づいて、前記要求仕様の利用度を算出し、
     前記リソース管理サーバが、前記算出された利用度に基づいて、配備用仕様を決定し、
     前記リソース管理サーバが、前記決定された配備用仕様を満たす量のリソースを有する配備用仮想計算機を、前記空きリソースの総量を参照して、新たに配備し、前記新たに配備された配備用仮想計算機と、前記配備用仮想計算機に割り当てられた前記リソースの量との対応関係を、前記リソース管理情報に格納する、ことを特徴とするリソース管理方法。
  8.  請求項7に記載のリソース管理方法であって、
     前記リソース管理サーバが、前記検索された配備用仮想計算機から、割り当てるべき仮想計算機の選択を受け付け、
     前記リソース管理サーバが、前記選択された配備用仮想計算機が、前記要求仕様を満たす量のリソースを有さず、前記プール管理情報に含まれる空きリソースを追加することによって前記要求仕様を満たす量のリソースを確保できる配備用仮想計算機である場合、前記配備用仮想計算機のリソースに前記空きリソースを追加して、前記要求仕様を満たす量のリソースを有する仮想計算機を割り当てる、ことを特徴とするに記載のリソース管理方法。
  9.  請求項8に記載のリソース管理方法であって、
     前記リソース管理サーバが、前記受け付けた要求仕様に基づいて前記仮想計算機が割り当てられた要求時刻と、前記割り当てられた仮想計算機の利用開始時刻とを取得して、前記取得した要求時刻と利用開始時刻とを前記来歴情報に格納し、
     前記リソース管理サーバが、前記来歴情報に格納された前記要求時刻と前記利用開始時刻との差を算出し、前記時刻の差に基づいて前記要求仕様の即時度を算出し、
     前記リソース管理サーバが、前記決定された配備用仕様を満たす量のリソースを有する配備用仮想計算機を、前記即時度に基づいて配備する、ことを特徴とするリソース管理方法。
  10.  請求項8に記載のリソース管理方法であって、
     前記リソース管理サーバが、前記受け付けた要求仕様に基づいて割り当てられた前記仮想計算機が使用するリソースの使用量に基づいて、前記リソースの占有率を算出して、前記算出された占有率を前記来歴情報に格納し、
     前記リソース管理サーバが、前記来歴情報に記憶された占有率に基づいて、前記要求仕様の占有度を算出し、
     前記リソース管理サーバが、前記決定された配備用仕様を満たす量のリソースを有する配備用仮想計算機を、前記算出された占有度に基づいて配備する、ことを特徴とするリソース管理方法。
  11.  前リソース管理サーバが、複数の物理計算機に実装されたリソースを用いて複数の仮想計算機を割り当てるためのプログラムが格納された記憶媒体であって、
     前記リソース管理サーバは、前記複数の物理計算機とネットワークを経由して接続され、
     前記リソース管理プログラムは、
     前記複数の物理計算機に実装された配備用仮想計算機と、前記配備用仮想計算機が用いるリソースの使用量との対応関係を含むリソース管理情報を記憶装置に管理するステップと、
     前記複数の物理計算機と、前記複数の物理計算機に実装されたリソースの総量と、前記複数の物理計算機に実装された前記仮想計算機に割り当てられていない空きリソースの総量との対応関係を含むプール管理情報を前記記憶装置に格納するステップと、
     新たな仮想計算機の割当要求を、前記新たに割り当てが要求された仮想計算機で必要とするリソースの量を含む要求仕様と共に受け付けるステップと、
     前記リソース管理情報に含まれる配備用仮想計算機から、前記要求仕様を満たす量のリソースを有する配備用仮想計算機、及び、前記要求仕様を満たす量のリソースを有さないが、前記プール管理情報に含まれる空きリソースを追加することによって、前記要求仕様を満たす量の前記リソースを確保できる配備用仮想計算機を検索するステップと、を含むことを特徴とするリソース管理プログラムが格納された記憶媒体。
  12.  請求項11に記載の記憶媒体であって、
     前記リソース管理プログラムは、更に、
     前記受け付けた要求仕様を来歴情報として前記記憶装置に格納するステップと、
     前記記憶装置に格納された来歴情報を参照して、前記リソースが割り当てられる頻度を算出し、前記算出された頻度に基づいて、前記要求仕様の利用度を算出するステップと、
     前記算出された利用度に基づいて、配備用仕様を決定するステップと、
     前記決定された配備用仕様を満たす量のリソースを有する配備用仮想計算機を、前記空きリソースの総量を参照して、新たに配備し、前記新たに配備された配備用仮想計算機と、前記配備用仮想計算機に割り当てられた前記リソースの量との対応関係を、前記リソース管理情報に格納するステップと、を含むことを特徴とするリソース管理プログラムが格納された記憶媒体。
  13.  請求項12に記載の記憶媒体であって、
     前記リソース管理プログラムは、更に、
     前記検索された配備用仮想計算機から、割り当てるべき仮想計算機の選択を受け付けるステップと、
     前記選択された配備用仮想計算機が、前記要求仕様を満たす量のリソースを有さず、前記プール管理情報に含まれる空きリソースを追加することによって前記要求仕様を満たす量のリソースを確保できる配備用仮想計算機である場合、前記配備用仮想計算機のリソースに前記空きリソースを追加して、前記要求仕様を満たす量のリソースを有する仮想計算機を割り当てるステップと、を含むことを特徴とするリソース管理プログラムが格納された記憶媒体。
  14.  請求項13に記載の記憶媒体であって、
     前記リソース管理プログラムは、更に、
     前記受け付けた要求仕様に基づいて前記仮想計算機が割り当てられた要求時刻と、前記割り当てられた仮想計算機の利用開始時刻とを取得して、前記取得した要求時刻と利用開始時刻とを前記来歴情報に格納するステップと、
     前記来歴情報に格納された前記要求時刻と前記利用開始時刻との差を算出し、前記時刻の差に基づいて前記要求仕様の即時度を算出するステップと、
     決定された前記配備用仕様を満たす量のリソースを有する配備用仮想計算機を、前記即時度に基づいて配備するステップと、を含むことを特徴とするリソース管理プログラムが格納された記憶媒体。
  15.  請求項13に記載の記憶媒体であって、
     前記リソース管理プログラムは、更に、
     前記受け付けた要求仕様に基づいて割り当てられた前記仮想計算機が使用するリソースの使用量に基づいて、前記リソースの占有率を算出して、前記算出された占有率を前記来歴情報に格納するステップと、
     前記来歴情報に記憶された占有率に基づいて、前記要求仕様の占有度を算出するステップと、
     前記決定された配備用仕様を満たす量のリソースを有する配備用仮想計算機を、前記算出された占有度に基づいて配備するステップと、を含むことを特徴とするリソース管理プログラムが格納された記憶媒体。
PCT/JP2011/051176 2010-10-27 2011-01-24 リソース管理サーバ、リソース管理方法及びリソース管理プログラムが格納された記憶媒体 WO2012056731A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/881,063 US9477503B2 (en) 2010-10-27 2011-01-24 Resource management server, resource management method and storage medium for identifying virtual machines satisfying resource requirements

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010-240261 2010-10-27
JP2010240261A JP2014038364A (ja) 2010-10-27 2010-10-27 リソース管理サーバ、リソース管理方法及びリソース管理プログラム

Publications (1)

Publication Number Publication Date
WO2012056731A1 true WO2012056731A1 (ja) 2012-05-03

Family

ID=45993474

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/051176 WO2012056731A1 (ja) 2010-10-27 2011-01-24 リソース管理サーバ、リソース管理方法及びリソース管理プログラムが格納された記憶媒体

Country Status (3)

Country Link
US (1) US9477503B2 (ja)
JP (1) JP2014038364A (ja)
WO (1) WO2012056731A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103685431A (zh) * 2012-09-26 2014-03-26 鸿富锦精密工业(深圳)有限公司 虚拟主机控制系统及方法
JP2014067416A (ja) * 2012-09-25 2014-04-17 Hon Hai Precision Industry Co Ltd 仮想マシンの制御システム及びその制御方法
JP2014099036A (ja) * 2012-11-14 2014-05-29 Mitsubishi Electric Corp 情報処理装置
JP2016110248A (ja) * 2014-12-03 2016-06-20 日本電信電話株式会社 仮想化実行装置、仮想化システム、および、リソース最適化方法
WO2019012322A1 (en) * 2017-07-14 2019-01-17 G7Cr Technologies India Pvt Ltd METHOD AND SYSTEM FOR PROVIDING VIRTUAL COMPUTING ENVIRONMENT FOR USERS IN AN ORGANIZATION
WO2019167316A1 (ja) * 2018-03-01 2019-09-06 株式会社東芝 エンジニアリングツール、コントローラ、および制御システム

Families Citing this family (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9495152B2 (en) * 2007-06-22 2016-11-15 Red Hat, Inc. Automatic baselining of business application service groups comprised of virtual machines
US9569330B2 (en) 2007-06-22 2017-02-14 Red Hat, Inc. Performing dependency analysis on nodes of a business application service group
US9678803B2 (en) 2007-06-22 2017-06-13 Red Hat, Inc. Migration of network entities to a cloud infrastructure
US9727440B2 (en) 2007-06-22 2017-08-08 Red Hat, Inc. Automatic simulation of virtual machine performance
US9354960B2 (en) 2010-12-27 2016-05-31 Red Hat, Inc. Assigning virtual machines to business application service groups based on ranking of the virtual machines
US10191609B1 (en) 2010-03-26 2019-01-29 Open Invention Network Llc Method and apparatus of providing a customized user interface
US9223529B1 (en) 2010-03-26 2015-12-29 Open Invention Network, Llc Method and apparatus of processing information in an environment with multiple devices and limited resources
US9148428B1 (en) * 2011-05-25 2015-09-29 Bromium, Inc. Seamless management of untrusted data using virtual machines
US8892594B1 (en) 2010-06-28 2014-11-18 Open Invention Network, Llc System and method for search with the aid of images associated with product categories
DE102012217202B4 (de) * 2011-10-12 2020-06-18 International Business Machines Corporation Verfahren und System zum Optimieren des Platzierens virtueller Maschinen in Cloud-Computing-Umgebungen
US9372735B2 (en) * 2012-01-09 2016-06-21 Microsoft Technology Licensing, Llc Auto-scaling of pool of virtual machines based on auto-scaling rules of user associated with the pool
US8904008B2 (en) 2012-01-09 2014-12-02 Microsoft Corporation Assignment of resources in virtual machine pools
US9170849B2 (en) 2012-01-09 2015-10-27 Microsoft Technology Licensing, Llc Migration of task to different pool of resources based on task retry count during task lease
US9658872B1 (en) * 2012-05-03 2017-05-23 Juniper Networks, Inc. Maintaining user identity associated with access to network resources using virtual machines
US9471385B1 (en) * 2012-08-16 2016-10-18 Open Invention Network Llc Resource overprovisioning in a virtual machine environment
GB2506195A (en) 2012-09-25 2014-03-26 Ibm Managing a virtual computer resource
US9104463B2 (en) * 2012-11-07 2015-08-11 International Business Machines Corporation Automated and optimal deactivation of service to enable effective resource reusability
US8978032B2 (en) 2012-11-15 2015-03-10 Bank Of America Corporation Host naming application programming interface
US9038068B2 (en) 2012-11-15 2015-05-19 Bank Of America Corporation Capacity reclamation and resource adjustment
US9038086B2 (en) * 2012-11-15 2015-05-19 Bank Of America Corporation End to end modular information technology system
US9378064B2 (en) 2012-11-15 2016-06-28 Bank Of America Corporation Orchestration management of information technology
CN104995615B (zh) * 2012-12-27 2018-03-30 英特尔公司 本地计算设备的预订和执行镜像写入
US10574748B2 (en) * 2013-03-21 2020-02-25 Infosys Limited Systems and methods for allocating one or more resources in a composite cloud environment
US9489227B2 (en) * 2013-06-10 2016-11-08 Electronics And Telecommunications Research Institute Apparatus and method for virtual desktop service
US9455882B2 (en) * 2013-06-21 2016-09-27 Verizon Patent And Licensing Inc. User defined arrangement of resources in a cloud computing environment
US9923837B2 (en) * 2013-08-29 2018-03-20 Ericsson Ab Method and system to allocate bandwidth based on task deadline in cloud computing networks
US9110699B2 (en) * 2013-09-19 2015-08-18 International Business Machines Corporation Determining optimal methods for creating virtual machines
WO2015039181A1 (en) * 2013-09-23 2015-03-26 Gopc Pty Ltd Virtual computing systems and methods
US20150154042A1 (en) * 2013-12-04 2015-06-04 Hitachi, Ltd. Computer system and control method for virtual machine
AU2015235840A1 (en) * 2014-03-27 2016-08-18 Alert Logic, Inc. Malicious software identification integrating behavioral analytics and hardware events
US10097410B2 (en) * 2014-06-26 2018-10-09 Vmware, Inc. Methods and apparatus to scale application deployments in cloud computing environments
US10291548B2 (en) * 2014-08-08 2019-05-14 Oracle International Corporation Contribution policy-based resource management and allocation system
US9471362B2 (en) * 2014-09-23 2016-10-18 Splunk Inc. Correlating hypervisor data for a virtual machine with associated operating system data
US9715402B2 (en) 2014-09-30 2017-07-25 Amazon Technologies, Inc. Dynamic code deployment and versioning
US9830193B1 (en) 2014-09-30 2017-11-28 Amazon Technologies, Inc. Automatic management of low latency computational capacity
US9146764B1 (en) 2014-09-30 2015-09-29 Amazon Technologies, Inc. Processing event messages for user requests to execute program code
US9323556B2 (en) 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
US9600312B2 (en) 2014-09-30 2017-03-21 Amazon Technologies, Inc. Threading as a service
US9678773B1 (en) 2014-09-30 2017-06-13 Amazon Technologies, Inc. Low latency computational capacity provisioning
US10048974B1 (en) * 2014-09-30 2018-08-14 Amazon Technologies, Inc. Message-based computation request scheduling
US10867264B2 (en) * 2014-10-31 2020-12-15 Xerox Corporation Methods and systems for estimating lag times in a cloud computing infrastructure
US9886296B2 (en) * 2014-12-01 2018-02-06 International Business Machines Corporation Managing hypervisor weights in a virtual environment
US9413626B2 (en) 2014-12-05 2016-08-09 Amazon Technologies, Inc. Automatic management of resource sizing
CN105786587B (zh) * 2014-12-23 2019-11-26 华为技术有限公司 一种虚拟机vm的伸缩方法和设备
US9588790B1 (en) 2015-02-04 2017-03-07 Amazon Technologies, Inc. Stateful virtual compute system
US9733967B2 (en) 2015-02-04 2017-08-15 Amazon Technologies, Inc. Security protocols for low latency execution of program code
JP6478219B2 (ja) * 2015-02-13 2019-03-06 Kddi株式会社 統合制御サーバ、仮想アプリケーション構築システムおよびプログラム
JP2016170689A (ja) * 2015-03-13 2016-09-23 富士通株式会社 配備制御方法、配備制御プログラムおよび配備制御装置
US9785476B2 (en) 2015-04-08 2017-10-10 Amazon Technologies, Inc. Endpoint management system and virtual compute system
US9930103B2 (en) 2015-04-08 2018-03-27 Amazon Technologies, Inc. Endpoint management system providing an application programming interface proxy service
JP5889472B1 (ja) * 2015-06-25 2016-03-22 直輝 鷲田 治療方針決定支援システム
US9864640B2 (en) * 2015-08-14 2018-01-09 International Business Machines Corporation Controlling virtual machine density and placement distribution in a converged infrastructure resource pool
US10528627B1 (en) * 2015-09-11 2020-01-07 Amazon Technologies, Inc. Universal search service for multi-region and multi-service cloud computing resources
CN105278874A (zh) * 2015-09-15 2016-01-27 中国联合网络通信集团有限公司 大数据平台系统及其运行方法
US9983796B2 (en) * 2015-09-17 2018-05-29 Veritas Technologies Llc Systems and methods for provisioning frequently used image segments from caches
JP6668658B2 (ja) * 2015-09-29 2020-03-18 日本電気株式会社 ジョブ管理方法、ジョブ管理装置及びプログラム
US10042660B2 (en) 2015-09-30 2018-08-07 Amazon Technologies, Inc. Management of periodic requests for compute capacity
US20170111221A1 (en) * 2015-10-19 2017-04-20 Netapp, Inc. Methods and systems for managing configuration change in a networked storage environment
US10754701B1 (en) 2015-12-16 2020-08-25 Amazon Technologies, Inc. Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions
US10013267B1 (en) 2015-12-16 2018-07-03 Amazon Technologies, Inc. Pre-triggers for code execution environments
US9811434B1 (en) 2015-12-16 2017-11-07 Amazon Technologies, Inc. Predictive management of on-demand code execution
US10067801B1 (en) 2015-12-21 2018-09-04 Amazon Technologies, Inc. Acquisition and maintenance of compute capacity
US10002026B1 (en) 2015-12-21 2018-06-19 Amazon Technologies, Inc. Acquisition and maintenance of dedicated, reserved, and variable compute capacity
US9910713B2 (en) 2015-12-21 2018-03-06 Amazon Technologies, Inc. Code execution request routing
US11650848B2 (en) * 2016-01-21 2023-05-16 Suse Llc Allocating resources for network function virtualization
US20170272321A1 (en) * 2016-03-20 2017-09-21 CloudBolt Software Inc. Cloud computing configuration form generator
US10411974B2 (en) 2016-03-20 2019-09-10 CloudBolt Software Inc. Cloud computing service catalog
US10162672B2 (en) 2016-03-30 2018-12-25 Amazon Technologies, Inc. Generating data streams from pre-existing data sets
US11132213B1 (en) 2016-03-30 2021-09-28 Amazon Technologies, Inc. Dependency-based process of pre-existing data sets at an on demand code execution environment
US10891145B2 (en) 2016-03-30 2021-01-12 Amazon Technologies, Inc. Processing pre-existing data sets at an on demand code execution environment
US10282229B2 (en) 2016-06-28 2019-05-07 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
US10102040B2 (en) 2016-06-29 2018-10-16 Amazon Technologies, Inc Adjusting variable limit on concurrent code executions
US10277708B2 (en) 2016-06-30 2019-04-30 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
US10203990B2 (en) 2016-06-30 2019-02-12 Amazon Technologies, Inc. On-demand network code execution with cross-account aliases
CN107656807B (zh) * 2016-07-26 2021-06-29 华为技术有限公司 一种虚拟资源的自动弹性伸缩方法及装置
US10884787B1 (en) 2016-09-23 2021-01-05 Amazon Technologies, Inc. Execution guarantees in an on-demand network code execution system
US10061613B1 (en) 2016-09-23 2018-08-28 Amazon Technologies, Inc. Idempotent task execution in on-demand network code execution systems
US11119813B1 (en) 2016-09-30 2021-09-14 Amazon Technologies, Inc. Mapreduce implementation using an on-demand network code execution system
US9641238B1 (en) 2016-10-19 2017-05-02 Vector Launch Inc. Virtualization-enabled satellite platforms
US9722692B1 (en) 2016-10-19 2017-08-01 Vector Launch Inc. Statefulness among clustered satellite platforms
US10805001B2 (en) 2016-10-19 2020-10-13 Lockheed Martin Corporation State transfer among spaceborne and airborne devices
US10530468B2 (en) 2016-10-19 2020-01-07 Vector Launch Inc. State transfer among virtualized nodes in spaceborne or airborne systems
US9798571B1 (en) * 2016-10-28 2017-10-24 International Business Machines Corporation System and method for optimizing provisioning time by dynamically customizing a shared virtual machine
US9740465B1 (en) * 2016-11-16 2017-08-22 Vector Launch Inc. Orchestration of software application deployment in a satellite platform
JP6897136B2 (ja) * 2017-02-10 2021-06-30 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
US10613708B2 (en) * 2017-02-24 2020-04-07 Red Hat Israel, Ltd. Cloning a hypervisor
US10528376B2 (en) 2017-04-20 2020-01-07 International Business Machines Corporation Virtual machine management
US10509682B2 (en) 2017-05-24 2019-12-17 At&T Intellectual Property I, L.P. De-allocation elasticity application system
US9961675B1 (en) 2017-05-25 2018-05-01 At&T Intellectual Property I, L.P. Multi-layer control plane automatic resource allocation system
US10467046B2 (en) * 2017-05-30 2019-11-05 Red Hat, Inc. Fast and greedy scheduling machine based on a distance matrix
US10069935B1 (en) 2017-07-19 2018-09-04 Vector Launch Inc. Role-specialization in clustered satellite platforms
US9998207B1 (en) 2017-07-19 2018-06-12 Vector Launch Inc. Orbital network layering in satellite platforms
US9960837B1 (en) 2017-07-19 2018-05-01 Vector Launch Inc. Pseudo-geosynchronous configurations in satellite platforms
US9819742B1 (en) 2017-07-19 2017-11-14 Vector Launch Inc. Bandwidth aware state transfer among satellite devices
US10757027B2 (en) 2017-07-19 2020-08-25 Lockheed Martin Corporation Quality of service management in a satellite platform
US10491710B2 (en) 2017-07-19 2019-11-26 Vector Launch Inc. Role-specialization in spaceborne and airborne computing platforms
CN107589983A (zh) * 2017-10-11 2018-01-16 郑州云海信息技术有限公司 一种云计算系统中虚拟机创建方法及其装置
US10303492B1 (en) 2017-12-13 2019-05-28 Amazon Technologies, Inc. Managing custom runtimes in an on-demand code execution system
US10564946B1 (en) 2017-12-13 2020-02-18 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10733085B1 (en) 2018-02-05 2020-08-04 Amazon Technologies, Inc. Detecting impedance mismatches due to cross-service calls
US10353678B1 (en) 2018-02-05 2019-07-16 Amazon Technologies, Inc. Detecting code characteristic alterations due to cross-service calls
US10572375B1 (en) 2018-02-05 2020-02-25 Amazon Technologies, Inc. Detecting parameter validity in code including cross-service calls
US10831898B1 (en) 2018-02-05 2020-11-10 Amazon Technologies, Inc. Detecting privilege escalations in code including cross-service calls
US10630378B2 (en) 2018-02-09 2020-04-21 Lockheed Martin Corporation Bandwidth optimizing range adjustments among satellites
US10725752B1 (en) 2018-02-13 2020-07-28 Amazon Technologies, Inc. Dependency handling in an on-demand network code execution system
US10776091B1 (en) 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
US10853115B2 (en) 2018-06-25 2020-12-01 Amazon Technologies, Inc. Execution of auxiliary functions in an on-demand network code execution system
US10649749B1 (en) 2018-06-26 2020-05-12 Amazon Technologies, Inc. Cross-environment application of tracing information for improved code execution
US11146569B1 (en) 2018-06-28 2021-10-12 Amazon Technologies, Inc. Escalation-resistant secure network services using request-scoped authentication information
US10949237B2 (en) 2018-06-29 2021-03-16 Amazon Technologies, Inc. Operating system customization in an on-demand network code execution system
US11099870B1 (en) 2018-07-25 2021-08-24 Amazon Technologies, Inc. Reducing execution times in an on-demand network code execution system using saved machine states
US11099917B2 (en) 2018-09-27 2021-08-24 Amazon Technologies, Inc. Efficient state maintenance for execution environments in an on-demand code execution system
US11243953B2 (en) 2018-09-27 2022-02-08 Amazon Technologies, Inc. Mapreduce implementation in an on-demand network code execution system and stream data processing system
US11943093B1 (en) 2018-11-20 2024-03-26 Amazon Technologies, Inc. Network connection recovery after virtual machine transition in an on-demand network code execution system
US10887381B1 (en) * 2018-11-21 2021-01-05 Amazon Technologies, Inc. Management of allocated computing resources in networked environment
US11693698B2 (en) * 2018-11-23 2023-07-04 Netapp, Inc. System and method for infrastructure scaling
US10884812B2 (en) 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
US11010188B1 (en) 2019-02-05 2021-05-18 Amazon Technologies, Inc. Simulated data object storage using on-demand computation of data objects
US11861386B1 (en) 2019-03-22 2024-01-02 Amazon Technologies, Inc. Application gateways in an on-demand network code execution system
US11119809B1 (en) 2019-06-20 2021-09-14 Amazon Technologies, Inc. Virtualization-based transaction handling in an on-demand network code execution system
US11190609B2 (en) 2019-06-28 2021-11-30 Amazon Technologies, Inc. Connection pooling for scalable network services
US11115404B2 (en) 2019-06-28 2021-09-07 Amazon Technologies, Inc. Facilitating service connections in serverless code executions
US11159528B2 (en) 2019-06-28 2021-10-26 Amazon Technologies, Inc. Authentication to network-services using hosted authentication information
US11593137B2 (en) * 2019-08-30 2023-02-28 Nutanix, Inc. Hypervisor hibernation
US11442781B2 (en) * 2019-09-18 2022-09-13 International Business Machines Corporation Master image for deploying workloads in a heterogeneous computing environment
US11360948B2 (en) 2019-09-27 2022-06-14 Amazon Technologies, Inc. Inserting owner-specified data processing pipelines into input/output path of object storage service
US11023416B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. Data access control system for object storage service based on owner-defined code
US11416628B2 (en) 2019-09-27 2022-08-16 Amazon Technologies, Inc. User-specific data manipulation system for object storage service based on user-submitted code
US10996961B2 (en) 2019-09-27 2021-05-04 Amazon Technologies, Inc. On-demand indexing of data in input path of object storage service
US11386230B2 (en) 2019-09-27 2022-07-12 Amazon Technologies, Inc. On-demand code obfuscation of data in input path of object storage service
US11263220B2 (en) 2019-09-27 2022-03-01 Amazon Technologies, Inc. On-demand execution of object transformation code in output path of object storage service
US11106477B2 (en) 2019-09-27 2021-08-31 Amazon Technologies, Inc. Execution of owner-specified code during input/output path to object storage service
US11023311B2 (en) 2019-09-27 2021-06-01 Amazon Technologies, Inc. On-demand code execution in input path of data uploaded to storage service in multiple data portions
US11656892B1 (en) 2019-09-27 2023-05-23 Amazon Technologies, Inc. Sequential execution of user-submitted code and native functions
US11394761B1 (en) 2019-09-27 2022-07-19 Amazon Technologies, Inc. Execution of user-submitted code on a stream of data
US10908927B1 (en) 2019-09-27 2021-02-02 Amazon Technologies, Inc. On-demand execution of object filter code in output path of object storage service
US11250007B1 (en) 2019-09-27 2022-02-15 Amazon Technologies, Inc. On-demand execution of object combination code in output path of object storage service
US11055112B2 (en) 2019-09-27 2021-07-06 Amazon Technologies, Inc. Inserting executions of owner-specified code into input/output path of object storage service
US11550944B2 (en) 2019-09-27 2023-01-10 Amazon Technologies, Inc. Code execution environment customization system for object storage service
US11119826B2 (en) 2019-11-27 2021-09-14 Amazon Technologies, Inc. Serverless call distribution to implement spillover while avoiding cold starts
US10942795B1 (en) 2019-11-27 2021-03-09 Amazon Technologies, Inc. Serverless call distribution to utilize reserved capacity without inhibiting scaling
US11620122B2 (en) * 2020-02-28 2023-04-04 Verinex Corp. Automation controller for upgrading an IT infrastructure
US11714682B1 (en) 2020-03-03 2023-08-01 Amazon Technologies, Inc. Reclaiming computing resources in an on-demand code execution system
US11188391B1 (en) 2020-03-11 2021-11-30 Amazon Technologies, Inc. Allocating resources to on-demand code executions under scarcity conditions
US11775640B1 (en) 2020-03-30 2023-10-03 Amazon Technologies, Inc. Resource utilization-based malicious task detection in an on-demand code execution system
CN113703907A (zh) * 2020-05-21 2021-11-26 中兴通讯股份有限公司 虚拟化网络功能部署方法、管理与编排平台和介质
US11593270B1 (en) 2020-11-25 2023-02-28 Amazon Technologies, Inc. Fast distributed caching using erasure coded object parts
US11550713B1 (en) 2020-11-25 2023-01-10 Amazon Technologies, Inc. Garbage collection in distributed systems using life cycled storage roots
US11388210B1 (en) 2021-06-30 2022-07-12 Amazon Technologies, Inc. Streaming analytics using a serverless compute system
CN114880077A (zh) * 2022-05-16 2022-08-09 阿里巴巴(中国)有限公司 资源调度方法、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005293561A (ja) * 2004-03-09 2005-10-20 Seiko Epson Corp 情報処理システム、情報処理装置及び管理用サーバ、情報処理システム制御プログラム、情報処理装置制御プログラム及び管理用サーバ制御プログラム、並びに情報処理方法、情報処理システム制御方法、情報処理装置制御方法及び管理用サーバ制御方法
JP2007114983A (ja) * 2005-10-20 2007-05-10 Hitachi Ltd サーバプール管理方法
JP2007133654A (ja) * 2005-11-10 2007-05-31 Internatl Business Mach Corp <Ibm> リソースのプロビジョニング方法
JP2010191567A (ja) * 2009-02-17 2010-09-02 Nec Corp 情報管理装置及び情報管理方法等

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7577722B1 (en) * 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
JP4597488B2 (ja) 2003-03-31 2010-12-15 株式会社日立製作所 プログラム配置方法及びその実施システム並びにその処理プログラム
JP4227035B2 (ja) 2004-02-03 2009-02-18 株式会社日立製作所 計算機システム、管理装置、ストレージ装置及びコンピュータ装置
JP3892002B2 (ja) 2004-07-01 2007-03-14 株式会社日立製作所 リソース割り当て方法及びプログラム
US8078728B1 (en) * 2006-03-31 2011-12-13 Quest Software, Inc. Capacity pooling for application reservation and delivery
US8595722B2 (en) * 2010-10-14 2013-11-26 International Business Machines Corporation Preprovisioning virtual machines based on request frequency and current network configuration

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005293561A (ja) * 2004-03-09 2005-10-20 Seiko Epson Corp 情報処理システム、情報処理装置及び管理用サーバ、情報処理システム制御プログラム、情報処理装置制御プログラム及び管理用サーバ制御プログラム、並びに情報処理方法、情報処理システム制御方法、情報処理装置制御方法及び管理用サーバ制御方法
JP2007114983A (ja) * 2005-10-20 2007-05-10 Hitachi Ltd サーバプール管理方法
JP2007133654A (ja) * 2005-11-10 2007-05-31 Internatl Business Mach Corp <Ibm> リソースのプロビジョニング方法
JP2010191567A (ja) * 2009-02-17 2010-09-02 Nec Corp 情報管理装置及び情報管理方法等

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014067416A (ja) * 2012-09-25 2014-04-17 Hon Hai Precision Industry Co Ltd 仮想マシンの制御システム及びその制御方法
CN103685431A (zh) * 2012-09-26 2014-03-26 鸿富锦精密工业(深圳)有限公司 虚拟主机控制系统及方法
JP2014099036A (ja) * 2012-11-14 2014-05-29 Mitsubishi Electric Corp 情報処理装置
JP2016110248A (ja) * 2014-12-03 2016-06-20 日本電信電話株式会社 仮想化実行装置、仮想化システム、および、リソース最適化方法
WO2019012322A1 (en) * 2017-07-14 2019-01-17 G7Cr Technologies India Pvt Ltd METHOD AND SYSTEM FOR PROVIDING VIRTUAL COMPUTING ENVIRONMENT FOR USERS IN AN ORGANIZATION
WO2019167316A1 (ja) * 2018-03-01 2019-09-06 株式会社東芝 エンジニアリングツール、コントローラ、および制御システム
JP2019152996A (ja) * 2018-03-01 2019-09-12 株式会社東芝 エンジニアリングツール、コントローラ、および制御システム
US11392412B2 (en) 2018-03-01 2022-07-19 Kabushiki Kaisha Toshiba Engineering tool, controller, and control system

Also Published As

Publication number Publication date
JP2014038364A (ja) 2014-02-27
US20130275975A1 (en) 2013-10-17
US9477503B2 (en) 2016-10-25

Similar Documents

Publication Publication Date Title
WO2012056731A1 (ja) リソース管理サーバ、リソース管理方法及びリソース管理プログラムが格納された記憶媒体
US10972542B2 (en) Data storage method and apparatus
KR102549821B1 (ko) 서버 리소스 할당 방법, 장치, 전자 기기 및 저장 매체
US8930541B2 (en) System, method and program product for cost-aware selection of templates for provisioning shared resources
JP7050034B2 (ja) ストレージシステム及びノード管理方法
EP3481007B1 (en) Method, apparatus and management server for processing resource pool
US8001355B2 (en) Storage system, volume allocation method and management apparatus
US7814491B1 (en) Method and apparatus for managing system resources using a container model
JP2015001828A (ja) 割当プログラム、割当装置および割当方法
US9395973B2 (en) Virtual machine deployment method, recording medium, and information processing apparatus
CN108132775B (zh) 一种租户管理系统及方法
US9329906B2 (en) Virtual machine mobility using resource pools
KR101660514B1 (ko) 분산 렌더링 시스템
JPWO2012039053A1 (ja) 計算機システムの運用管理方法、計算機システム及びプログラムを記憶する計算機読み取り可能な媒体
US20180254999A1 (en) Multidimensional resource allocation in data centers
CN103561098B (zh) 一种选择存储资源方法、装置及系统
JP5775359B2 (ja) システム管理サーバ、管理方法及びプログラム
JP2010272090A (ja) 処理依頼先管理装置、処理依頼先管理プログラムおよび処理依頼先管理方法
KR101386161B1 (ko) 클라우드 컴퓨팅 시스템의 압축 이미지 파일 관리 장치 및 방법
JP6272556B2 (ja) 共有リソース更新装置及び共有リソース更新方法
CN113568758A (zh) Gpu资源池化方法、系统、设备及计算机可读存储介质
CN112433983B (zh) 支持多作业并行io性能隔离的文件系统管理方法
JP5657498B2 (ja) ファイル検索システム
JP2011100263A (ja) 仮想コンピュータシステム、仮想コンピュータ管理方法および管理プログラム
JP6851350B2 (ja) ストレージシステム及び記憶制御方法

Legal Events

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

Ref document number: 11835875

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13881063

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 11835875

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP