IP Library Granted Patent US 11,829,247
Granted Patent B2
US 11,829,247 · App. 16/819,785 · Granted Nov 28, 2023

Method, device, and computer program product for rebuilding data of a failed storage device in a storage system

Inventors: Hongpo Gao (Beijing, CN); Jian Gao (Beijing, CN); Xinlei Xu (Beijing, CN)
Assignee: EMC IP Holding Company LLC
G06F11/1092G06F3/0607G06F3/0614G06F3/0649G06F3/0689G06F9/5011G06F11/2069G06F2209/5011
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,829,247
App. No.
16/819,785
Granted
Nov 28, 2023
Kind
B2
Abstract

Techniques manage a storage system. Along these lines, a failed storage device is detected among storage devices included in a resource pool of the storage system, and the storage devices belong to a first group and a second group in the resource pool respectively. An extent in the failed storage device assigned for building a stripe in the storage system is determined. A spare reserved extent is selected from respective reserved extents included in respective storage devices among the storage devices based on a mapping relation between the stripe and a plurality of extents in the stripe. The respective reserved extents are shared among the first group and the second group. Data in the extent are rebuilt to the selected spare reserved extent. A reserved storage area can be shared among various storage devices in the resource pool, so as to increase allocatable space in storage devices.

Claims (68)

1. A method for managing a storage system, the method comprising:

detecting a failed storage device among a plurality of storage devices included in a resource pool of the storage system, wherein the storage devices included in the resource pool of the storage system each have the same storage space capacity, the plurality of storage devices being divided into a first group and a second group in the resource pool respectively, wherein the first group comprises multiple storage devices, wherein the second group comprises multiple storage devices, wherein the multiple storage devices in the first group are all different from the multiple storage devices in the second group, and wherein each individual RAID (Redundant Array of Independent Disks) stripe in the storage system is initially built by the storage system using extents that are located in either i) only storage devices that are contained within the first group or ii) only storage devices that are contained within the second group;

determining an extent in the failed storage device which has been assigned for building a stripe in the storage system, wherein the stripe comprises a RAID stripe;

selecting a spare reserved extent from respective reserved extents included in respective storage devices among the plurality of storage devices based on a mapping relation between the stripe and a plurality of extents in the stripe, the respective reserved extents being shared among the first group and the second group, wherein each one of the respective reserved extents has a reserved storage area equal to the storage space capacity of each one of the storage devices in the pool divided by a sum of i) a total number of storage devices in the first group and ii) a total number of storage devices in the second group, and wherein the selecting of the spare reserved extent from respective reserved extents included in respective storage devices among the plurality of storage devices including selecting the spare reserved extent from respective reserved extents in storage devices among the plurality of storage devices other than respective storage devices located where the plurality of extents are located, at least in part by:

determining a group to which the failed storage device belongs,

determining whether any storage device in the group to which the failed storage device belongs contains a spare reserved extent, and

in response to determining that no storage device in the group to which the failed storage device belongs contains a spare reserved extent, selecting a spare reserved extent located in a storage device in the group other than the group to which the failed storage device belongs; and

rebuilding data in the extent to the selected spare reserved extent.

2. The method of claim 1 , wherein rebuilding data in the extent to the selected spare reserved extent comprises:

determining at least one other extent than the extent in the stripe;

rebuilding data in the extent based on data in the at least one other extent; and

updating the mapping relation between an address of the spare reserved extent.

3. The method of claim 1 , further comprising:

in response to determining the failed storage device has been replaced by a normal storage device, determining a target stripe in the storage system which is distributed across storage devices in the first group and storage devices in the second group; and

migrating the target stripe so that plurality of extents in the migrated target stripe are located at storage devices in the same group.

4. The method of claim 3 , wherein the storage system comprises a mapping manager for managing the mapping relation, and wherein migrating the target stripe comprises:

setting a migration mark for indicating the target stripe is to be migrated across the first group and the second group;

sending the migration mark to the mapping manager to instruct the mapping manager to initiate migration; and

in response to receipt of a migration request from the mapping manager, migrating the target stripe across the first group and the second group.

5. The method of claim 4 , wherein migrating the target stripe across the first group and the second group comprises:

determining a first number of extents that are located at storage devices in the first group and are among a plurality of extents in the target stripe and a second number of extents that are located at storage devices in the second group and are among the plurality of extents in the target stripe;

in response to determining the first number is smaller than the second number, migrating at least one extent located at storage devices in the first group to a storage device in the second group; and

updating a mapping relation between the target stripe and plurality of extents in the target stripe based on an address of the migrated at least one extent.

6. The method of claim 1 , further comprising:

determining respective workloads of plurality of storage devices in the storage system;

selecting a target stripe from plurality of stripes in the storage system based on the respective workloads, plurality of extents included in the target stripe being located at a first plurality of storage devices in the resource pool; and

migrating the target stripe to a second plurality of storage devices in the resource pool, workloads of the second plurality of storage devices being lower than workloads of the first plurality of storage devices.

7. The method of claim 6 , wherein the storage system comprises a mapping manager for managing the mapping relation, and wherein migrating the target stripe to the second plurality of storage devices in the resource pool comprises:

requesting the mapping manager to initiate migration; and

in response to receipt of an initiation request from the mapping manager, migrating the target stripe from the first plurality of storage devices to the second plurality of storage devices.

8. A device for managing a storage system, comprising:

at least one processor;

a volatile memory; and

a memory coupled to the at least one processor and having instructions stored thereon, the instructions, when executed by the at least one processor, causing the device to perform acts comprising:

detecting a failed storage device among a plurality of storage devices included in a resource pool of the storage system, wherein the storage devices included in the resource pool of the storage system each have the same storage space capacity, the plurality of storage devices being divided into a first group and a second group in the resource pool respectively, wherein the first group comprises multiple storage devices, wherein the second group comprises multiple storage devices, wherein the multiple storage devices in the first group are all different from the multiple storage devices in the second group, and wherein each individual RAID (Redundant Array of Independent Disks) stripe in the storage system is initially built by the storage system using extents that are located in either i) only storage devices that are contained within the first group or ii) only storage devices that are contained within the second group;

determining an extent in the failed storage device which has been assigned for building a stripe in the storage system, wherein the stripe comprises a RAID stripe;

selecting a spare reserved extent from respective reserved extents included in respective storage devices among the plurality of storage devices based on a mapping relation between the stripe and a plurality of extents in the stripe, the respective reserved extents being shared among the first group and the second group, wherein each one of the respective reserved extents has a reserved storage area equal to the storage space capacity of each one of the storage devices in the pool divided by a sum of i) a total number of storage devices in the first group and ii) a total number of storage devices in the second group, and wherein the selecting of the spare reserved extent from respective reserved extents included in respective storage devices among the plurality of storage devices including selecting the spare reserved extent from respective reserved extents in storage devices among the plurality of storage devices other than respective storage devices located where the plurality of extents are located, at least in part by:

determining a group to which the failed storage device belongs,

determining whether any storage device in the group to which the failed storage device belongs contains a spare reserved extent, and

in response to determining that no storage device in the group to which the failed storage device belongs contains a spare reserved extent, selecting a spare reserved extent located in a storage device in the group other than the group to which the failed storage device belongs; and

rebuilding data in the extent to the selected spare reserved extent.

9. The device of claim 8 , wherein rebuilding data in the extent to the selected spare reserved extent comprises:

determining at least one other extent than the extent in the stripe;

rebuilding data in the extent based on data in the at least one other extent; and

updating the mapping relation between an address of the spare reserved extent.

10. The device of claim 8 , wherein the acts further comprise:

in response to determining the failed storage device has been replaced by a normal storage device, determining a target stripe in the storage system which is distributed across storage devices in the first group and storage devices in the second group; and

migrating the target stripe so that plurality of extents in the migrated target stripe are located at storage devices in the same group.

11. The device of claim 10 , wherein the storage system comprises a mapping manager for managing the mapping relation, and wherein migrating the target stripe comprises:

setting a migration mark for indicating the target stripe is to be migrated across the first group and the second group;

sending the migration mark to the mapping manager to instruct the mapping manager to initiate migration; and

in response to receipt of a migration request from the mapping manager, migrating the target stripe across the first group and the second group.

12. The device of claim 11 , wherein migrating the target stripe across the first group and the second group comprises:

determining a first number of extents that are located at storage devices in the first group and are among a plurality of extents in the target stripe and a second number of extents that are located at storage devices in the second group and are among the plurality of extents in the target stripe;

in response to determining the first number is smaller than the second number, migrating at least one extent located at storage devices in the first group to a storage device in the second group; and

updating a mapping relation between the target stripe and plurality of extents in the target stripe based on an address of the migrated at least one extent.

13. The device of claim 8 , wherein the acts further comprise:

determining respective workloads of plurality of storage devices in the storage system;

selecting a target stripe from plurality of stripes in the storage system based on the respective workloads, plurality of extents included in the target stripe being located at a first plurality of storage devices in the resource pool; and

migrating the target stripe to a second plurality of storage devices in the resource pool, workloads of the second plurality of storage devices being lower than workloads of the first plurality of storage devices.

14. A computer program product having a non-transitory computer readable medium which stores a set of instructions to manage a storage system; the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:

detecting a failed storage device among a plurality of storage devices included in a resource pool of the storage system, wherein the storage devices included in the resource pool of the storage system each have the same storage space capacity, the plurality of storage devices being divided into a first group and a second group in the resource pool respectively, wherein the first group comprises multiple storage devices, wherein the second group comprises multiple storage devices, wherein the multiple storage devices in the first group are all different from the multiple storage devices in the second group, and wherein each individual RAID (Redundant Array of Independent Disks) stripe in the storage system is initially built by the storage system using extents that are located in either i) storage devices that are contained within the first group or ii) only storage devices that are contained within the second group;

determining an extent in the failed storage device which has been assigned for building a stripe in the storage system, wherein the stripe comprises a RAID stripe;

selecting a spare reserved extent from respective reserved extents included in respective storage devices among the plurality of storage devices based on a mapping relation between the stripe and a plurality of extents in the stripe, the respective reserved extents being shared among the first group and the second group, wherein each one of the respective reserved extents has a reserved storage area equal to the storage space capacity of each one of the storage devices in the pool divided by a sum of i) a total number of storage devices in the first group and ii) a total number of storage devices in the second group, and wherein the selecting of the spare reserved extent from respective reserved extents included in respective storage devices among the plurality of storage devices including selecting the spare reserved extent from respective reserved extents in storage devices among the plurality of storage devices other than respective storage devices located where the plurality of extents are located, at least in part by:

determining a group to which the failed storage device belongs,

determining whether any storage device in the group to which the failed storage device belongs contains a spare reserved extent, and

in response to determining that no storage device in the group to which the failed storage device belongs contains a spare reserved extent, selecting a spare reserved extent located in a storage device in the group other than the group to which the failed storage device belongs; and

rebuilding data in the extent to the selected spare reserved extent.

Assignments (13)
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 (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 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 (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 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 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 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 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 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 May 27, 2020
From: GAO, HONGPO; GAO, JIAN; XU, XINLEI
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 052768/0868 →
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 →