Methods and systems for storing data in a redundant manner on a plurality of storage units of a storage system
First Claim
1. A method for a storage system having a plurality of storage units, the method comprising:
- while all of the storage units are operating without failure, storing only error-correction blocks on a first one of the storage units and storing a combination of data blocks and error-correction blocks on a second one of the storage units; and
upon failure of the second storage unit, (i) reconstructing one or more data blocks and one or more error-correction blocks formerly stored on the second storage unit, and (ii) storing the one or more reconstructed data blocks and the one or more reconstructed error-correction blocks on the first storage unit in an offset manner such that the storing of a first reconstructed block belonging to a first stripe on the first storage unit does not involve writing over an error-correction block belonging to the first stripe on the first storage unit.
2 Assignments
0 Petitions
Accused Products
Abstract
Described herein are techniques for storing data in a redundant manner on a plurality of storage units of a storage system. While all of the storage units are operating without failure, only error-correction blocks are stored on a first one of the storage units, while a combination of data blocks and error-correction blocks are stored on a second one of the storage units. Upon failure of the second storage unit, one or more data blocks and one or more error-correction blocks formerly stored on the second storage unit are reconstructed, and the one or more reconstructed data blocks and the one or more reconstructed error-correction blocks are stored on the first storage unit.
-
Citations
20 Claims
-
1. A method for a storage system having a plurality of storage units, the method comprising:
-
while all of the storage units are operating without failure, storing only error-correction blocks on a first one of the storage units and storing a combination of data blocks and error-correction blocks on a second one of the storage units; and upon failure of the second storage unit, (i) reconstructing one or more data blocks and one or more error-correction blocks formerly stored on the second storage unit, and (ii) storing the one or more reconstructed data blocks and the one or more reconstructed error-correction blocks on the first storage unit in an offset manner such that the storing of a first reconstructed block belonging to a first stripe on the first storage unit does not involve writing over an error-correction block belonging to the first stripe on the first storage unit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A storage system, comprising:
-
a plurality of storage units; a main memory; a processor communicatively coupled to the plurality of storage units and the main memory; and a set of instructions on the main memory that, when executed by the processor, cause the processor to; while all of the storage units are operating without failure, store only error-correction blocks on a first one of the storage units and store a combination of data blocks and error-correction blocks on a second one of the storage units; and upon failure of the second storage unit, (i) reconstruct one or more data blocks and one or more error-correction blocks formerly stored on the second storage unit, and (ii) store the one or more reconstructed data blocks and one or more reconstructed error-correction blocks on the first storage unit in an offset manner such that the storing of a first reconstructed block belonging to a first stripe on the first storage unit does not involve writing over an error-correction block belonging to the first stripe on the first storage unit. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A non-transitory machine-readable storage medium for a storage system having a plurality of storage units, a main memory, and a processor communicatively coupled to the plurality of storage units and the main memory, the non-transitory machine-readable storage medium comprising software instructions that, when executed by the processor, cause the processor to:
-
while all of the storage units are operating without failure, store only error-correction blocks on a first one of the storage units and store a combination of data blocks and error-correction blocks on a second one of the storage units; and upon failure of the second storage unit, (i) reconstruct one or more data blocks and one or more error-correction blocks formerly stored on the second storage unit, and (ii) store the one or more reconstructed data blocks and one or more reconstructed error-correction blocks on the first storage unit in an offset manner such that the storing of a first reconstructed block belonging to a first stripe on the first storage unit does not involve writing over an error-correction block belonging to the first stripe on the first storage unit. - View Dependent Claims (17, 18, 19, 20)
-
Specification