# US 12,111,729 B2 · RAID protection updates based on storage system reliability

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

- Number: US 12,111,729 B2
- Document ID: US12111729B2
- Status: Granted
- Kind: B2
- Application number: 18/489,496
- Filed: 2023-10-18
- Published: 2024-05-09
- Granted: 2024-10-08
- Earliest claimed: 2010-09-28
- Assignees: Pure Storage, Inc.
- Applicants: Pure Storage, Inc.
- Inventors: John Colgrove; John Hayes; Bo Hong; Ethan Miller
- Web page: https://patentgrep.com/patent/US12111729B2

## CPC

- G06F 11/108: {Parity data distribution in semiconductor storages, e.g. in SSD}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0646: {Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems}
- G06F 3/0665: {at area level, e.g. provisioning of virtual or logical volumes}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F 11/1076: {Parity data used in redundant arrays of independent storages, e.g. in RAID systems}
- G06F 11/1008: {in individual solid state devices (G06F11/1004 takes precedence)}
- G06F 11/1068: {in sector programmable memories, e.g. flash disk (G06F11/1072 takes precedence)}
- G06F 11/2053: {where persistent mass storage functionality or persistent mass storage control functionality is redundant (error detection or correction in information storage based on relative movement between record carrier and transducer G11B20/18)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system, method, and product for flexible RAID layouts in a storage system, including: determining a reliability of an individual storage device of a plurality of storage devices, the individual storage device containing a plurality of portions of a Redundant Array of Independent Disks (RAID) stripe in a storage system, wherein the RAID stripe includes user data and inter-device parity data; detecting a change in the reliability of the individual storage device that contains the portion corresponding to the RAID stripe; and changing an amount of intra-device protection corresponding to the RAID stripe by decreasing, in the RAID stripe, an amount of space used to store the inter-device protection data.

## Claims

### Claim 1

A method comprising:
detecting a change in reliability of a storage device that contains a portion of a Redundant Array of Independent Disks (RAID) stripe in a storage system, wherein the RAID stripe includes user data and inter-device protection data; and
changing an amount of intra-device protection data corresponding to the RAID stripe by decreasing an amount of space used to store the inter-device protection data in the RAID stripe.

### Claim 2 (depends on 1)

The method of claim 1 wherein determining a reliability of the storage device that contains the portion of the RAID stripe further comprises determining an error rate for the storage device.

### Claim 3 (depends on 1)

The method of claim 1 wherein determining a reliability of the storage device that contains the portion of the RAID stripe further comprises determining an age of the storage device.

### Claim 4 (depends on 1)

The method of claim 1 wherein detecting a change in the reliability of the storage device that contains a portion of the RAID stripe further comprises detecting a change in an error rate associated with the storage device.

### Claim 5 (depends on 1)

The method of claim 1 further comprising changing an amount of inter-device parity information stored in the storage system.

### Claim 6 (depends on 1)

The method of claim 1 wherein changing the amount of intra-device protection includes increasing an intra-device parity protection level of the storage device from single parity to double parity.

### Claim 7 (depends on 1)

The method of claim 1 wherein the RAID stripe includes intra-device protection data, the method further comprising changing an amount of intra-device protection data in one or more storage devices that store at least a portion of the RAID stripe.

### Claim 8

An apparatus comprising a computer processor and a computer memory, the computer memory including computer program instructions that, when executed by the computer processor, cause the apparatus to perform:
detecting a change in reliability of a storage device that contains a portion of a Redundant Array of Independent Disks (RAID) stripe in a storage system, wherein the RAID stripe includes user data and inter-device protection data; and
changing an amount of intra-device protection data corresponding to the RAID stripe by decreasing an amount of space used to store the inter-device protection data in the RAID stripe.

### Claim 9 (depends on 8)

The apparatus of claim 8 wherein determining a reliability of the storage device that contains the portion of the RAID stripe further comprises determining an error rate for the storage device.

### Claim 10 (depends on 8)

The apparatus of claim 8 wherein determining a reliability of the storage device that contains the portion of the RAID stripe further comprises determining an age of the storage device.

### Claim 11 (depends on 8)

The apparatus of claim 8 wherein detecting a change in the reliability of the storage device that contains a portion of the RAID stripe further comprises detecting a change in an error rate associated with the storage device.

### Claim 12 (depends on 8)

The apparatus of claim 8 further comprising changing an amount of inter-device parity information stored in the storage system.

### Claim 13 (depends on 8)

The apparatus of claim 8 wherein changing the amount of intra-device protection includes increasing an intra-device parity protection level of the storage device from single parity to double parity.

### Claim 14 (depends on 8)

The apparatus of claim 8 wherein the RAID stripe includes intra-device protection data, the apparatus further comprising computer program instructions that, when executed by the computer processor, cause the apparatus to perform changing an amount of intra-device protection data in one or more storage devices that store at least a portion of the RAID stripe.

### Claim 15

A computer program product comprising a non-transitory storage medium, the computer program product including computer program instructions that, when executed by a computer processor, cause the computer processor to perform:
detecting a change in reliability of a storage device that contains a portion of a Redundant Array of Independent Disks (RAID) stripe in a storage system, wherein the RAID stripe includes user data and inter-device protection data; and
changing an amount of intra-device protection data corresponding to the RAID stripe by decreasing an amount of space used to store the inter-device protection data in the RAID stripe.

### Claim 16 (depends on 15)

The computer program product of claim 15 wherein determining a reliability of the storage device that contains the portion of the RAID stripe further comprises determining an error rate for the storage device.

### Claim 17 (depends on 15)

The computer program product of claim 15 wherein determining a reliability of the storage device that contains the portion of the RAID stripe further comprises determining an age of the storage device.

### Claim 18 (depends on 15)

The computer program product of claim 15 wherein detecting a change in the reliability of the storage device that contains a portion of the RAID stripe further comprises detecting a change in an error rate associated with the storage device.

### Claim 19 (depends on 15)

The computer program product of claim 15 further comprising changing an amount of inter-device parity information stored in the storage system.

### Claim 20 (depends on 15)

The computer program product of claim 15 wherein changing the amount of intra-device protection includes increasing an intra-device parity protection level of the storage device from single parity to double parity.
