IP Library › Granted Patent US 9,594,598
Granted Patent B1
US 9,594,598 · App. 14/738,439 · Granted Mar 14, 2017

Live migration for virtual computing resources utilizing network-based storage

Inventors: Pieter Kristian Brouwer (Issaquah, WA); Kristina Kraemer Brenneman (Bellevue, WA); Marc John Brooker (Seattle, WA); Jerry Lin (Seattle, WA); Marc Stephen Olson (Bellevue, WA)
Assignee: Amazon Technologies, Inc.
G06F9/5077G06F9/45558G06F9/5088G06F2009/4557
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,594,598
App. No.
14/738,439
Granted
Mar 14, 2017
Kind
B1
Abstract

Live migration may be performed for virtual computing resources utilizing network-based storage. A virtual compute instance operating at a source host may be moved to a destination host. The virtual compute instance may be a client of a network-based storage resource that stores data for the virtual compute instance. Access to the data stored for the virtual compute instance may be limited to the source host. When migration is performed, the destination host may be prepared to assume operation of the virtual compute instance. Operation of the virtual compute instance at the source host may be paused and the access to the data at the network-based storage resource may be modified to limit access to the destination host. Operation of the virtual compute instance may then resume at the destination host.

Claims (65)

1. A system, comprising:

a plurality of compute nodes, configured to implement:

a plurality of hosts for virtual compute instances;

a control plane;

the control plane, configured to:

for a virtual compute instance operating at a source host that is identified for live migration to a destination host and is a client of a network-based storage resource that stores data for which access is limited to the source host:

pause operation of the virtual compute instance at the source host upon preparation of the destination host for operation of the virtual compute instance;

modify the access to the data stored by the network-based storage resource to limit the access to the data stored by the network-based storage resource to the destination host of the virtual compute instance instead of the source host of the virtual compute instance; and

resume operation of the virtual compute instance at the destination host.

2. The system of claim 1 ,

wherein the access to the data is enforced according to a lease state for hosts connected to the network-based resource;

wherein to prepare the destination host, the control plane is configured to direct the destination host to establish a connection with the network-based storage resource with a standby lease state; and

wherein to modify the access to the data, the control plane is configured to direct that a flip request be sent to the network-based resource to promote the standby lease state for the destination host to a primary lease state and demote a primary lease state for the source host to a deactivated lease state.

3. The system of claim 2 , wherein the network-based storage resource partitions the data for the virtual compute instance amongst a plurality of partition hosts, wherein the destination host is directed to establish the connection with the standby lease with the plurality of partition hosts, and wherein the flip request is sent to the plurality of partition hosts.

4. The system of claim 1 , wherein the virtual compute instance is hosted as part of a virtual computing service of a provider network, wherein the network based storage resource is a virtual block-based data volume implemented as part of a virtual block-based storage service of the provider network.

5. A method, comprising:

performing, by one or more computing devices:

for a virtual compute instance operating at a source host that is identified for migration to a destination host and is a client of a network-based storage resource that stores data for the virtual compute instance:

pausing operation of the virtual compute instance at the source host;

modifying access to the data stored by the network-based storage resource so that the data stored by the network-based storage resource is accessible by the destination host instead of the source host; and

resuming operation of the virtual compute instance at the destination host.

6. The method of claim 5 ,

wherein the access to the data is enforced according to a lease state for hosts connected to the network-based resource at the network-based resource,

wherein the method further comprises establishing a connection between the destination host and the network-based storage resource with a standby lease state prior to modifying the access to the data; and

wherein modifying the access to the data comprises sending a request to the network-based resource to promote the standby lease state for the destination host to a primary lease state and demote a primary lease state for the source host to a deactivated lease state.

7. The method of claim 6 , wherein the network-based storage resource partitions the data for the virtual compute instance amongst a plurality of partition hosts, wherein the connection with the standby lease is established between the destination host and the plurality of partition hosts, and wherein the request is sent to the plurality of partition hosts.

8. The method of claim 5 ,

wherein the access to the data is enforced according to a single connection limitation to the network-based resource, wherein the source host is connected to the network-based storage resource; and

wherein modifying the access to the data comprises sending a connection request to the network-based resource from the destination host to establish a connection between the destination host and the network-based storage resource such that the source host is disconnected from the network-based storage resource host.

9. The method of claim 5 , further comprising:

performing the pausing as part of an attempt to perform a migration for another virtual compute instance operating at another source host to move the other virtual compute instance to another destination host;

in response to determining that a modification to the access to the data for the other virtual compute instance failed to complete:

aborting the migration for the other virtual compute instance; and

resuming operation of the other virtual compute instance at the other source host.

10. The method of claim 5 , further comprising:

upon pausing operation of the virtual compute instance, sending one or more pending access requests to the network-based storage resource to be performed.

11. The method of claim 5 , further comprising:

upon pausing operation of the virtual compute instance, finalizing the destination host for operation of the virtual compute instance.

12. The method of claim 5 , further comprising:

upon resuming operation of the virtual compute instance at the destination host, reclaiming resources at the source host implementing the virtual compute instance for performing other tasks.

13. The method of claim 5 , wherein the virtual compute instance is hosted as part of a virtual computing service of a provider network, wherein the network based storage resource is a virtual block-based data volume implemented as part of a virtual block-based storage service of the provider network.

14. A non-transitory, computer-readable storage medium, storing program instructions that when executed by one or more computing devices cause the one or more computing devices to implement:

performing a migration to move a virtual compute instance operating at a source host to a destination host, wherein the virtual compute instance is a client of a network-based storage resource that stores data for the virtual compute instance, and wherein the migration comprises:

preparing the destination host for operation of the virtual compute instance, wherein the virtual compute instance continues operating at the source host;

pausing operation of the virtual compute instance at the source host;

finalizing the destination host for operation of the virtual compute instance;

modifying access to the data stored by the network-based storage resource so that the data stored by the network-based storage resource is accessible by the destination host instead of the source host; and

resuming operation of the virtual compute instance at the destination host.

15. The non-transitory, computer-readable storage medium of claim 14 ,

wherein the access to the data is enforced according to a lease state for hosts connected to the network-based resource,

wherein, in preparing the destination host, the program instructions cause the one or more computing devices to implement establishing a connection between the destination host and the network-based storage resource with a standby lease state; and

wherein, in modifying the access to the data, the program instructions cause the one or more computing devices to implement sending a request to the network-based resource to promote the standby lease state for the destination host to a primary lease state and demote a primary lease state for the source host to a deactivated lease state.

16. The non-transitory, computer-readable storage medium of claim 15 , wherein the network-based storage resource partitions the data for the virtual compute instance amongst a plurality of partition hosts, wherein the connection with the standby lease is established between the destination host and the plurality of partition hosts, and wherein the request is sent to the plurality of partition hosts.

17. The non-transitory, computer-readable storage medium of claim 14 , wherein the program instructions cause the one or more computing devices to implement:

performing the preparing and the pausing as part of an attempt to perform a migration for another virtual compute instance operating at another source host to move the other virtual compute instance to another destination host;

in response to determining that a modification to limit the access to data for the other virtual compute instance failed to complete:

aborting the migration for the other virtual compute instance; and

performing a reboot migration to move the other virtual compute instance to a different host.

18. The non-transitory, computer-readable storage medium of claim 14 , wherein the program instructions cause the one or more computing devices to implement:

upon resuming operation of the virtual compute instance at the destination host, reclaiming resources at the source host implementing the virtual compute instance for performing other tasks.

19. The non-transitory, computer-readable storage medium of claim 14 , wherein the program instructions cause the one or more computing devices to implement

performing the preparing and the pausing as part of an attempt to perform a migration for another virtual compute instance operating at another source host to move the other virtual compute instance to another destination host, wherein the network-based storage resource partitions the data for the virtual compute instance amongst another plurality of partition hosts;

in response to determining that a modification to limit the access to data for the other virtual compute instance failed to complete at one or more of the other partition hosts:

aborting the migration for the other virtual compute instance.

20. The non-transitory, computer-readable storage medium of claim 14 , wherein the virtual compute instance is hosted as part of a virtual computing service of a provider network, wherein the network based storage resource is a virtual block-based data volume implemented as part of a virtual block-based storage service of the provider network.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2015
From: BROUWER, PIETER KRISTIAN; BRENNEMAN, KRISTINA KRAEMER; BROOKER, MARC JOHN; LIN, JERRY; OLSON, MARC STEPHEN
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 036456/0144 →