AUTOMATIC REPLICATION AND MIGRATION OF LIVE VIRTUAL MACHINES
Systems and methods are disclosed herein to automatically replicate and migrate live virtual machine image (VM) files from a primary VM computing device to secondary VM computing devices. The operating parameters (e.g., cost of operation, power consumption, etc.) of a number of secondary VM computing devices are analyzed. Replicas of the primary VM image is stored in the secondary VM devices with operating parameters that meet limiting parameters defined in an SLA. The primary VM image is indexed by its constituent data blocks in an active index, which is compared against a stale index of data blocks. A comparison of the indices will indicate when new data is added to the VM image. The new data is used to update the replicas. Migration is performed by copying the primary VM image or awakening a hibernated secondary VM image replica, and hibernating the current primary VM image.
1 . A computer-implemented method of automatically replicating and migrating live virtual machines, the method comprising:
comparing, in a primary backend computing device, a plurality of first virtual machine image components from a first virtual machine image and a plurality of second virtual machine image components from updates applied to the first virtual machine image, to identify new virtual machine image components;
updating, in each of a plurality of secondary backend computing devices, a replica of the first virtual machine image with the new virtual machine image components;
calculating, in the primary backend computing device, a plurality of operating parameter values for each of the plurality of secondary backend computing devices and the primary backend computing device;
comparing, in the primary backend computing device, the operating parameter values for each of the plurality of secondary backend computing devices and the primary backend computing device, wherein an operating range within limits of the operating parameter values is defined for each operating parameter by a computer-coded business rule;
selecting at least one secondary backend computing device from the plurality of backend computing devices, where the operating parameter values of the selected secondary backend computing device are within the range of the limits and the operating parameter values of the primary backend computing device are outside the range of the limits; and
activating, in the selected secondary backend computing device, the replica of the updated first virtual machine image as a new first virtual machine, thereby designating the selected secondary backend computing device as a new primary backend computing device and re-designating the primary backend computing device as a secondary backend computing device.
2 . The method according to claim 1 , wherein the plurality of operating parameter values are calculated from a plurality of input parameters provided from each of the primary and secondary backend computing devices.
3 . The method according to claim 2 , wherein the operating parameters include network bandwidth, processor consumption, memory capacity, power consumed, heat generated, number of access users allowed and cost of resources.
4 . The method according to claim 1 , wherein comparing the first and second virtual machine image components is performed by content based redundancy elimination method, including Rabin fingerprints.
5 . The method according to claim 1 , wherein the operating parameters and the operating ranges in the computer-coded business rule are defined by a service level agreement (SLA) between a virtual machine service provider and a client of the virtual machine service provider.
6 . The method according to claim 1 , wherein updating a replica of the first virtual machine is performed by implementing a write coalescing of the new active virtual machine image components, and then compressing the new active virtual machine image components
7 . A computer-implemented system of automatically replicating and migrating live virtual machines, the method comprising:
comparing, in a primary backend computing device, a plurality of first virtual machine image components from a first virtual machine image and a plurality of second virtual machine image components from updates applied to the first virtual machine image, to identify new virtual machine image components;
updating, in each of a plurality of secondary backend computing devices, a replica of the first virtual machine image with the new virtual machine image components;
calculating, in the primary backend computing device, a plurality of operating parameter values for each of the plurality of secondary backend computing devices and the primary backend computing device;
comparing, in the primary backend computing device, the operating parameter values for each of the plurality of secondary backend computing devices and the primary backend computing device, wherein an operating range within limits of the operating parameter values is defined for each operating parameter by a computer-coded business rule;
selecting at least one secondary backend computing device from the plurality of backend computing devices, where the operating parameter values of the selected secondary backend computing device are within the range of the limits and the operating parameter values of the primary backend computing device are outside the range of the limits; and
activating, in the selected secondary backend computing device, the replica of the updated first virtual machine image as a new first virtual machine, thereby designating the selected secondary backend computing device as a new primary backend computing device and re-designating the primary backend computing device as a secondary backend computing device.
8 . The system according to claim 7 , wherein the plurality of operating parameter values are calculated from a plurality of input parameters provided from each of the primary and secondary backend computing devices.
9 . The system according to claim 8 , wherein the operating parameters include network bandwidth, processor consumption, memory capacity, power consumed, heat generated, number of access users allowed and cost of resources.
10 . The system according to claim 7 , wherein comparing the first and second virtual machine image components is performed by content based redundancy elimination method, including Rabin fingerprints.
11 . The system according to claim 7 , wherein the operating parameters and the operating ranges in the computer-coded business rule are defined by a service level agreement (SLA) between a virtual machine service provider and a client of the virtual machine service provider.
12 . The system according to claim 7 , wherein updating a replica of the first virtual machine is performed by implementing a write coalescing of the new active virtual machine image components, and then compressing the new active virtual machine image components.