IP Library Granted Patent US 10,114,664
Granted Patent B1
US 10,114,664 · App. 14/859,389 · Granted Oct 30, 2018

Systems and methods for automated delivery and identification of virtual drives

Inventors: Soumya Tripathy (West Bengal, IN); Aditya Deshpande (Pune, IN); Amit Gupte (Maharashtra, IN); Mohini Rahalkar (Maharashtra, IN)
Assignee: Veritas Technologies LLC
G06F9/45533G06F9/45558G06F2009/45583
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,114,664
App. No.
14/859,389
Granted
Oct 30, 2018
Kind
B1
Abstract

A computer-implemented method for automated delivery and identification of virtual drives may include (1) creating a drive-template archive that contains a collection of virtual-drive templates, each of which contains a unique burned-in configuration identifier, (2) receiving, a provision request to provision a virtual drive for a requesting virtual machine, (3) fulfilling the provision request by (A) creating a copy of an appropriate virtual-drive template that matches the specification of the provision request and (B) providing the copy of the appropriate virtual-drive template to the requesting virtual machine, and (4) utilizing, at the requesting virtual machine, the copy of the appropriate virtual-drive template in response to determining that the burned-in configuration identifier of the copy of the appropriate virtual-drive template corresponds to a drive configuration that fulfills the provision request. Various other methods, systems, and computer-readable media are also disclosed.

Claims (58)

1. A computer-implemented method for automated delivery and identification of virtual drives, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

creating a drive-template archive that comprises a plurality of virtual-drive templates, each virtual-drive template comprising a burned-in configuration identifier that:

includes information describing the configuration of the virtual-drive template;

is encoded directly into the virtual-drive template such that systems external to the virtual-drive template are able to read the information describing the configuration of the virtual-drive template from the virtual-drive template; and

is not shared by any other virtual-drive template in the plurality of virtual-drive templates;

receiving, from a requesting application executing on a requesting virtual machine, a provision request to provision a virtual drive for the requesting virtual machine, the provision request identifying at least one configuration specification of the virtual drive;

in response to receiving the provision request, fulfilling the provision request by:

creating, from the plurality of virtual-drive templates, a copy of an appropriate virtual-drive template that matches the configuration specification of the provision request;

converting the copy of the appropriate virtual-drive template into a fulfilling virtual-drive template by modifying, based at least in part on identification information of the requesting application included in the provision request, the burned-in configuration identifier of the copy of the appropriate virtual-drive template to include the identification information of the requesting application, thereby indicating that the fulfilling virtual-drive template is intended to be utilized by the requesting application executing on the requesting virtual machine; and

providing the fulfilling virtual-drive template to the requesting virtual machine; and

utilizing, by the requesting application executing on the requesting virtual machine, the fulfilling virtual-drive template in response to determining, at the requesting virtual machine, that the information included within the burned-in configuration identifier of the fulfilling virtual-drive template indicates that the fulfilling virtual-drive template is intended to be utilized by the requesting application.

2. The method of claim 1 , wherein creating the drive-template archive further comprises generating a configuration ontology list that describes the configuration of each virtual-drive template.

3. The method of claim 2 , further comprising providing the configuration ontology list to the requesting virtual machine before the requesting virtual machine issues the provision request.

4. The method of claim 1 , wherein the step of fulfilling the provision request occurs automatically without manual intervention and in response to receiving the provision request.

5. The method of claim 1 , wherein the burned-in configuration identifier is written to a predetermined sector of the virtual drive template.

6. The method of claim 1 , wherein the burned-in configuration identifier is associated with an infrastructure administrator that manages the drive-template archive.

7. The method of claim 1 , wherein utilizing the fulfilling virtual-drive template comprises configuring the fulfilling virtual-drive template into a complete virtual drive.

8. The method of claim 1 , wherein utilizing the fulfilling virtual-drive template comprises providing the modified burned-in configuration identifier to the requesting application.

9. The method of claim 1 , wherein fulfilling the provision request further comprises:

determining that the drive-template archive does not contain virtual-drive templates that match the specification of the provision request;

generating a new virtual-drive template that matches the specification of the provision request;

tagging the new virtual-drive template with a new burned-in configuration identifier that identifies the configuration of the new virtual-drive template; and

providing the new virtual-drive template as an appropriate virtual-drive template that matches the configuration specification of the provision request.

10. A system for automated delivery and identification of virtual drives, the system comprising:

a creation module, stored in a memory, that creates a drive-template archive that comprises a plurality of virtual-drive templates, each virtual-drive template comprising a burned-in configuration identifier that:

includes information describing the configuration of the virtual-drive template; is encoded directly into the virtual-drive template such that systems external to the virtual-drive template are able to read the information describing the configuration of the virtual-drive template from the virtual-drive template; and

is not shared by any other virtual-drive template in the plurality of virtual-drive templates;

a receiving module, stored in the memory, that receives, from as requesting application executing on a requesting virtual machine, a provision request to provision a virtual drive for the requesting virtual machine, the provision request identifying at least one configuration specification of the virtual drive;

a fulfilling module, stored in the memory, that, in response to the receiving module receiving the provision request, fulfils the provision request by:

creating, from the plurality of virtual-drive templates, a copy of an appropriate virtual-drive template that matches the configuration specification of the provision request;

converting the copy of the appropriate virtual-drive template into a fulfilling virtual-drive template by modifying, based at least in part on identification information of the requesting application included in the provision request, the burned-in configuration identifier of the copy of the appropriate virtual-drive template to include the identification information of the requesting application, thereby indicating that the fulfilling virtual-drive template is intended to be utilized by the application executing on the requesting virtual machine; and

providing the fulfilling virtual-drive template to the requesting virtual machine;

a utilizing module, stored in the memory, that utilizes, by the requesting application executing on the requesting virtual machine, the fulfilling virtual-drive template in response to determining, at the requesting virtual machine, that the information included within the burned-in configuration identifier of the fulfilling virtual-drive template indicates that the fulfilling virtual-drive template is intended to be utilized by the requesting application; and

at least one physical computer processor configured to execute the creation module, the receiving module, the fulfilling module, and the utilizing module.

11. The system of claim 10 , wherein the creation module creates the drive-template archive at least in part by generating a configuration ontology list that describes the configuration of each virtual-drive template.

12. The system of claim 11 , wherein the creation module provides the configuration ontology list to the requesting virtual machine before the requesting virtual machine issues the provision request.

13. The system of claim 10 , the fulfilling module fulfills the provision request automatically without manual intervention and in response to receiving the provision request.

14. The system of claim 10 , wherein the creation module writes the burned-in configuration identifier to a predetermined sector of the virtual drive template.

15. The system of claim 10 , wherein the creation module associates the burned-in configuration identifier with an infrastructure administrator that manages the drive-template archive.

16. The system of claim 10 , wherein the utilizing module utilizes the fulfilling virtual-drive template by configuring the fulfilling virtual-drive template into a complete virtual drive.

17. The system of claim 10 , wherein the utilizing module utilizes the fulfilling virtual-drive template by providing the modified burned-in configuration identifier to the requesting application.

18. The system of claim 10 , wherein the fulfilling module fulfils the provision request by:

determining that the drive-template archive does not contain virtual-drive templates that match the specification of the provision request;

generating a new virtual-drive template that matches the specification of the provision request;

tagging the new virtual-drive template with a new burned-in configuration identifier that identities the configuration of the new virtual-drive template; and

provides the new virtual-drive template to the requesting virtual machine as an appropriate virtual-drive template that matches the configuration specification of the provision request.

19. A non-transitory computer-readable medium comprising one or more computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

create a drive-template archive that comprises a plurality of virtual-drive templates, each virtual-drive template comprising a burned-in configuration identifier that:

includes information describing the configuration of the virtual-drive template;

is encoded directly into the virtual-drive template such that systems external to the virtual-drive template are able to read the information describing the configuration of the virtual-drive template from the virtual-drive template; and

is not shared by any other virtual-drive template in the plurality of virtual-drive templates;

receive, from a requesting application executing on a requesting virtual machine, a provision request to provision a virtual drive for the requesting virtual machine, the provision request identifying at least one configuration specification of the virtual drive;

in response to receiving the provision request, fulfill the provision request by:

creating, from the plurality of virtual-drive templates, a copy of an appropriate virtual-drive template that matches the configuration specification of the provision request;

converting the copy of the appropriate virtual-drive template into a fulfilling virtual-drive template by modifying, based at least in part on identification information of the requesting application included in the provision request, the burned-in configuration identifier of the copy of the appropriate virtual-drive template to include the identification information of the requesting application, thereby indicating that the fulfilling virtual-drive template is intended to be utilized by the application executing on the requesting virtual machine; and

providing the fulfilling virtual-drive template to the requesting virtual machine; and

utilize, by the requesting application executing on the requesting virtual machine, the fulfilling virtual-drive template in response to determining, at the requesting virtual machine, that the information included within the burned-in configuration identifier of the fulfilling virtual-drive template indicates that the fulfilling virtual-drive template is intended to be utilized by the requesting application.

20. The non-transitory computer-readable medium of claim 19 , wherein the one or more computer-readable instructions further cause the computing device to generate a configuration ontology list that describes the configuration of each virtual-drive template.

Assignments (16)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038483/0203 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037693/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 21, 2015
From: TRIPATHY, SOUMYA; DESHPANDE, ADITYA; GUPTE, AMIT; RAHALKAR, MOHINI
To: SYMANTEC CORPORATION
Reel/Frame 036607/0001 →