IP Library Granted Patent US 8,443,365
Granted Patent B2
US 8,443,365 · App. 12/938,987 · Granted May 14, 2013

Methods and systems to clone a virtual machine instance

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 8,443,365
App. No.
12/938,987
Granted
May 14, 2013
Kind
B2
Abstract

In one embodiment, an initialization script including instructions to define a value of a parameter at a cloned virtual machine instance is generated and stored at a virtual disk of a source virtual machine instance. The value of the parameter at the cloned virtual machine instance is different from the value of the parameter at the source virtual machine instance. An image of the virtual disk is then sent to a virtual machine module. The cloned virtual machine instance is instantiated at the virtual machine module based on the image of the virtual disk.

Claims (60)

1. A method of cloning a source virtual machine instance, comprising:

accessing an initialization script including instructions to define a value of a parameter at a cloned virtual machine instance, the value of the parameter at the cloned virtual machine instance being different from a value of the parameter at the source virtual machine instance;

storing the initialization script at a virtual disk of the source virtual machine instance; and

sending an image of the virtual disk to a virtual machine module.

2. The method of claim 1 , further comprising:

executing the initialization script at the cloned virtual machine instance in response to instantiation of the cloned virtual machine instance at the virtual machine module; and

defining the value of the parameter at the cloned virtual machine instance during the executing.

3. The method of claim 1 , wherein the virtual machine module is in communication with a hypervisor, the method further comprising:

requesting instantiation of the cloned virtual machine instance at the virtual machine module based on the image of the virtual disk, the initialization script executed independent of the hypervisor within the cloned virtual machine instance in response to the instantiation of the cloned virtual machine instance.

4. The method of claim 1 , further comprising:

generating, before the sending, the virtual machine module; and

providing an identifier of the virtual machine module to the initialization script.

5. The method of claim 1 , further comprising:

defining a customization script including instructions to customize the cloned virtual machine instance;

storing the customization script at the virtual disk; and

scheduling the initialization script to execute before the customization script during initialization of the cloned virtual machine instance.

6. The method of claim 1 , wherein:

the virtual machine module is a destination virtual machine module in communication with a hypervisor of a first hypervisor class; and

the source virtual machine instance is at a source virtual machine module in communication with a hypervisor of a second hypervisor class, the second hypervisor class being different from the first hypervisor class.

7. The method of claim 1 , further comprising:

receiving a clone request to prepare the source virtual machine instance for cloning before the accessing, the accessing being in response to the clone request.

8. The method of claim 1 , further comprising:

generating the initialization script before the accessing; and

requesting instantiation of the cloned virtual machine instance at the virtual machine module based on the image of the virtual disk in response to the clone request.

9. A method of cloning a source virtual machine instance, comprising:

storing an initialization script at a virtual disk of the source virtual machine instance;

sending an image of the virtual disk to a first virtual machine module and a second virtual machine module;

providing a first virtual machine identifier to a first cloned virtual machine instance at the first virtual machine module;

defining a value of a parameter at the first cloned virtual machine instance based on the initialization script and the first virtual machine identifier;

providing a second virtual machine identifier to a second cloned virtual machine instance at the second virtual machine module; and

defining a value of the parameter at the second cloned virtual machine instance based on the initialization script and the second virtual machine identifier, the value of the parameter at the second cloned virtual machine instance different from the value of the parameter at the first cloned virtual machine instance.

10. The method of claim 9 , wherein the parameter of the first cloned virtual machine instance is different from the parameter of the second cloned virtual machine instance.

11. The method of claim 9 , wherein:

the parameter of the first cloned virtual machine instance is a first cryptographic key; and

the parameter of the second cloned virtual machine instance is a second cryptographic key.

12. The method of claim 9 , wherein:

the parameter of the first cloned virtual machine instance is a communications network address of the first cloned virtual machine instance; and

the parameter of the second cloned virtual machine instance is a communications network address of the second cloned virtual machine instance.

13. The method of claim 9 , wherein:

the parameter of the first cloned virtual machine instance is a static Internet Protocol address of the first cloned virtual machine instance; and

the parameter of the second cloned virtual machine instance is a static Internet Protocol address of the second cloned virtual machine instance different from the static Internet Protocol address of the first cloned virtual machine instance.

14. The method of claim 9 , further comprising:

receiving a clone request; and

generating the initialization script in response to the clone request.

15. The method of claim 9 , wherein:

the first virtual machine module is compatible with a first hypervisor class; and

the second virtual machine module is compatible with a second hypervisor class, the second hypervisor class being different from the first hypervisor class.

16. A non-transitory processor-readable medium storing code representing instructions to cause a processor to perform a process, the process comprising:

receiving a clone request;

storing, in response to the clone request, an initialization script including instructions to differentiate a cloned virtual machine instance from a source virtual machine instance at a virtual disk of the source virtual machine instance;

sending an image of the virtual disk to a virtual machine module, the image of the virtual disk including the initialization script; and

requesting instantiation of the cloned virtual machine instance based on the image of the virtual disk image at the virtual machine module.

17. The processor-readable medium of claim 16 , the process further comprising:

generating the initialization script in response to the clone request.

18. The processor-readable medium of claim 16 , wherein the initialization script is a first initialization script, the processor further comprising:

storing a second initialization script including instructions to customize the cloned virtual machine instance at the virtual disk of the source virtual machine instance; and

scheduling the second initialization script for execution at the cloned virtual machine instance after the first initialization script.

19. The processor-readable medium of claim 16 , wherein the instructions of the initialization script include instructions to differentiate the cloned virtual machine instance from the source virtual machine instance by defining a cryptographic key for the cloned virtual machine instance, the cryptographic key for the cloned virtual machine instance different from a cryptographic key of the source virtual machine instance.

20. The processor-readable medium of claim 16 , wherein:

the instructions of the initialization script include instructions to differentiate the cloned virtual machine instance from the source virtual machine instance by defining a communications network address for the cloned virtual machine instance, the communications network address for the cloned virtual machine instance different from a communications network address of the source virtual machine instance.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2025
From: REGIONAL RESOURCES LIMITED
To: NETFLIX, INC.
Reel/Frame 069838/0271 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NAMES OF ASSIGNOR AND ASSIGNEE PREVIOUSLY RECORDED ON REEL 66203 FRAME 908. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 25, 2024
From: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
To: REGIONAL RESOURCES LIMITED
Reel/Frame 066640/0982 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2024
From: WIPRO LIMITED
To: KNAPP INVESTMENT COMPANY LIMITED
Reel/Frame 066203/0908 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 9, 2015
From: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 037079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2010
From: KUMAR, AGARWAL SUMIT
To: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P.
Reel/Frame 025501/0561 →