IP Library Granted Patent US 10,761,933
Granted Patent B2
US 10,761,933 · App. 16/446,138 · Granted Sep 1, 2020

Prefill of raid stripes in a storage system by reading of existing data

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,761,933
App. No.
16/446,138
Granted
Sep 1, 2020
Kind
B2
Abstract

A storage system comprises a plurality of storage nodes each comprising one or more storage devices. At least a given one of the storage nodes is configured to read data blocks from its one or more storage devices, and for a given one of the data blocks, to determine based at least in part on a content-based signature of that data block whether or not the given data block is appropriate for use in a prefilling operation of the given storage node. Responsive to the given data block being appropriate for use in the prefilling operation of the given storage node, the given storage node uses the data block in the prefilling operation of the given storage node. Responsive to the given data block not being appropriate for use in the prefilling operation of the given storage node, the given storage node sends the data block to another one of the storage nodes for use in a prefilling operation of that other storage node.

Claims (54)

1. An apparatus comprising:

a storage system comprising a plurality of storage nodes each comprising one or more storage devices;

each of the storage nodes further comprising a processor coupled to a memory;

at least a given one of the storage nodes being configured:

to read data blocks from its one or more storage devices;

for a given one of the data blocks, to determine based at least in part on a content-based signature of that data block whether or not the given data block is appropriate for use in a prefilling operation of the given storage node;

responsive to the given data block being appropriate for use in the prefilling operation of the given storage node, to use the data block in the prefilling operation of the given storage node; and

responsive to the given data block not being appropriate for use in the prefilling operation of the given storage node, to send the data block to another one of the storage nodes for use in a prefilling operation of that other storage node.

2. The apparatus of claim 1 wherein the storage system is configured to store the data blocks across the storage devices of the storage nodes utilizing a redundant array of independent disks (RAID) arrangement.

3. The apparatus of claim 2 wherein the RAID arrangement includes parity information supporting at least one recovery option for reconstructing the data blocks of at least one of the storage devices responsive to a failure of that storage device.

4. The apparatus of claim 1 wherein each of the storage nodes further comprises a set of processing modules configured to communicate over one or more networks with corresponding sets of processing modules on other ones of the storage nodes.

5. The apparatus of claim 4 wherein the sets of processing modules comprise respective servers that collectively implement at least a portion of a distributed storage controller of the storage system.

6. The apparatus of claim 4 wherein the sets of processing modules of the storage nodes each comprise at least one data module and at least one control module.

7. The apparatus of claim 1 wherein the given storage node in reading data blocks from its one or more storage devices is further configured to read the data blocks from at least one designated RAID stripe.

8. The apparatus of claim 1 wherein the given storage node is further configured:

to compute content-based signatures for the respective data blocks;

for at least one of the data blocks having a content-based signature that is within a portion of a content-based signature space assigned to the given storage node, to designate the data block as appropriate for use in the prefilling operation of the given storage node; and

for at least one of the data blocks having a content-based signature that is not within a portion of a content-based signature space assigned to the given storage node, to designate the data block as not appropriate for use in the prefilling operation of the given storage node.

9. The apparatus of claim 8 wherein the given storage node is further configured to send the data block to another one of the storage nodes for which the content-based signature for the data block is within a portion of the content-based signature space assigned to that other storage node.

10. The apparatus of claim 1 wherein the given storage node is further configured, for a particular one of the data blocks that is appropriate for use in the prefilling operation of the given storage node:

to use the particular data block in the prefilling operation;

to mark the particular data block as used; and

to include the particular data block in a parity computation.

11. The apparatus of claim 1 wherein the given storage node is further configured to maintain a pool of data blocks received from other ones of the storage nodes and determined by those other storage nodes to be appropriate for use in the prefilling operation of the given storage node.

12. The apparatus of claim 11 wherein each of the other storage nodes also maintains a pool of data blocks received from other ones of the storage nodes.

13. The apparatus of claim 1 wherein the content-based signatures are part of a designated content-based signature space of the storage system and wherein different portions of the content-based signature space of the storage system are assigned to respective different ones of the storage nodes.

14. The apparatus of claim 13 wherein the content-based signature space of the storage system comprises one of a hash handle space of the storage system and a hash digest space of the storage system.

15. A method comprising:

configuring a storage system to include a plurality of storage nodes each comprising one or more storage devices, each of the storage nodes further comprising a processor coupled to a memory;

reading data blocks from the one or more storage devices of a given one of the storage nodes;

for a given one of the data blocks, determining based at least in part on a content-based signature of that data block whether or not the given data block is appropriate for use in a prefilling operation of the given storage node;

responsive to the given data block being appropriate for use in the prefilling operation of the given storage node, using the data block in the prefilling operation of the given storage node; and

responsive to the given data block not being appropriate for use in the prefilling operation of the given storage node, sending the data block to another one of the storage nodes for use in a prefilling operation of that other storage node.

16. The method of claim 15 further comprising:

computing content-based signatures for the respective data blocks;

for at least one of the data blocks having a content-based signature that is within a portion of a content-based signature space assigned to the given storage node, designating the data block as appropriate for use in the prefilling operation of the given storage node; and

for at least one of the data blocks having a content-based signature that is not within a portion of a content-based signature space assigned to the given storage node, designating the data block as not appropriate for use in the prefilling operation of the given storage node.

17. The method of claim 15 further comprising, for a particular one of the data blocks that is appropriate for use in the prefilling operation of the given storage node:

using the particular data block in the prefilling operation of the given storage node;

marking the particular data block as used; and

including the particular data block in a parity computation.

18. 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 a storage system comprising a plurality of storage nodes each comprising one or more storage devices, each of the storage nodes further comprising a processor coupled to a memory, causes the storage system:

to read data blocks from the one or more storage devices of a given one of the storage nodes;

for a given one of the data blocks, to determine based at least in part on a content-based signature of that data block whether or not the given data block is appropriate for use in a prefilling operation of the given storage node;

responsive to the given data block being appropriate for use in the prefilling operation of the given storage node, to use the data block in the prefilling operation of the given storage node; and

responsive to the given data block not being appropriate for use in the prefilling operation of the given storage node, to send the data block to another one of the storage nodes for use in a prefilling operation of that other storage node.

19. The computer program product of claim 18 wherein the program code when executed by the storage system further causes the storage system:

to compute content-based signatures for the respective data blocks;

for at least one of the data blocks having a content-based signature that is within a portion of a content-based signature space assigned to the given storage node, to designate the data block as appropriate for use in the prefilling operation of the given storage node; and

for at least one of the data blocks having a content-based signature that is not within a portion of a content-based signature space assigned to the given storage node, to designate the data block as not appropriate for use in the prefilling operation of the given storage node.

20. The computer program product of claim 18 wherein the program code when executed by the storage system further causes the storage system, for a particular one of the data blocks that is appropriate for use in the prefilling operation of the given storage node:

to use the particular data block in the prefilling operation of the given storage node;

to mark the particular data block as used; and

to include the particular data block in a parity computation.

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 (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 (050724/0571) 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 060436/0088 →
RELEASE OF SECURITY INTEREST AT REEL 050406 FRAME 421 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058213/0825 →
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 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
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 050724/0571 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050406/0421 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 24, 2019
From: MOORE, WILLIAM F.; KUCHEROV, ANTON; BINIA, BOAZ; SCHNEIDER, ZVI
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 049563/0504 →