IP Library Granted Patent US 7,941,697
Granted Patent B2
US 7,941,697 · App. 12/346,374 · Granted May 10, 2011

Failure handling using overlay objects on a file system using object based storage devices

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 7,941,697
App. No.
12/346,374
Granted
May 10, 2011
Kind
B2
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 (68)

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;

wherein the storage subsystem comprises a plurality of storage locations addressable as rows and columns in an array, each column of the array being stored in a separate storage device of a plurality of storage devices configured to store data, and wherein for a given row in the array, a storage device of the plurality of storage devices that is storing data corresponding to the given row is selected to act as a coordinating storage device configured to coordinate reads and writes of data for the given row.

2. 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.

3. 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.

4. The system as recited in claim 1 , wherein write data for a write transaction targeted to a particular row of the storage subsystem is conveyed to a single storage device of the plurality of storage devices designated as a coordinating storage device for the particular row and storing data for the particular row, and wherein the single storage device forwards portions of the write data to other storage devices containing data for the particular row as needed.

5. 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.

6. The system as recited in claim 1 , 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; and

in response to receiving said read request:

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.

7. The system as recited in claim 4 , wherein if the write data corresponds to a partial row, the single storage device receives said write data even if none of said write data is to be stored in the single storage device.

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;

wherein the storage subsystem comprises a plurality of storage locations addressable as rows and columns in an array, each column of the array being stored in a separate storage device of a plurality of storage devices configured to store data, and wherein for a given row in the array, a storage device of the plurality of storage devices that is storing data corresponding to the given row is selected to act as a coordinating storage device configured to coordinate reads and writes of data for the given row.

9. 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.

10. 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.

11. The method of claim 8 , wherein write data for a write transaction targeted to a particular row of the storage subsystem is conveyed to a single storage device of the plurality of storage devices designated as a coordinating storage device for the particular row and storing data for the particular row, and wherein the method comprises the single storage device forwarding portions of the write data to other storage devices containing data for the particular row as needed.

12. 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.

13. The method of claim 8 , 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; and

in response to receiving said read request:

reconstructing data from the failed region using data retrieved from non-overlay devices in the given row; and

returning the reconstructed data to the client.

14. The method of claim 11 , wherein if the write data corresponds to a partial row, the single storage device receives said write data even if none of said write data is to be stored in the single storage device.

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;

wherein the storage subsystem comprises a plurality of storage locations addressable as rows and columns in an array, each column of the array being stored in a separate storage device of a plurality of storage devices configured to store data, and wherein for a given row in the array, a storage device of the plurality of storage devices that is storing data corresponding to the given row is selected to act as a coordinating storage device configured to coordinate reads and writes of data for the given row.

16. 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.

17. 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.

18. The computer readable storage medium of claim 15 , wherein write data for a write transaction targeted to a particular row of the storage subsystem is conveyed to a single storage device of the plurality of storage devices designated as a coordinating storage device for the particular row and storing data for the particular row, and wherein the program instructions cause the single storage device to forward portions of the write data to other storage devices containing data for the particular row as needed.

19. 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.

20. The computer readable storage medium of claim 18 , wherein if the write data corresponds to a partial row, the single storage device receives said write data even if none of said write data is to be stored in the single storage device.

Assignments (11)
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded May 4, 2026
From: COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 075521/0417 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 30, 2008
From: MATHEW, GEORGE; HARMER, CRAIG K.; RAJAN, BASANT
To: SYMANTEC CORPORATION
Reel/Frame 022041/0011 →