Gang migration of virtual machines using cluster-wide deduplication
First Claim
1. A method for gang migration with global deduplication, comprising:
- providing a datacenter comprising;
a first plurality of virtual machines in a first cluster having a first controller, defined by a first set of information residing in a first storage medium,a second cluster having a second controller, defined by a second set of information residing in a second storage medium,the first cluster and the second cluster each communicating with each other through respective communication ports to at least one data communication network;
maintaining a first hash table of the memory pages of the first storage medium and a second hash table of the memory pages of the second storage medium;
performing a first cluster-wide deduplication of the first plurality of virtual machines, to identify first redundant memory pages of the first storage medium representing the respective virtual machines of the first cluster that have corresponding memory page content to each other based on at least the hashing of the memory pages;
tracking memory pages in the first storage medium that have changed content after hashing;
periodically exchanging the first and second hash tables between the first cluster and the second cluster through the at least one communication network;
initiating a simultaneous live migration of the first plurality of virtual machines, by communicating information to reconstitute the first plurality of virtual machines as a second plurality of virtual machines in the second cluster defined by a second set of information residing in a second storage niedium, through the at least one data communication network, after at least one exchange of the first and second hash tables;
receiving at least one memory page by the second cluster from a third cluster distinct from the first and second clusters, and updating the periodically exchanged second hash table to reflect the received at least one memory page from the third cluster;
based on the identification of the first redundant memory pages, the periodically exchanged first and second hash tables, and tracked memory pages that have changed content after hashing, selectively communicating information representing the unique memory pages of the first storage medium that are not already present in the second storage medium through the at least one communication network to the second storage medium without communicating more than one copy of unchanged redundant memory pages of the first storage medium or any copy of a memory page already in the second storage medium, and updating the periodically exchanged second hash table to reflect the communicated unique memory pages from the first cluster; and
subsequent to communication of the information representing the unique memory pages of the first storage medium through the at least one communication network, duplicating within the second cluster by the second controller, the redundant memory pages of the first storage medium and memory pages already in the second storage medium required for the second plurality of virtual machines, to reconstitute the second plurality of virtual machines within the second cluster.
1 Assignment
0 Petitions
Accused Products
Abstract
Datacenter clusters often employ live virtual machine (VM) migration to efficiently utilize cluster-wide resources. Gang migration refers to the simultaneous live migration of multiple VMs from one set of physical machines to another in response to events such as load spikes and imminent failures. Gang migration generates a large volume of network traffic and can overload the core network links and switches in a data center. The present technology reduces the network overhead of gang migration using global deduplication (GMGD). GMGD identifies and eliminates the retransmission of duplicate memory pages among VMs running on multiple physical machines in the cluster. A prototype GMGD reduces the network traffic on core links by up to 51% and the total migration time of VMs by up to 39% when compared to the default migration technique in QEMU/KVM, with reduced adverse performance impact on network-bound applications.
213 Citations
20 Claims
-
1. A method for gang migration with global deduplication, comprising:
-
providing a datacenter comprising; a first plurality of virtual machines in a first cluster having a first controller, defined by a first set of information residing in a first storage medium, a second cluster having a second controller, defined by a second set of information residing in a second storage medium, the first cluster and the second cluster each communicating with each other through respective communication ports to at least one data communication network; maintaining a first hash table of the memory pages of the first storage medium and a second hash table of the memory pages of the second storage medium; performing a first cluster-wide deduplication of the first plurality of virtual machines, to identify first redundant memory pages of the first storage medium representing the respective virtual machines of the first cluster that have corresponding memory page content to each other based on at least the hashing of the memory pages; tracking memory pages in the first storage medium that have changed content after hashing; periodically exchanging the first and second hash tables between the first cluster and the second cluster through the at least one communication network; initiating a simultaneous live migration of the first plurality of virtual machines, by communicating information to reconstitute the first plurality of virtual machines as a second plurality of virtual machines in the second cluster defined by a second set of information residing in a second storage niedium, through the at least one data communication network, after at least one exchange of the first and second hash tables; receiving at least one memory page by the second cluster from a third cluster distinct from the first and second clusters, and updating the periodically exchanged second hash table to reflect the received at least one memory page from the third cluster; based on the identification of the first redundant memory pages, the periodically exchanged first and second hash tables, and tracked memory pages that have changed content after hashing, selectively communicating information representing the unique memory pages of the first storage medium that are not already present in the second storage medium through the at least one communication network to the second storage medium without communicating more than one copy of unchanged redundant memory pages of the first storage medium or any copy of a memory page already in the second storage medium, and updating the periodically exchanged second hash table to reflect the communicated unique memory pages from the first cluster; and subsequent to communication of the information representing the unique memory pages of the first storage medium through the at least one communication network, duplicating within the second cluster by the second controller, the redundant memory pages of the first storage medium and memory pages already in the second storage medium required for the second plurality of virtual machines, to reconstitute the second plurality of virtual machines within the second cluster. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system for gang migration with global deduplication, in a datacenter comprising a plurality of virtual machines in a first cluster defined by a set information residing in a first storage medium, the first cluster communicating through at least one data communication network, comprising:
-
at least one first memory configured to store a first hash table representing hash values for memory pages of the first storage medium; at least one second memory configured to store a second hash table representing hash values of memory pages of a second cluster, distinct from the first cluster; at least one third memory configured to store an indication that a respective memory page of the first storage medium has a changed content since a prior hash value for the respective memory page was calculated; at least one processor configured to perform cluster-wide deduplication of the plurality of virtual machines of the first cluster to identify redundant memory pages of the first storage medium representing the respective virtual machines that have corresponding content; at least one communication link configured to communicate through the at least one communication network, to; periodically communicate the first hash table from the at least one first memory to the second cluster and to receive the second hash from the second cluster through the at least one data communication network to the at least one second memory; and perform a simultaneous live migration of the plurality of virtual machines in the first cluster, by communicating information for reconstituting the plurality of virtual machines to the second cluster defined by a set of information residing in a second storage medium; the at least one processor being further configured, based on the identification of the redundant memory pages having corresponding content, the at least one second memory, and at least one third memory, to selectively communicate information representing the unique memory pages of the first storage medium not present on the second storage medium, through the at least one communication network to the second storage medium, without communicating redundant copies and memory pages having unchanged content of the memory pages of the first storage medium. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A method for migration of virtual machines with global deduplication, comprising:
-
providing a plurality of virtual machines having an active status for processing workload at a local facility, defined by a set of stored information comprising redundant portions, the network being interconnected with a wide area network; identifying at least a subset of the redundant portions of the stored information; generating a hash table of hashes of respective memory pages of the plurality of virtual machines, and maintaining a list of respective memory pages that have changed content after the respective hash is generated; periodically transmitting the generated hash table, and periodically receiving a remote hash table from a remote location providing an identifier of content of pages present at the remote location, through the wide area network; initiating a simultaneous migration of the plurality of virtual machines by communicating through the wide area network to the remote location information for reconstituting the plurality of virtual machines at the remote location from; information comprising portions of the set of stored information that are not identified as the redundant portions, and portions of the stored information whose content has changed after the respective hash is generated, and excluding redundant copies of the subset of the redundant portions of the stored information and information already present at the remote location; receiving at a remote location the data to reconstitute the plurality of virtual machines; duplicating the subset of the redundant portions of the stored information to reconstitute the set of stored information defining the plurality of virtual machines and the information already present at the remote location; and transferring the active status from the plurality of virtual machines to the reconstituted plurality of virtual machines at the remote location, such that the reconstituted plurality of virtual machines at the remote location assume processing of the workload from the plurality of virtual machines at the local facility.
-
Specification