IP Library Granted Patent US 9,128,744
Granted Patent B2
US 9,128,744 · App. 13/587,018 · Granted Sep 8, 2015

Generating user-requested virtual machine templates from super virtual machine templates and cacheable patches

Inventors: Pradipta De (New Delhi, IN); Manish Gupta (New Delhi, IN); Deepak K. Jeswani (Rajasthan, IN)
Assignee: International Business Machines Corporation
G06F9/45558G06F8/63G06F2009/4557G06F2009/45562
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,128,744
App. No.
13/587,018
Granted
Sep 8, 2015
Kind
B2
Abstract

Techniques for creating a virtual machine super template to create a user-requested virtual machine template. A method includes identifying at least one virtual machine super template to be created via analyzing at least one existing template in a repository and/or a user-defined combination of software, creating the super template by installing software requested by the user to be within the super template, and creating a user-requested virtual machine template by un-installing software from the super template that is not required in the user-requested template and/or adding software to the super template required in the user-requested template that is not present in the super template.

Claims (24)

1. A method for creating at least one virtual machine super template to create a user-requested virtual machine template, the method comprising steps of:

identifying at least one virtual machine super template to be created via analyzing at least one existing template in a repository and a user-defined combination of software;

creating the at least one virtual machine super template by installing the user-defined combination of software to be within the at least one virtual machine super template;

creating multiple patches for multiple target virtual machine templates, wherein each of the multiple patches comprises a distinct patch between the at least one virtual machine super template and a corresponding one of multiple target virtual machine templates, wherein each patch comprises a cacheable component that includes (i) a fixed set of instructions to un-install software from the at least one virtual machine super template that is not required in the corresponding target virtual machine template and (ii) a fixed set of instructions to add software to the at least one virtual machine super template required in the corresponding target virtual machine template that is not present in the at least one virtual machine super template;

caching (i) the at least one virtual machine super template and (ii) each of the multiple patches in a searchable repository;

receiving a request for a user-requested virtual machine template;

analyzing the request and the searchable repository to determine a given patch from the multiple cached patches will optimize service time for the request;

fetching (i) the at least one virtual machine super template and (ii) the given patch from the searchable repository;

creating the user-requested virtual machine template by implementing the given patch to (i) un-install the software from the at least one virtual machine super template that is not required in the user-requested virtual machine template and (ii) add the software to the at least one virtual machine super template required in the user-requested virtual machine template that is not present in the at least one virtual machine super template; and

caching the user-requested virtual machine template in the searchable repository;

wherein at least one of the steps is carried out by a computer device.

2. The method of claim 1 , wherein use of the at least one virtual machine super template decreases network flow.

3. The method of claim 1 , comprising fetching (i) a cached virtual machine super template and (ii) one of the multiple patches from the searchable repository to generate the given user-requested virtual machine template upon receipt of a request for provisioning of the given user-requested virtual machine template.

4. The method of claim 1 , wherein said analyzing includes analyzing contents of a request log of user-requested virtual machine templates and sizes of software installed within the user-requested templates to determine what software is to be within each virtual machine super template.

5. The method of claim 1 , wherein said identifying comprises solving an optimization problem that includes constraints on capacity on a cache and/or size of an expected size of the at least one virtual machine super template.

6. A method for generating a user-requested virtual machine template, the method comprising:

creating a virtual machine super template based on user-defined criteria identifying software to be included in the virtual machine super template;

generating multiple user-requested virtual machine templates by un-installing software from an instance of the virtual machine super template that is not required in each of the user-requested virtual machine templates and adding software to the instance of the virtual machine super template required in each of the user-requested virtual machine templates that is not present in the instance of the virtual machine super template;

creating multiple patches for the multiple user-requested virtual machine templates, wherein each of the multiple patches comprises a distinct patch between the virtual machine super template and one of the user-requested virtual machine templates, wherein each of the multiple patches comprise a cacheable component that includes (i) a fixed set of instructions to un-install software from the virtual machine super template that is not required in the given user-requested virtual machine template and (ii) a fixed set of instructions to add software to the virtual machine super template required in the given user-requested virtual machine template that is not present in the virtual machine super template; and

caching (i) the virtual machine super template and (ii) each of the multiple patches in a searchable repository;

receiving a request for a user-requested virtual machine template;

analyzing the request and the searchable repository to determine a given patch from the multiple cached patches will optimize service time for the request;

fetching (i) the virtual machine super template and (ii) the given patch from the searchable repository; and

creating the user-requested virtual machine template by implementing the given patch to (i) un-install the software from the virtual machine super template that is not required in the user-requested virtual machine template and (ii) add the software to the virtual machine super template required in the user-requested virtual machine template that is not present in the virtual machine super template.

Continuity (2)
Continuation 13482268 · May 29, 2012
Related Publication 20130326496A1 · Dec 5, 2013