Efficient suspend and resume of instances
First Claim
1. A computer-implemented method, comprising:
- under the control of one or more computer systems configured with executable instructions,receiving a first request whose fulfillment involves suspending operations of a fleet of virtual machines of a customer of a computing resource service provider;
as a result of receiving the first request, for each virtual machine of the fleet of virtual machines;
preventing the virtual machine from receiving information from an external source that causes the virtual machine to perform work;
obtaining a first set of local changes at least in part from persistent storage, the first set of local changes representing at least in part the differences between a base snapshot of an exemplary virtual machine image and a first snapshot of the virtual machine;
capturing a second snapshot of the virtual machine;
determining a second set of local changes based at least in part on differences between the second snapshot and the first snapshot;
storing the first set of local changes and the second set of local changes; and
terminating the virtual machine;
receiving a second request whose fulfillment involves restoring former states of the fleet of virtual machines; and
as a result of receiving the second request, for each virtual machine of the fleet of virtual machines;
obtaining the first set of local changes, the second set of local changes, and the base snapshot from persistent storage;
obtaining the first snapshot at least in part from the base snapshot and the first set of local changes;
obtaining the second snapshot at least in part from the first snapshot and the second set of local changes; and
instantiating the virtual machine to a former state based at least in part on the second snapshot.
1 Assignment
0 Petitions
Accused Products
Abstract
A virtual machine is suspended as a result of receiving a request for suspending a plurality of virtual machines, and, for each virtual machine of the plurality, obtaining a first snapshot of an exemplary virtual machine, obtaining a second snapshot of the virtual machine, determining a set of changes based on the second snapshot and the first snapshot, storing the set of changes in persistent storage in association with the virtual machine, and terminating the virtual machine. The system and method further including receiving a request for restoring the plurality of virtual machines to corresponding previous states, and, for each virtual machine of the plurality, obtaining the first snapshot of the exemplary virtual machine, obtaining the second snapshot of the virtual machine, and restoring the virtual machine to a previous state based on the second snapshot.
-
Citations
23 Claims
-
1. A computer-implemented method, comprising:
under the control of one or more computer systems configured with executable instructions, receiving a first request whose fulfillment involves suspending operations of a fleet of virtual machines of a customer of a computing resource service provider; as a result of receiving the first request, for each virtual machine of the fleet of virtual machines; preventing the virtual machine from receiving information from an external source that causes the virtual machine to perform work; obtaining a first set of local changes at least in part from persistent storage, the first set of local changes representing at least in part the differences between a base snapshot of an exemplary virtual machine image and a first snapshot of the virtual machine; capturing a second snapshot of the virtual machine; determining a second set of local changes based at least in part on differences between the second snapshot and the first snapshot; storing the first set of local changes and the second set of local changes; and terminating the virtual machine; receiving a second request whose fulfillment involves restoring former states of the fleet of virtual machines; and as a result of receiving the second request, for each virtual machine of the fleet of virtual machines; obtaining the first set of local changes, the second set of local changes, and the base snapshot from persistent storage; obtaining the first snapshot at least in part from the base snapshot and the first set of local changes; obtaining the second snapshot at least in part from the first snapshot and the second set of local changes; and instantiating the virtual machine to a former state based at least in part on the second snapshot. - View Dependent Claims (2, 3, 4, 5, 6)
-
7. A system, comprising:
-
one or more processors; and memory including instructions that, when executed by the one or more processors, cause the system to; store a first set of local changes relative to a base snapshot and an initial snapshot; receive a first request whose fulfillment involves suspending operations of a first virtual machine provided by a computing resource service provider; as a result of receiving the first request; capture a second snapshot of a state of the first virtual machine; determine a second set of local changes based at least in part on differences between the second snapshot and a derived snapshot derived from the first set of local changes and the base snapshot; store the second set of local changes; and terminate the first virtual machine; receive a second request whose fulfillment involves instantiating a second virtual machine and configuring the second virtual machine to the state of the first virtual machine; and as a result of receiving the second request; derive a derived second snapshot based at least in part on the second set of local changes and the first set of local changes; instantiate the second virtual machine; and configure the second virtual machine to the state of the first virtual machine based at least in part on the derived second snapshot. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory computer-readable storage medium having stored thereon executable instructions that, when executed by one or more processors of a computer system, cause the computer system to at least:
-
receive a first request to suspend a set of virtual machines associated with an account of a customer of a computing resource service provider; and for each virtual machine of the set of virtual machines; obtain a first snapshot of an exemplary virtual machine; obtain a second snapshot of the virtual machine of the set of virtual machines; determine a first set of changes based at least in part on the second snapshot and the first snapshot; store the first set of changes in persistent storage in association with the virtual machine of the set of virtual machines; obtain a third snapshot of the virtual machine of the set of virtual machines; determine a second set of changes based at least in part on the third snapshot and the second snapshot; store the second set of changes in persistent storage in association with the virtual machine of the set of virtual machines; and terminate the virtual machine of the set of virtual machines; receive a second request to restore the set of virtual machines; and in response to receiving the second request for each virtual machine of the set of virtual machines; obtain the first set of changes and the second set of changes; derive the third second snapshot based at least in part on the second set of changes relative to the second snapshot and the first set of changes relative to the first snapshot; and instantiate and configure the virtual machine based at least in part on the third snapshot. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
Specification