OPTIMIZING VIRTUAL MACHINES PLACEMENT IN CLOUD COMPUTING ENVIRONMENTS
First Claim
1. A method for optimizing the placement of instances of a plurality of virtual machine images in a cloud environment, the cloud environment comprising a plurality of resource pools, each resource pool comprising one or more resources, comprising:
- receiving a request from a user to deploy a new instance of one of the virtual machine (VM) images, where the request indicates a VM image to be instantiated;
reading, by a placement engine, a VM resource usage profile stored in association with the indicated VM image, the VM resource usage profile comprising first resource consumption data, the first resource consumption data indicating a predicted resource consumption of the requested instance of the indicated VM image over a first period of time;
reading, by the placement engine, one resource pool profile for each of the plurality of resources pools, each resource pool profile comprising second resource consumption data, the second resource consumption data indicating a predicted resource consumption in a resource pool associated with the resource pool profile over a second period of time, the resource pool profile further comprising a current resource consumption on the resource pool;
reading, if available, a user-specific VM resource usage profile stored in association with the indicated VM image and stored in association with an identifier of the user, the user-specific VM resource usage profile comprising third resource usage data, the third resource usage data indicating a predicted user-specific resource consumption of the requested instance of the indicated VM image over the first period of time;
for each of the resource pool profiles, by the placement engine;
generating a resulting VM resource usage profile by selecting one of the user-specific VM resource usage profile, where the user-specific VM resource usage profile is available, and the VM resource usage profile;
analyzing the resulting VM resource usage profile and the resource pool profile, the analysis comprising aligning the resulting VM resource usage profile and the resource pool profile by aligning the second period of time of the resource pool profile of the resource pool with the first period of time of the resulting VM resource usage profile; and
calculating an aggregated resource consumption profile that predicts a total resource consumption on the resource pool by aggregating the resource consumption of the aligned profiles; and
determining, as a result of the analysis of all resource pool profiles, the one of the plurality of resource pools with a least aggregated resource consumption.
1 Assignment
0 Petitions
Accused Products
Abstract
Placement of instances of virtual machine (VM) images in a cloud computing environment is optimized. A request is received to deploy a new VM image instance. User-specific and generic VM resource usage profiles are read that include resource consumption data. Resource pool profiles for multiple resource pools are read that include resource consumption data for the resource pools. For each of the resource pool profiles, a selected VM resource usage profile is analyzed and aligned with the resource pool profiles. An aggregated resource consumption profile is calculated. A determination is made of one of multiple resource pools with the least aggregated resource consumption.
-
Citations
25 Claims
-
1. A method for optimizing the placement of instances of a plurality of virtual machine images in a cloud environment, the cloud environment comprising a plurality of resource pools, each resource pool comprising one or more resources, comprising:
-
receiving a request from a user to deploy a new instance of one of the virtual machine (VM) images, where the request indicates a VM image to be instantiated; reading, by a placement engine, a VM resource usage profile stored in association with the indicated VM image, the VM resource usage profile comprising first resource consumption data, the first resource consumption data indicating a predicted resource consumption of the requested instance of the indicated VM image over a first period of time; reading, by the placement engine, one resource pool profile for each of the plurality of resources pools, each resource pool profile comprising second resource consumption data, the second resource consumption data indicating a predicted resource consumption in a resource pool associated with the resource pool profile over a second period of time, the resource pool profile further comprising a current resource consumption on the resource pool; reading, if available, a user-specific VM resource usage profile stored in association with the indicated VM image and stored in association with an identifier of the user, the user-specific VM resource usage profile comprising third resource usage data, the third resource usage data indicating a predicted user-specific resource consumption of the requested instance of the indicated VM image over the first period of time; for each of the resource pool profiles, by the placement engine; generating a resulting VM resource usage profile by selecting one of the user-specific VM resource usage profile, where the user-specific VM resource usage profile is available, and the VM resource usage profile; analyzing the resulting VM resource usage profile and the resource pool profile, the analysis comprising aligning the resulting VM resource usage profile and the resource pool profile by aligning the second period of time of the resource pool profile of the resource pool with the first period of time of the resulting VM resource usage profile; and calculating an aggregated resource consumption profile that predicts a total resource consumption on the resource pool by aggregating the resource consumption of the aligned profiles; and determining, as a result of the analysis of all resource pool profiles, the one of the plurality of resource pools with a least aggregated resource consumption. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system, comprising:
-
a storage device comprising a plurality of virtual machine (VM) images; a plurality of resource pools, each resource pool comprising one or more resources; an interface configured to receive a request from a user to deploy a new instance of one of the VM images, where the request indicates a VM image to be instantiated; a placement engine configured to; read a VM resource usage profile stored in association with the indicated VM image, the VM resource usage profile comprising first resource consumption data, the first resource consumption data indicating a predicted resource consumption of the requested instance of the indicated VM image over a first period of time; read one resource pool profile for each of the plurality of resources pools, each resource pool profile comprising second resource consumption data, the second resource consumption data indicating a predicted resource consumption in a resource pool associated with the resource pool profile over a second period of time, the resource pool profile further comprising a current resource consumption on the resource pool; read, if available, a user-specific VM resource usage profile stored in association with the indicated VM image and stored in association with an identifier of the user, the user-specific VM resource usage profile comprising third resource usage data, the third resource usage data indicating a predicted user-specific resource consumption of the requested instance of the indicated VM image over the first period of time; for each of the resource pool profiles; generate a resulting VM resource usage profile by selecting one of the user-specific VM resource usage profile, where the user-specific VM resource usage profile is available, and the VM resource usage profile; analyze the resulting VM resource usage profile and the resource pool profile, the analysis comprising aligning the resulting VM resource usage profile and the resource pool profile by aligning the second period of time of the resource pool profile of the resource pool with the first period of time of the resulting VM resource usage profile; and calculate an aggregated resource consumption profile that predicts a total resource consumption on the resource pool by aggregating the resource consumption of the aligned profiles; and determine, as a result of the analysis of all resource profiles, the one of the plurality of resource pools with a least aggregated resource consumption. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A computer program product for optimizing the placement of instances of a plurality of virtual machine images in a cloud environment, the cloud environment comprising a plurality of resource pools, each resource pool comprising one or more resources, comprising:
-
a computer readable storage medium having computer readable program code embodied therewith, where the computer readable program code when executed on a computer causes the computer to; receive a request from a user to deploy a new instance of one of the virtual machine (VM) images, where the request indicates a VM image to be instantiated; read a virtual machine (VM) resource usage profile stored in association with the indicated VM image, the VM resource usage profile comprising first resource consumption data, the first resource consumption data indicating a predicted resource consumption of the requested instance of the indicated VM image over a first period of time; read one resource pool profile for each of the plurality of resources pools, each resource pool specific profile comprising second resource consumption data, the second resource consumption data indicating a predicted resource consumption in a resource pool associated with the resource pool profile over a second period of time, the resource pool profile further comprising a current resource consumption on the resource pool; read, if available, a user-specific VM resource usage profile stored in association with the indicated VM image and stored in association with an identifier of the user, the user-specific VM resource usage profile comprising third resource usage data, the third resource usage data indicating a predicted user-specific resource consumption of the requested instance of the indicated VM image over the first period of time; for each of the resource pool profiles; generate a resulting VM resource usage profile by selecting one of the user-specific VM resource usage profile, where the user-specific VM resource usage profile is available, and the VM resource usage profile; analyze the resulting VM resource usage profile and the resource pool profile, the analysis comprising aligning the resulting VM resource usage profile and the resource pool profile by aligning the second period of time of the resource pool profile of the resource pool with the first period of time of the resulting VM resource usage profile; and calculate an aggregated resource consumption profile that predicts a total resource consumption on the resource pool by aggregating the resource consumption of the aligned profiles; and determine, as a result of the analysis of all resource profiles, the one of the plurality of resource pools with a least aggregated resource consumption. - View Dependent Claims (21, 22, 23, 24, 25)
-
Specification