IP Library Granted Patent US 11,341,010
Granted Patent B2
US 11,341,010 · App. 16/743,643 · Granted May 24, 2022

Dynamic reclamation of storage stripes

Inventors: Geng Han (Beijing, CN); Hongpo Gao (Beijing, CN); Jian Gao (Beijing, CN); Shuyu Lee (Acton, MA); Vamsi K. Vankamamidi (Hopkinton, MA)
Assignee: EMC IP Holding Company LLC
G06F11/2094G06F3/0617G06F3/0644G06F3/0652G06F3/0689G06F11/1458G06F12/0246G06F2201/81G06F2212/1044
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,341,010
App. No.
16/743,643
Granted
May 24, 2022
Kind
B2
Abstract

Techniques for rebuilding a failed drive of a plurality of drives are provided. The techniques include: (a) determining a number of empty data stripes that have been allocated from the plurality of drives; (b) applying a set of decision criteria to the determined number to yield a decision, wherein applying the set of decision criteria yields a first decision at a first time and a differing second decision at a second time; (c) in response to the first decision at the first time, deallocating an empty data stripe that was allocated from the plurality of drives to yield a plurality of data extents on disparate drives of the plurality of drives and continuing to rebuild the failed drive onto at least one of the plurality of data extents; and (d) in response to the second decision at the second time, pausing rebuilding the failed drive until applying the set of decision criteria yields the first decision.

Claims (63)

1. A method of rebuilding a failed drive of a plurality of drives, the method comprising:

determining a number of empty data stripes that have been allocated from the plurality of drives;

applying a set of decision criteria to the determined number to yield a decision, wherein applying the set of decision criteria yields a first decision at a first time and a differing second decision at a second time;

in response to the first decision at the first time, deallocating an empty data stripe that was allocated from the plurality of drives to yield a plurality of data extents on disparate drives of the plurality of drives and continuing to rebuild the failed drive onto at least one of the plurality of data extents; and

in response to the second decision at the second time, pausing rebuilding the failed drive until applying the set of decision criteria yields the first decision.

2. The method of claim 1 ,

wherein determining the number and applying the set of decision criteria are performed by an upper-level mapping layer of a multi-layered storage stack; and

wherein deallocating, continuing to rebuild, and pausing rebuilding are performed by a lower-level storage management layer of the multi-layered storage stack.

3. The method of claim 2 wherein the method further comprises:

prior to determining the number and applying the set of decision criteria, beginning to rebuild, by the storage management layer, the failed drive onto data extents of the plurality of drives that were not part of any allocated data stripe; and

determining the number and applying the set of decision criteria in response to the storage management layer exhausting the data extents of the plurality of drives that were not part of any allocated data stripe.

4. The method of claim 2 wherein applying the set of decision criteria to the determined number includes, in response to the mapping layer determining that none of the allocated empty data stripes can be spared by the mapping layer, further determining whether garbage collection of non-empty allocated data stripes would yield any additional allocated empty data stripes.

5. The method of claim 4 wherein yielding the second decision is performed in response to the mapping layer determining that garbage collection of non-empty allocated data stripes would not yield any additional allocated empty data stripes.

6. The method of claim 4 wherein the method further comprises:

in response to the mapping layer determining that garbage collection of non-empty allocated data stripes would yield at least one additional allocated empty data stripe, yielding a third decision by the mapping layer;

in response to the third decision:

sending a wait signal from the mapping layer to the storage management layer; and

performing garbage collection by the mapping layer; and

in response to the garbage collection generating a new empty allocated data stripe, sending the first decision to the storage management layer to continue to rebuild the failed drive using the new empty allocated data stripe.

7. The method of claim 1 wherein applying the set of decision criteria to the determined number includes:

comparing the determined number to a threshold;

at the first time, determining that the determined number exceeds the threshold and yielding the first decision in response; and

at the second time, determining that the determined number does not exceed the threshold and yielding the second decision in response.

8. The method of claim 7 wherein the threshold is a fixed value representing a maximum number of stripes to which garbage collection can be applied at once.

9. The method of claim 7 wherein the method further comprises adjusting the threshold down in response to detecting that a health value of one of the plurality of drives has dropped below a health threshold.

10. A computer program product comprising a non-transitory computer-readable storage medium storing a set of instructions, which, when performed by a computing device, causes the computing device to rebuild a failed drive of a plurality of drives by:

determining a number of empty data stripes that have been allocated from the plurality of drives;

applying a set of decision criteria to the determined number to yield a decision, wherein applying the set of decision criteria yields a first decision at a first time and a differing second decision at a second time;

in response to the first decision at the first time, deallocating an empty data stripe that was allocated from the plurality of drives to yield a plurality of data extents on disparate drives of the plurality of drives and continuing to rebuild the failed drive onto at least one of the plurality of data extents; and

in response to the second decision at the second time, pausing rebuilding the failed drive until applying the set of decision criteria yields the first decision.

11. The computer program product of claim 10 ,

wherein the set of instructions, when performed by the computing device, further cause the computing device to execute a multi-layered storage stack including an upper-level mapping layer of and a lower-level storage management layer;

wherein determining the number and applying the set of decision criteria are performed by the upper-level mapping layer; and

wherein deallocating, continuing to rebuild, and pausing rebuilding are performed by the lower-level storage management layer.

12. The computer program product of claim 11 wherein the set of instructions, when performed by the computing device, further cause the computing device to:

prior to determining the number and applying the set of decision criteria, begin to rebuild, by the storage management layer, the failed drive onto data extents of the plurality of drives that were not part of any allocated data stripe; and

determine the number and apply the set of decision criteria in response to the storage management layer exhausting the data extents of the plurality of drives that were not part of any allocated data stripe.

13. The computer program product of claim 11 wherein applying the set of decision criteria to the determined number includes, in response to the mapping layer determining that none of the allocated empty data stripes can be spared by the mapping layer, further determining whether garbage collection of non-empty allocated data stripes would yield any additional allocated empty data stripes.

14. The computer program product of claim 13 wherein yielding the second decision is performed in response to the mapping layer determining that garbage collection of non-empty allocated data stripes would not yield any additional allocated empty data stripes.

15. The computer program product of claim 13 wherein the set of instructions, when performed by the computing device, further cause the computing device to:

in response to the mapping layer determine that garbage collection of non-empty allocated data stripes would yield at least one additional allocated empty data stripe, yielding a third decision by the mapping layer;

in response to the third decision:

send a wait signal from the mapping layer to the storage management layer; and

perform garbage collection by the mapping layer; and

in response to the garbage collection generating a new empty allocated data stripe, send the first decision to the storage management layer to continue to rebuild the failed drive using the new empty allocated data stripe.

16. The computer program product of claim 10 wherein applying the set of decision criteria to the determined number includes:

comparing the determined number to a threshold;

at the first time, determining that the determined number exceeds the threshold and yielding the first decision in response; and

at the second time, determining that the determined number does not exceed the threshold and yielding the second decision in response.

17. An apparatus comprising:

a plurality of non-transitory persistent storage drives; and

processing circuitry coupled to memory configured to rebuild a failed drive of the plurality of drives by:

determining a number of empty data stripes that have been allocated from the plurality of drives;

applying a set of decision criteria to the determined number to yield a decision, wherein applying the set of decision criteria yields a first decision at a first time and a differing second decision at a second time;

in response to the first decision at the first time, deallocating an empty data stripe that was allocated from the plurality of drives to yield a plurality of data extents on disparate drives of the plurality of drives and continuing to rebuild the failed drive onto at least one of the plurality of data extents; and

in response to the second decision at the second time, pausing rebuilding the failed drive until applying the set of decision criteria yields the first decision.

18. The apparatus of claim 17 ,

wherein determining the number and applying the set of decision criteria are performed by an upper-level mapping layer of a multi-layered storage stack; and

wherein deallocating, continuing to rebuild, and pausing rebuilding are performed by a lower-level storage management layer of the multi-layered storage stack.

19. The apparatus of claim 17 wherein applying the set of decision criteria to the determined number includes:

comparing the determined number to a threshold;

at the first time, determining that the determined number exceeds the threshold and yielding the first decision in response; and

at the second time, determining that the determined number does not exceed the threshold and yielding the second decision in response.

Assignments (9)
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 (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 (052216/0758) 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 IP HOLDING COMPANY LLC
Reel/Frame 060438/0680 →
RELEASE OF SECURITY INTEREST AF REEL 052243 FRAME 0773 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0152 →
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 →
SECURITY AGREEMENT Recorded Mar 26, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052243/0773 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Mar 24, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052216/0758 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2020
From: HAN, GENG; GAO, HONGPO; GAO, JIAN; LEE, SHUYU; VANKAMAMIDI, VAMSI K.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 051993/0848 →