IP Library › Granted Patent US 12,307,276
Granted Patent B2
US 12,307,276 · App. 17/081,788 · Granted May 20, 2025

Virtual machine morphing for heterogeneous migration environments

Inventor: Pradeep Vincent (Kenmore, WA)
Assignee: Amazon Technologies, Inc.
G06F9/45558G06F9/4856G06F3/0647G06F2009/4557G06F2009/45595G06F9/5088G06F2201/865G06F2212/151
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 12,307,276
App. No.
17/081,788
Filed
Oct 27, 2020
Granted
May 20, 2025
Kind
B2
Art Unit
2195
USPC
718/1
Abstract

Virtual resources may migrate between virtual resource management types in a manner that allows the virtual resources to efficiently and effectively adapt to a new virtual resource management type. The migration may include determining that migration is capable based on information about the virtual resources. After which, the virtual resources may be migrated.

Claims (43)

1. A non-transitory computer-implemented method, comprising:

receiving a migration query associated with a virtual machine hosted by a service provider and implemented using a first type of virtual resource having a first set of capabilities;

accessing, from one or more agents executing within the virtual machine, characterizing information that characterizes one or more states of the virtual machine implemented using the first type of virtual resource;

accessing, from the one or more agents executing within the virtual machine, additional characterizing information that characterizes a migration capability of the virtual machine implemented using the first type of virtual resource;

prior to migrating the virtual machine, determining that the virtual machine is incapable of migration to a second type of virtual resource to be implemented by the second type of virtual resource based at least in part on the additional characterizing information, the second type of virtual resource having a second set of capabilities that is different than the first set of capabilities;

receiving a commitment request to commit to migrating the virtual machine from being implemented by the first type of virtual resource to being implemented by the second type of virtual resource after determining that the virtual machine is incapable of migration to the second type of virtual resource;

migrating the virtual machine from being implemented by the first type of virtual resource to being implemented by the second type of virtual resource after receiving the commitment request;

migrating the one or more agents with the virtual machine to the second type of virtual resource; and

adjusting, by the one or more agents, functionality of the virtual machine based at least in part on the additional characterizing information by reconfiguring an unsupported feature corresponding to the migration capability after migrating the virtual machine.

2. The computer-implemented method of claim 1 , further comprising providing a migration interface, wherein receiving the migration query comprises receiving the migration query via the migration interface.

3. The computer-implemented method of claim 2 , wherein receiving the commitment request comprises receiving the commitment request via the migration interface.

4. The computer-implemented method of claim 1 , further comprising testing migration of the virtual machine from being implemented by the first type of virtual resource to being implemented by the second type of virtual resource, and wherein receiving the commitment request comprises receiving the commitment request after testing migration of the virtual machine.

5. The computer-implemented method of claim 1 , wherein the one or more states characterized by the characterizing information comprise one or more of a migration state of the virtual machine, a number of physical processing units allocated to the virtual machine, a number of processing cores allocated to the virtual machine, one or more types of physical processing unit allocated to the virtual machine, a size or type of volatile data storage allocated to the virtual machine, a size or type of non-volatile data storage allocated to the virtual machine, a number or type of networking resources that are allocated to the virtual machine.

6. The computer-implemented method of claim 1 , wherein migrating the virtual machine from being implemented by the first type of virtual resource to being implemented by the second type of virtual resource comprises reconfiguring the virtual machine based at least in part on the characterizing information.

7. The computer-implemented method of claim 1 , wherein migrating the virtual machine from being implemented by the first type of virtual resource to being implemented by the second type of virtual resource is performed without changing implementation resources of the virtual machine.

8. A non-transitory computer-readable medium comprising computer-executable instructions that, when executed by one or more processors, cause a computing device to perform operations comprising:

receiving a migration query associated with a virtual machine hosted by a service provider and implemented using a first type of virtual resource having a first set of capabilities for the virtual machine;

accessing, from one or more agents executing within the virtual machine, characterizing information that characterizes one or more states of the virtual machine implemented using the virtual machine of the first type of virtual resource;

accessing, from the one or more agents executing within the virtual machine, additional characterizing information that characterizes a migration capability of the virtual machine implemented using the first type of virtual resource;

prior to migrating the virtual machine, determining that the virtual machine is incapable of migration to a second type of virtual resource to be implemented by the second type of virtual resource based at least in part on the additional characterizing information, the second type of virtual resource having a second set of capabilities for the virtual machine that is different than the first set of capabilities;

receiving a commitment request to commit to migrating the virtual machine from the first type of virtual resource to the second type of virtual resource after determining that the virtual machine is incapable of migration to the second type of virtual resource;

migrating the virtual machine from being implemented by the first type of virtual resource to being implemented by the second type of virtual resource after receiving the commitment request;

migrating the one or more agents with the virtual machine to the second type of virtual resource; and

adjusting, by the one or more agents, functionality of the virtual machine based at least in part on the additional characterizing information by reconfiguring an unsupported feature corresponding to the migration capability after migrating the virtual machine.

9. The non-transitory computer-readable medium of claim 8 , wherein the computer-readable medium comprises further instructions that, when executed by the one or more processors, cause the computing device to perform additional operations comprising providing a migration interface, wherein receiving the migration query comprises receiving the migration query via the migration interface.

10. The non-transitory computer-readable medium of claim 9 , wherein receiving the commitment request comprises receiving the commitment request via the migration interface.

11. The non-transitory computer-readable medium of claim 8 , wherein the computer-readable medium comprises further instructions that, when executed by the one or more processors, cause the computing device to perform additional operations comprising testing migration of the virtual machine from being implemented by the first type of virtual resource to being implemented by the second type of virtual resource, and wherein receiving the commitment request comprises receiving the commitment request after testing migration of the virtual machine.

12. The non-transitory computer-readable medium of claim 8 , wherein a first set of capabilities associated with the first type of virtual resource is different than a second set of capabilities associated with the second type of virtual resource.

13. The non-transitory computer-readable medium of claim 8 , wherein migrating the virtual machine from being implemented by the first type of virtual resource to being implemented by the second type of virtual resource comprises reconfiguring the virtual machine based at least in part on the characterizing information.

14. The non-transitory computer-readable medium of claim 8 , wherein migrating the virtual machine from being implemented by the first type of virtual resource to being implemented by the second type of virtual resource is performed without changing implementation resources of the virtual machine.

15. A server computer comprising memory for storing computer-executable instructions that, when executed by one or more processors, cause the server computer to perform operations comprising:

receiving a migration query associated with a virtual machine hosted by a service provider and implemented using a first type of virtual resource having a first set of capabilities for the virtual machine;

accessing, from one or more agents executing within the virtual machine, characterizing information that characterizes one or more states of the virtual machine implemented using the virtual machine of the first type of virtual resource;

accessing, from the one or more agents executing within the virtual machine, additional characterizing information that characterizes a migration capability of the virtual machine implemented using the first type of virtual resource;

prior to migrating the virtual machine, determining that the virtual machine is incapable of migration to a second type of virtual resource to be implemented by the second type of virtual resource based at least in part on the additional characterizing information, the second type of virtual resource having a second set of capabilities for the virtual machine that is different than the first set of capabilities;

receiving a commitment request to commit to migrating the virtual machine from the first type of virtual resource to the second type of virtual resource after determining that the virtual machine is incapable of migration to the second type of virtual resource;

migrating the virtual machine from being implemented by the first type of virtual resource to being implemented by the second type of virtual resource after receiving the commitment request;

migrating the one or more agents with the virtual machine to the second type of virtual resource; and

adjusting, by the one or more agents, functionality of the virtual machine based at least in part on the additional characterizing information by reconfiguring an unsupported feature corresponding to the migration capability after migrating the virtual machine.

16. The server computer of claim 15 , wherein the memory comprises further instructions that, when executed by the one or more processors, cause the server computer to perform additional operations comprising providing a migration interface, wherein receiving the migration query comprises receiving the migration query via the migration interface, and wherein receiving the commitment request comprises receiving the commitment request via the migration interface.

17. The server computer of claim 15 , wherein the memory comprises further instructions that, when executed by the one or more processors, cause the server computer to perform additional operations comprising testing migration of the virtual machine from being implemented by the first type of virtual resource to being implemented by the second type of virtual resource, and wherein receiving the commitment request comprises receiving the commitment request after testing migration of the virtual machine.

18. The computer-implemented method of claim 1 , wherein adjusting the functionality of the virtual machine further comprises deploying an augmentation package to the virtual machine.

19. The computer-implemented method of claim 18 , wherein the first type of virtual resource comprises at least one of a first type of virtual machine or a first type of virtual environment, and wherein the augmentation package comprises a package of augmentation functionality, a virtual machine component type, or a virtual machine component version.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 27, 2020
From: VINCENT, PRADEEP
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 054185/0839 →
Continuity (4)
Continuation 16356607 · Mar 18, 2019
Continuation 15141697 · Apr 28, 2016
Continuation 12965723 · Dec 10, 2010
Related Publication 20210042144A1 · Feb 11, 2021
References Cited (74)
US 6970902B1 · Moon et al. · 2005 [cited by applicant]
US 7506037B1 · Ciano et al. · 2009 [cited by applicant]
US 8171349B2 · Stern et al. · 2012 [cited by applicant]
US 8352608B1 · Keagy et al. · 2013 [cited by applicant]
US 8364802B1 · Keagy et al. · 2013 [cited by applicant]
US 8458717B1 · Keagy et al. · 2013 [cited by applicant]
US 8484653B2 · Tsirkin · 2013 [cited by applicant]
US 9102625B2 · Bauer et al. · 2015 [cited by applicant]
US 9329886B2 · Vincent · 2016 [cited by applicant]
US 10282225B2 · Vincent · 2019 [cited by applicant]
US 20020129126A1 · Chu et al. · 2002 [cited by applicant]
US 20060089995A1 · Kerr et al. · 2006 [cited by applicant]
US 20070180436A1 · Travostino et al. · 2007 [cited by applicant]
US 20070198797A1 · Kavuri · 2007 [cited by examiner]
US 20080040526A1 · Suzuki et al. · 2008 [cited by applicant]
US 20080134175A1 · Fitzgerald et al. · 2008 [cited by applicant]
US 20080263258A1 · Allwell · 2008 [cited by examiner]
US 20090228629A1 · Gebhart et al. · 2009 [cited by applicant]
US 20100115512A1 · Sakai · 2010 [cited by applicant]
US 20100131728A1 · Miyamae et al. · 2010 [cited by applicant]
US 20100175063A1 · Ciano et al. · 2010 [cited by applicant]
US 20100242045A1 · Swamy et al. · 2010 [cited by applicant]
US 20100306381A1 · Lublin et al. · 2010 [cited by applicant]
US 20100306486A1 · Balasubramanian et al. · 2010 [cited by applicant]
US 20100306773A1 · Lee et al. · 2010 [cited by applicant]
US 20110035755A1 · Huang · 2011 [cited by examiner]
US 20110138382A1 · Hauser et al. · 2011 [cited by applicant]
US 20110231839A1 · Bennett et al. · 2011 [cited by applicant]
US 20110265084A1 · Knowles · 2011 [cited by examiner]
US 20120144042A1 · Lublin et al. · 2012 [cited by applicant]
US 20120151476A1 · Vincent · 2012 [cited by applicant]
US 20130086298A1 · Alanis et al. · 2013 [cited by applicant]
US 20160246640A1 · Vincent · 2016 [cited by applicant]
CN 101765225 · 2010 [cited by applicant]
CN 103238136 · 2013 [cited by applicant]
EP 2649525 · 2013 [cited by applicant]
JP 2007183747 · 2007 [cited by applicant]
JP 2008217302 · 2008 [cited by applicant]
JP 2010033292 · 2010 [cited by applicant]
JP 2013544417 · 2013 [cited by applicant]
JP 5629018 · 2014 [cited by applicant]
JP 2014241178 · 2014 [cited by applicant]
WO 2012078471 · 2012 [cited by applicant]
“Convert Virtual Machines with VMware Converter”, Dedoimedo, Available Online at http://www.dedoimedo.com/computers/vmware-converter.html, Apr. 29, 2009, pp. 1-11. [cited by applicant]
U.S. Appl. No. 12/965,723 , “Final Office Action”, Feb. 14, 2014, 36 pages. [cited by applicant]
U.S. Appl. No. 12/965,723 , “Non-Final Office Action”, Aug. 14, 2013, 27 pages. [cited by applicant]
U.S. Appl. No. 12/965,723 , “Non-Final Office Action”, Aug. 27, 2015, 54 pages. [cited by applicant]
U.S. Appl. No. 12/965,723 , “Notice of Allowance”, Jan. 6, 2016, 24 pages. [cited by applicant]
U.S. Appl. No. 15/141,697 , “Final Office Action”, May 31, 2018, 27 pages. [cited by applicant]
U.S. Appl. No. 15/141,697 , “Non-Final Office Action”, Jan. 3, 2018, 28 pages. [cited by applicant]
U.S. Appl. No. 15/141,697 , “Notice of Allowance”, Dec. 20, 2018, 15 pages. [cited by applicant]
U.S. Appl. No. 16/356,607 , “Advisory Action”, May 28, 2020, 6 pages. [cited by applicant]
U.S. Appl. No. 16/356,607 , “Final Office Action”, Feb. 21, 2020, 38 pages. [cited by applicant]
U.S. Appl. No. 16/356,607 , “Non-Final Office Action”, Sep. 9, 2019, 63 pages. [cited by applicant]
U.S. Appl. No. 16/356,607 , “Notice of Allowance”, Jul. 27, 2020, 15 pages. [cited by applicant]
CA2,817,760 , “Notice of Allowance”, Nov. 17, 2016, 1 page. [cited by applicant]
CA2,817,760 , “Office Action”, Jan. 27, 2015, 3 pages. [cited by applicant]
CA2,817,760 , “Office Action”, Dec. 21, 2015, 5 pages. [cited by applicant]
Clark et al., “Live Migration of Virtual Machines”, NSDI 2005: 2nd Symposium on Networked Systems Design & Implementation, 2005, pp. 273-286. [cited by applicant]
CN201180058425.2 , “Office Action”, Aug. 18, 2015, 31 pages. [cited by applicant]
CN201180058425.2 , “Office Action”, Mar. 9, 2016, 9 pages. [cited by applicant]
EP11846689.5 , “Extended European Search Report”, Mar. 31, 2017, 11 pages. [cited by applicant]
EP11846689.5 , “Notice of Decision to Grant”, Mar. 21, 2019, 2 pages. [cited by applicant]
EP11846689.5 , “Office Action”, Feb. 1, 2018, 7 pages. [cited by applicant]
IN4321/DELNP/2013 , “First Examination Report”, Feb. 28, 2019, 6 pages. [cited by applicant]
JP2013-542215 , “Notice of Allowance”, Sep. 2, 2014, 3 pages. [cited by applicant]
JP2013-542215 , “Office Action”, May 13, 2014, 4 pages. [cited by applicant]
JP2014-204302 , “Notice of Allowance”, Aug. 9, 2016, 6 pages. [cited by applicant]
JP2014-204302 , “Office Action”, Jan. 5, 2016, 3 pages. [cited by applicant]
Migliardi et al., “Dynamic Reconfiguration and Virtual Machine Management in the Harness Metacomputing System”, Computing In Object-Oriented Parallel Environments, Second International Symposium, ISCOPE 98, Dec. 8-11, 1… [cited by applicant]
PCT/US2011/063108 , “International Preliminary Report on Patentability”, Jun. 20, 2013, 6 pages. [cited by applicant]
PCT/US2011/063108 , “International Search Report and Written Opinion”, Apr. 4, 2012, 11 pages. [cited by applicant]
SG201303652-0 , “Examination Report”, Oct. 11, 2013, 5 pages. [cited by applicant]
Verma et al., “The Cost of Reconfiguration in a Cloud”, Proceeding Middleware Industrial Track '10 Proceedings of the 11th International Middleware Conference Industrial track, Nov. 29, 2010, pp. 11-16. [cited by applicant]