IP Library Granted Patent US 12,306,751
Granted Patent B2
US 12,306,751 · App. 18/244,454 · Granted May 20, 2025

Host multi-path layer with proxy volume redirection for enhanced scalability of distributed storage systems

Inventors: Sanjib Mallick (Bangalore, IN); Amit Pundalik Anchi (Bangalore, IN); David L. Black (Acton, MA); Ziv Dor (Rishon Letzion, IL); Rivka Mayraz Matosevich (Zichron Ya'acov, IL)
Assignee: Dell Products L.P.
G06F12/0615G06F3/061G06F3/0635G06F3/0665G06F3/067
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 12,306,751
App. No.
18/244,454
Granted
May 20, 2025
Kind
B2
Abstract

An apparatus in an illustrative embodiment comprises at least one processing device that includes a processor coupled to a memory. The at least one processing device is configured to associate a logical storage volume with at least one path between a host and at least a given one of a plurality of storage nodes of a distributed storage system, and to associate a proxy volume with respective sets of one or more paths from the host to each of the plurality of storage nodes of the distributed storage system. The at least one processing device is further configured to obtain an input-output operation directed to the logical storage volume, and to redirect the input-output operation to the proxy volume over a selected one of the paths associated with the proxy volume. Such an arrangement can avoid one or more host-side restrictions, thereby enhancing scalability of the distributed storage system.

Claims (51)

1. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured:

to associate a logical storage volume with at least one path between a host and at least a given one of a plurality of storage nodes of a distributed storage system, each of the storage nodes storing corresponding portions of the logical storage volume and one or more additional logical storage volumes, a given such logical storage volume being stored in a distributed manner over the storage nodes with different address ranges of the given logical storage volume being stored in different ones of the storage nodes;

to associate a proxy volume with respective sets of one or more paths from the host to each of the plurality of storage nodes of the distributed storage system;

to obtain an input-output operation directed to the logical storage volume; and

to redirect the input-output operation to the proxy volume over a selected one of the paths associated with the proxy volume;

wherein the host is configured to expose a first number of paths to at least one application executing on the host, the first number of paths being determined collectively across all of the logical storage volumes accessible to the at least one application; and

wherein associating the proxy volume with the respective sets of one or more paths from the host to each of the plurality of storage nodes provides the host with access to a second number of paths that is greater than the first number of paths.

2. The apparatus of claim 1 wherein the at least one processing device comprises at least a portion of the host.

3. The apparatus of claim 1 wherein the host comprises a plurality of initiators and supports one or more paths between each of the initiators and one or more targets on each of the storage nodes.

4. The apparatus of claim 1 wherein the distributed storage system comprises a software-defined storage system and the storage nodes comprise respective software-defined storage server nodes of the software-defined storage system.

5. The apparatus of claim 1 wherein the host comprises a multi-path layer that includes at least one multi-path input-output driver configured to perform at least portions of the associating the logical storage volume, the associating the proxy volume, the obtaining the input-output operation and the redirecting the input-output operation.

6. The apparatus of claim 1 wherein the logical storage volume is associated with at least first and second paths between the host and the given storage node of the plurality of storage nodes.

7. The apparatus of claim 1 wherein redirecting the input-output operation to the proxy volume over a selected one of the paths associated with the proxy volume comprises:

determining a particular portion of the logical storage volume targeted by the input-output operation;

accessing at least one data structure to identify a particular one of the plurality of storage nodes that stores data of the particular portion of the logical storage volume; and

selecting a particular path from the set of one or more paths from the host to the identified storage node.

8. The apparatus of claim 7 wherein the at least one data structure comprises a table.

9. The apparatus of claim 7 wherein the at least one data structure stores mapping information that maps portions of the logical storage volume to respective ones of the storage nodes that store data of those portions.

10. The apparatus of claim 9 wherein the mapping information is obtained at least in part from one or more of the storage nodes.

11. The apparatus of claim 9 wherein the mapping information is periodically updated to reflect configuration changes relating to the distributed storage system.

12. The apparatus of claim 1 wherein the logical storage volume is associated with no more than a maximum number of paths per volume for the logical storage volume and the proxy volume is associated with a number of paths that is larger than the maximum number of paths per volume for the logical storage volume.

13. The apparatus of claim 12 wherein the maximum number of paths per volume for the logical storage volume is two paths.

14. The apparatus of claim 1 wherein the proxy volume is associated with a number of paths that is a function of the number of storage nodes in the plurality of storage nodes.

15. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device comprising a processor coupled to a memory, causes the at least one processing device:

to associate a logical storage volume with at least one path between a host and at least a given one of a plurality of storage nodes of a distributed storage system, each of the storage nodes storing corresponding portions of the logical storage volume and one or more additional logical storage volumes, a given such logical storage volume being stored in a distributed manner over the storage nodes with different address ranges of the given logical storage volume being stored in different ones of the storage nodes;

to associate a proxy volume with respective sets of one or more paths from the host to each of the plurality of storage nodes of the distributed storage system;

to obtain an input-output operation directed to the logical storage volume; and

to redirect the input-output operation to the proxy volume over a selected one of the paths associated with the proxy volume;

wherein the host is configured to expose a first number of paths to at least one application executing on the host, the first number of paths being determined collectively across all of the logical storage volumes accessible to the at least one application; and

wherein associating the proxy volume with the respective sets of one or more paths from the host to each of the plurality of storage nodes provides the host with access to a second number of paths that is greater than the first number of paths.

16. The computer program product of claim 15 wherein the host comprises a multi-path layer that includes at least one multi-path input-output driver configured to perform at least portions of the associating the logical storage volume, the associating the proxy volume, the obtaining the input-output operation and the redirecting the input-output operation.

17. The computer program product of claim 15 wherein redirecting the input-output operation to the proxy volume over a selected one of the paths associated with the proxy volume comprises:

determining a particular portion of the logical storage volume targeted by the input-output operation;

accessing at least one data structure to identify a particular one of the plurality of storage nodes that stores data of the particular portion of the logical storage volume; and

selecting a particular path from the set of one or more paths from the host to the identified storage node.

18. A method comprising:

associating a logical storage volume with at least one path between a host and at least a given one of a plurality of storage nodes of a distributed storage system, each of the storage nodes storing corresponding portions of the logical storage volume and one or more additional logical storage volumes, a given such logical storage volume being stored in a distributed manner over the storage nodes with different address ranges of the given logical storage volume being stored in different ones of the storage nodes;

associating a proxy volume with respective sets of one or more paths from the host to each of the plurality of storage nodes of the distributed storage system;

obtaining an input-output operation directed to the logical storage volume; and

redirecting the input-output operation to the proxy volume over a selected one of the paths associated with the proxy volume;

wherein the host is configured to expose a first number of paths to at least one application executing on the host, the first number of paths being determined collectively across all of the logical storage volumes accessible to the at least one application;

wherein associating the proxy volume with the respective sets of one or more paths from the host to each of the plurality of storage nodes provides the host with access to a second number of paths that is greater than the first number of paths; and

wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

19. The method of claim 18 wherein the host comprises a multi-path layer that includes at least one multi-path input-output driver configured to perform at least portions of the associating the logical storage volume, the associating the proxy volume, the obtaining the input-output operation and the redirecting the input-output operation.

20. The method of claim 18 wherein redirecting the input-output operation to the proxy volume over a selected one of the paths associated with the proxy volume comprises:

determining a particular portion of the logical storage volume targeted by the input-output operation;

accessing at least one data structure to identify a particular one of the plurality of storage nodes that stores data of the particular portion of the logical storage volume; and

selecting a particular path from the set of one or more paths from the host to the identified storage node.

21. The apparatus of claim 1 wherein the host is subject to a host-side restriction specifying a maximum number of paths that can be exposed to the at least one application executing on the host, the maximum number of paths being determined collectively across all of the logical storage volumes accessible to the at least one application, and wherein associating the proxy volume with the respective sets of one or more paths from the host to each of the plurality of storage nodes provides the host with access to a total number of paths that is greater than the specified maximum number of paths.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2023
From: MALLICK, SANJIB; ANCHI, AMIT PUNDALIK; BLACK, DAVID L.; DOR, ZIV; MAYRAZ MATOSEVICH, RIVKA
To: DELL PRODUCTS L.P.
Reel/Frame 064858/0670 →
Continuity (1)
Related Publication 20250086110A1 · Mar 13, 2025
References Cited (58)
US 8793448B2 · Wedlake · 2014 [cited by examiner]
US 10310760B1 · Dreier et al. · 2019 [cited by applicant]
US 10893105B1 · Bono et al. · 2021 [cited by applicant]
US 11418594B1 · Rao · 2022 [cited by examiner]
US 11550511B2 · Mallick et al. · 2023 [cited by applicant]
US 11631003B2 · Martin et al. · 2023 [cited by applicant]
US 11733912B2 · Chen et al. · 2023 [cited by applicant]
US 20030149773A1 · Harbin et al. · 2003 [cited by applicant]
US 20070079081A1 · Gladwin et al. · 2007 [cited by applicant]
US 20090154472A1 · Chung et al. · 2009 [cited by applicant]
US 20090254572A1 · Redlich et al. · 2009 [cited by applicant]
US 20110138144A1 · Tamura et al. · 2011 [cited by applicant]
US 20120030424A1 · Nunez · 2012 [cited by examiner]
US 20130055249A1 · Vaghani et al. · 2013 [cited by applicant]
US 20130198312A1 · Tamir et al. · 2013 [cited by applicant]
US 20130226887A1 · Braam et al. · 2013 [cited by applicant]
US 20140372640A1 · Li-On · 2014 [cited by examiner]
US 20150012607A1 · Cayton et al. · 2015 [cited by applicant]
US 20160357440A1 · Wang · 2016 [cited by examiner]
US 20170177216A1 · Freyensee et al. · 2017 [cited by applicant]
US 20170177222A1 · Singh et al. · 2017 [cited by applicant]
US 20180205635A1 · Kim et al. · 2018 [cited by applicant]
US 20180239539A1 · He et al. · 2018 [cited by applicant]
US 20190102093A1 · Parnell et al. · 2019 [cited by applicant]
US 20190146675A1 · Subramanian et al. · 2019 [cited by applicant]
US 20190377696A1 · Patel et al. · 2019 [cited by applicant]
US 20200019521A1 · Solanki et al. · 2020 [cited by applicant]
US 20200026606A1 · Farnum et al. · 2020 [cited by applicant]
US 20200225863A1 · Veluswamy et al. · 2020 [cited by applicant]
US 20200326868A1 · Yang · 2020 [cited by examiner]
US 20210405915A1 · Agarwal · 2021 [cited by applicant]
US 20210406678A1 · Martin et al. · 2021 [cited by applicant]
US 20220374167A1 · Mallick et al. · 2022 [cited by applicant]
US 20230049823A1 · Abouelwafa · 2023 [cited by examiner]
US 20230229341A1 · Chen et al. · 2023 [cited by applicant]
JP 2011118712A · 2011 [cited by applicant]
Storpool Storage, “Demystifying: What is NVMeOF?” https://storpool.com/blog/demystifying-what-is-nvmeof, Sep. 12, 2017, 4 pages. [cited by applicant]
Vmware, “VMware ESX Server,” Product Datasheet, 2007, 4 pages. [cited by applicant]
Wikipedia, “Host Adapter,” https://en.wikipedia.org/wiki/Host_adapter, Jul. 19, 2021, 4 pages. [cited by applicant]
Wikipedia, “iSCSI,” https://en.wikipedia.org/wiki/ISCSI, Dec. 22, 2021, 10 pages. [cited by applicant]
Wikipedia, “NVM Express,” https://en.wikipedia.org/wiki/NVM_Express, Jan. 13, 2022, 18 pages. [cited by applicant]
A. S. Gillis, “NVMe Over Fabrics (NVMe-oF),” https://searchstorage.techtarget.com/definition/NVMe-over-Fabrics-Nonvolatile-Memory-Express-over-Fabrics?vgnextfmt=print, Jan. 15, 2020, 5 pages. [cited by applicant]
Wikipedia, “Remote Direct Memory Access,” https://en.wikipedia.org/wiki/Remote_direct_memory_access, Jan. 30, 2021, 3 pages. [cited by applicant]
M. Hoyt, “ScaleIO Tech Overview and Concepts: SDS-SAN vs SDS-Array,” https://www.thinkahead.com/TheLAB/scaleio-tech-overview-concepts-sds-san-vs-sds-array/, Apr. 5, 2017, 16 pages. [cited by applicant]
EMC Corporation, “Emc ScaleIO Architectural and Functional Overview,” EMC White Paper, Dec. 2013, 13 pages. [cited by applicant]
Dell EMC, “Dell EMC VxFlex OS: Networking Best Practices and Design Considerations,” Dell EMC White Paper, Jul. 2018, 38 pages. [cited by applicant]
R. Kerns, “What is Block I/O?” searchstorage.techtarget.com/answer/What-is-block-I-O, Oct. 19, 2005, 2 pages. [cited by applicant]
Janalta Interactive, “Client-Side” https://www.techopedia.com/definition/439/client-side, Accessed Jan. 14, 2022, 8 pages. [cited by applicant]
EMC Corporation, “EMC ScaleIO Design Considerations and Best Practices,” EMC White Paper, Jun. 2016, 30 pages. [cited by applicant]
Mellanox Technologies, “RoCE vs. iWARP Competitive Analysis,” White Paper, Feb. 2017, 6 pages. [cited by applicant]
NVM Express, “Nvm Express Base Specification, Revision 2.0c,” NVM Express, Oct. 4, 2022, 458 pages. [cited by applicant]
Dell Technologies, “Dell PowerFlex,” Spec Sheet, Aug. 2023, 14 pages. [cited by applicant]
H. Strass, “An Introduction to NVMe,” https://labs.seagate.com/portfolio/an-introduction-to-nvme/, May 2016, 8 pages. [cited by applicant]
U.S. Appl. No. 17/714,312, filed in the name of Igor Achkinazi et al. Apr. 6, 2022, and entitled “Storage System with Multiple Target Controllers Supporting Different Service Level Objectives.” [cited by applicant]
U.S. Appl. No. 17/716,118, filed in the name of Igor Achkinazi et al. Apr. 8, 2022, and entitled “Host-Based Locality Determination for Logical Volumes Stored Across Multiple Nodes of a Distributed Storage System.” [cited by applicant]
U.S. Appl. No. 17/964,560, filed in the name of Igor Achkinazi et al. Oct. 12, 2022, and entitled “Host-Based Locality Determination Using Locality Log Pages.” [cited by applicant]
U.S. Appl. No. 18/335,240, filed in the name of Igor Achkinazi et al. Jun. 15, 2023, and entitled “Storage System with Automated Filtering of Discovery Information Utilizing Specified Configuration Domains.” [cited by applicant]
U.S. Appl. No. 17/696,360, filed in the name of Sanjib Mallick et al. Mar. 16, 2022, and entitled “Intelligent Path Selection in a Distributed Storage System.” [cited by applicant]