US 11,853,785 B1
Virtual machine cloning and resource configuration
Oleksii Tsai, Kenmore, WA (US); Nikolay Krasilnikov, Seattle, WA (US); Anton Valter, Renton, WA (US); and Alexey Gadalin, Kirkland, WA (US)
Assigned to Amazon Technologies, Inc., Seattle, WA (US)
Filed by Amazon Technologies, Inc., Seattle, WA (US)
Filed on Mar. 2, 2020, as Appl. No. 16/806,619.
Int. Cl. G06F 9/455 (2018.01); G06F 9/50 (2006.01); H04L 67/10 (2022.01)
CPC G06F 9/45558 (2013.01) [G06F 9/5077 (2013.01); H04L 67/10 (2013.01); G06F 2009/45562 (2013.01); G06F 2009/45579 (2013.01); G06F 2009/45591 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A cloud provider system comprising:
a first set of physical host machines comprising one or more processors and hosting a plurality of virtual machine instances;
a second set of physical host machines hosting a plurality of block storage volumes usable by the plurality of virtual machine instances; and
an instance cloning service comprising computer hardware, wherein the instance cloning service is configured to:
receive a request to clone a first virtual machine instance of the plurality of virtual machine instances, wherein the first virtual machine instance is hosted on a first physical host machine of the first set of physical host machines and is attached to a first block storage volume of the plurality of block storage volumes;
identify a second physical host machine of the first set of physical host machines to be used for cloning the first virtual machine instance;
copy state information associated with the first virtual machine instance onto the second physical host machine;
cause the second virtual machine instance to be executed, based at least on the state information copied onto the second physical host machine, on the second physical host machine;
attach the second virtual machine instance to the first block storage volume while the first virtual machine instance is still attached to the first block storage volume such that all input/output (I/O) requests from the first virtual machine instance and all I/O requests from the second virtual machine instance are both directed to the first block storage volume;
monitor a collective level of the I/O requests from the first virtual machine instance and the second virtual machine instance;
determine that the collective level of the I/O requests from the first virtual machine instance and the second virtual machine instance has reached or exceeded an I/O threshold level associated with the first block storage volume; and
cause the second virtual machine instance to be detached from the first block storage volume and attached to a second block storage volume that is different from the first block storage volume and unattached, prior to the determination, to the second virtual machine instance, such that I/O requests from the first virtual machine instance are directed to the first block storage volume and I/O requests from the second virtual machine instance are directed to the second block storage volume.