Optimizing virtual machines placement in cloud computing environments
First Claim
1. A method, comprising:
- by a placement engine that instantiates virtual machine (VM) instances;
receiving a request from a user to deploy an instance of a VM image;
reading a VM resource usage profile (RUP) that indicates a predicted resource consumption of the requested instance of the VM image over a first period of time;
retrieving an existing user-specific VM resource usage profile (URUP) for the instance of the VM image requested to be deployed over the first period of time;
determining user-specific patterns based on combined respective data of the RUP and respective data of the URUP;
reading one resource pool profile for each of a plurality of resources pools, where each resource pool profile indicates a predicted resource consumption in the respective resource pool over a second period of time;
for each resource pool;
generating a resulting VM resource usage profile from a selected one of the VM RUP and the URUP;
analyzing the resulting VM resource usage profile and the resource pool profile, the analysis comprising aligning the resulting VM resource usage profile and the respective resource pool profile of the respective resource pool by aligning the second period of time of the respective resource pool profile with the first period of time of the resulting VM resource usage profile; and
calculating, for existing host platforms, an aggregated resource consumption profile that predicts a total resource consumption over time in the resource pool as an aggregation of the predicted resource consumptions of the aligned profiles by comparing the resulting VM resource usage profile with the resource pool profile of the respective resource pool, wherein the resource pool profile of the respective resource pool is obtained as a superposition of an assigned resource usage profile of all instances of all VMs running on the resource pool;
determining, from the aggregated resource consumption profiles, a resource pool of the plurality of resource pools with a least predicted aggregated resource consumption over time;
determining that the resource pool with the least predicted aggregated resource consumption over time has no free resource on the existing host platform to fit the instance of the VM image, based on a current allocation of resources;
calculating a resource shortage for the determined least predicted aggregated resource pool;
based on the calculated resource shortage, performing, by a resource manager, a reallocation of at least one resource, initially allocated to an instantiated VM image instance in the determined least predicted aggregated resource pool, to the requested VM image, wherein the aggregated resource consumption profiles are used as input for determining another instantiated VM image instance to which the at least one resource is to be reallocated; and
subsequent to reallocating the at least one resource, instantiating the VM image on the least predicted resource pool expected to provide the best available fit for the resource requirements of the VM image.
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. VM resource usage profiles are read that indicate predicted resource consumption data of the VM image. Resource pool profiles for multiple resource pools are read that indicate predicted resource consumption data for the resource pools. For each of the resource pools, the VM resource usage profile is aligned with the respective resource pool profile. An aggregated resource consumption profile is calculated as an aggregation of the predicted resource consumptions of the aligned profiles. A determination is made of one of multiple resource pools with the least predicted aggregated resource consumption, and the VM image is instantiated on the determined one of the multiple resource pools with the least predicted aggregated resource consumption over time.
62 Citations
18 Claims
-
1. A method, comprising:
by a placement engine that instantiates virtual machine (VM) instances; receiving a request from a user to deploy an instance of a VM image; reading a VM resource usage profile (RUP) that indicates a predicted resource consumption of the requested instance of the VM image over a first period of time; retrieving an existing user-specific VM resource usage profile (URUP) for the instance of the VM image requested to be deployed over the first period of time; determining user-specific patterns based on combined respective data of the RUP and respective data of the URUP; reading one resource pool profile for each of a plurality of resources pools, where each resource pool profile indicates a predicted resource consumption in the respective resource pool over a second period of time; for each resource pool; generating a resulting VM resource usage profile from a selected one of the VM RUP and the URUP; analyzing the resulting VM resource usage profile and the resource pool profile, the analysis comprising aligning the resulting VM resource usage profile and the respective resource pool profile of the respective resource pool by aligning the second period of time of the respective resource pool profile with the first period of time of the resulting VM resource usage profile; and calculating, for existing host platforms, an aggregated resource consumption profile that predicts a total resource consumption over time in the resource pool as an aggregation of the predicted resource consumptions of the aligned profiles by comparing the resulting VM resource usage profile with the resource pool profile of the respective resource pool, wherein the resource pool profile of the respective resource pool is obtained as a superposition of an assigned resource usage profile of all instances of all VMs running on the resource pool; determining, from the aggregated resource consumption profiles, a resource pool of the plurality of resource pools with a least predicted aggregated resource consumption over time; determining that the resource pool with the least predicted aggregated resource consumption over time has no free resource on the existing host platform to fit the instance of the VM image, based on a current allocation of resources; calculating a resource shortage for the determined least predicted aggregated resource pool; based on the calculated resource shortage, performing, by a resource manager, a reallocation of at least one resource, initially allocated to an instantiated VM image instance in the determined least predicted aggregated resource pool, to the requested VM image, wherein the aggregated resource consumption profiles are used as input for determining another instantiated VM image instance to which the at least one resource is to be reallocated; and subsequent to reallocating the at least one resource, instantiating the VM image on the least predicted resource pool expected to provide the best available fit for the resource requirements of the VM image. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
11. 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; and a placement engine device programmed to; receive, via the interface, a request from a user to deploy an instance of a VM image; read, from the storage device, a VM resource usage profile (RUP) that indicates a predicted resource consumption of the requested instance of the VM image over a first period of time; retrieve, from the storage device, a user-specific VM resource usage profile (URUP) for the instance of the VM image requested to be deployed over the first period of time; determine user-specific patterns based on combined respective data of the RUP and respective data of the URUP; read, from the storage device, one resource pool profile for each of the plurality of resources pools, where each resource pool profile indicates a predicted resource consumption in the respective resource pool over a second period of time; for each resource pool; generate a resulting VM resource usage profile from a selected one of the VM RUP and the URUP; analyze the resulting VM resource usage profile and the resource pool profile, the analysis comprising a step to align the resulting VM resource usage profile and the respective resource pool profile of the respective resource pool by aligning the second period of time of the respective resource pool profile with the first period of time of the resulting VM resource usage profile; and calculate, for existing host platforms, an aggregated resource consumption profile that predicts a total resource consumption over time in the resource pool as an aggregation of the predicted resource consumptions of the aligned profiles by comparing the resulting VM resource usage profile with the resource pool profile of the respective resource pool, wherein the VM RUP of the respective resource pool is obtained as a superposition of an assigned resource usage profile of all instances of all VMs running on the resource pool; determine, from the aggregated resource consumption profiles, a resource pool of the plurality of resource pools with a least predicted aggregated resource consumption over time; determine that the resource pool with the least predicted aggregated resource consumption over time has no free resource on the existing host platforms to fit the instance of the VM image, based on a current allocation of resources; calculate a resource shortage for the determined least predicted aggregated resource pool; and based on the calculated resource shortage, perform, by a resource manager, a reallocation of at least one resource, initially allocated to an instantiated VM image instance in the determined least predicted aggregated resource pool, to the requested VM image, wherein the aggregated resource consumption profiles are used as input for determining another instantiated VM image instance to which the at least one resource is to be reallocated; and subsequent to reallocating the at least one resource, instantiate the VM image on the least predicted resource pool expected to provide the best available fit for the resource requirements of the VM image. - View Dependent Claims (12, 13)
-
-
14. A computer program product, comprising:
a computer readable storage memory 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 an instance of a virtual machine (VM) image; read a VM resource usage profile (RUP) that indicates a predicted resource consumption of the requested instance of the VM image over a first period of time; retrieve a user-specific VM resource usage profile (URUP) for the instance of the VM image requested to be deployed over the first period of time; determine user-specific patterns based on combined respective data of the RUP and respective data of the URUP; read one resource pool profile for each of the plurality of resources pools, where each resource pool specific profile indicates a predicted resource consumption in the respective resource pool over a second period of time; for each resource pool; generate a resulting VM resource usage profile from a selected one of the VM RUP and the URUP; analyze the resulting VM resource usage profile and the resource pool profile, the analysis comprising a step to align the resulting VM resource usage profile and the respective resource pool profile of the respective resource pool by aligning the second period of time of the respective resource pool profile with the first period of time of the resulting VM resource usage profile; and calculate, for existing host platform, an aggregated resource consumption profile that predicts a total resource consumption over time in the resource pool as an aggregation of the predicted resource consumptions of the aligned profiles by comparing the resulting VM resource usage profile with the resource pool profile of the respective resource pool, wherein the VM RUP of the respective resource pool is obtained as a superposition of an assigned resource usage profile of all instances of all VMs running on the resource pool; determine, from the aggregated resource consumption profiles, a resource pool of the plurality of resource pools with a least predicted aggregated resource consumption over time; determine that the resource pool with the least predicted aggregated resource consumption over time has no free resource on the existing host platforms to fit the instance of the VM image, based on a current allocation of resources; calculate a resource shortage for the determined least predicted aggregated resource pool; based on the calculated resource shortage, perform, by a resource manager, a reallocation of at least one resource, initially allocated to an instantiated VM image instance in the determined least predicted aggregated resource pool, to the requested VM image, wherein the aggregated resource consumption profiles are used as input for determining another instantiated VM image instance to which the at least one resource is to be reallocated; and subsequent to reallocating the at least one resource, instantiate the VM image on the last predicted resource pool expected to provide the best available fit for the resource requirements of the VM image. - View Dependent Claims (15, 16, 17, 18)
Specification