IP Library Granted Patent US 9,690,660
Granted Patent B1
US 9,690,660 · App. 14/729,714 · Granted Jun 27, 2017

Spare selection in a declustered RAID system

Inventors: Edward S. Robins (Winchester, MA); Evgeny Malkevich (Newton, MA)
Assignee: EMC IP Holding Company LLC
G06F11/1088G06F11/1076G06F17/3053
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 9,690,660
App. No.
14/729,714
Granted
Jun 27, 2017
Kind
B1
Abstract

Embodiments are directed to techniques for techniques for selecting a proper set of spare sections to use in a given failure scenario. These embodiments use a set of rules to define which spare sections are eligible to serve as spares for reconstruction of the RAID members on a disk that had failed. In addition, the set of rules may include weighted rules to allow optimization in the spare selection process.

Claims (85)

1. A method, performed by a data storage device, of recovering from a failure of a disk within a declustered RAID arrangement, the declustered RAID arrangement including N disks, each disk having a plurality of splits, the declustered RAID arrangement having a plurality of RAID groups, each RAID group distributed over a plurality less than N of members on distinct splits on distinct disks of the N disks, N being an integer greater than one, the method comprising:

receiving an indication that the disk has failed, the failed disk storing a set of members of various RAID groups of the plurality of RAID groups;

identifying, with reference to a set of hard rules, a set of spare splits eligible to store reconstructed versions of the set of members, each spare split being a split which is currently not a member of any RAID group, resulting in a set of eligible members of the set of members being identified as eligible sources for each respective spare split of the set of spare splits;

searching for an assignment between each member of the set of members and a respective eligible spare split of the set of spare splits; and

upon finding an assignment, reconstructing each member of the various RAID groups stored on the failed disk onto its respective assigned spare split;

wherein searching for the assignment includes applying a set of weighted rules to generate a weighted score for each pair of one spare split and one of its respective eligible sources.

2. The method of claim 1 wherein searching for the assignment further includes:

for each member of the set of members, ranking, with reference to the weighted scores, all spare splits for which that member is an eligible source; and

recursively searching for the assignment by attempting to assign higher-ranking spare splits to each respective member of the set of members prior to attempting to assign lower-ranking spare splits to each respective member.

3. The method of claim 1 wherein searching for the assignment further includes:

converting the generated weighted scores to flow capacity scores;

generating a directed graph with nodes representing respective members of the set of members and the eligible spare splits, the directed graph including an edge from each node representing a member of the set of members to respective nodes representing eligible spare splits for which that member is an eligible source, each edge having a flow capacity defined by a respective converted flow capacity score; and

applying a flow maximization technique to the directed graph.

4. The method of claim 3 wherein:

converting the generated weighted scores to flow capacity scores includes:

inverting the generated weighted scores;

normalizing the inverted weighted scores to a lowest value of the inverted weighted scores; and

performing integer rounding on the normalized inverted weighted scores; and

applying the flow maximization technique includes applying the Edmonds-Karp technique.

5. The method of claim 3 wherein:

converting the generated weighted scores to flow capacity scores includes inverting the generated weighted scores; and

applying the flow maximization technique includes applying the Ford-Fulkerson technique.

6. The method of claim 1 wherein searching for the assignment further includes selecting between members of a set of search techniques based on available time and processing resources, the set of search techniques including:

a recursive search technique;

a flow maximization technique utilizing integer flow capacity values in a directed graph; and

a flow maximization technique utilizing non-integer flow capacity values in a directed graph.

7. A method, performed by a data storage device, of recovering from a failure of a disk within a declustered RAID arrangement, the declustered RAID arrangement including N disks, each disk having a plurality of splits, the declustered RAID arrangement having a plurality of RAID groups, each RAID group distributed over a plurality less than N of members on distinct splits on distinct disks of the N disks, N being an integer greater than one, the method comprising:

receiving an indication that the disk has failed, the failed disk storing a set of members of various RAID groups of the plurality of RAID groups;

identifying, with reference to a set of hard rules, a set of spare splits eligible to store reconstructed versions of the set of members, each spare split being a split which is currently not a member of any RAID group, resulting in a set of eligible members of the set of members being identified as eligible sources for each respective spare split of the set of spare splits;

searching for an assignment between each member of the set of members and a respective eligible spare split of the set of spare splits; and

upon finding an assignment, reconstructing each member of the various RAID groups stored on the failed disk onto its respective assigned spare split;

wherein searching for the assignment includes:

generating a directed graph with nodes representing respective members of the set of members and the eligible spare splits, the directed graph including an edge from each node representing a member of the set of members to respective nodes representing eligible spare splits for which that member is an eligible source, each edge having an equal integer flow capacity; and

applying the Edmonds-Karp technique to the directed graph.

8. A method, performed by a data storage device, of recovering from a failure of a disk within a declustered RAID arrangement, the declustered RAID arrangement including N disks, each disk having a plurality of splits, the declustered RAID arrangement having a plurality of RAID groups, each RAID group distributed over a plurality less than N of members on distinct splits on distinct disks of the N disks, N being an integer greater than one, the method comprising:

receiving an indication that the disk has failed, the failed disk storing a set of members of various RAID groups of the plurality of RAID groups;

identifying, with reference to a set of hard rules, a set of spare splits eligible to store reconstructed versions of the set of members, each spare split being a split which is currently not a member of any RAID group, resulting in a set of eligible members of the set of members being identified as eligible sources for each respective spare split of the set of spare splits;

searching for an assignment between each member of the set of members and a respective eligible spare split of the set of spare splits;

upon finding an assignment, reconstructing each member of the various RAID groups stored on the failed disk onto its respective assigned spare split; and

upon not finding an assignment:

softening one or more hard rules of the set of hard rules by removing a limit from each of the one or more hard rules, forming a softened set of hard rules;

re-identifying, with reference to the softened set of hard rules, a new set of spare splits eligible to store reconstructed versions of the set of members, each new spare split being a split which is currently not a member of any RAID group, resulting in a new set of eligible members of the set of members being identified as now eligible sources for each respective new spare split of the set of spare splits; and

re-searching for an assignment between each member of the set of members and a respective eligible spare split of the new set of spare splits.

9. The method of claim 8 wherein softening the one or more hard rules of the set of hard rules includes softening the one or more hard rules of the set of hard rules in order of a pre-defined hierarchy.

10. The method of claim 8 wherein re-searching for the assignment includes applying a set of weighted rules to generate a weighted score for each pair of one new spare split and one of its respective now eligible sources.

11. The method of claim 10 wherein re-searching for the assignment further includes:

for each member of the set of members, ranking, with reference to the weighted scores, all new spare splits for which that member is a now eligible source; and

recursively searching for the assignment by attempting to assign higher-ranking new spare splits to each respective member of the set of members prior to attempting to assign lower-ranking new spare splits to each respective member.

12. The method of claim 10 wherein re-searching for the assignment further includes:

converting the generated weighted scores to flow capacity scores;

generating a directed graph with nodes representing respective members of the set of members and the eligible new spare splits, the directed graph including an edge from each node representing a member of the set of members to respective nodes representing eligible new spare splits for which that member is a now eligible source, each edge having a flow capacity defined by a respective converted flow capacity score; and

applying a flow maximization technique to the directed graph.

13. The method of claim 12 wherein:

converting the generated weighted scores to flow capacity scores includes:

inverting the generated weighted scores;

normalizing the inverted weighted scores to a lowest value of the inverted weighted scores; and

performing integer rounding on the normalized inverted weighted scores; and

applying the flow maximization technique includes applying the Edmonds-Karp technique.

14. The method of claim 12 wherein:

converting the generated weighted scores to flow capacity scores includes inverting the generated weighted scores; and

applying the flow maximization technique includes applying the Ford-Fulkerson technique.

15. The method of claim 10 wherein re-searching for the assignment further includes selecting between members of a set of search techniques based on available time and processing resources, the set of search techniques including:

a recursive search technique;

a flow maximization technique utilizing integer flow capacity values in a directed graph; and

a flow maximization technique utilizing non-integer flow capacity values in a directed graph.

16. The method of claim 8 wherein re-searching for the assignment includes

generating a directed graph with nodes representing respective members of the set of members and the eligible new spare splits, the directed graph including an edge from each node representing a member of the set of members to respective nodes representing eligible new spare splits for which that member is a now eligible source, each edge having an equal integer flow capacity; and

applying the Edmonds-Karp technique to the directed graph.

17. An apparatus comprising:

storage interface circuitry configured to provide access to a set of N disks in a declustered RAID arrangement, each disk having a plurality of splits, the declustered RAID arrangement having a plurality of RAID groups, each RAID group distributed over a plurality less than N of members on distinct splits on distinct disks of the N disks, N being an integer greater than one;

processing circuitry coupled to memory and to the storage interface circuitry, the processing circuitry being configured to recover from a failure of a disk of the declustered RAID arrangement by:

receiving an indication that the disk has failed, the failed disk storing a set of members of various RAID groups of the plurality of RAID groups;

identifying, with reference to a set of hard rules, a set of spare splits eligible to store reconstructed versions of the set of members, each spare split being a split which is currently not a member of any RAID group, resulting in a set of eligible members of the set of members being identified as eligible sources for each respective spare split of the set of spare splits;

searching for an assignment between each member of the set of members and a respective eligible spare split of the set of spare splits;

upon finding an assignment, reconstructing each member of the various RAID groups stored on the failed disk onto its respective assigned spare split; and

upon not finding an assignment:

softening one or more hard rules of the set of hard rules by removing a limit from each of the one or more hard rules, forming a softened set of hard rules;

re-identifying, with reference to the softened set of hard rules, a new set of spare splits eligible to store reconstructed versions of the set of members, each new spare split being a split which is currently not a member of any RAID group, resulting in a new set of eligible members of the set of members being identified as now eligible sources for each respective new spare split of the set of spare splits; and

re-searching for an assignment between each member of the set of members and a respective eligible spare split of the new set of spare splits.

18. A computer program product comprising a non-transitory computer-readable storage medium storing a set of instructions, which, when performed by a data storage device, cause the data storage device to recover from a failure of a disk within a declustered RAID arrangement, the declustered RAID arrangement including N disks, each disk having a plurality of splits, the declustered RAID arrangement having a plurality of RAID groups, each RAID group distributed over a plurality less than N of members on distinct splits on distinct disks of the N disks, N being an integer greater than one, the recovery being performed by:

receiving an indication that the disk has failed, the failed disk storing a set of members of various RAID groups of the plurality of RAID groups;

identifying, with reference to a set of hard rules, a set of spare splits eligible to store reconstructed versions of the set of members, each spare split being a split which is currently not a member of any RAID group, resulting in a set of eligible members of the set of members being identified as eligible sources for each respective spare split of the set of spare splits;

searching for an assignment between each member of the set of members and a respective eligible spare split of the set of spare splits; and

upon finding an assignment, reconstructing each member of the various RAID groups stored on the failed disk onto its respective assigned spare split;

wherein searching for the assignment includes applying a set of weighted rules to generate a weighted score for each pair of one spare split and one of its respective eligible sources.

Assignments (10)
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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/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 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2015
From: ROBINS, EDWARD S; MALKEVICH, EVGENY
To: EMC CORPORATION
Reel/Frame 035931/0909 →