System and method for handling write commands to prevent corrupted parity information in a storage array
AssigneeDell Products L.P.
InventorsJacob Cherian, Nam Nguyen
Life of this patent
Estimating the term…
Abstract
An architecture and method for executing write commands in a storage array is disclosed. The data strips of the data stripes of the storage array each include a parity check bit. The parity strip of each stripe includes a plurality of parity check bits, each of which is uniquely associated with one of the data strips of the stripes. The inclusion within each data stripe of parity bits associated with each data strip and the party strip provides a method for identifying a corrupted or degraded data condition that occurs as a result of a server failing fails during a write command.
Claims20
A storage array, comprising:
- multiple drives coupled together and configured as a set of drives to store data according to a redundant storage methodology;
- wherein the at least one stripe of data is written across the drives, wherein the data stripe comprises data strips written to a plurality of the drives of the set of drives and a parity strip written to one of the drives of the set of drives;
- wherein each of the data strips includes a parity check bit;
- and
- wherein the parity strip includes a plurality of parity check bits and wherein each of the parity check bits of the parity strip is associated with a data strip of the stripe.
A method for executing a write command in the storage drives of a storage array, wherein the write command is directed to a target data strip within the data stripe of the storage array, comprising:
- calculating new parity data for the data stripe on the basis of the data of the write command;
- flipping in the parity strip a parity check bit associated with the target data strip;
- writing the new parity data to the parity strip;
- flipping the parity check bit of the target data strip;
- and
- writing the data of the write command to the target data strip.
A method for recovering from a failure in a server node during the execution of a write command to a storage array, wherein the write command is directed to a target data strip within a data stripe of the storage array, comprising:
- recognizing a failure in the node that has logical ownership over the storage array during a write to the drive array;
- transferring control over the storage array to an alternate node;
- determining if a parity check bit of the target data strip has the same logical value as an associated parity check bit of a parity strip of the data stripe;
- and
- if the parity check bit of the target data strip does not have the same logical value as an associated parity check bit of a parity strip of the data stripe, performing the steps of:
- calculating new parity data on the basis of the data strips of the stripe;
- writing the new parity data to the parity strip;
- and
- resetting all of the parity check bits of the data stripe.
Dependencies are inferred from the claim text.