US2017024246A1PendingUtilityA1

Gang migration of virtual machines using cluster-wide deduplication

Assignee: UNIV NEW YORK STATE RES FOUNDPriority: Jan 9, 2013Filed: Jun 17, 2016Published: Jan 26, 2017
Est. expiryJan 9, 2033(~6.5 yrs left)· nominal 20-yr term from priority
Inventors:Kartik Gopalan
G06F 3/067G06F 3/0631G06F 3/0647G06F 3/0604G06F 2212/152G06F 12/1009G06F 2212/154G06F 9/4856
51
PatentIndex Score
0
Cited by
0
References
0
Claims

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.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
         1 . A memory management system, 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 first hash table of the memory pages of the first storage medium generated by the first controller;   a communication port configured to communicate through at least one data communication network with a second cluster, having a second controller, defined by a second set of information residing in a second storage medium, and having a second hash table of the memory pages of the second storage medium generated by the second controller; and   at least one automated processor, configured to:
 identify first redundant memory pages of the first storage medium representing the respective virtual machines of the first cluster that have identical memory page content based on at least the first hash table; 
 track memory pages in the first storage medium that have changed content with respect to the first hash table; and 
 control a periodic exchange of the first and second hash tables between the first cluster and the second cluster through the at least one communication network. 
   
     
     
         2 . The memory management system according to  claim 1 , wherein the at least one automated processor is further configured to deduplicate the first storage medium by eliminating the first redundant memory pages that have not been tracked to have changed content with respect to the first hash table. 
     
     
         3 . The memory management system according to  claim 1 , wherein the at least one automated processor is further configured to migrate a state of the first plurality of virtual machines in a first cluster to a second plurality of virtual machines in the second cluster, by communicating only unique memory pages of the first storage medium based on at least the identified first redundant memory pages and the tracked memory pages. 
     
     
         4 . The memory management system according to  claim 1 , wherein the at least one automated processor is further configured to control 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. 
     
     
         5 . The memory management system according to  claim 1 , further comprising a hypervisor implemented by the at least one automated processor to track the memory pages in the first storage medium that have changed content with respect to the first hash table, the hypervisor being configured to:
 control a respective virtual machine;   mark memory pages of a respective virtual machine as write-only after hashing;   maintain a shadow page table;   trap a first write attempt to a respective memory page;   update the shadow page table after the first write attempt to reflect the change, and   permit the write attempt to proceed.   
     
     
         6 . The memory management system according to  claim 1 , further comprising a third hash table received through the communication port from a third cluster, wherein the at least one processor is further configured to communicate at least one memory page through the communication port selectively dependent on at least a content of the third hash table. 
     
     
         7 . The memory management system according to  claim 1 , wherein the first controller maintains a page status for each memory page, and updates a page status for a respective memory page when the memory page is sent from the first cluster through the communication port. 
     
     
         8 . The memory management system according to  claim 1 , wherein the first controller resides within a respective virtual machine on the first cluster. 
     
     
         9 . The memory management system according to  claim 8 , wherein the first controller comprises has a memory space in a shared memory region which is inaccessible to the first plurality of virtual machines of the first cluster, and the first controller has access to the first set of information residing in a first storage medium. 
     
     
         10 . A method for managing memory, comprising:
 providing 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;   generating a first hash table of the memory pages of the first storage medium by the first controller;   communicating through at least one data communication network with a second cluster, having a second controller, defined by a second set of information residing in a second storage medium, and having a second hash table of the memory pages of the second storage medium generated by the second controller;   identifying first redundant memory pages of the first storage medium representing the respective virtual machines of the first cluster that have identical memory page content based on at least the first hash table;   tracking memory pages in the first storage medium that have changed content with respect to the first hash table; and   controlling a periodic exchange of the first and second hash tables between the first cluster and the second cluster through the at least one communication network.   
     
     
         11 . The method according to  claim 10 , further comprising deduplicating the first storage medium by eliminating the first redundant memory pages that have not been tracked to have changed content with respect to the first hash table. 
     
     
         12 . The method according to  claim 10 , further comprising migrating a state of the first plurality of virtual machines in a first cluster to a second plurality of virtual machines in the second cluster, by communicating only unique memory pages of the first storage medium based on at least the identified first redundant memory pages and the tracked memory pages. 
     
     
         13 . The method according to  claim 10 , further comprising controlling 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. 
     
     
         14 . The method according to  claim 10 , further comprising providing a hypervisor for tracking the memory pages in the first storage medium that have changed content with respect to the first hash table, said tracking comprising:
 controlling a respective virtual machine;   marking memory pages of a respective virtual machine as write-only after hashing;   maintaining a shadow page table;   trapping a first write attempt to a respective memory page;   updating the shadow page table after the first write attempt to reflect the change, and   permitting the write attempt to proceed.   
     
     
         15 . The method according to  claim 10 , further comprising providing a third hash table received through the communication network from a third cluster, further comprising communicating at least one memory page through the communication network selectively dependent on at least a content of the third hash table. 
     
     
         16 . The method according to  claim 10 , further comprising maintaining a page status for each memory page by the first controller, and updating a page status for a respective memory page when the memory page is sent from the first cluster through the communication network. 
     
     
         17 . The method according to  claim 10 , further comprising implementing the first controller within a respective virtual machine on the first cluster. 
     
     
         18 . The method according to  claim 17 , wherein the first controller comprises has a memory space in a shared memory region which is inaccessible to the first plurality of virtual machines of the first cluster, further comprising accessing, by the first controller, the first set of information residing in a first storage medium. 
     
     
         19 . A method for memory management, comprising:
 providing a plurality of virtual machines having an active status for processing workload, defined by a set of stored information comprising redundant portions;   generating a hash table comprising respective hashes of respective pages of the plurality of virtual machines;   identifying at least a subset of the redundant portions of the stored information based on at least the hash table;   maintaining a list of respective memory pages that have changed content after the respective hash is generated; and   periodically transmitting the generated hash table, and periodically receiving a remote hash table through a communication network.   
     
     
         20 . The method according to  claim 19 , further comprising reconstituting the plurality of virtual machines by:
 initiating a simultaneous migration of the plurality of virtual machines by communicating 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   transferring the active status from the plurality of virtual machines to the reconstituted plurality of virtual machines, 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.

Join the waitlist — get patent alerts

Track US2017024246A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.