IP Library Granted Patent US 11,200,082
Granted Patent B2
US 11,200,082 · App. 16/669,803 · Granted Dec 14, 2021

Data storage system employing dummy namespaces for discovery of NVMe namespace groups as protocol endpoints

Inventors: Mukesh Gupta (Shrewsbury, MA); Dmitry Tylik (Westborough, MA); Daniel E. Cummins (Hudson, NH); David L. Black (Acton, MA)
Assignee: EMC IP Holding Company LLC
G06F9/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 11,200,082
App. No.
16/669,803
Filed
Oct 31, 2019
Granted
Dec 14, 2021
Kind
B2
Art Unit
2199
USPC
718/1
Abstract

A data storage system (DSS) in a cluster provides virtual-volume data storage to virtual-computing (VC) hosts using NVMe-oF storage interconnect. A DSS creates protocol endpoints (PEs) and corresponding namespace groups, each being a grouping of namespaces corresponding to virtual volumes (vVols) to be bound for access by a respective VC host, and each namespace being mapped to corresponding underlying physical storage. Each namespace group is initially created with a corresponding in-band discoverable dummy namespace. In response to in-band storage discovery commands from the VC hosts, and based on the existence of the dummy namespaces, the DSS responds with responses identifying the namespace groups. Then in response to subsequent vVol creation commands from the VC hosts, the DSS creates new namespaces in respective namespace groups and provides namespace identifiers for the new namespaces to the VC hosts for use in accessing data of the vVols.

Claims (38)

1. A method of operating a data storage system in a cluster of storage systems to provide virtual-volume data storage to a plurality of virtual-computing (VC) hosts, comprising:

creating protocol endpoints (PEs) and corresponding namespace groups, each namespace group being a grouping of namespaces corresponding to virtual volumes (vVols) to be bound for access by a respective VC host, each namespace being mapped to corresponding underlying physical storage of the data storage system, each namespace group initially created with a corresponding in-band discoverable dummy namespace;

in response to in-band storage discovery commands from the VC hosts, and based on the existence of the dummy namespaces, sending responses identifying the namespace groups to the respective VC hosts;

in response to subsequent vVol creation commands from the VC hosts, creating respective new namespaces in respective namespace groups, and providing respective namespace identifiers for the new namespaces to the VC hosts for use in accessing data of the respective vVols,

wherein the data storage system includes a plurality of processing nodes and creates a corresponding number of PEs per each of the VC hosts,

and wherein a first processing node presents a first PE as having an Optimized access path state for the first processing node and presents a second PE as having a Non-optimized access path state for the first processing node, and a second processing node presents the first PE as having the Non-optimized access path state for the second processing node and presents the second PE as having the Optimized access path state for the second processing node.

2. The method of claim 1 , wherein the data storage system supports asymmetric access by a multipathing function of the VC hosts, and the PEs realized as Asymmetric Namespace Access (ANA) Groups are used for aggregating namespaces having common access path state as used by the multipathing function for directing storage TO requests to the data storage system.

3. The method of claim 2 , wherein the access path states are selected from Optimized, Non-Optimized, Inaccessible and Persistent Loss.

4. The method of claim 1 , wherein:

during normal non-failure operation, the first processing node services IO transactions for vVols associated with the first PE and the second processing node services IO transactions for vVols associated with the second PE; and

during operation when one of the first or second processing nodes has failed, a non-failed one of the processing nodes services the IO transactions for vVols associated with both the first PE and the second PE.

5. The method of claim 1 , wherein:

during normal non-failure operation, the first processing node services IO transactions for vVols associated with the first PE and the second processing node services IO transactions for vVols associated with the second PE; and

during operation when a respective path to one of the first or second processing nodes has failed, the processing node on the non-failed path services the IO transactions for vVols associated with both the first PE and the second PE.

6. The method of claim 1 , wherein one or more shared vVols are accessible to multiple of the VC hosts, and the shared vVols are grouped by multiple per-host PEs accordingly.

7. The method of claim 6 , wherein the multiple VC hosts perform a migration operation of migrating data from one of the shared vVols to another vVol.

8. The method of claim 1 , wherein the data storage system selectively assigns vVols to the namespace groups to realize load balancing among the processing nodes.

9. The method of claim 1 , wherein the PEs per each VC host form a respective first per-host set for PEs accessible via the data storage system, and wherein the data storage system also maintains respective second per-host sets of PEs for each other data storage system of the cluster, the PEs of the second per-host sets being presented as having an Inaccessible access path state for the data storage system.

10. The method of claim 9 , wherein the data storage system limits its communication of asynchronous events to those VC hosts associated with affected storage, according to the association of namespaces with respective VC hosts via the per-host sets of PEs.

11. The method of claim 9 , wherein the data storage system, in response to a PE query command from a VC host, limits its identification of PEs to those PEs visible to the host that issued the command.

12. A data storage system comprising physical data storage, an interface to a plurality of virtual-computing (VC) hosts, and processing nodes executing computer program instructions to perform a method of providing virtual-volume data storage to the VC hosts, the method including:

creating protocol endpoints (PEs) and corresponding namespace groups, each namespace group being a grouping of namespaces corresponding to virtual volumes (vVols) to be bound for access by a respective VC host, each namespace being mapped to corresponding underlying physical storage of the data storage system, each namespace group initially created with a corresponding in-band discoverable dummy namespace;

in response to in-band storage discovery commands from the VC hosts, and based on the existence of the dummy namespaces, sending responses identifying the namespace groups to the respective VC hosts;

in response to subsequent vVol creation commands from the VC hosts, creating respective new namespaces in respective namespace groups, and providing respective namespace identifiers for the new namespaces to the VC hosts for use in accessing data of the respective vVols,

wherein the data storage system creates, for the processing nodes, a corresponding number of PEs per each of the VC hosts,

and wherein a first processing node presents a first PE as having an Optimized access path state for the first processing node and presents a second PE as having a Non-optimized access path state for the first processing node, and a second processing node presents the first PE as having the Non-optimized access path state for the second processing node and presents the second PE as having the Optimized access path state for the second processing node.

13. The data storage system of claim 12 , wherein the data storage system supports asymmetric access by a multipathing function of the VC hosts, and the PEs realized as Asymmetric Namespace Access (ANA) Groups are used for aggregating namespaces having common access path state as used by the multipathing function for directing storage IO requests to the data storage system.

14. The data storage system of claim 13 , wherein the access path states are selected from Optimized, Non-Optimized, Inaccessible and Persistent Loss.

15. The data storage system of claim 12 , wherein:

during normal non-failure operation, the first processing node services IO transactions for vVols associated with the first PE and the second processing node services IO transactions for vVols associated with the second PE; and

during operation when one of the first or second processing nodes has failed, a non-failed one of the processing nodes services the IO transactions for vVols associated with both the first PE and the second PE.

16. The data storage system of claim 12 , wherein:

during normal non-failure operation, the first processing node services IO transactions for vVols associated with the first PE and the second processing node services IO transactions for vVols associated with the second PE; and

during operation when a respective path to one of the first or second processing nodes has failed, the processing node on the non-failed path services the IO transactions for vVols associated with both the first PE and the second PE.

17. The data storage system of claim 12 , wherein the data storage system selectively assigns vVols to the namespace groups to realize load balancing among the processing nodes.

18. The data storage system of claim 12 , wherein the PEs per each VC host form a respective first per-host set for PEs accessible via the data storage system, and wherein the data storage system also maintains respective second per-host sets of PEs for each other data storage system of the cluster, the PEs of the second per-host sets being presented as having an Inaccessible access path state for the data storage system.

19. The data storage system of claim 18 , wherein the data storage system limits its communication of asynchronous events to those VC hosts associated with affected storage, according to the association of namespaces with respective VC hosts via the per-host sets of PEs.

20. The data storage system of claim 18 , wherein the data storage system, in response to a PE query command from a VC host, limits its identification of PEs to those PEs visible to the host that issued the command.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (051302/0528) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.); SECUREWORKS CORP.
Reel/Frame 060438/0593 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053311/0169) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060438/0742 →
RELEASE OF SECURITY INTEREST AT REEL 051449 FRAME 0728 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
Reel/Frame 058002/0010 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 053311/0169 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Dec 31, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 051449/0728 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Dec 16, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 051302/0528 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 29, 2019
From: GUPTA, MUKESH; TYLIK, DMITRY; CUMMINS, DANIEL E.; BLACK, DAVID L.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051137/0797 →
Continuity (1)
Related Publication 20210132972A1 · May 6, 2021