IP Library Granted Patent US 11,194,664
Granted Patent B2
US 11,194,664 · App. 16/852,632 · Granted Dec 7, 2021

Storage system configured to guarantee sufficient capacity for a distributed raid rebuild process

Inventor: Yosef Shatsky (Karnei Shomron, IL)
Assignee: EMC IP Holding Company LLC
G06F11/1092G06F3/0689G06F11/0772G06F11/1088G06F11/3034
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,194,664
App. No.
16/852,632
Granted
Dec 7, 2021
Kind
B2
Abstract

A storage system comprises a plurality of storage devices, and is configured to establish a redundant array of independent disks (RAID) arrangement comprising a plurality of stripes, with each of the plurality of stripes comprising a plurality of blocks, the blocks being distributed across multiple ones of the storage devices. In conjunction with establishment of the RAID arrangement, the storage system is further configured, for each of the plurality of stripes, to designate a particular one of the storage devices as a spare storage device for that stripe, and for each of the storage devices, to determine numbers of the stripes for which that storage device is designated as a spare device for respective ones of the other storage devices. A particular number of spare blocks is reserved for each of the storage devices based at least in part on its determined numbers of the stripes.

Claims (39)

1. An apparatus comprising:

a storage system comprising a plurality of storage devices;

the storage system being configured:

to establish a redundant array of independent disks (RAID) arrangement comprising a plurality of stripes, with each of the plurality of stripes comprising a plurality of blocks, the blocks being distributed across multiple ones of the storage devices; and

in conjunction with establishment of the RAID arrangement:

for each of the plurality of stripes, to designate a particular one of the storage devices as a spare storage device for that stripe;

for each of the storage devices, to determine numbers of the stripes for which that storage device is designated as a spare device for respective ones of the other storage devices; and

to reserve a particular number of spare blocks for each of the storage devices based at least in part on the determined numbers of the stripes for which that storage device is designated as a spare device for respective ones of the other storage devices.

2. The apparatus of claim 1 wherein the RAID arrangement comprises a distributed RAID arrangement in which a total number of blocks per stripe is less than a total number of the storage devices over which the blocks of the plurality of stripes are distributed.

3. The apparatus of claim 1 wherein the RAID arrangement comprises at least one parity RAID arrangement supporting recovery from a failure of at least one of the plurality of storage devices and wherein a given one of the stripes comprises a plurality of data blocks and one or more parity blocks.

4. The apparatus of claim 1 wherein the storage system is further configured to store stripe metadata indicating for each of the stripes the particular one of the storage devices that is designated as a spare storage device for that stripe.

5. The apparatus of claim 4 wherein the stripe metadata indicating for each of the stripes the particular one of the storage devices that is designated as a spare storage device for that stripe comprises an allocation table, the allocation table comprising a plurality of entries for respective ones of the stripes with each such entry comprising an identifier of the storage device that is designated as a spare storage device for that stripe.

6. The apparatus of claim 1 wherein the storage system is further configured to store stripe metadata indicating for each of the storage devices the determined numbers of the stripes for which that storage device is designated as a spare device for respective ones of the other storage devices.

7. The apparatus of claim 6 wherein the stripe metadata indicating for each of the storage devices the determined numbers of the stripes for which that storage device is designated as a spare device for respective ones of the other storage devices comprises a reserve table, the reserve table comprising a plurality of entries for respective ones of the storage devices with each such entry comprising the determined numbers of the stripes for which that storage device is designated as a spare device for respective ones of the other storage devices.

8. The apparatus of claim 1 wherein reserving a particular number of spare blocks for each of the storage devices based at least in part on the determined numbers of the stripes for which that storage device is designated as a spare device for respective ones of the other storage devices comprises reserving a particular number of spare blocks that is equivalent to a highest one of the determined numbers of the stripes.

9. The apparatus of claim 1 wherein the storage system is further configured:

to detect a failure of at least one of the storage devices; and

responsive to the detected failure, to initiate a rebuild process to reconstruct blocks of the one or more failed storage devices utilizing the blocks of other ones of the storage devices.

10. The apparatus of claim 9 wherein the rebuild process utilizes at least a subset of the reserved spare blocks of respective ones of the non-failed storage devices.

11. The apparatus of claim 1 wherein the reserved spare blocks are sufficient in number to guarantee that a rebuild process initiated responsive to a failure of one or more of the storage devices has sufficient available storage device capacity to reconstruct the blocks of the one or more failed storage devices.

12. The apparatus of claim 1 wherein the reserved spare blocks of a given one of the storage devices are available for utilization in reconstructing one of at least first and second other ones of the storage devices in a rebuild process initiated responsive to a failure of said one of the at least first and second other ones of the storage devices.

13. The apparatus of claim 1 wherein each of the storage devices is designated as a spare device for multiple other ones of the storage devices.

14. A method for use in a storage system comprising a plurality of storage devices, the method comprising:

to establish a redundant array of independent disks (RAID) arrangement comprising a plurality of stripes, with each of the plurality of stripes comprising a plurality of blocks, the blocks being distributed across multiple ones of the storage devices; and

in conjunction with establishment of the RAID arrangement:

for each of the plurality of stripes, to designate a particular one of the storage devices as a spare storage device for that stripe;

for each of the storage devices, to determine numbers of the stripes for which that storage device is designated as a spare device for respective ones of the other storage devices; and

to reserve a particular number of spare blocks for each of the storage devices based at least in part on the determined numbers of the stripes for which that storage device is designated as a spare device for respective ones of the other storage devices.

15. The method of claim 14 wherein reserving a particular number of spare blocks for each of the storage devices based at least in part on the determined numbers of the stripes for which that storage device is designated as a spare device for respective ones of the other storage devices comprises reserving a particular number of spare blocks that is equivalent to a highest one of the determined numbers of the stripes.

16. The method of claim 14 wherein the reserved spare blocks are sufficient in number to guarantee that a rebuild process initiated responsive to a failure of one or more of the storage devices has sufficient available storage device capacity to reconstruct the blocks of the one or more failed storage devices.

17. The method of claim 14 wherein each of the storage devices is designated as a spare device for multiple other ones of the storage devices.

18. 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 processor of a storage system comprising a plurality of storage devices, causes the storage system:

to establish a redundant array of independent disks (RAID) arrangement comprising a plurality of stripes, with each of the plurality of stripes comprising a plurality of blocks, the blocks being distributed across multiple ones of the storage devices; and

in conjunction with establishment of the RAID arrangement:

for each of the plurality of stripes, to designate a particular one of the storage devices as a spare storage device for that stripe;

for each of the storage devices, to determine numbers of the stripes for which that storage device is designated as a spare device for respective ones of the other storage devices; and

to reserve a particular number of spare blocks for each of the storage devices based at least in part on the determined numbers of the stripes for which that storage device is designated as a spare device for respective ones of the other storage devices.

19. The computer program product of claim 18 wherein reserving a particular number of spare blocks for each of the storage devices based at least in part on the determined numbers of the stripes for which that storage device is designated as a spare device for respective ones of the other storage devices comprises reserving a particular number of spare blocks that is equivalent to a highest one of the determined numbers of the stripes.

20. The computer program product of claim 18 wherein the reserved spare blocks are sufficient in number to guarantee that a rebuild process initiated responsive to a failure of one or more of the storage devices has sufficient available storage device capacity to reconstruct the blocks of the one or more failed storage devices.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0081) 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 060436/0441 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052851/0917) 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 060436/0509 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (052852/0022) 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 060436/0582 →
RELEASE OF SECURITY INTEREST AT REEL 052771 FRAME 0906 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0298 →
SECURITY INTEREST Recorded Jun 5, 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 052852/0022 →
SECURITY INTEREST Recorded Jun 5, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 052851/0081 →
SECURITY INTEREST Recorded Jun 5, 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 052851/0917 →
SECURITY AGREEMENT Recorded May 28, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 052771/0906 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2020
From: SHATSKY, YOSEF
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052437/0455 →