IP Library Granted Patent US 8,473,557
Granted Patent B2
US 8,473,557 · App. 12/862,382 · Granted Jun 25, 2013

Methods and apparatus to migrate virtual machines between distributive computing networks across a wide area network

Inventors: Kadangode K. Ramakrishnan (Berkeley Heights, NJ); Jacobus Van Der Merwe (New Providence, NJ); Prashant Shenoy (Northampton, MA); Timothy Wood (Amherst, MA)
Assignee: AT&T Intellectual Property I, L.P.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,473,557
App. No.
12/862,382
Granted
Jun 25, 2013
Kind
B2
Abstract

Methods and apparatus to migrate virtual machines between distributive computing networks across a wide area network are disclosed. A disclosed example method includes establishing a data link across a wide area network between a first distributive computing network and a second distributive computing network, the first distributive computing network including a virtual machine operated by a first host communicatively coupled to a virtual private network via a first virtual local area network, communicatively coupling a second host included within the second distributive computing network to the virtual private network via a second virtual local area network, and migrating the virtual machine via the data link by transmitting a memory state of at least one application on the first host to the second host while the at least one application is operating.

Claims (65)

1. A method comprising:

establishing, by a processor, a data link across a wide area network between a first distributive computing network and a second distributive computing network, the first distributive computing network including a virtual machine operated by a first host communicatively coupled to a virtual private network via a virtual local area network;

migrating, by the processor, the virtual machine via the data link to a second host included within the second distributive computing network by transmitting a memory state of an application on the first host to the second host while the application is operating;

pausing, by the processor, the application on the first host; and

while the application is paused, transferring, by the processor, a final memory state of the application on the first host to the second host.

2. The method of claim 1 , further comprising operating the virtual machine at the second host within the second distributive computing network upon receiving a portion of the memory state.

3. The method of claim 1 , further comprising determining the second host by identifying available disk space within a server.

4. The method of claim 1 , further comprising using an address resolution protocol to update a router with an address associated with the second host to route data between the virtual private network and the second host.

5. The method of claim 1 ,

wherein migrating the virtual machine via the data link to the second host included within the second distributive computing network by transmitting memory state of the application on the first host to the second host comprises:

iteratively transferring memory associated with the application operating on the virtual machine at the first host to the second host,

recording a number of pages associated with the memory remaining to be transferred for the application in a sliding history buffer, and

determining when a number of pages associated with the memory remaining is lower than any previous entry in the sliding history buffer; and

wherein pausing the application comprises pausing the application when the number of pages associated with the memory remaining is lower than any previous entry in the sliding history buffer.

6. The method of claim 1 , wherein migrating the virtual machine via the data link to the second host included within the second distributive computing network by transmitting the memory state of the application on the first host to the second host comprises transferring the memory state using content-based redundancy.

7. The method of claim 1 , wherein migrating the virtual machine via the data link to the second host included within the second distributive computing network by transmitting the memory state of the application on the first host to the second host comprises:

storing a cache of transmitted pages associated with the memory state of the application;

determining a difference between portions of modified pages and the transmitted pages stored; and

transmitting the difference to the second host.

8. The method of claim 1 , wherein migrating the virtual machine comprises transferring a disk state of the application to the second host at the second distributive computing network.

9. The method of claim 8 , wherein transferring the disk state comprises:

transferring the disk state asynchronously until the second host is at a consistent state with the first host; and

upon the second host reaching the consistent state, synchronously propagating disk updates as the disk updates occur at the virtual machine on the first host to second the host.

10. The method of claim 8 , wherein transferring the disk state comprises:

accessing a storage area network with the second distributive computing network; and

transmitting the disk state from the storage area network to the second host.

11. The method of claim 1 , further comprising:

aggregating the second host into a group with other hosts located at other distributive computing networks; and

allocating the second host and the other hosts within the group among virtual machines.

12. The method of claim 1 , further comprising:

determining an issue associated with the first distributive computing network; and

determining to mitigate the issue by migrating the virtual machine to the second distributive computing network.

13. An apparatus comprising:

a processor; and

a memory storing instructions that, when executed by the processor, cause the processor to perform operations comprising

establishing a data link across a wide area network between a first distributive computing network and a second distributive computing network, the first distributive computing network including a virtual machine operated by a first host communicatively coupled to a virtual private network via a first virtual local area network,

migrating the virtual machine via the data link to a second host included within the second distributive computing network by transmitting a memory state of an application on the first host to the second host while the application is operating,

pausing the application on the first host, and

while the application is paused, transferring a final memory state of the application on the first host to the second host.

14. The apparatus of claim 13 , wherein the memory stores further instructions that, when executed by the processor, cause the processor to perform operations comprising communicatively coupling the second host to the virtual private network via a second virtual local area network.

15. The apparatus of claim 13 ,

wherein migrating the virtual machine via the data link to the second host included within the second distributive computing network by transmitting the memory state of the application on the first host to the second host comprises

iteratively transferring memory associated with the application operating on the virtual machine at the first host to the second host,

recording a number of pages associated with the memory remaining to be transferred for the application in a sliding history buffer, and

determining when a number of pages associated with the memory remaining is lower than any previous entry in the sliding history buffer; and

wherein pausing the application comprises pausing the application when the number of pages associated with the memory remaining is lower than any previous entry in the sliding history buffer.

16. The apparatus of claim 13 , wherein migrating the virtual machine via the data link to the second host included within the second distributive computing network by transmitting the memory state of the application on the first host to the second host comprises:

storing a cache of transmitted pages associated with the memory state of the application;

determining a difference between portions of modified pages and the transmitted pages stored; and

transmitting the difference to the second host.

17. The apparatus of claim 13 , wherein migrating the virtual machine comprises transferring a disk state of the application to the host at the second distributive computing network.

18. The apparatus of claim 17 , wherein transferring the disk state comprises:

transferring the disk state asynchronously until the second host is at a consistent state with the first host; and

upon the second host reaching the consistent state, synchronously propagating disk updates as the disk updates occur at the virtual machine on the first host to second the host.

19. A tangible computer readable medium storing instructions that, when executed by a processor, cause the processor to perform operations comprising:

establishing a data link between a first distributive computing network and a second distributive computing network, the first distributive computing network including a virtual machine operated by a first host communicatively coupled to a virtual private network via a virtual local area network;

migrating the virtual machine via the data link by transmitting a memory state of an application on the first host to a second host included within the second distributive computing network while the at least one application is operating;

pausing the application on the first host; and

while the application is paused, transferring a final memory state of the application on the first host to the second host.

20. The tangible computer readable medium of claim 19 ,

wherein migrating the virtual machine via the data link by transmitting the memory state of the application on the first host to a second host included within the second distributive computing network comprises

iteratively transferring memory associated with the application operating on the virtual machine at the first host to the second host,

recording a number of pages associated with the memory remaining to be transferred for the application in a sliding history buffer, and

determining when a number of pages associated with the memory remaining is lower than any previous entry in the sliding history buffer; and

wherein pausing the application comprises pausing the application when the number of pages associated with the memory remaining is lower than any previous entry in the sliding history buffer.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 24, 2013
From: SHENOY, PRASHANT; WOOD, TIMOTHY
To: UNIVERSITY OF MASSACHUSETTS
Reel/Frame 030675/0134 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2010
From: RAMAKRISHNAN, KADANGODE K.; VAN DER MERWE, JACOBUS
To: AT&T INTELLECTUAL PROPERTY I, L.P., A NEVADA PARTNERSHIP
Reel/Frame 025005/0856 →
Continuity (1)
Related Publication 20120054367A1 · Mar 1, 2012