IP Library Granted Patent US 11,144,461
Granted Patent B2
US 11,144,461 · App. 16/813,012 · Granted Oct 12, 2021

Bandwidth efficient access to persistent storage in a distributed storage system

Inventors: Alex Soukhman (Raanana, IL); Lior Kamran (Rishon LeZion, IL)
Assignee: EMC IP Holding Company LLC
G06F12/0868G06F13/4027G06F15/17331G06F2212/608
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,144,461
App. No.
16/813,012
Granted
Oct 12, 2021
Kind
B2
Abstract

An apparatus comprises at least one processing device configured, in conjunction with processing of an input-output (IO) operation by a first storage node of a distributed storage system, where processing of the IO operation requires access to at least one persistent storage device remote from the first storage node but local to a second storage node of the distributed storage system, to send a request from the first storage node to the second storage node identifying data associated with the operation. The processing device determines a buffer of the second storage node that is allocated for use by the second storage node for temporary storage of the data, and utilizes the buffer to provide the data to the second storage node to allow the second storage node to write the data, and/or to obtain the data from the second storage node after the second storage node has read the data.

Claims (45)

1. An apparatus comprising:

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

said at least one processing device comprising at least a portion of a distributed storage system, the distributed storage system comprising at least first and second storage nodes;

said at least one processing device being configured:

responsive to receipt of an input-output operation by the first storage node of the distributed storage system where processing of the input-output operation requires access to at least one persistent storage device remote from the first storage node but local to the second storage node of the distributed storage system:

to send at least one request from the first storage node to the second storage node identifying data associated with the operation;

to determine a buffer of the second storage node that is allocated for use by the second storage node for temporary storage of the data; and

to utilize the buffer for at least one of (i) providing the data to the second storage node to allow the second storage node to write the data to the persistent storage device, and (ii) obtaining the data from the second storage node after the second storage node has read the data from the persistent storage device;

wherein sending at least one request from the first storage node to the second storage node identifying data associated with the operation comprises sending a write request identifying write data to be written by the second storage node to the persistent storage device local to the second storage node;

wherein the first storage node writes the write data into the buffer using a remote direct memory access connection between the first storage node and the second storage node; and

wherein the second storage node writes the data to the persistent storage device using a local network connection that has a substantially higher bandwidth than that of a remote direct memory access connection between the first storage node and the persistent storage device.

2. The apparatus of claim 1 wherein said at least one processing device comprises at least a portion of a distributed storage controller of the distributed storage system.

3. The apparatus of claim 1 wherein the storage nodes of the distributed storage system are interconnected in a mesh network.

4. The apparatus of claim 1 wherein each of at least a subset of the storage nodes of the distributed storage system comprises a set of processing modules configured to communicate with corresponding sets of processing modules on other ones of the storage nodes, a given such set of processing modules comprising at least a routing module, a control module and a data module, the sets of processing modules of the storage nodes of the distributed storage system collectively comprising at least a portion of a distributed storage controller of the distributed storage system.

5. The apparatus of claim 1 wherein sending at least one request from the first storage node to the second storage node identifying data associated with the operation comprises sending a read request identifying read data to be read by the second storage node from the persistent storage device local to the second storage node.

6. The apparatus of claim 5 wherein the first storage node reads the read data from the buffer using the remote direct memory access connection between the first storage node and the second storage node.

7. The apparatus of claim 1 wherein the second storage node reads the data from the persistent storage device using the local network connection that has a substantially higher bandwidth than that of the remote direct memory access connection between the first storage node and the persistent storage device.

8. The apparatus of claim 1 wherein each of a plurality of persistent storage devices of the distributed storage system is accessible to a corresponding one of the storage nodes via a local interface and is also accessible to one or more other ones of the storage nodes via a remote direct memory access interface.

9. The apparatus of claim 1 wherein sending the request, determining the buffer and utilizing the buffer are performed for each of a plurality of different operations of a particular type responsive to those operations each having an associated data size above a specified threshold.

10. The apparatus of claim 9 wherein the operations of the particular type comprise metadata update journal operations.

11. The apparatus of claim 1 wherein the buffer is dynamically allocated for use by the second storage node for temporary storage of the data responsive to receipt of the request from the first storage node, and further wherein the second storage node identifies the dynamically allocated buffer to the first storage node in a response to the request so as to thereby allow the first storage node to access the buffer.

12. The apparatus of claim 1 wherein the buffer is pre-allocated for use by the second storage node, and further wherein the second storage node identifies the pre-allocated buffer to the first storage node prior to receipt of the request from the first storage node.

13. A method comprising:

responsive to receipt of an input-output operation by a first storage node of a distributed storage system where processing of the input-output operation requires access to at least one persistent storage device remote from the first storage node but local to a second storage node of the distributed storage system:

sending at least one request from the first storage node to the second storage node identifying data associated with the operation;

determining a buffer of the second storage node that is allocated for use by the second storage node for temporary storage of the data; and

utilizing the buffer for at least one of (i) providing the data to the second storage node to allow the second storage node to write the data to the persistent storage device, and (ii) obtaining the data from the second storage node after the second storage node has read the data from the persistent storage device;

wherein sending at least one request from the first storage node to the second storage node identifying data associated with the operation comprises sending a write request identifying write data to be written by the second storage node to the persistent storage device local to the second storage node;

wherein the first storage node writes the write data into the buffer using a remote direct memory access connection between the first storage node and the second storage node;

wherein the second storage node writes the data to the persistent storage device using a local network connection that has a substantially higher bandwidth than that of a remote direct memory access connection between the first storage node and the persistent storage device; and

wherein the method is performed by at least one processing device comprising at least a portion of the distributed storage system, said at least a portion comprising a processor coupled to a memory.

14. The method of claim 13 wherein sending at least one request from the first storage node to the second storage node identifying data associated with the operation comprises sending a read request identifying read data to be read by the second storage node from the persistent storage device local to the second storage node, and further wherein the first storage node reads the read data from the buffer using the remote direct memory access connection between the first storage node and the second storage node.

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 at least a portion of a distributed storage system, the distributed storage system comprising at least first and second storage nodes, causes said at least one processing device:

responsive to receipt of an input-output operation by the first storage node of the distributed storage system where processing of the input-output operation requires access to at least one persistent storage device remote from the first storage node but local to the second storage node of the distributed storage system:

to send at least one request from the first storage node to the second storage node identifying data associated with the operation;

to determine a buffer of the second storage node that is allocated for use by the second storage node for temporary storage of the data; and

to utilize the buffer for at least one of (i) providing the data to the second storage node to allow the second storage node to write the data to the persistent storage device, and (ii) obtaining the data from the second storage node after the second storage node has read the data from the persistent storage device;

wherein sending at least one request from the first storage node to the second storage node identifying data associated with the operation comprises sending a write request identifying write data to be written by the second storage node to the persistent storage device local to the second storage node;

wherein the first storage node writes the write data into the buffer using a remote direct memory access connection between the first storage node and the second storage node; and

wherein the second storage node writes the data to the persistent storage device using a local network connection that has a substantially higher bandwidth than that of a remote direct memory access connection between the first storage node and the persistent storage device.

16. The computer program product of claim 15 wherein sending at least one request from the first storage node to the second storage node identifying data associated with the operation comprises sending a read request identifying read data to be read by the second storage node from the persistent storage device local to the second storage node, and further wherein the first storage node reads the read data from the buffer using the remote direct memory access connection between the first storage node and the second storage node.

17. The computer program product of claim 15 wherein the second storage node reads the data from the persistent storage device using the local network connection that has a substantially higher bandwidth than that of the remote direct memory access connection between the first storage node and the persistent storage device.

18. The computer program product of claim 15 wherein each of a plurality of persistent storage devices of the distributed storage system is accessible to a corresponding one of the storage nodes via a local interface and is also accessible to one or more other ones of the storage nodes via a remote direct memory access interface.

19. The computer program product of claim 15 wherein sending the request, determining the buffer and utilizing the buffer are performed for each of a plurality of different operations of a particular type responsive to those operations each having an associated data size above a specified threshold.

20. The computer program product of claim 19 wherein the operations of the particular type comprise metadata update journal operations.

Assignments (13)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) 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
Reel/Frame 060436/0441 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) 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
Reel/Frame 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) 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
Reel/Frame 060436/0582 →
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 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 AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
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 INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0917 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052852/0022 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2020
From: SOUKHMAN, ALEX; KAMRAN, LIOR
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052055/0718 →