IP Library Granted Patent US 10,379,892
Granted Patent B2
US 10,379,892 · App. 15/193,393 · Granted Aug 13, 2019

Systems and methods for repurposing virtual machines

Inventor: Sanjay Harakhchand Kripalani (Morganville, NJ)
Assignee: Commvault Systems, Inc.
G06F9/45558G06F3/0605G06F3/067G06F3/0608G06F3/0632G06F3/0664G06F8/65G06F9/45533G06F2009/45575G06F2009/45595
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 10,379,892
App. No.
15/193,393
Granted
Aug 13, 2019
Kind
B2
Abstract

Software, firmware, and systems repurpose existing virtual machines. After a virtual machine is created, the system stores data associated with the virtual machine to permit its later repurposing. Repurposing data includes data associated with the virtual machine when the virtual machine is in a generic state from which it may be configured for use by two or more users/applications. When the system receives a request to create a new virtual machine, rather than create a brand new virtual machine, the system repurposes an existing virtual machine. The system identifies a virtual machine to repurpose, deletes data associated with the identified virtual machine, and loads a saved copy of repurposing data. The system may then load user data or otherwise customize the database and virtual machine.

Claims (49)

1. A method to be performed by a computing system for repurposing a virtual machine, the method comprising:

receiving a request that a virtual machine be created for a user, wherein the request includes a set of configuration parameters for the virtual machine;

identifying one or more existing virtual machines repurposable to the user that include configuration parameters that match the set of configuration parameters for the virtual machine included in the request;

selecting an existing virtual machine for repurposing to the user associated with the request, by:

when there is an idle virtual machine that matches the set of configuration parameters identified in the request, selecting the idle virtual machine from multiple idle virtual machines for repurposing to the user at least based on a time period that the idle virtual machine has been idle; and

when there is no idle virtual machine that matches the set of configuration parameters identified in the request, selecting an archived virtual machine that matches the set of configuration parameters identified in the request, for repurposing to the user; and

repurposing the selected virtual machine for the user by loading repurposing data to the selected virtual machine, including switching permissions or ownership of the repurposed machine from a previous user of the repurposed virtual machine to the user associated with the request.

2. The method of claim 1 , wherein selecting an existing virtual machine for repurposing to the user associated with the request includes selecting an existing virtual machine based on a relative similarity between the existing virtual machine and the requested virtual machine.

3. The method of claim 1 , further comprising:

customizing the repurposed virtual machine for the user based at least in part on credentials associated with the user.

4. The method of claim 1 , wherein loading repurposing data to the selected virtual machine includes:

deleting data corresponding to the repurposing data, wherein the data corresponding to the repurposing data is presently associated with the selected virtual machine, and

merging the repurposing data with the selected virtual machine.

5. The method of claim 1 , wherein the repurposing data includes a copy of a database in a data storage management system that stores metadata, media management, policies, reporting, and licensing information for the selected virtual machine.

6. The method of claim 1 , wherein the repurposing data includes a copy of a database associated with the selected virtual machine, wherein the copy of the database was created before the selected virtual machine was customized by or for a user.

7. The method of claim 1 , wherein:

the set of configuration parameters for the virtual machine includes at least one required configuration parameter and at least one preferred configuration parameter; and

the set of configuration parameters include one or more of: a network identity for the virtual machine, a username of a user requesting the virtual machine, credentials associated with the user, a required range for a virtual processor's speed, a required amount of random access memory, a preferred hard disk size, or a required operating system.

8. A non-transitory computer-readable storage medium storing instructions, which when executed by at least one data processing device, performs a method comprising:

receiving a request that a virtual machine be created for a user, wherein the request comprises a set of configuration parameters and their associated ranges of values for the virtual machine;

identifying a set of one or more existing virtual machines repurposable to the user that include configuration parameters, wherein each configuration parameter has values within a range of values specified in the received request for that configuration parameter;

selecting an existing virtual machine for repurposing to the user associated with the request, by:

when there is a presently unused virtual machine in the set of one or more existing virtual machines repurposable to the user, selecting the presently unused virtual machine from multiple presently unused virtual machines for repurposing to the user at least based on a time period that the existing virtual machine has not been in use; and

when there is no presently unused virtual machine in the set of one or more existing virtual machines repurposable to the user, selecting an archived virtual machine for repurposing to the user; and

repurposing the selected virtual machine for the user by loading repurposing data to the selected virtual machine, including switching permissions or ownership of the repurposed machine from a previous user of the repurposed virtual machine to the user associated with the request.

9. The non-transitory computer-readable storage medium of claim 8 , wherein selecting an existing virtual machine for repurposing to the user associated with the request includes selecting an existing virtual machine based on a relative similarity between the existing virtual machine and the requested virtual machine.

10. The non-transitory computer-readable storage medium of claim 8 , further comprising:

customizing the repurposed virtual machine for the user based at least in part on credentials associated with the user.

11. The non-transitory computer-readable storage medium of claim 8 , wherein loading repurposing data to the selected virtual machine includes:

deleting data corresponding to the repurposing data, wherein the data corresponding to the repurposing data is presently associated with the selected virtual machine, and

merging the repurposing data with the selected virtual machine.

12. The non-transitory computer-readable storage medium of claim 8 , wherein the repurposing data includes a copy of a database in a data storage management system that stores metadata, media management, policies, reporting, and licensing information for the selected virtual machine.

13. The non-transitory computer-readable storage medium of claim 8 , wherein the repurposing data includes a copy of a database associated with the selected virtual machine, wherein the copy of the database was created before the selected virtual machine was customized by or for a user.

14. A system for repurposing a virtual machine, the system comprising:

at least one memory storing computer-executable instructions;

at least one processor configured to access at least one memory and execute the computer-executable instructions to perform a set of acts, the set of acts comprising:

receiving a request that a virtual machine be created for a user, wherein the request includes a set of configuration parameters for the virtual machine;

identifying one or more existing virtual machines repurposable to the user that include configuration parameters that match the set of configuration parameters for the virtual machine included in the request;

selecting an existing virtual machine for repurposing to the user associated with the request, by:

when there is an idle virtual machine that matches the set of configuration parameters identified in the request, selecting the idle virtual machine from multiple idle virtual machines for repurposing to the user at least based on a time period that the idle virtual machine has been idle; and

when there is no idle virtual machine that matches the set of configuration parameters identified in the request, selecting an archived virtual machine that matches the set of configuration parameters identified in the request, for repurposing to the user; and

repurposing the selected virtual machine for the user by loading repurposing data to the selected virtual machine, including switching permissions or ownership of the repurposed machine from a previous user of the repurposed virtual machine to the user associated with the request.

15. The system of claim 14 , wherein selecting an existing virtual machine for repurposing to the user associated with the request includes selecting an existing virtual machine based on a relative similarity between the existing virtual machine and the requested virtual machine.

16. The system of claim 14 , wherein the set of acts further comprise:

customizing the repurposed virtual machine for the user based at least in part on credentials associated with the user.

17. The system of claim 14 , wherein loading repurposing data to the selected virtual machine includes:

deleting data corresponding to the repurposing data, wherein the data corresponding to the repurposing data is presently associated with the selected virtual machine, and

merging the repurposing data with the selected virtual machine.

18. The system of claim 14 , wherein the repurposing data includes a copy of a database in a data storage management system that stores metadata, media management, policies, reporting, and licensing information for the selected virtual machine.

Assignments (3)
SUPPLEMENTAL CONFIRMATORY GRANT OF SECURITY INTEREST IN UNITED STATES PATENTS Recorded Apr 16, 2025
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 070864/0344 →
SECURITY INTEREST Recorded Dec 13, 2021
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 058496/0836 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 27, 2016
From: KRIPALANI, SANJAY HARAKHCHAND
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 039013/0992 →
Continuity (3)
Continuation 13765389 · Feb 12, 2013
Provisional Application 61746823 · Dec 28, 2012
Related Publication 20160306651A1 · Oct 20, 2016
Cited By (5)
US 12,235,744 US 12,360,942 US 12,519,693 US 12,639,173 US 12,681,817