Patent ID: 8601483

Claim:
A method on a computer for reassigning virtual machines to hardware resources, which is from one hardware resource to a different hardware resource, in a computing environment, comprising: collecting monitoring data about past virtual machine request history of past requests for virtual machines and past hardware resource usage in a form of time series; computing forecasted time series for the monitoring data over a future time window by utilizing time series forecasting, wherein the future time window is a particular time interval in a future; computing a new assignment of the virtual machines needed in the future time window based on the forecasted time series by executing a snapshot based assignment algorithm on the forecasted time series, wherein the snapshot provides current service demands for current virtual machines running on current hardware resources at a present time; using the new assignment for reassignment of virtual machines on the hardware resources in the computing environment; computing a future reassignment cost per virtual machine that needs to be reassigned in the future time window for the reassignment as a combination of computation time, virtual machine interruption time, data transfer time, and consumed bandwidth in the future time window; computing a total future reassignment cost for the virtual machines that need to be reassigned in the future as an aggregate of the cost per virtual machine that is affected by the reassignment; and based on the future reassignment cost per virtual machine that needs to be reassigned in the future time window, determining that performing the new assignment for the reassignment of the virtual machines at the present time is more cost effective than performing the reassignment of the virtual machines in the future during the future time window; wherein computing the new assignment by executing the snapshot based assignment algorithm on the forecasted time series comprises: aggregating each one of the forecasted time series into aggregated single values by executing an aggregation function; and using the snapshot based assignment algorithm on the aggregated single values to produce a snapshot assignment for an entire time of the future time window; and further comprising: tuning parameters of the aggregation function to satisfy a minimum quality of service requirement under the snapshot based algorithm.