Parentless virtual machine forking

US10564996B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10564996-B2
Application numberUS-201715665742-A
CountryUS
Kind codeB2
Filing dateAug 1, 2017
Priority dateAug 28, 2016
Publication dateFeb 18, 2020
Grant dateFeb 18, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Instructions to fork a source VM are received, and execution of the source VM is temporarily stunned. A destination VM is created, and a snapshot of a first virtual disk of the source VM is created. A checkpoint state of the source VM is transferred to the destination VM. The source VM has one or more virtual disks. One or more virtual disks associated with the destination VM are created and reference the one or more virtual disks of the source VM. Execution of the destination VM is restored using the transferred checkpoint state and the virtual disks of the destination VM in a way that allows the source VM to also resume execution. Forking VMs using the described operation provisions destination VMs in a manner that makes efficient use of memory and disk space, while enabling source VMs to continue execution after completion of the fork operation.

First claim

Opening claim text (preview).

We claim: 1. A computing system for forking a virtual machine (VM) comprising: one or more physical processors; and a computer readable memory having stored thereon program code for forking a VM which, upon execution by the one or more physical processors, causes the one or more physical processors to: receive instructions to fork a source VM; temporarily stun execution of the source VM; create a destination VM; create a snapshot of a virtual disk associated with the source VM; generate a first delta disk associated with the source VM, and a second delta disk associated with the destination VM; transfer a checkpoint state of the source VM to the destination VM; restore the destination VM using the transferred checkpoint state, the restored destination VM using the second delta disk as a writable disk; and restore the source VM from the checkpoint state, the restored source VM using the first delta disk as a writable disk, both the restored destination VM and the restored source VM referencing the created snapshot as read-only data. 2. The computing system of claim 1 , the computer readable memory having stored thereon program code for forking a VM which, upon execution by the one or more processors, further causes the one or more processors to customize the destination VM, wherein customizing the destination VM includes one or more of the following: assigning a Media Access Control (MAC) address, assigning an Internet Protocol (IP) address, or customizing a hostname. 3. The computing system of claim 1 , the computer readable memory having stored thereon program code for forking a VM which, upon execution by the one or more processors, further causes the one or more processors to reconfigure the destination VM, wherein reconfiguring the destination VM includes one or more of the following: adding a virtual central processing unit (CPU), removing a virtual CPU, adding virtual memory, removing virtual memory, managing virtual memory, adding virtual devices, removing virtual devices, or editing virtual devices. 4. The computing system of claim 1 , the computer readable memory having stored thereon program code for forking a VM which, upon execution by the one or more processors, further causes the one or more processors to: create one or more additional destination VMs prior to restoring the source VM from the checkpoint state; transfer the checkpoint state from the source VM to the one or more additional destination VMs; generate additional delta disks for each snapshot-supported virtual disk associated with the source VM; and restore the one or more additional destination VMs using the transferred checkpoint state, the additional destination VMs using the additional delta disks as writable disks and referencing the created snapshot as read-only data. 5. The computing system of claim 1 , wherein the virtual disk associated with the source VM is a child-most disk of a disk hierarchy including a plurality of virtual disks associated with the source VM prior to generating the first delta disk associated with the source VM. 6. The computing system of claim 1 , wherein transferring a checkpoint state of the source VM to the destination VM comprises: creating, by the source VM, the checkpoint state; pushing, by the source VM, the checkpoint state to a checkpoint cache at a kernel level; polling, by the destination VM, the checkpoint cache for the checkpoint state; and retrieving, by the destination VM, the checkpoint state from the checkpoint cache based on the polling of the checkpoint cache. 7. The computing system of claim 1 , wherein the virtual disk and the first and second delta disks are indexed disks including index portions and data extent portions; and generating the first and second delta disks includes copying an index portion of the virtual disk to the first and second delta disks such that the index portions of the first and second delta disks reference a data extent portion of the index portion of the virtual disk. 8. A computerized method of forking a virtual machine (VM) comprising: receiving instructions to fork a source VM; temporarily stunning execution of the source VM; creating a destination VM; creating a snapshot of a virtual disk associated with the source VM; generating a first delta disk associated with the source VM, and a second delta disk associated with the destination VM; transferring a checkpoint state of the source VM to the destination VM; restoring the destination VM using the transferred checkpoint state, the restored destination VM using the second delta disk as a writable disk; and restoring the source VM from the checkpoint state, the restored source VM using the first delta disk as a writable disk, both the restored destination VM and the restored source VM referencing the created snapshot as read-only data. 9. The computerized method of claim 8 , further comprising customizing the destination VM, wherein customizing the destination VM includes one or more of the following: assigning a Media Access Control (MAC) address, assigning an Internet Protocol (IP) address, or customizing a hostname. 10. The computerized method of claim 8 , further comprising reconfiguring the destination VM, wherein reconfiguring the destination VM includes one or more of the following: adding a virtual CPU, removing a virtual CPU, adding virtual memory, removing virtual memory, managing virtual memory, adding virtual devices, removing virtual devices, or editing virtual devices. 11. The computerized method of claim 8 , further comprising: creating one or more additional destination VMs prior to restoring the source VM from the checkpoint state; transferring the checkpoint state from the source VM to the one or more additional destination VMs; generating additional delta disks associated with the one or more additional destination VMs; and restoring the one or more additional destination VMs using the transferred checkpoint state, the additional destination VMs using the additional delta disks as writable disks and referencing the created snapshot as read-only data. 12. The computerized method of claim 8 , wherein the virtual disk associated with the source VM is a child-most disk of a disk hierarchy including a plurality of virtual disks associated with the source VM prior to generating the first delta disk associated with the source VM. 13. The computerized method of claim 8 , wherein transferring a checkpoint state of the source VM to the destination VM comprises: creating, by the source VM, the checkpoint state; pushing, by the source VM, the checkpoint state to a checkpoint cache at a kernel level; polling, by the destination VM, the checkpoint cache for the checkpoint state; and retrieving, by the destination VM, the checkpoint state from the checkpoint cache based on the polling of the checkpoint cache. 14. The computerized method of claim 8 , wherein the virtual disk and the first and second delta disks are indexed disks including index portions and data extent portions; and generating the first and second delta disks includes copying an index portion of the virtual disk to the first and second delta disks such that the index portions of the first and second delta disks reference a data extent portion of the index portion of the virtual disk. 15. One or more non-transitory computer storage media having computer-executable instructions for forking a VM that, upon execution by a processor, causes the processor to: receive instructions to fork a source VM; temporarily stun execution of the source VM; create a destination VM; create a snapshot of a vi

Assignees

Inventors

Classifications

  • Hypervisor-specific management and integration aspects · CPC title

  • resumption being on a different machine, e.g. task migration, virtual machine migration (G06F9/5088 takes precedence) · CPC title

  • Configuring for program initiating, e.g. using registry, configuration files · CPC title

  • Creating, deleting, cloning virtual machine instances · CPC title

  • Starting, stopping, suspending or resuming virtual machine instances · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10564996B2 cover?
Instructions to fork a source VM are received, and execution of the source VM is temporarily stunned. A destination VM is created, and a snapshot of a first virtual disk of the source VM is created. A checkpoint state of the source VM is transferred to the destination VM. The source VM has one or more virtual disks. One or more virtual disks associated with the destination VM are created and re…
Who is the assignee on this patent?
Vmware Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/45558. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 18 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).