IP Library Granted Patent US 10,901,636
Granted Patent B2
US 10,901,636 · App. 16/565,889 · Granted Jan 26, 2021

Target optimized auto provisioning of storage in a discoverable storage network

Inventors: Michael Enz (Fargo, ND); Ashwin Kamath (Cedar Park, TX); Jayaram Bhat (Cedar Park, TX); Chidambara Rameshkumar (Fremont, CA)
Assignee: OVH US LLC
G06F3/0632G06F3/0604G06F3/067G06F3/0664G06F13/1668G06F13/4027G06F13/4221G06F12/023G06F2213/0036
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,901,636
App. No.
16/565,889
Granted
Jan 26, 2021
Kind
B2
Abstract

A storage target comprising a computer memory configured with storage provisioning parameters and a map of initiator information to the storage provisioning parameters. The storage target is configured to receive a discovery request from a requesting initiator, extract identifying information from the discovery request, determine a set of storage provisioning parameters to which the requesting initiator maps based on the extracted identifying information and the map of initiator information to storage provisioning parameters, dynamically create a new virtual target for the requesting initiator according to the set of storage provisioning parameters, dynamically create a storage partition from storage space of a plurality of storage devices according to the set of storage provisioning parameters, assign the storage partition to the new virtual target and return information about the new virtual target to the requesting initiator to allow the requesting initiator to connect to the new virtual target.

Claims (48)

1. A storage target comprising:

a first interface to connect to a network;

a second interface to connect to a plurality of storage devices;

a computer memory configured with storage provisioning parameters and a map of initiator information to the storage provisioning parameters; and

a processor coupled to the first interface, the second interface and the computer memory, the processor configured to:

receive a discovery request from a requesting initiator on the network, the discovery request including identifying information for the requesting initiator;

extract the identifying information from the discovery request;

determine a set of storage provisioning parameters to which the requesting initiator maps based on the extracted identifying information and the map of initiator information to storage provisioning parameters;

dynamically create a new virtual target for the requesting initiator according to the set of storage provisioning parameters;

dynamically create a storage partition from storage space on the plurality of storage devices according to the set of storage provisioning parameters and assign the storage partition to the new virtual target; and

return information about the new virtual target to the requesting initiator to allow the requesting initiator to connect to the new virtual target.

2. The storage target of claim 1 , wherein the new virtual target is a virtual NVMe subsystem comprising a virtual controller.

3. The storage target of claim 2 , wherein creating the storage partition comprises creating a new NVMe namespace and wherein assigning the storage partition to the new virtual target comprises configuring the virtual controller with a virtual namespace identifier for the new NVMe namespace.

4. The storage target of claim 1 , wherein the new virtual target is an iSCSI target.

5. The storage target of claim 4 , wherein assigning the storage partition to the iSCSI target comprises assigning the storage partition as a LUN at the iSCSI target.

6. The storage target of claim 1 , wherein the map of initiator information to storage provisioning parameters comprises an expression dictionary that maps a plurality of expressions to a plurality of sets of provisioning parameters.

7. The storage target of claim 6 , wherein determining the set of storage provisioning parameters to which the initiator maps comprises recognizing a first expression from the expression dictionary in the identifying information and determining that the first expression maps to the set of storage provisioning parameters.

8. The storage target of claim 1 , wherein the processor is further configured to:

configure an access control list for the new virtual target to allow the requesting initiator to access the new virtual target and prevent other initiators on the network from accessing the new virtual target.

9. A method for dynamic storage provisioning comprising:

connecting a storage target to a network, the storage target configured with storage provisioning parameters and a map of initiator information to the storage provisioning parameters;

receiving, by the storage target, a discovery request from a requesting initiator on the network, the discovery request including identifying information for the requesting initiator;

extracting the identifying information from the discovery request;

determining a set of storage provisioning parameters to which the requesting initiator maps based on the extracted identifying information and the map of initiator information to storage provisioning parameters;

dynamically creating a new virtual target for the requesting initiator according to the set of storage provisioning parameters;

dynamically creating a storage partition from storage space on a plurality of storage devices according to the set of storage provisioning parameters;

assigning the storage partition to the new virtual target; and

returning, by the storage target, information about the new virtual target to the requesting initiator to allow the requesting initiator to connect to the new virtual target.

10. The method of claim 9 , wherein the new virtual target is a virtual NVMe subsystem comprising a virtual controller.

11. The method of claim 10 , wherein creating the storage partition comprises creating a new NVMe namespace and wherein assigning the storage partition to the new virtual target comprises configuring the virtual controller with a virtual namespace identifier for the new NVMe namespace.

12. The method of claim 9 , wherein the new virtual target is an iSCSI target.

13. The method of claim 12 , wherein assigning the storage partition to the iSCSI target comprises assigning the storage partition as a LUN at the iSCSI target.

14. The method of claim 9 , wherein the map of initiator information to storage provisioning parameters comprises an expression dictionary that maps a plurality of expressions to a plurality of sets of provisioning parameters.

15. The method of claim 14 , wherein determining the set of storage provisioning parameters to which the initiator maps comprises recognizing a first expression from the expression dictionary in the identifying information and determining that the first expression maps to the set of storage provisioning parameters.

16. The method of claim 9 , further comprising configuring an access control list for the new virtual target to allow the requesting initiator to access the new virtual target and prevent other initiators on the network from accessing the new virtual target.

17. A computer program product comprising a non-transitory computer readable medium storing computer-readable code executable by a processor to:

access a computer memory configured with storage provisioning parameters and a map of initiator information to the storage provisioning parameters;

receive a discovery request from a requesting initiator on a network, the discovery request including identifying information for the requesting initiator;

extract the identifying information from the discovery request;

determine a set of storage provisioning parameters to which the requesting initiator maps based on the extracted identifying information and the map of initiator information to storage provisioning parameters;

dynamically create a new virtual target for the requesting initiator according to the set of storage provisioning parameters;

dynamically create a storage partition from storage space on a plurality of storage devices according to the set of storage provisioning parameters and assign the storage partition to the new virtual target; and

return information about the new virtual target to the requesting initiator to allow the requesting initiator to connect to the new virtual target.

18. The computer program product of claim 17 , wherein the new virtual target is a virtual NVMe subsystem comprising a virtual controller and the storage partition comprises an NVMe namespace.

19. The computer program product of claim 17 , wherein the new virtual target is an iSCSI target.

20. The computer program product of claim 17 , wherein the map of initiator information to storage provisioning parameters comprises an expression dictionary that maps a plurality of expressions to a plurality of sets of provisioning parameters.

21. The computer program product of claim 20 , wherein determining the set of storage provisioning parameters to which the initiator maps comprises recognizing a first expression from the expression dictionary in the identifying information and determining that the first expression maps to the set of storage provisioning parameters.

22. The computer program product of claim 17 , wherein the computer-readable code is further executable to configure an access control list for the new virtual target to allow the requesting initiator to access the new virtual target and prevent other initiators on the network from accessing the new virtual target.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 8, 2020
From: EXTEN TECHNOLOGIES, INC.
To: OVH US LLC
Reel/Frame 054013/0948 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2020
From: ENZ, MICHAEL; KAMATH, ASHWIN; BHAT, JAYARAM; RAMESHKUMAR, CHIDAMBARA
To: EXTEN TECHNOLOGIES, INC.
Reel/Frame 053360/0673 →
Continuity (2)
Provisional Application 62729249 · Sep 10, 2018
Related Publication 20200081640A1 · Mar 12, 2020
Cited By (1)
US 12,470,626