IP Library Granted Patent US 11,494,103
Granted Patent B2
US 11,494,103 · App. 16/530,121 · Granted Nov 8, 2022

Memory-efficient processing of RAID metadata bitmaps

Inventors: Anton Kucherov (Dudley, MA); David Meiri (Somerville, MA)
Assignee: EMC IP Holding Company LLC
G06F3/0644G06F3/0604G06F3/0689G06F11/108G06F11/1088
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,494,103
App. No.
16/530,121
Granted
Nov 8, 2022
Kind
B2
Abstract

A storage system comprises a plurality of storage nodes each comprising one or more storage devices and a processor coupled to a memory. The storage system is configured to store data blocks across the storage devices of the storage nodes utilizing a redundant array of independent disks (RAID) arrangement. At least a given one of the storage nodes is configured to store a plurality of RAID metadata bitmaps in persistent storage of the storage node so as to be available for a recovery operation in the event of a detected failure, to identify a particular subset of the RAID metadata bitmaps to be updated in conjunction with an additional operation other than the recovery operation, and to temporarily store the identified subset of the RAID metadata bitmaps in the memory of the storage node in a manner determined based at least in part on an operation type of the additional operation.

Claims (79)

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;

wherein the storage system is configured to store data blocks across the storage devices of the storage nodes utilizing a redundant array of independent disks (RAID) arrangement;

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

to store a plurality of RAID metadata bitmaps in persistent storage of the given storage node so as to be available for a recovery operation associated with a detected failure;

to identify a particular subset of the RAID metadata bitmaps to be updated in conjunction with an additional operation other than the recovery operation; and

to temporarily store the identified subset of the RAID metadata bitmaps in the memory of the given storage node in a manner determined based at least in part on an operation type of the additional operation;

wherein one or more other subsets of the RAID metadata bitmaps, different than the identified subset, are not stored in the memory of the given storage node but remain stored in the persistent storage of the given storage node; and

wherein identifying the particular subset of the RAID metadata bitmaps to be updated in conjunction with an additional operation other than the recovery operation comprises:

detecting a write cache emptying operation;

determining particular RAID stripes to be written as part of the write cache emptying operation;

selecting one or more of the particular RAID stripes; and

identifying the particular subset of the RAID metadata bitmaps as one or more of the RAID metadata bitmaps associated with the selected one or more RAID stripes.

2. The apparatus of claim 1 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.

3. 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.

4. The apparatus of claim 3 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.

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

6. 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.

7. The apparatus of claim 1 wherein different ones of the RAID metadata bitmaps indicate at least free or taken status for different subsets of the data blocks stored across the storage devices of the storage nodes, and wherein a given one of the RAID metadata bitmaps comprises a plurality of entries for respective ones of its associated data blocks with each such entry indicating which of a plurality of possible states applies to a corresponding data block wherein the possible states include at least a free state and a taken state.

8. The apparatus of claim 7 wherein the possible states further comprise at least one additional state including a not parity state.

9. The apparatus of claim 1 wherein selecting one or more of the RAID stripes comprises selecting the one or more RAID stripes based at least in part on amounts of free data blocks in respective ones of the RAID stripes.

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

to select particular ones of a plurality of RAID stripes to be rebuilt in a rebuild operation; and

to read one or more of the RAID metadata bitmaps associated with the selected RAID stripes into the memory; and

to perform corresponding portions of the rebuild operation;

to write the RAID metadata bitmaps to the persistent storage;

to repeat the selecting, reading, performing and writing until the rebuild operation is complete.

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

to delay verification of at least one of the RAID metadata bitmaps in conjunction with a read operation; and

to perform the verification of said at least one of the RAID metadata bitmaps in conjunction with a subsequent writing thereof.

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

to identify a subset of the data blocks to be read in conjunction with a reconstruction operation to correct data block degradations; and

to launch multiple reads of respective RAID metadata bitmaps in parallel with performing reads of the identified subset of data blocks.

13. 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;

wherein the storage system is configured to store data blocks across the storage devices of the storage nodes utilizing a redundant array of independent disks (RAID) arrangement;

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

to store a plurality of RAID metadata bitmaps in persistent storage of the given storage node so as to be available for a recovery operation associated with a detected failure;

to identify a particular subset of the RAID metadata bitmaps to be updated in conjunction with an additional operation other than the recovery operation; and

to temporarily store the identified subset of the RAID metadata bitmaps in the memory of the given storage node in a manner determined based at least in part on an operation type of the additional operation; and

wherein identifying the particular subset of the RAID metadata bitmaps to be updated in conjunction with an additional operation other than the recovery operation comprises:

detecting an operation that involves decrementing reference counts of a subset of the data blocks to zero; and

identifying the particular subset of the RAID metadata bitmaps as one or more of the RAID metadata bitmaps associated with the operation that involves decrementing reference counts of a subset of the data blocks to zero.

14. 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;

storing data blocks across the storage devices of the storage nodes utilizing a redundant array of independent disks (RAID) arrangement; and

for at least a given one of the storage nodes:

storing a plurality of RAID metadata bitmaps in persistent storage of the given storage node so as to be available for a recovery operation associated with a detected failure;

identifying a particular subset of the RAID metadata bitmaps to be updated in conjunction with an additional operation other than the recovery operation; and

temporarily storing the identified subset of the RAID metadata bitmaps in the memory of the given storage node in a manner determined based at least in part on an operation type of the additional operation;

wherein one or more other subsets of the RAID metadata bitmaps, different than the identified subset, are not stored in the memory of the given storage node but remain stored in the persistent storage of the given storage node; and

wherein identifying the particular subset of the RAID metadata bitmaps to be updated in conjunction with an additional operation other than the recovery operation comprises:

detecting a write cache emptying operation;

determining particular RAID stripes to be written as part of the write cache emptying operation;

selecting one or more of the particular RAID stripes; and

identifying the particular subset of the RAID metadata bitmaps as one or more of the RAID metadata bitmaps associated with the selected one or more RAID stripes.

15. The method of claim 14 wherein different ones of the RAID metadata bitmaps indicate at least free or taken status for different subsets of the data blocks stored across the storage devices of the storage nodes, and wherein a given one of the RAID metadata bitmaps comprises a plurality of entries for respective ones of its associated data blocks with each such entry indicating which of a plurality of possible states applies to a corresponding data block wherein the possible states include at least a free state and a taken state.

16. The method of claim 14 wherein identifying the particular subset of the RAID metadata bitmaps to be updated in conjunction with an additional operation other than the recovery operation comprises:

detecting an operation that involves decrementing reference counts of a subset of the data blocks to zero; and

identifying the particular subset of the RAID metadata bitmaps as one or more of the RAID metadata bitmaps associated with the operation that involves decrementing reference counts of a subset of the data blocks to zero.

17. 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 store data blocks across the storage devices of the storage nodes utilizing a redundant array of independent disks (RAID) arrangement; and

for at least a given one of the storage nodes:

to store a plurality of RAID metadata bitmaps in persistent storage of the given storage node so as to be available for a recovery operation associated with a detected failure;

to identify a particular subset of the RAID metadata bitmaps to be updated in conjunction with an additional operation other than the recovery operation; and

to temporarily store the identified subset of the RAID metadata bitmaps in the memory of the given storage node in a manner determined based at least in part on an operation type of the additional operation;

wherein one or more other subsets of the RAID metadata bitmaps, different than the identified subset, are not stored in the memory of the given storage node but remain stored in the persistent storage of the given storage node; and

wherein identifying the particular subset of the RAID metadata bitmaps to be updated in conjunction with an additional operation other than the recovery operation comprises:

detecting a write cache emptying operation;

determining particular RAID stripes to be written as part of the write cache emptying operation;

selecting one or more of the particular RAID stripes; and

identifying the particular subset of the RAID metadata bitmaps as one or more of the RAID metadata bitmaps associated with the selected one or more RAID stripes.

18. The computer program product of claim 17 wherein different ones of the RAID metadata bitmaps indicate at least free or taken status for different subsets of the data blocks stored across the storage devices of the storage nodes, and wherein a given one of the RAID metadata bitmaps comprises a plurality of entries for respective ones of its associated data blocks with each such entry indicating which of a plurality of possible states applies to a corresponding data block wherein the possible states include at least a free state and a taken state.

19. The computer program product of claim 17 wherein selecting one or more of the RAID stripes comprises selecting the one or more RAID stripes based at least in part on amounts of free data blocks in respective ones of the RAID stripes.

20. The computer program product of claim 17 wherein identifying the particular subset of the RAID metadata bitmaps to be updated in conjunction with an additional operation other than the recovery operation comprises:

detecting an operation that involves decrementing reference counts of a subset of the data blocks to zero; and

identifying the particular subset of the RAID metadata bitmaps as one or more of the RAID metadata bitmaps associated with the operation that involves decrementing reference counts of a subset of the data blocks to zero.

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 Aug 29, 2019
From: KUCHEROV, ANTON; MEIRI, DAVID
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 050213/0774 →