System and method for redundancy-protected aggregates
First Claim
1. A method, comprising:
- organizing a plurality of constituent aggregates as striped aggregates, the constituent aggregates implemented across a plurality of nodes operatively connected as a cluster, wherein each constituent aggregate includes a plurality of storage devices organized into one or more Redundant Arrays of Independent Disk (RAID) groups,wherein each constituent aggregate further includes a first equal number of regions, and wherein each constituent aggregate reserves 1/Nth of storage space capacity to store redundancy information from the other constituent aggregates where N is a number of the plurality of constituent aggregates;
assigning, for a second number of regions across the plurality of constituent aggregates, a single aggregate as a parity owner aggregate;
storing data received from a client at a selected constituent aggregate of the plurality of constituent aggregates;
computing redundancy information for the data stored at the selected constituent aggregate based on a logical operation between the data stored at the selected constituent aggregate with other data stored at other constituent aggregates of the plurality of constituent aggregates; and
storing the computed redundancy information for the data stored at the selected constituent aggregate on the assigned parity owner aggregate.
3 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides a system and a method for utilizing a parity protection module to back up data on striped aggregates. Specifically, the system computes parity data for data stored at a particular location of each of a plurality of constituent aggregates, and stores the parity on one of the constituent aggregates that is a parity owner for that particular location of data. In the event one of the constituent aggregates fails, new data may still be accessed by the system (the striped aggregates), both to write new data, and to read data stored on the failed aggregate. In particular, the parity protection module allows clients to read data from a failed aggregate by running a reverse parity computation, which may also be used to restore the data to the failed aggregate.
-
Citations
20 Claims
-
1. A method, comprising:
-
organizing a plurality of constituent aggregates as striped aggregates, the constituent aggregates implemented across a plurality of nodes operatively connected as a cluster, wherein each constituent aggregate includes a plurality of storage devices organized into one or more Redundant Arrays of Independent Disk (RAID) groups, wherein each constituent aggregate further includes a first equal number of regions, and wherein each constituent aggregate reserves 1/Nth of storage space capacity to store redundancy information from the other constituent aggregates where N is a number of the plurality of constituent aggregates; assigning, for a second number of regions across the plurality of constituent aggregates, a single aggregate as a parity owner aggregate; storing data received from a client at a selected constituent aggregate of the plurality of constituent aggregates; computing redundancy information for the data stored at the selected constituent aggregate based on a logical operation between the data stored at the selected constituent aggregate with other data stored at other constituent aggregates of the plurality of constituent aggregates; and storing the computed redundancy information for the data stored at the selected constituent aggregate on the assigned parity owner aggregate. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A system for utilizing a striped data container to back up a storage system, comprising:
-
a plurality of storage systems each including a processor, the plurality of storage systems configured to connect as a cluster, the plurality of storage systems further configured to organize a plurality of constituent aggregates as striped aggregates, wherein each constituent aggregate includes a plurality of storage devices organized into one or more Redundant Arrays of Independent Disk (RAID) groups, wherein each constituent aggregate further includes a first equal number of regions, and wherein each constituent aggregate reserves 1/Nth of storage space capacity to store redundancy information from the other constituent aggregates where N is a number of the plurality of constituent aggregates; a parity owner aggregate assigned for a second number of regions across the plurality of constituent aggregates; a selected constituent aggregate of the plurality of constituent aggregates configured to store data received from a client; one or more of the plurality of storage systems further configured to compute redundancy information for the data stored at the selected constituent aggregate based on a logical operation between the data stored at the selected constituent aggregate and other data stored at other constituent aggregates of the plurality of constituent aggregates; and one of the other constituent aggregates, assigned as the parity owner aggregate, configured to store the computed redundancy information for the data stored at the selected constituent aggregate. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A non-transitory computer-readable medium containing executable program instructions for execution by a processor, the non-transitory computer-readable medium comprising:
-
program instructions that organize a plurality of constituent aggregates as striped aggregates, the constituent aggregates implemented across a plurality of nodes operatively connected as a cluster, wherein each constituent aggregate includes a plurality of storage devices organized into one or more Redundant Arrays of Independent Disk (RAID) groups, wherein each constituent aggregate includes a first equal number of regions, and wherein each constituent aggregate reserves 1/Nth of storage space capacity to store redundancy information from the other constituent aggregates where N is a number of the plurality of constituent aggregates; program instructions that assign, for a second number of regions across the plurality of constituent aggregates, only a single aggregate as a parity owner aggregate; program instructions that store data received from a client at a selected constituent aggregate of the plurality of constituent aggregates; program instructions that compute redundancy information for the data stored at the selected constituent aggregate based on a logical operation between the data stored at the selected constituent aggregate and other data stored at other constituent aggregates of the plurality of constituent aggregates; and program instructions that store the computed redundancy information for the data stored at the selected constituent aggregate at one of the other constituent aggregates that is the assigned parity owner aggregate.
-
Specification