# US 2016/0259588 A1 · Efficient rebuild of storage devices in a redundant array of independent disks (raid)

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

- Number: US 2016/0259588 A1
- Document ID: US20160259588A1
- Status: Published application
- Kind: A1
- Application number: 14/640,157
- Filed: 2015-03-06
- Published: 2016-09-08
- Earliest claimed: 2015-03-06
- Assignees: Dell Products L.P.
- Applicants: Dell Products L.P.
- Inventors: Ashokan Vellimalai; Deepu Syam Sreedhar M; Sandeep Agarwal; Anup Atluri
- Web page: https://patentgrep.com/patent/US20160259588A1

## CPC

- G06F 3/0634: {by changing the state or mode of one or more devices}
- G06F 3/0605: {by facilitating the interaction with a user or administrator}
- G06F 3/0607: {by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device}
- G06F 3/0617: {in relation to availability}
- G06F 3/0632: {by initialisation or re-initialisation of storage systems}
- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F 11/00: Error detection; Error correction; Monitoring (error detection, correction or monitoring in information storage based on relative movement between record carrier and transducer G11B20/18; monitoring, i.e. supervising the progress of recording or reproducing G11B27/36; in static stores G11C29/00)
- G06F 11/1092: {Rebuilding, e.g. when physically replacing a failing disk}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods and systems for efficient rebuild of storage devices in a RAID may include generating a data-modified map of a storage device. The data-modified map may be updated when a RAID virtual device associated with the storage device is degraded to indicate write operations. The data-modified map may be used to rebuild selective portions of the storage device, instead of performing a full rebuild. The data-modified map may also be used to perform a full rebuild of the storage device.

## Claims

### Claim 1

A method comprising:
detecting a storage device added to a redundant array of independent disks (RAID) storage array controlled by a RAID controller;
determining whether the storage device was previously used in the RAID storage array; and
when the storage device was previously used in the RAID storage array:
identifying a data-modified map previously generated for the storage device, the data-modified map indicating modified portions of the storage device; and
based on the data-modified map, rebuilding the modified portions of the storage device.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
when the storage device was not previously used in the RAID storage array:
generating the data-modified map for the storage device;
setting the data-modified map to indicate full rebuild of the storage device, wherein all portions of the storage device are indicated as modified portions in the data-modified map; and
based on the data-modified map, rebuilding the modified portions of the storage device.

### Claim 3 (depends on 1)

The method of claim 1, wherein generating the data-modified map includes:
generating a plurality of stripe maps respectively associated with RAID stripe sets used in the storage device, wherein each of the stripe maps includes a plurality of stripe units corresponding in number to a number of the RAID stripe sets;
generating a leaf array corresponding to the plurality of stripe maps, wherein each element in the leaf array indicates a change in a respective stripe map;
generating an upper level array corresponding to at least some elements in a lower level array selected from the leaf array and a different upper level array, wherein each element in the upper level array indicates a change in elements of the lower level array; and
generating a top level array having one element, the element in the top level array indicating a change in the storage device.

### Claim 4 (depends on 2)

The method of claim 2, further comprising, after the activating of the storage device in the RAID storage array:
determining whether a RAID virtual device associated with the storage device was degraded, wherein a degraded RAID virtual device does not have access to at least one RAID stripe set; and
when the RAID virtual device is degraded, updating the data-modified map in response to receiving a write instruction for the RAID virtual device, wherein the data-modified map is updated based on the write instruction.

### Claim 5 (depends on 1)

The method of claim 1, wherein the storage device is selected from a rotating-media storage device and a solid state storage device.

### Claim 6 (depends on 1)

The method of claim 1, wherein the identifying the data-modified map includes identifying the data-modified map in a memory accessible to the RAID controller.

### Claim 7 (depends on 1)

The method of claim 1, wherein the RAID controller controls a plurality of storage devices, including the storage device, and further comprising:
generating a plurality of data-modified maps respectively corresponding to the plurality of storage devices.

### Claim 8

An information handling system, comprising a redundant array of independent disks (RAID) controller, the RAID controller further comprising:
a non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to:
detect a storage device added to a RAID storage array controlled by the RAID controller;
determine whether the storage device was previously used in the RAID storage array;
when the storage device was previously used in the RAID storage array, identify a data-modified map previously generated for the storage device, the data-modified map indicating modified portions of the storage device; and
when the storage device was not previously used in the RAID storage array:
generate the data-modified map for the storage device; and
set the data-modified map to indicate full rebuild of the storage device, wherein all portions of the storage device are indicated as modified portions in the data-modified map; and
based on the data-modified map, rebuild the modified portions of the storage device.

### Claim 9 (depends on 8)

The information handling system of claim 8, wherein the instructions to generate the data-modified map include instructions to:
generate a plurality of stripe maps respectively associated with RAID stripe sets used in the storage device, wherein each of the stripe maps includes a plurality of stripe units corresponding in number to a number of the RAID stripe sets;
generate a leaf array corresponding to the plurality of stripe maps, wherein each element in the leaf array indicates a change in a respective stripe map;
generate an upper level array corresponding to at least some elements in a lower level array selected from the leaf array and a different upper level array, wherein each element in the upper level array indicates a change in elements of the lower level array; and
generate a top level array having one element, the element in the top level array indicating a change in the storage device.

### Claim 10 (depends on 8)

The information handling system of claim 8, further comprising instructions to, after activation of the storage device in the RAID storage array:
determine whether a RAID virtual device associated with the storage device was degraded, wherein a degraded RAID virtual device does not have access to at least one RAID stripe set; and
when the RAID virtual device is degraded, update the data-modified map in response to receiving a write instruction for the RAID virtual device, wherein the data-modified map is updated based on the write instruction.

### Claim 11 (depends on 8)

The information handling system of claim 8, wherein the storage device is selected from a rotating-media storage device and a solid state storage device.

### Claim 12 (depends on 8)

The information handling system of claim 8, wherein the instructions to identify the data-modified map include instructions to identify the data-modified map in a memory accessible to the RAID controller.

### Claim 13 (depends on 8)

The information handling system of claim 8, wherein the RAID controller controls a plurality of storage devices, including the storage device, and further comprising instructions to:
generate a plurality of data-modified maps respectively corresponding to the plurality of storage devices.

### Claim 14

A redundant array of independent disks (RAID) controller comprising:
a non-transitory computer-readable medium storing instructions that, when executed by a processor, cause the processor to:
detect a storage device added to a RAID storage array controlled by the RAID controller;
determine whether the storage device was previously used in the RAID storage array; and
when the storage device was previously used in the RAID storage array:
identify a data-modified map previously generated for the storage device, the data-modified map indicating modified portions of the storage device; and
based on the data-modified map, rebuild the modified portions of the storage device.

### Claim 15 (depends on 14)

The RAID controller of claim 14, further comprising instructions to:
when the storage device was not previously used in the RAID storage array:
generate the data-modified map for the storage device;
set the data-modified map to indicate full rebuild of the storage device, wherein all portions of the storage device are indicated as modified portions in the data-modified map; and
based on the data-modified map, rebuild the modified portions of the storage device.

### Claim 16 (depends on 15)

The RAID controller of claim 15, wherein the instructions to generate the data-modified map include instructions to:
generate a plurality of stripe maps respectively associated with RAID stripe sets used in the storage device, wherein each of the stripe maps includes a plurality of stripe units corresponding in number to a number of the RAID stripe sets;
generate a leaf array corresponding to the plurality of stripe maps, wherein each element in the leaf array indicates a change in a respective stripe map;
generate an upper level array corresponding to at least some elements in a lower level array selected from the leaf array and a different upper level array, wherein each element in the upper level array indicates a change in elements of the lower level array; and
generate a top level array having one element, the element in the top level array indicating a change in the storage device.

### Claim 17 (depends on 15)

The RAID controller of claim 15, further comprising instructions to, after activation of the storage device in the RAID storage array:
determine whether a RAID virtual device associated with the storage device was degraded, wherein a degraded RAID virtual device does not have access to at least one RAID stripe set; and
when the RAID virtual device is degraded, update the data-modified map in response to receiving a write instruction for the RAID virtual device, wherein the data-modified map is updated based on the write instruction.

### Claim 18 (depends on 14)

The RAID controller of claim 14, wherein the storage device is selected from a rotating-media storage device and a solid state storage device.

### Claim 19 (depends on 14)

The RAID controller of claim 14, wherein the instructions to identify the data-modified map include instructions to identify the data-modified map in a memory accessible to the RAID controller.

### Claim 20 (depends on 14)

The RAID controller of claim 14, wherein the RAID controller controls a plurality of storage devices, including the storage device, and further comprising instructions to:
generate a plurality of data-modified maps respectively corresponding to the plurality of storage devices.
