Provisioning virtual machines to optimize application licensing costs
First Claim
1. A computer-implemented method comprising:
- establishing, by a provisioning engine executing on at least one processor, one or more shared processor pools of physical processing units on one or more servers of a cluster of servers;
provisioning, by the provisioning engine, virtual machines into the one or more shared processor pools and assigning the physical processing units to the one or more shared processor pools, the provisioning and assigning comprising;
provisioning at least two virtual machines for different tenants into a common shared processor pool of one or more shared processor pools;
receiving a tenant request by a tenant of the different tenants to provision a virtual machine of the virtual machines to execute an application;
determining based on the received request that at least one shared processor pool for the application does not yet exist;
identifying based on determining that at least one shared processor pool for the application does not yet exist, a server of the one or more servers of the cluster of servers having greatest unallocated capacity;
establishing a target shared processor pool on the identified server;
provisioning the virtual machine into the established target shared processor pool on the identified server;
obtaining utilization data by continuously monitoring the one or more shared processor pools of physical processing units on one or more servers of a cluster of servers;
determining based on the obtained utilization data that at least one physical processing unit of at least one shared processor pool of the one or more shared processor pools provides excess capacity; and
resizing the at least one shared processor pool of the one or more shared processor pools by removing the at least one physical processing unit from the at least one shared processor pool of the one or more shared processor pools; and
executing the virtual machines using the one or more shared processor pools, wherein the executing executes at least one virtual machine of the virtual machines using the resized at least one shared processor pool.
2 Assignments
0 Petitions
Accused Products
Abstract
Provisioning and management of virtual machines and shared processor pools to process the virtual machines is provided. Shared processor pool(s) of processing units are established on server(s) of a cluster. The shared processor pool(s) are to process virtual machines to execute an application for which licensing cost is determined based on a number of processing units used to process the virtual machines executing the application. Provision of the virtual machines into the shared processor pool(s) and assignment of the processing units to the shared processor pool(s) is managed, which controls the number of processing units dedicated to processing the virtual machines executing the application, to thereby control licensing costs of executing the application. The managing can provision at least two virtual machines for different tenants into a common shared processor pool of the one or more shared processor pools.
17 Citations
18 Claims
-
1. A computer-implemented method comprising:
-
establishing, by a provisioning engine executing on at least one processor, one or more shared processor pools of physical processing units on one or more servers of a cluster of servers; provisioning, by the provisioning engine, virtual machines into the one or more shared processor pools and assigning the physical processing units to the one or more shared processor pools, the provisioning and assigning comprising; provisioning at least two virtual machines for different tenants into a common shared processor pool of one or more shared processor pools; receiving a tenant request by a tenant of the different tenants to provision a virtual machine of the virtual machines to execute an application; determining based on the received request that at least one shared processor pool for the application does not yet exist; identifying based on determining that at least one shared processor pool for the application does not yet exist, a server of the one or more servers of the cluster of servers having greatest unallocated capacity; establishing a target shared processor pool on the identified server; provisioning the virtual machine into the established target shared processor pool on the identified server; obtaining utilization data by continuously monitoring the one or more shared processor pools of physical processing units on one or more servers of a cluster of servers; determining based on the obtained utilization data that at least one physical processing unit of at least one shared processor pool of the one or more shared processor pools provides excess capacity; and resizing the at least one shared processor pool of the one or more shared processor pools by removing the at least one physical processing unit from the at least one shared processor pool of the one or more shared processor pools; and executing the virtual machines using the one or more shared processor pools, wherein the executing executes at least one virtual machine of the virtual machines using the resized at least one shared processor pool. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer system comprising:
-
a memory; and a processor in communication with the memory, wherein the computer system is configured to perform a method, the method comprising; establishing, by a provisioning engine executing on at least one processor, one or more shared processor pools of physical processing units on one or more servers of a cluster of servers; provisioning, by the provisioning engine, virtual machines into the one or more shared processor pools and assigning the physical processing units to the one or more shared processor pools, the provisioning and assigning comprising; provisioning at least two virtual machines for different tenants into a common shared processor pool of one or more shared processor pools; receiving a tenant request by a tenant of the different tenants to provision a virtual machine of the virtual machines to execute an application; determining based on the received request that at least one shared processor pool for the application does not yet exist; identifying based on determining that at least one shared processor pool for the application does not yet exist, a server of the one or more servers of the cluster of servers having greatest unallocated capacity; establishing a target shared processor pool on the identified server; provisioning the virtual machine into the established target shared processor pool on the identified server; obtaining utilization data by continuously monitoring the one or more shared processor pools of physical processing units on one or more servers of a cluster of servers; determining based on the obtained utilization data that at least one physical processing unit of at least one shared processor pool of the one or more shared processor pools provides excess capacity; and resizing the at least one shared processor pool of the one or more shared processor pools by removing the at least one physical processing unit from the at least one shared processor pool of the one or more shared processor pools; and executing the virtual machines using the one or more shared processor pools, wherein the executing executes at least one virtual machine of the virtual machines using the resized at least one shared processor pool. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A computer program product comprising:
a computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising; establishing, by a provisioning engine executing on at least one processor, one or more shared processor pools of physical processing units on one or more servers of a cluster of servers; provisioning, by the provisioning engine, virtual machines into the one or more shared processor pools and assigning the physical processing units to the one or more shared processor pools, the provisioning and assigning comprising; provisioning at least two virtual machines for different tenants into a common shared processor pool of one or more shared processor pools; receiving a tenant request by a tenant of the different tenants to provision a virtual machine of the virtual machines to execute an application; determining based on the received request that at least one shared processor pool for the application does not yet exist; identifying based on determining that at least one shared processor pool for the application does not yet exist, a server of the one or more servers of the cluster of servers having greatest unallocated capacity; establishing a target shared processor pool on the identified server; provisioning the virtual machine into the established target shared processor pool on the identified server; obtaining utilization data by continuously monitoring the one or more shared processor pools of physical processing units on one or more servers of a cluster of servers; determining based on the obtained utilization data that at least one physical processing unit of at least one shared processor pool of the one or more shared processor pools provides excess capacity; and resizing the at least one shared processor pool of the one or more shared processor pools by removing the at least one physical processing unit from the at least one shared processor pool of the one or more shared processor pools; and executing the virtual machines using the one or more shared processor pools, wherein the executing executes at least one virtual machine of the virtual machines using the resized at least one shared processor pool. - View Dependent Claims (18)
Specification