# US 2010/0169707 A1 · Failure handling using overlay objects on a file system using object based storage devices

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

- Number: US 2010/0169707 A1
- Document ID: US20100169707A1
- Status: Published application
- Kind: A1
- Application number: 12/346,374
- Filed: 2008-12-30
- Published: 2010-07-01
- Earliest claimed: 2008-12-30
- Assignees: Symantec Operating Corporation
- Inventors: George Mathew; Craig K. Harmer; Basant Rajan
- Web page: https://patentgrep.com/patent/US20100169707A1

## CPC

- G06F 11/2094: {Redundant storage or storage space (G06F11/2056 takes precedence)}
- G06F 11/1092: {Rebuilding, e.g. when physically replacing a failing disk}
- G06F 11/2082: {Data synchronisation}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A system and method for data storage in an array. A system includes a client coupled to a storage subsystem including data storage locations addressable as rows and columns in an array. Each column comprises a separate storage device. Each row includes redundant data. For a given row, a coordinating storage device coordinates the computation and storage of redundant data. The system detects a failure of a storage region and in response, configures an overlay storage device to temporarily overlay the failed region, maintains an association between the overlay device and the failed region, and maintains a record of changes made to the overlay device while the region is in a failed state. In response to detecting that the failed region has been restored, the system uses the association to identify the overlay device and uses the record of changes made to the overlay device to resynchronize the failed region.

## Claims

### Claim 1

A computer system comprising:
a client; and
a storage subsystem coupled to the client;
wherein the computer system is configured to:
detect a failure of a storage region including at least a portion of a storage device;
configure an overlay storage device to temporarily overlay the failed region, in response to detecting said failure;
maintain an association between the overlay storage device and the failed region; and
maintain a record of changes made to the overlay storage device while the region is in a failed state.

### Claim 2 (depends on 1)

The system as recited in claim 1, wherein in response to detecting that the failed region has been restored, the computer system is further configured to:
use the association to identify the overlay storage device; and
use the record of changes made to the overlay storage device to resynchronize the failed region.

### Claim 3 (depends on 1)

The system as recited in claim 1, wherein in response to determining that the failure of the region is permanent, the computer system is further configured to:
use the association to identify the overlay storage device; and
copy data previously stored in the failed region to the overlay storage device.

### Claim 4 (depends on 1)

The system as recited in claim 1, wherein the storage subsystem comprises a plurality of storage locations addressable as rows and columns in an array, each column of the array comprising a separate storage device of a plurality of storage devices, and wherein for a given row in the array, a coordinating storage device is configured to coordinate the computation and storage of redundant data in the given row.

### Claim 5 (depends on 4)

The system as recited in claim 4, wherein for a given row in the array, a coordinating storage device is further configured to:
receive a write request from a client to write data to a location corresponding to the overlay device;
calculate and store redundancy values based on old data retrieved from non-overlay devices in the given row; and
forward write data to devices in the given row including at least the overlay device.

### Claim 6 (depends on 4)

The system as recited in claim 4, wherein for a given row in the array, the coordinating storage device is further configured to:
receive a read request from a client to read data from a location corresponding to the overlay device;
reconstruct data from the failed region using data retrieved from non-overlay devices in the given row; and return the reconstructed data to the client.

### Claim 7 (depends on 4)

The system as recited in claim 4, wherein the failure of a storage region including at least a portion of a storage device is detected by the coordinating storage device.

### Claim 8

A method of maintaining data in storage locations of a storage subsystem, the method comprising:
detecting a failure of a storage region including at least a portion of a storage device;
configuring an overlay storage device to temporarily overlay the failed region, in response to detecting said failure;
maintaining an association between the overlay storage device and the failed region; and
maintaining a record of changes made to the overlay storage device while the region is in a failed state.

### Claim 9 (depends on 8)

The method of claim 8, wherein in response to detecting that the failed region has been restored, the method further comprises:
using the association to identify the overlay storage device; and
using the record of changes made to the overlay storage device to resynchronize the failed region.

### Claim 10 (depends on 8)

The method of claim 8, wherein in response to determining that the failure of the region is permanent, the method further comprises:
using the association to identify the overlay storage device; and
copying data previously stored in the failed region to the overlay storage device.

### Claim 11 (depends on 8)

The method of claim 8, wherein the storage subsystem comprises a plurality of storage locations addressable as rows and columns in an array, each column of the array comprising a separate storage device, and for a given row in the array, a coordinating storage device is configured to coordinate the computation and storage of redundant data in the given row.

### Claim 12 (depends on 11)

The method of claim 11, wherein for a given row in the array, the method further comprises the coordinating storage device:
receiving a write request from a client to write data to a location corresponding to the overlay device;
calculating and storing redundancy values based on old data retrieved from non-overlay devices in the given row; and
forwarding write data to devices in the given row including at least the overlay device.

### Claim 13 (depends on 11)

The method of claim 11, wherein for a given row in the array, the method further comprises the coordinating storage device:
receiving a read request from a client to read data from a location corresponding to the overlay device;
reconstructing data from the failed region using data retrieved from non-overlay devices in the given row; and return the reconstructed data to the client.

### Claim 14 (depends on 11)

The method of claim 11, wherein the failure of a storage region including at least a portion of a storage device is detected by the coordinating storage device.

### Claim 15

A computer readable storage medium storing computer instructions that are executable by a processor to:
access storage locations of a storage subsystem;
detect a failure of a storage region including at least a portion of a storage device;
configure an overlay storage device to temporarily overlay the failed region, in response to detecting said failure;
maintain an association between the overlay storage device and the failed region; and
maintain a record of changes made to the overlay storage device while the region is in a failed state.

### Claim 16 (depends on 15)

The computer readable storage medium of claim 15, wherein in response to detecting that the failed region has been restored, the instructions are further executable by a processor to:
use the association to identify the overlay storage device; and
use the record of changes made to the overlay storage device to resynchronize the failed region.

### Claim 17 (depends on 15)

The computer readable storage medium of claim 15, wherein in response to determining that the failure of the region is permanent, the instructions are further executable by a processor to:
use the association to identify the overlay storage device; and
copy data previously stored in the failed region to the overlay storage device.

### Claim 18 (depends on 15)

The computer readable storage medium of claim 15, wherein the storage subsystem comprises a plurality of storage locations addressable as rows and columns in an array, each column of the array comprising a separate storage device, and for a given row in the array, the coordinating storage device coordinates the computation and storage of redundant data in the given row.

### Claim 19 (depends on 18)

The computer readable storage medium of claim 18, wherein for a given row in the array, the instructions are further executable to:
receive a read request from a client to read data from a location corresponding to the overlay device;
reconstruct data from the failed region using data retrieved from non-overlay devices in the given row; and
return the reconstructed data to the client.

### Claim 20 (depends on 18)

The computer readable storage medium of claim 18, wherein the failure of a storage region including at least a portion of a storage device is detected by the coordinating storage device.
