IP Library › Granted Patent US 11,762,595
Granted Patent B1
US 11,762,595 · App. 17/716,118 · Granted Sep 19, 2023

Host-based locality determination for logical volumes stored across multiple nodes of a distributed storage system

Inventors: Igor Achkinazi (Northborough, MA); Lev Knopov (Brookline, MA)
Assignee: Dell Products L.P.
G06F3/0659G06F3/0604G06F3/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 11,762,595
App. No.
17/716,118
Filed
Apr 8, 2022
Granted
Sep 19, 2023
Kind
B1
Art Unit
2133
USPC
711/154
Abstract

An apparatus includes at least one processing device configured to identify a logical storage volume stored across multiple storage nodes of a distributed storage system, and for each of a plurality of different portions of the logical storage volume, to send one or more locality determination commands to each of one or more of the storage nodes, a given such command requesting a corresponding one of the storage nodes to respond with an indication as to whether or not the portion of the logical storage volume is local to that storage node, and to receive from the one or more storage nodes responses to the one or more locality determination commands. The processing device is further configured to store locality information for the plurality of different portions of the logical storage volume based at least in part on the responses of the storage nodes to the locality determination commands.

Claims (44)

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 identify a logical storage volume stored across multiple storage nodes of a distributed storage system,

for each of a plurality of different portions of the logical storage volume, to send one or more locality determination commands to each of one or more of the storage nodes, a given such command requesting a corresponding one of the storage nodes to respond with an indication as to whether or not the portion of the logical storage volume is local to that storage node, and to receive from the one or more storage nodes responses to the one or more locality determination commands, and

to store locality information for the plurality of different portions of the logical storage volume based at least in part on the responses of the storage nodes to the locality determination commands.

2. The apparatus of claim 1 wherein the at least one processing device comprises at least a portion of a host device which communicates with the distributed storage system over one or more networks.

3. The apparatus of claim 2 wherein the host device comprises a plurality of initiators and supports one or more paths between each of the initiators and one or more targets on respective ones 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 at least one processing device is further configured, for each of a plurality of input-output operations:

to determine a particular portion of the logical storage volume to which the input-output operation is directed;

to identify from the stored locality information which of the multiple storage nodes of the distributed storage system stores the particular portion;

to select a path to the identified storage node; and

to send the input-output operation to the identified storage node over the selected path.

6. The apparatus of claim 1 wherein the at least one processing device comprises a host device that includes at least one multi-path driver configured to send at least a subset of the locality determination commands and to receive the respective responses thereto from one or more of the storage nodes.

7. The apparatus of claim 1 wherein the at least one processing device is configured to send at least a subset of the locality determination commands to particular ones of the storage nodes at particular times based at least in part on one or more specified criteria.

8. The apparatus of claim 7 wherein the locality determination commands are sent based at least in part on a predetermined repeating schedule.

9. The apparatus of claim 7 wherein the locality determination commands are sent based at least in part on access frequencies for respective ones of the portions of the logical storage volume.

10. The apparatus of claim 9 wherein one or more of the commands are sent for each of one or more of the portions having an access frequency at or above a specified threshold, and none of the commands are sent for each of one or more of the portions having an access frequency below the specified threshold.

11. The apparatus of claim 1 wherein storing locality information for the plurality of different portions of the logical storage volume comprises storing a mapping of the different portions of the logical storage volume to respective different ones of the storage nodes that locally store those different portions.

12. The apparatus of claim 1 wherein the locality determination commands are configured in accordance with a designated storage access protocol and each such command includes at least an identifier of the logical storage volume and a starting logical block address of the corresponding portion of the logical storage volume.

13. The apparatus of claim 12 wherein at least a subset of the locality determination commands comprise respective vendor unique commands of the designated storage access protocol.

14. The apparatus of claim 1 wherein a given one of the responses to a given one of the locality determination commands comprises a locality ranking value that indicates a locality degree for the corresponding portion of the logical storage volume, the locality ranking value being based at least in part on a number of network hops from a storage node that receives the given command and generates the given response to another storage node that locally stores that portion of the logical storage volume.

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 identify a logical storage volume stored across multiple storage nodes of a distributed storage system,

for each of a plurality of different portions of the logical storage volume, to send one or more locality determination commands to each of one or more of the storage nodes, a given such command requesting a corresponding one of the storage nodes to respond with an indication as to whether or not the portion of the logical storage volume is local to that storage node, and to receive from the one or more storage nodes responses to the one or more locality determination commands, and

to store locality information for the plurality of different portions of the logical storage volume based at least in part on the responses of the storage nodes to the locality determination commands.

16. The computer program product of claim 15 wherein the program code when executed by the at least one processing device further causes the at least one processing device, for each of a plurality of input-output operations:

to determine a particular portion of the logical storage volume to which the input-output operation is directed;

to identify from the stored locality information which of the multiple storage nodes of the distributed storage system stores the particular portion;

to select a path to the identified storage node; and

to send the input-output operation to the identified storage node over the selected path.

17. The computer program product of claim 15 wherein a given one of the responses to a given one of the locality determination commands comprises a locality ranking value that indicates a locality degree for the corresponding portion of the logical storage volume, the locality ranking value being based at least in part on a number of network hops from a storage node that receives the given command and generates the given response to another storage node that locally stores that portion of the logical storage volume.

18. A method comprising:

identifying a logical storage volume stored across multiple storage nodes of a distributed storage system;

for each of a plurality of different portions of the logical storage volume, sending one or more locality determination commands to each of one or more of the storage nodes, a given such command requesting a corresponding one of the storage nodes to respond with an indication as to whether or not the portion of the logical storage volume is local to that storage node, and receiving from the one or more storage nodes responses to the one or more locality determination commands; and

storing locality information for the plurality of different portions of the logical storage volume based at least in part on the responses of the storage nodes to the locality determination commands;

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

19. The method of claim 18 further comprising, for each of a plurality of input-output operations:

determining a particular portion of the logical storage volume to which the input-output operation is directed;

identifying from the stored locality information which of the multiple storage nodes of the distributed storage system stores the particular portion;

selecting a path to the identified storage node; and

sending the input-output operation to the identified storage node over the selected path.

20. The method of claim 18 wherein a given one of the responses to a given one of the locality determination commands comprises a locality ranking value that indicates a locality degree for the corresponding portion of the logical storage volume, the locality ranking value being based at least in part on a number of network hops from a storage node that receives the given command and generates the given response to another storage node that locally stores that portion of the logical storage volume.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2022
From: ACHKINAZI, IGOR; KNOPOV, LEV
To: DELL PRODUCTS L.P.
Reel/Frame 059541/0566 →
Cited By (2)
US 12,393,533 US 12,619,374