Rapid suspend/resume for virtual machines via resource sharing
First Claim
Patent Images
1. A method comprising:
- receiving a request to resume execution of a suspended child virtual machine (VM) on a host machine, the child VM being one of a plurality of child VMs of a powered-on parent VM template, wherein respective child VMs of the plurality of child VMs are individually suspended and resumed while the parent VM template remains powered-on;
retrieving memory blocks that are associated with the suspended child VM, but are not associated with the powered-on parent VM template; and
executing the suspended child VM to produce a powered-on child VM including logically merging the loaded memory blocks of the suspended child VM with memory blocks shared with the powered-on parent VM template that are maintained resident in memory on the host through the powered-on state, wherein executing the suspended child VM includes using configuration data that specifies a memory state and a device state of the powered-on parent VM template to inherit such that the powered-on child VM resumes without undergoing a boot process.
1 Assignment
0 Petitions
Accused Products
Abstract
Examples quickly suspend and resume virtual desktops on demand or on schedule. Virtual desktops, or desktops as a service, are provided to users, where the virtual desktop is a forked VM, cloned VM, or otherwise at least a partial duplicate of an existing VM. The virtual desktop points to existing memory maintained by the existing VM, and the virtual desktop only writes to memory the pages that the virtual desktop creates or modifies.
-
Citations
20 Claims
-
1. A method comprising:
-
receiving a request to resume execution of a suspended child virtual machine (VM) on a host machine, the child VM being one of a plurality of child VMs of a powered-on parent VM template, wherein respective child VMs of the plurality of child VMs are individually suspended and resumed while the parent VM template remains powered-on; retrieving memory blocks that are associated with the suspended child VM, but are not associated with the powered-on parent VM template; and executing the suspended child VM to produce a powered-on child VM including logically merging the loaded memory blocks of the suspended child VM with memory blocks shared with the powered-on parent VM template that are maintained resident in memory on the host through the powered-on state, wherein executing the suspended child VM includes using configuration data that specifies a memory state and a device state of the powered-on parent VM template to inherit such that the powered-on child VM resumes without undergoing a boot process. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system comprising:
a memory area associated with a computing device, said memory area storing a plurality of memory blocks associated with a plurality of virtual machines (VMs) and a processor programed to perform operations comprising; receiving a request to resume execution of a suspended child virtual machine (VM) on a host machine, the child VM being one of a plurality of child VMs of a powered-on parent VM template, wherein respective child VMs of the plurality of child VMs are individually suspended and resumed while the parent VM template remains powered-on; retrieving memory blocks that are associated with the suspended child VM, but are not associated with the powered-on parent VM template; and executing the suspended child VM to produce a powered-on child VM including logically merging the loaded memory blocs of the suspended child VM with memory blocks shared with the powered-on parent VM template that are maintained resident in memory on the host through the powered-on state, wherein executing the suspended child VM includes using configuration data that specifies a memory state and a device state of the powered-on parent VM template to inherit such that the powered-on child VM resumes without undergoing a boot process. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
18. A method comprising:
-
receiving a request to suspend a child virtual machine (VM) executing on a host machine of a plurality of child VMs generated from a powered-on parent VM template resident on the same host, wherein respective child VMs of the plurality of child VMs are individually suspended and resumed while the parent VM template remains powered-on, wherein each child VM shares a first plurality of memory blocks with the parent VM template, the shared memory blocks including boot pages and shared application pages, and wherein each child VM stores new writes to a separate plurality of non-shared memory blocks as copy on write versions of the corresponding shared pages and; in response to the request to suspend the child VM, suspending the child VM including; identifying memory blocks of the child VM that are not shared with the parent VM template; and transferring only the identified memory blocks of the child VM that are not shared with the parent VM template to a storage memory. - View Dependent Claims (19, 20)
-
Specification