# US 2021/0334183 A1 · Method, device, and storage medium for managing stripe in storage system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0334183 A1
- Document ID: US20210334183A1
- Status: Published application
- Kind: A1
- Application number: 16/990,222
- Filed: 2020-08-11
- Published: 2021-10-28
- Earliest claimed: 2020-04-24
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC IP Holding Company LLC
- Inventors: Jian Gao; Xinlei Xu
- Web page: https://patentgrep.com/patent/US20210334183A1

## CPC

- G06F 11/1088: {Reconstruction on already foreseen single or plurality of spare disks}
- G06F 11/2094: {Redundant storage or storage space (G06F11/2056 takes precedence)}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0644: {Management of space entities, e.g. partitions, extents, pools}
- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F 2201/82: Solving problems relating to consistency
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

When managing stripes in a storage system, based on a determination that a failed storage device appears in first storage devices, a failed stripe involving the failed storage device is determined in a first redundant array of independent disks (RAID). An idle space that can be used to reconstruct the failed stripe is determined in the first storage devices. The failed stripe is reconstructed to second storage devices in the storage system based on a determination that the idle space is insufficient to reconstruct the failed stripe, the second storage devices being storage devices in a second RAID. An extent in the failed stripe is released in the first storage devices. Accordingly, it is possible to reconstruct a failed stripe as soon as possible to avoid data loss, and further to provide more idle spaces in the first storage devices for future reconstruction.

## Claims

### Claim 1

A method for managing stripes in a storage system, the method comprising:
determining, based on a determination that a failed storage device appears in a first set of storage devices in the storage system, a failed stripe involving the failed storage device, the first set of storage devices being storage devices in a first redundant array of independent disks;
determining, in the first set of storage devices, an idle space that can be used to reconstruct the failed stripe;
reconstructing the failed stripe to a second set of storage devices in the storage system based on a determination that the idle space is insufficient to reconstruct the failed stripe, the second set of storage devices being storage devices in a second redundant array of independent disks; and
releasing an extent in the failed stripe in the first set of storage devices.

### Claim 2 (depends on 1)

The method according to claim 1, wherein determining the failed stripe comprises:
looking up a metadata extent of a metadata type in a plurality of extents in the failed storage device; and
identifying a stripe where the metadata extent is located as the failed stripe.

### Claim 3 (depends on 2)

The method according to claim 2, wherein determining the failed stripe further comprises:
looking up a user data extent of a user data type in the plurality of extents in the failed storage device; and
identifying a stripe where the user data extent is located as the failed stripe.

### Claim 4 (depends on 3)

The method according to claim 3, wherein looking up the user data extent comprises:
looking up the user data extent after all metadata extents in the failed stripe have been found.

### Claim 5 (depends on 1)

The method according to claim 1, wherein determining the idle space comprises:
determining the device type of a plurality of storage devices where the failed stripe is located; and
determining the idle space from a plurality of storage devices of the device type that are other than the plurality of storage devices in the first set of storage devices.

### Claim 6 (depends on 5)

The method according to claim 5, wherein reconstructing the failed stripe to the second set of storage devices comprises:
selecting, in the second set of storage devices, a plurality of storage devices of the device type according to the width of the failed stripe;
reconstructing the failed stripe to a plurality of idle extents respectively located in the plurality of selected storage devices; and
updating address mapping of the first set of storage devices based on addresses of the plurality of idle extents.

### Claim 7 (depends on 6)

The method according to claim 6, wherein reconstructing the failed stripe to the plurality of idle extents comprises:
respectively copying data in a plurality of extents other than the failed extent in the failed stripe to a plurality of idle extents respectively located in a first part of storage devices of the plurality of storage devices; and
reconstructing, based on the copied data in the first part of storage devices, data in the failed extent to idle extents in a second part of storage devices of the plurality of storage devices.

### Claim 8 (depends on 1)

The method according to claim 1, wherein releasing an extent in the failed stripe comprises: updating address mapping of the first set of storage devices to mark the extent in the failed stripe as an idle extent.

### Claim 9 (depends on 8)

The method according to claim 8, further comprising:
determining another failed stripe in the first set of storage devices;
determining, in the first set of storage devices, an idle space that can be used to reconstruct the another failed stripe; and
reconstructing a failed extent in the another failed stripe to an idle extent in the idle space based on a determination that the idle space is sufficient to reconstruct the another failed stripe.

### Claim 10 (depends on 1)

The method according to claim 1, further comprising:
determining, in the second set of storage devices, a reconstructed stripe reconstructed from the first set of storage devices in response to a determination that the failed storage device is replaced with a normal storage device; and
migrating the reconstructed stripe from the second set of storage devices to the first set of storage devices.

### Claim 11

An electronic device, comprising:
at least one processor; and
a memory coupled to the at least one processor and having instructions stored therein, wherein the instructions, when executed by the at least one processor, cause the electronic device to perform actions for managing stripes in a storage system, and the actions comprise:
determining, based on a determination that a failed storage device appears in a first set of storage devices in the storage system, a failed stripe involving the failed storage device, the first set of storage devices being storage devices in a first redundant array of independent disks;
determining, in the first set of storage devices, an idle space that can be used to reconstruct the failed stripe;
reconstructing the failed stripe to a second set of storage devices in the storage system based on a determination that the idle space is insufficient to reconstruct the failed stripe, the second set of storage devices being storage devices in a second redundant array of independent disks; and
releasing an extent in the failed stripe in the first set of storage devices.

### Claim 12 (depends on 11)

The device according to claim 11, wherein determining the failed stripe comprises:
looking up a metadata extent of a metadata type in a plurality of extents in the failed storage device; and
identifying a stripe where the metadata extent is located as the failed stripe.

### Claim 13 (depends on 12)

The device according to claim 12, wherein determining the failed stripe further comprises:
looking up a user data extent of a user data type in the plurality of extents in the failed storage device; and
identifying a stripe where the user data extent is located as the failed stripe.

### Claim 14 (depends on 13)

The device according to claim 13, wherein looking up the user data extent comprises:
looking up the user data extent after all metadata extents in the failed stripe have been found.

### Claim 15 (depends on 11)

The device according to claim 11, wherein determining the idle space comprises:
determining the device type of a plurality of storage devices where the failed stripe is located; and
determining the idle space from a plurality of storage devices of the device type that are other than the plurality of storage devices in the first set of storage devices.

### Claim 16 (depends on 15)

The device according to claim 15, wherein reconstructing the failed stripe to the second set of storage devices comprises:
selecting, in the second set of storage devices, a plurality of storage devices of the device type according to the width of the failed stripe;
reconstructing the failed stripe to a plurality of idle extents respectively located in the plurality of selected storage devices; and
updating address mapping of the first set of storage devices based on addresses of the plurality of idle extents.

### Claim 17 (depends on 16)

The device according to claim 16, wherein reconstructing the failed stripe to the plurality of idle extents comprises:
respectively copying data in a plurality of extents other than the failed extent in the failed stripe to a plurality of idle extents respectively located in a first part of storage devices of the plurality of storage devices; and
reconstructing, based on the copied data in the first part of storage devices, data in the failed extent to idle extents in a second part of storage devices of the plurality of storage devices.

### Claim 18 (depends on 11)

The device according to claim 11, wherein releasing an extent in the failed stripe comprises: updating address mapping of the first set of storage devices to mark the extent in the failed stripe as an idle extent.

### Claim 19 (depends on 18)

The device according to claim 18, wherein the actions further comprise:
determining another failed stripe in the first set of storage devices;
determining, in the first set of storage devices, an idle space that can be used to reconstruct the another failed stripe; and
reconstructing a failed extent in the another failed stripe to an idle extent in the idle space based on a determination that the idle space is sufficient to reconstruct the another failed stripe.

### Claim 20

A computer program product having a non-transitory computer readable medium which stores a set of instructions to manage stripes in a storage system; the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:
determining, based on a determination that a failed storage device appears in a first set of storage devices in the storage system, a failed stripe involving the failed storage device, the first set of storage devices being storage devices in a first redundant array of independent disks;
determining, in the first set of storage devices, an idle space that can be used to reconstruct the failed stripe;
reconstructing the failed stripe to a second set of storage devices in the storage system based on a determination that the idle space is insufficient to reconstruct the failed stripe, the second set of storage devices being storage devices in a second redundant array of independent disks; and
releasing an extent in the failed stripe in the first set of storage devices.
