IP Library Granted Patent US 10,120,769
Granted Patent B2
US 10,120,769 · App. 15/097,795 · Granted Nov 6, 2018

Raid rebuild algorithm with low I/O impact

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,120,769
App. No.
15/097,795
Granted
Nov 6, 2018
Kind
B2
Abstract

A disclosed storage management method includes detecting an unrecoverable failure associated with a logical block of a first physical storage device that is one of a plurality of storage devices within a redundant virtual drive that also includes a hot spare drive. Data for the unrecoverable block may be rebuilt from data in the remaining storage devices and stored in a logical block of the hot spare drive. One or more logical block maps may be maintained to identify unrecoverable logical blocks and to indicate the logical blocks and storage devices to which each of the unrecoverable logical blocks is relocated. I/O operations that access “good” logical blocks are normally while accesses to unrecoverable logical blocks are rerouted according to the logical block map. One or more unrecoverable thresholds may be supported to initiate operations to replace storage devices containing unrecoverable blocks exceeding an applicable threshold.

Claims (85)

1. A storage method, comprising:

detecting an unrecoverable error associated with a particular logical block of a virtual drive comprising a plurality of physical storage devices and a hot spare drive;

identifying a particular source disk and a particular stripe associated with the particular logical block address;

determining whether the unrecoverable error is a first error associated with the particular stripe;

responsive to determining the unrecoverable error is the first error associated with the particular stripe, performing operations comprising:

regenerating data corresponding to the particular logical block from remaining source disks in the virtual drive;

storing the regenerated data to a first stripe of the hot spare drive; and

creating an entry in a mapping structure, the entry associating the particular source disk and the particular stripe of the particular logical block address with the first stripe of the hot spare drive; and

responsive to determining the unrecoverable error is not the first unrecoverable error associated with the particular stripe, performing operations comprising:

copying a different logical block, stored in a different stripe of the particular source disk, to a second stripe of the hot spare drive;

regenerating the logical block from:

the first stripe of the hot spare drive; and

unmapped portions of the particular stripe on other source disks;

storing the regenerated logical block to the different stripe;

creating an entry mapping the particular logical block to the different stripe; and

creating an entry mapping the different logical block to the second stripe of the hot spare drive.

2. The method of claim 1 , further comprising:

detecting an unrecoverable error associated with the first stripe of the hot spare drive;

regenerating data for the first stripe of the hot spare drive;

storing the regenerated data to a second stripe of the hot spare drive.

3. The method of claim 2 , wherein regenerating the first stripe of the distributed hot spare drive includes regenerating from at least one remapped stripe.

4. The method of claim 3 , wherein the remapped stripe is remapped to a source disk.

5. The method of claim 3 , wherein the remapped stripe is remapped to the hot spare drive.

6. The method of claim 1 , further comprising:

detecting a number of logical block errors on a first source disk exceeding a single disk threshold; and

performing replacement operations comprising:

copying remaining good blocks of the first source disk to a replacement disk;

copying remapped portions of the first source disk to the replacement disk; and

removing from the mapping structure, entries associated with the first source disk.

7. The method of claim 1 , further comprising:

responsive to detecting a total number of logical block errors for the virtual drive exceeding a virtual drive threshold, performing operations comprising:

identifying a candidate source disk based on a number of logical block errors associated with the candidate source disk;

copying remaining good blocks of the candidate source disk to a replacement disk;

copying remapped portions of the first source disk to the replacement disk; and

removing from the mapping structure, entries associated with the first source disk.

8. A storage controller comprising:

a processor; and

a computer readable medium including processor executable instructions that, when executed by the processor, cause the processor to perform operations comprising:

detecting an unrecoverable failure associated with a logical block of a first physical storage device, wherein the first physical storage device comprises a first physical storage device of a redundant array of inexpensive drives (RAID) 5 virtual drive, the logical block comprises a first logical block of a data stripe, and wherein rebuilding data for the logical block comprises performing an exclusive or (EXOR) operation on remaining portions of the data stripe in the remaining physical storage devices;

rebuilding data for the logical block from data in remaining physical storage devices of the virtual drive;

storing rebuilt data resulting from the rebuilding of data in a first logical block of a hot spare drive;

maintaining an address map for the first physical storage device, wherein the address map:

identifies logical blocks of the first physical storage device containing unrecoverable failures associated with the first physical storage device; and

indicates relocated logical blocks for each of the logical blocks identified;

detecting a second unrecoverable error associated with a second logical block on a second physical storage device of the virtual drive;

determining whether a data stripe corresponding to the second logical block includes any other logical blocks associated with a unrecoverable error; and

responsive to determining that the second logical block is of the same data stripe as the first logical block, performing same-stripe rebuilding operations comprising:

copying data for a different logical block of the second physical storage device to a distributed hot spare drive; and

performing an exclusive OR (EXOR) of:

the relocated first logical block on the distributed hot spare drive; and

a third logical block, associated with a third physical storage device, of the virtual drive.

9. The storage controller of claim 8 , wherein the operations include maintaining a respective address map for each of the plurality of physical storage devices.

10. The storage controller of claim 8 , wherein the operations include:

detecting a third unrecoverable error associated with a first logical block of the distributed hot spare drive;

rebuilding the data from:

the relocated logical block of the second physical storage device; and

the third logical block associated with the third physical storage device.

11. The storage controller of claim 8 , wherein the operations include:

detecting a DEVICE COUNT event triggered by a quantity of unrecoverable errors associated with a particular physical storage device exceeding a DEVICE COUNT threshold; and

performing replacement operations comprising:

copying remaining good blocks of the first source disk to a replacement disk;

copying remapped portions of the first source disk to the replacement disk; and

removing from the mapping structure, entries associated with the first source disk.

12. The storage controller of claim 11 , wherein the operations include:

detecting a SPARE COUNT event triggered by a quantity of rebuilt logical blocks stored on the hot spare drive associated with a particular physical storage device exceeding a DEVICE COUNT threshold;

identifying a candidate source disk based on a number of logical block errors associated with the candidate source disk;

copying remaining good blocks of the candidate source disk to a replacement disk;

copying remapped portions of the first source disk to the replacement disk; and

removing from the mapping structure, entries associated with the first source disk.

13. An information handling system, comprising:

a processor; and

computer readable storage accessible to the processor and including processor executable program instructions that, when executed by the processor, cause the processor to perform operations comprising:

detecting an unrecoverable failure associated with a logical block of a first physical storage device, wherein the first physical storage device comprises a first physical storage device of a redundant array of inexpensive drives (RAID) 5 virtual drive and the logical block comprises a first logical block of a data stripe, and;

rebuilding data for the logical block from data in remaining physical storage devices of the virtual drive wherein rebuilding data for the logical block comprises performing an exclusive or (EXOR) operation on remaining portions the data stripe in the remaining physical storage devices;

storing rebuilt data resulting from the rebuilding of data in a first logical block of a hot spare drive; and

maintaining an address map for the first physical storage device, wherein the address map:

identifies logical blocks of the first physical storage device containing unrecoverable failures associated with the first physical storage device; and

indicates relocated logical blocks for each of the logical blocks identified;

detecting a second unrecoverable error associated with a second logical block on a second physical storage device of the virtual drive;

determining whether a data stripe corresponding to the second logical block includes any other logical blocks associated with a unrecoverable error; and

responsive to determining that the second logical block is of the same data stripe as the first logical block, performing same-stripe rebuilding operations comprising:

copying data for a different logical block of the second physical storage device to the distributed hot spare; and

performing an exclusive OR (EXOR) of:

the relocated first logical block on the hot spare drive; and

a third logical block, associated with a third physical storage device, of the virtual drive.

Assignments (17)
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 (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
RELEASE OF SECURITY INTEREST AT REEL 048825 FRAME 0489 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 058000/0916 →
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 Apr 8, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 048825/0489 →
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 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
RELEASE OF REEL 038665 FRAME 0041 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, CORP.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040028/0375 →
RELEASE OF REEL 038664 FRAME 0908 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, CORP.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040027/0390 →
RELEASE OF REEL 038665 FRAME 0001 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; SECUREWORKS, CORP.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040021/0348 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded May 11, 2016
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 038665/0041 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded May 11, 2016
From: DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 038664/0908 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded May 11, 2016
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; WYSE TECHNOLOGY, L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 038665/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2016
From: SREEDHAR M, DEEPU SYAM; AGARWAL, SANDEEP; KUMAR P.K., KRISHNA
To: DELL PRODUCTS L.P.
Reel/Frame 038386/0098 →