CPC G06F 9/505 (2013.01) [G06F 9/45533 (2013.01); G06F 9/45558 (2013.01); G06F 9/5066 (2013.01); G06F 9/5088 (2013.01); G06F 2009/4557 (2013.01); G06F 2009/45583 (2013.01)] | 17 Claims |
1. A method for managing placement of a set of virtual machines in a virtual machine network, comprising:
creating a parent virtual machine on a first host computing device;
creating a plurality of cloned virtual machines from the parent virtual machine, the cloned virtual machines and the parent virtual machine using a shared memory,
concurrently executing the plurality of cloned virtual machines, wherein a subset of the plurality of cloned executing virtual machines, independently, perform 1) creating a copy of a page of the shared memory as a dedicated memory page associated with the respective individual cloned virtual machine and 2) writing to the associated dedicated memory page;
subsequent to the concurrent execution, determining a capability of the first host computing device to support an additional virtual machine;
in response to determining that the first host computing device is not capable of supporting the additional virtual machine, selecting from the plurality of cloned virtual machines a cloned virtual machine that has the highest number of dedicated memory pages of the shared memory;
migrating the cloned virtual machine that has the highest number of dedicated memory pages of the shared memory from the first host computing device to a second host computing device and leaving at least one remaining cloned virtual machine from the plurality of cloned virtual machines on the first host computing device; and
reclaiming the dedicated memory pages of the migrated cloned virtual machine to allow the placement of the additional virtual machine.
|