Technique for efficiently organizing and distributing parity blocks among storage devices of a storage array
First Claim
1. A method for organizing and distributing parity blocks among storage devices of an array coupled to a storage system, comprising:
- configuring the array with a predetermined number of devices;
dividing each device into blocks;
organizing the blocks into stripes, wherein each stripe contains at least one first device that holds at least one row parity block, at least one second device that holds at least one diagonal parity block, and a plurality of devices that hold data blocks;
appending an extra parity block within each stripe; and
assigning each data block to one row parity set and one diagonal parity set, such that any one or any combination of two devices can fail concurrently and data on the failed devices can be reconstructed.
0 Assignments
0 Petitions
Accused Products
Abstract
A method for organizing and distributing parity blocks among storage devices of an array coupled to a storage system is disclosed. First the array is configured with a predetermined number of devices. Each device is divided into blocks. The blocks are organized into stripes, wherein each stripe contains at least one first device that holds at least one row parity block, at least one second device that holds at least one diagonal parity block, and a plurality of devices that hold data blocks. An extra parity block is appended within each stripe. Each data block is assigned to one row parity set and one diagonal parity set, such that any one or any combination of two devices can fail concurrently and data on the failed devices can be reconstructed.
69 Citations
23 Claims
-
1. A method for organizing and distributing parity blocks among storage devices of an array coupled to a storage system, comprising:
-
configuring the array with a predetermined number of devices; dividing each device into blocks; organizing the blocks into stripes, wherein each stripe contains at least one first device that holds at least one row parity block, at least one second device that holds at least one diagonal parity block, and a plurality of devices that hold data blocks; appending an extra parity block within each stripe; and assigning each data block to one row parity set and one diagonal parity set, such that any one or any combination of two devices can fail concurrently and data on the failed devices can be reconstructed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system for efficiently organizing and distributing parity blocks among devices coupled to a storage system, the system comprising:
-
an array having a plurality of devices, each device divided into blocks, the blocks organized into stripes, wherein each stripe contains a first device that holds row parity blocks, a second device that holds diagonal parity blocks and remaining devices that hold data blocks and wherein the number of blocks on each device of each stripe is equal; a storage operating system including a device storage layer configured to implement a distributed parity technique that appends an extra parity block within each stripe, the device storage layer assigning each data block to one row parity set and one diagonal parity set, such that any one or any combination of two devices can fail concurrently and data on the failed devices can be reconstructed; and a processing element configured to execute the storage operating system to thereby invoke storage access operations to and from the array in accordance with the distributed parity technique. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A computer readable medium containing executable program instructions for efficiently organizing and distributing parity blocks among disks of a disk array coupled to a storage system, the executable program instructions comprising program instructions for:
-
configuring the array with a predetermined number of devices; dividing each device into blocks; organizing the blocks into stripes, wherein each stripe contains at least one first device that holds at least one row parity block, at least one second device that holds at least one diagonal parity block, and a plurality of devices that hold data blocks; appending an extra parity block within each stripe; and assigning each data block to one row parity set and one diagonal parity set, such that any one or any combination of two devices can fail concurrently and data on the failed devices can be reconstructed.
-
Specification