IP Library Granted Patent US 9,626,212
Granted Patent B2
US 9,626,212 · App. 14/587,826 · Granted Apr 18, 2017

Live migration of virtual machines with memory state sharing

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 9,626,212
App. No.
14/587,826
Granted
Apr 18, 2017
Kind
B2
Abstract

Embodiments described herein rapidly migrate child virtual machines (VM) by leveraging shared memory resources between parent and child VMs. In a first, proactive phase, parent VMs are migrated to a plurality of potential target hosts. In a second, reactive phase, after a request is received to migrate a child VM to a selected target host, memory blocks that are unique to the child VM are migrated to the selected target host. In some examples, memory blocks are compressed and decompressed as needed. In other examples, the operation environment is modified. Aspects of the disclosure offer a high performance, resource efficient solution that outperforms traditional approaches in areas of software compatibility, stability, quality of service control, resource utilization, and more.

Claims (45)

1. A system comprising:

a memory area associated with a computing device, said memory area storing memory blocks; and

a processor programmed to:

transfer one or more memory blocks from a parent virtual machine (VM) to one or more target hosts;

receive a request to migrate a child VM associated with the parent VM;

identify one or more memory blocks in the child VM that are unique to the child VM; and

transfer the one or more identified memory blocks to the one or more target hosts.

2. The system of claim 1 , wherein the processor is programmed to compress the one or more identified memory blocks before the one or more identified memory blocks are transferred to the one or more target hosts.

3. The system of claim 1 , wherein the processor is programmed to compress the one or more identified memory blocks on a wide area network.

4. The system of claim 1 , wherein the processor is programmed to:

transfer the one or more identified blocks to the parent VM on the one or more target hosts for execution thereon.

5. The system of claim 1 , wherein the processor is programmed to:

receive a request to decompress a first portion of the one or more identified blocks;

selectively decompress the first portion of the one or more identified blocks during a first phase.

6. The system of claim 5 , wherein the processor is programmed to decompress a second portion of the one or more identified blocks at a predetermined rate during a second phase.

7. The system of claim 1 , wherein the processor is programmed to fork the child VM from the parent VM, the one or more memory blocks identified based on one or more activities associated with the child VM after being forked.

8. The system of claim 1 , wherein the processor is programmed to:

halt an execution of a script at the parent VM; and

resume execution of the script at the child VM, the one or more memory blocks identified based on the resumed execution of the script.

9. The system of claim 1 , wherein the processor is programmed to monitor the child VM for a triggering event, the request to migrate the child VM received based on the triggering event.

10. The system of claim 1 , wherein the processor is programmed to identify the one or more target hosts based on predetermined criteria.

11. A method for live migration with memory state sharing, said method comprising:

transferring one or more memory blocks from a parent virtual machine (VM) to one or more target hosts;

receiving a request to migrate a child VM associated with the parent VM;

identifying one or more memory blocks in the child VM that are unique to the child VM; and

transferring the one or more identified memory blocks to the one or more target hosts.

12. The method of claim 11 , further comprising compressing the one or more identified memory blocks on a wide area network before the one or more identified memory blocks are transferred to the one or more target hosts.

13. The method of claim 11 , further comprising:

receiving a request to decompress a first portion of the one or more identified blocks;

selectively decompressing the first portion of the one or more identified blocks during a first phase.

14. The method of claim 13 , further comprising decompressing a second portion of the one or more identified blocks at a predetermined rate during a second phase.

15. The method of claim 11 , further comprising:

halting an execution of a script at the parent VM; and

resuming execution of the script at the child VM, the one or more memory blocks identified based on the resumed execution of the script.

16. The method of claim 11 , further comprising monitoring the child VM for a triggering event, the request to migrate the child VM received based on the triggering event.

17. The method of claim 11 , further comprising identifying the one or more target hosts based on predetermined criteria.

18. One or more computer storage media including computer-executable instructions that, when executed, cause at least one processor to:

transfer one or more memory blocks from a parent virtual machine (VM) to one or more target hosts;

receive a request to migrate a child VM associated with the parent VM;

identify one or more memory blocks in the child VM that are unique to the child VM; and

transfer the one or more identified memory blocks to the one or more target hosts.

19. The one or more computer storage media of claim 18 , wherein the computer-executable instructions, when executed, cause at least one processor to compress the one or more identified memory blocks before the one or more identified memory blocks are transferred to the one or more target hosts.

20. The one or more computer storage media of claim 18 , wherein the computer-executable instructions, when executed, cause at least one processor to:

selectively decompress a first portion of the one or more identified blocks during a first phase; and

decompress a second portion of the one or more identified blocks at a predetermined rate during a second phase.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0314 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 25, 2015
From: BEVERIDGE, DANIEL JAMES; TARASUK-LEVIN, GABRIEL
To: VMWARE, INC.
Reel/Frame 035257/0745 →