Dynamically provisioning virtual machines from remote, multi-tier pool
AssigneeCitrix Systems, Inc.
InventorsRaymond Matthew Sampson, Kevin Joseph Webster, Marcos Alejandro Di Pietro
Life of this patent
Estimating the term…
Abstract
A technique for dynamically provisioning virtual machines for running a cloud-based software application includes querying a pool manager of a multi-tiered pool of virtual machines to identify a set of classes of virtual machines, which meet a specified size criterion, and a respective TVC (time-variant characteristic) for each class. If an identified one of the set of classes has a smaller TVC than a TVC of one of the virtual machines currently running the application, the technique proceeds to swap the current virtual machine for a virtual machine having the identified class.
Claims16
A method of dynamically provisioning virtual machines for running a cloud-based software application, the method comprising:
- operating a set of virtual machines in a multi-tiered pool of virtual machines, the set of virtual machines including a first virtual machine and a second virtual machine and implementing an installation of the cloud-based software application, the first virtual machine and the second virtual machine running on a set of physical computing servers, the first virtual machine and the second virtual machine each having a respective value of a TVC (time-variant characteristic);
- collecting, by a selection server, usage data of the first virtual machine and the second virtual machine;
- predicting, based on the usage data, a start time at which at least one of the first virtual machine and the second virtual machine will experience a lower usage than it does at other times;
- upon arrival of the start time, querying, by the selection server, a pool manager of the multi-tiered pool, the querying specifying a virtual machine size, the specified virtual machine size being smaller than a size of the first virtual machine;
- receiving, by the selection server from the pool manager in response to the querying, multiple class identifiers of virtual machine classes and corresponding TVCs common to the respective virtual machine classes, the multiple classes including virtual machines of the desired size and identifying a third virtual-machine class in the multi-tiered pool, the third virtual machine class providing a minimum value of the TVC from among multiple TVCs returned;
- and
- in response to the selection server determining that the TVC of the third virtual machine class is less than the TVC of the first virtual machine, selectively swapping a third virtual machine from the third virtual machine class in place of the first virtual machine.
A computerized apparatus, comprising control circuitry that includes a set of processors coupled to memory, the control circuitry constructed and arranged to:
- operate a set of virtual machines in a multi-tiered pool of virtual machines, the set of virtual machines including a first virtual machine and a second virtual machine and implementing an installation of a cloud-based software application, the first virtual machine and the second virtual machine running on a set of physical computing servers, the first virtual machine and the second virtual machine each having a respective value of a TVC (time-variant characteristic);
- collect, by a selection server, usage data of the first virtual machine and the second virtual machine;
- predict, based on the usage data, a start time at which at least one of the first virtual machine and the second virtual machine will experience a lower usage than it does at other times;
- upon arrival of the start time, query, by the selection server, a pool manager of the multi-tiered pool, the querying specifying a virtual machine size, the specified virtual machine size being smaller than a size of the first virtual machine;
- receive, by the selection server from the pool manager in response to the querying, multiple class identifiers of virtual machine classes and corresponding TVCs common to the respective virtual machine classes, the multiple classes including virtual machines of the desired size and identifying a third virtual-machine class in the multi-tiered pool, the third virtual machine class providing a minimum value of the TVC from among multiple TVCs returned;
- and
- in response to the selection server determining that the TVC of the third virtual machine class is less than the TVC of the first virtual machine, selectively swap a third virtual machine from the third virtual machine class in place of the first virtual machine.
A computer program product including a set of non-transitory, computer-readable media having instructions which, when executed by control circuitry of a computerized apparatus, cause the control circuitry to perform a method for dynamically provisioning virtual machines for running a cloud-based software application, the method comprising:
- operating a set of virtual machines in a multi-tiered pool of virtual machines, the set of virtual machines including a first virtual machine and a second virtual machine and implementing an installation of the cloud-based software application, the first virtual machine and the second virtual machine running on a set of physical computing servers, the first virtual machine and the second virtual machine each having a respective value of a TVC (time-variant characteristic);
- collecting, by a selection server, usage data of the first virtual machine and the second virtual machine;
- predicting, based on the usage data, a start time at which at least one of the first virtual machine and the second virtual machine will experience a lower usage than it does at other times;
- upon arrival of the start time, querying, by the selection server, a pool manager of the multi-tiered pool, the querying specifying a virtual machine size, the specified virtual machine size being smaller than a size of the first virtual machine;
- receiving, by the selection server from the pool manager in response to the querying, multiple class identifiers of virtual machine classes and corresponding TVCs common to the respective virtual machine classes, the multiple classes including virtual machines of the desired size and identifying a third virtual-machine class in the multi-tiered pool, the third virtual machine class providing a minimum value of the TVC from among multiple TVCs returned;
- and
- in response to the selection server determining that the TVC of the third virtual machine class is less than the TVC of the first virtual machine, selectively swapping a third virtual machine from the third virtual machine class in place of the first virtual machine.
Dependencies are inferred from the claim text.