IP Library Granted Patent US 10,365,983
Granted Patent B1
US 10,365,983 · App. 15/499,102 · Granted Jul 30, 2019

Repairing raid systems at per-stripe granularity

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,365,983
App. No.
15/499,102
Granted
Jul 30, 2019
Kind
B1
Abstract

A technique for managing RAID (Redundant Array of Independent Disks) storage includes maintaining active-stripe metadata that stores, for each of multiple stripes that have been written by a RAID system, an entry that identifies the stripe and identifies a respective configuration plan in effect a last time the stripe was written. In response to a disk drive failure, the technique further includes generating a set of new plans that specify disk drive elements to be used in place of damaged ones and performing a selective repair operation. The selective repair operation iterates over a set of entries in the active-stripe metadata, performs a comparison between the identified plan for each stripe and a current plan implemented by the RAID system for writing to that stripe, and repairs the stripe when the identified plan and the current plan are different.

Claims (42)

1. A method of managing RAID (Redundant Array of Independent Disks) storage, the method comprising:

maintaining active-stripe metadata that stores, for each of multiple stripes that have been written by a RAID system, an entry that identifies the stripe and identifies a respective plan in effect a last time the stripe was written, the plan for each stripe describing a configuration of disk drive elements that back the stripe; and

in response to a failure in a disk drive managed by the RAID system, (i) generating a set of new plans that specify disk drive elements to be used in place of damaged ones and (ii) performing a selective repair operation,

the selective repair operation iterating over a set of entries in the active-stripe metadata and, for each of the set of entries, (i) performing a comparison between the identified plan for the respective stripe and a current plan implemented by the RAID system for writing to that stripe and (ii) repairing the stripe in response to the comparison indicating that the identified plan and the current plan are different,

wherein each stripe listed in the active-stripe metadata is part of an uber-slice that includes multiple stripes, and wherein the method further comprises providing an uber-slice identifier in each of the set of entries in the active-stripe metadata, each uber-slice identifier uniquely identifying the uber-slice that contains the respective stripe.

2. The method of claim 1 , wherein maintaining the active-stripe metadata is performed by a mapping manager that communicates with the RAID system, and wherein performing the selective repair operation operates in response to the mapping manager receiving a notification, from the RAID system, that identifies an uber-slice for which a new plan has been generated.

3. The method of claim 2 , wherein the set of entries over which the selected repair operation iterates is limited to entries that identify an uber-slice that matches the uber-slice identified in the notification.

4. The method of claim 2 , wherein the RAID system provides plans on a per-uber-slice basis, and wherein the method further comprises, after iterating over all of the set of entries for the uber-slice identified in the notification, sending, by the mapping manager, a command to the RAID system to retire all plans stored for the uber-slice identified in the notification except the current plan for that uber-slice.

5. The method of claim 2 , wherein the RAID system and the mapping manager are parts of a data storage system, and wherein the method further comprises:

receiving, by the data storage system, a request to write a set of data to a storage object;

in response to receiving the request, obtaining, by the mapping manager, a free stripe from a free stripe list, the free stripe having associated metadata that identifies an uber-slice that contains the free stripe;

sending, by the mapping manager, an instruction to the RAID system to write the set of data to the free stripe within the identified uber-slice;

receiving, by the mapping manager in response to the instruction, a plan identifier of a plan with which the RAID system wrote the set of data to the previously-free stripe; and

creating, by the mapping manager, a new entry in the active-stripe metadata for the previously-free stripe, the new entry identifying the previously-free stripe, the uber-slice that contains the previously-free stripe, and the plan identifier received in response to sending the instruction.

6. The method of claim 5 , wherein creating the new entry in the active-stripe metadata includes storing, as a metadata element in the entry, a logical address, the logical address uniquely identifying a range corresponding to a portion of the storage object to which the set of data is written.

7. The method of claim 1 , wherein repairing a stripe identified in an entry of the active-stripe metadata includes:

reading data from the stripe using the plan identified in the entry for that stripe in the active-stripe metadata; and

writing at least some of the data back to the stripe using the current plan for that stripe.

8. The method of claim 7 , wherein reading the data from the stripe includes applying RAID protocols to reconstruct a portion of the data that was stored on a now-damaged disk drive element.

9. The method of claim 8 , wherein writing the data back to the stripe includes:

writing the portion of the data to a disk drive element in the current plan for that stripe, which disk drive element replaced the now-damaged disk drive element; and

writing no portions of the data to any disk drive element listed in both the plan identified in the entry for that stripe and the current plan.

10. The method of claim 9 , wherein the method further comprises, when writing the data back to the stripe using the current plan for that stripe, updating the entry for that stripe in the active-stripe metadata to indicate the current plan.

11. A data storage system, comprising control circuitry that includes a set of processing units coupled to memory, the control circuitry constructed and arranged to:

maintain active-stripe metadata that stores, for each of multiple stripes that have been written by a RAID (Redundant Array of Independent Disks) system, an entry that identifies the stripe and identifies a respective plan in effect a last time the stripe was written, the plan for each stripe describing a configuration of disk drive elements that back the stripe; and

in response to a failure in a disk drive managed by the RAID system, (i) generate a set of new plans that specify disk drive elements to be used in place of damaged ones and (ii) perform a selective repair operation,

the selective repair operation configured to iterate over a set of entries in the active-stripe metadata and, for each of the set of entries, (i) perform a comparison between the identified plan for the respective stripe and a current plan implemented by the RAID system for writing to that stripe and (ii) repair the stripe in response to the comparison indicating that the identified plan and the current plan are different,

wherein each stripe listed in the active-stripe metadata is part of an uber-slice that includes multiple stripes, and wherein the method further comprises providing an uber-slice identifier in each of the set of entries in the active-stripe metadata, each uber-slice identifier uniquely identifying the uber-slice that contains the respective stripe.

12. A computer program product including a set of non-transitory, computer-readable media having instructions which, when executed by control circuitry of a data storage system, cause the control circuitry to perform a method for managing RAID (Redundant Array of Independent Disks) storage, the method comprising:

maintaining active-stripe metadata that stores, for each of multiple stripes that have been written by a RAID system, an entry that identifies the stripe and identifies a respective plan in effect a last time the stripe was written, the plan for each stripe describing a configuration of disk drive elements that back the stripe; and

in response to a failure in a disk drive managed by the RAID system, (i) generating a set of new plans that specify disk drive elements to be used in place of damaged ones and (ii) performing a selective repair operation,

the selective repair operation iterating over a set of entries in the active-stripe metadata and, for each of the set of entries, (i) performing a comparison between the identified plan for the respective stripe and a current plan implemented by the RAID system for writing to that stripe and (ii) repairing the stripe in response to the comparison indicating that the identified plan and the current plan are different,

wherein each stripe listed in the active-stripe metadata is part of an uber-slice that includes multiple stripes, and wherein the method further comprises providing an uber-slice identifier in each of the set of entries in the active-stripe metadata, each uber-slice identifier uniquely identifying the uber-slice that contains the respective stripe.

13. The computer program product of claim 12 , wherein maintaining the active-stripe metadata is performed by a mapping manager that communicates with the RAID system, and wherein performing the selective repair operation operates in response to the mapping manager receiving a notification, from the RAID system, that identifies an uber-slice for which a new plan has been generated.

14. The computer program product of claim 13 , wherein the RAID system provides plans on a per-uber-slice basis, and wherein the method further comprises, after iterating over all of the set of entries for the uber-slice identified in the notification, sending, by the mapping manager, a command to the RAID system to retire all plans stored for the uber-slice identified in the notification except the current plan for that uber-slice.

15. The computer program product of claim 12 , wherein repairing a stripe identified in an entry of the active-stripe metadata includes:

reading data from the stripe using the plan identified in the entry for that stripe in the active-stripe metadata; and

writing at least some of the data back to the stripe using the current plan for that stripe.

16. The computer program product of claim 15 , wherein reading the data from the stripe includes applying RAID protocols to reconstruct a portion of the data that was stored on a now-damaged disk drive element.

17. The computer program product of claim 16 , wherein writing the data back to the stripe includes:

writing the portion of the data to a disk drive element in the current plan for that stripe, which disk drive element replaced the now-damaged disk drive element; and

writing no portions of the data to any disk drive element listed in both the plan identified in the entry for that stripe and the current plan.

Assignments (8)
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 (042769/0001) Recorded Apr 26, 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 (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0802 →
RELEASE OF SECURITY INTEREST AT REEL 042768 FRAME 0585 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058297/0536 →
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 →
SECURITY AGREEMENT Recorded Mar 21, 2019
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 049452/0223 →
PATENT SECURITY INTEREST (CREDIT) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 042768/0585 →
PATENT SECURITY INTEREST (NOTES) Recorded Jun 12, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; MOZY, INC.; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 042769/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2017
From: FOLEY, ROBERT P.; PUHOV, PETER
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 042617/0938 →