US 9,811,376 B2
Virtual machine instance migration using a triangle approach
Pieter Kristian Brouwer, Issaquah, WA (US); Kristina Kraemer Brenneman, Bellevue, WA (US); Marc John Brooker, Seattle, WA (US); Jerry Lin, Seattle, WA (US); and Marc Stephen Olson, Bellevue, WA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Jun. 29, 2015, as Appl. No. 14/754,497.
Prior Publication US 2016/0378546 A1, Dec. 29, 2016
Int. Cl. G06F 9/455 (2006.01); G06F 9/48 (2006.01)
CPC G06F 9/4856 (2013.01) [G06F 9/45558 (2013.01); G06F 2009/4557 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A computer-implemented method, comprising:
obtaining a first lease associating a virtual machine instance with a block storage device, the block storage device provided by a block-level storage service, the first lease specifying a first policy of access to the block storage device by the virtual machine instance, the first lease having a first status of active;
providing access to the virtual machine instance;
starting a migration of the virtual machine instance from a source computing device to a target computing device;
generating a second lease associating the virtual machine instance in the target computing device with the block storage device, the second lease specifying a second policy of access to the block storage device by the virtual machine instance, the second lease having a second status of standby, while the first lease has the first status of active;
updating the first status and the second status based at least in part on an indicator of progress of the migration;
based at least in part on the indicator of progress indicating a phase of the migration, pausing the access to the virtual machine instance;
receiving a set of input-output requests addressing the block storage device from the virtual machine instance; and
providing a response to input-output requests of the set of input-output requests, the response at least specifying a response location to which to send the response, the response location determined based at least in part on whether the first status is active, the response location selected from the source computing device and the target computing device, the response location corresponding to the source computing device before the phase and corresponding to the target computing device after the phase; and
based at least in part on the indicator of progress indicating the phase has ended, resuming the access to the virtual machine instance.