Redundant Storage of Data on an Array of Storage Devices
First Claim
1. A storage device array control apparatus operable to control writing of data onto an array of N storage devices, where N is an integer of 3 or greater, each storage device being operable to write data with a granularity of a sector having a predetermined sector size, the storage device array control apparatus being operable to control writing of data with a granularity of a transfer unit having a transfer size which is T times the sector size, where T is a plural integer, T is greater than (N−
- 1), and (N−
1) is not a factor of T,the storage device array control apparatus being operable to divide each transfer unit of data into plural stripes each consisting of a respective plural number of sectors of data having the sector size, the stripes each consisting of at most (N−
1) sectors and at least one of the stripes consisting of less than (N−
1) sectors, and to calculate, in respect of each stripe, a parity sector of parity data representing the parity of all the sectors of data in the stripe only and not including any sectors of data already stored on a storage device in the array; and
the storage device array control apparatus being operable to cause writing of each sector of data and each parity sector onto respective storage devices in the array, the sectors of data and the parity sector in respect of each stripe being written onto different storage devices.
9 Assignments
0 Petitions
Accused Products
Abstract
A disk array control apparatus controls writing of data onto an array of N storage devices such as disk drives, where N is an integer of 3 or greater. Each storage device writes data with a granularity of a sector having a predetermined sector size. The apparatus writes data with a granularity of a transfer unit having a transfer size which is T times the sector size, where T is a plural integer greater than (N−1). The apparatus is allows writing to an array of storage devices for which (N−1) is not a factor of T. In particular, the apparatus divides each transfer unit of data into plural stripes each consisting of a respective plural number of sectors of data having the sector size, the stripes each consisting of at most (N−1) sectors and at least one of the stripes consisting of less than (N−1) sectors, and calculates, in respect of each stripe, a parity sector of parity data. The sectors of data and the parity sector representing the parity of each stripe are written onto different storage devices.
102 Citations
24 Claims
-
1. A storage device array control apparatus operable to control writing of data onto an array of N storage devices, where N is an integer of 3 or greater, each storage device being operable to write data with a granularity of a sector having a predetermined sector size, the storage device array control apparatus being operable to control writing of data with a granularity of a transfer unit having a transfer size which is T times the sector size, where T is a plural integer, T is greater than (N−
- 1), and (N−
1) is not a factor of T,the storage device array control apparatus being operable to divide each transfer unit of data into plural stripes each consisting of a respective plural number of sectors of data having the sector size, the stripes each consisting of at most (N−
1) sectors and at least one of the stripes consisting of less than (N−
1) sectors, and to calculate, in respect of each stripe, a parity sector of parity data representing the parity of all the sectors of data in the stripe only and not including any sectors of data already stored on a storage device in the array; andthe storage device array control apparatus being operable to cause writing of each sector of data and each parity sector onto respective storage devices in the array, the sectors of data and the parity sector in respect of each stripe being written onto different storage devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
- 1), and (N−
-
15. A method of writing data onto an array of N storage devices, where N is an integer of 3 or greater, each storage device being operable to write data with a granularity of a sector having a predetermined sector size, the method being a method of writing data with a granularity of a transfer unit having a transfer size which is T times the sector size, where T is a plural integer, T is greater than (N−
- 1), and (N−
1) is not a factor of T,the method comprising; dividing each transfer unit of data into plural stripes each consisting of a respective plural number of sectors of data having the sector size, the stripes each consisting of at most (N−
1) sectors and at least one of the stripes consisting of less than (N−
1) sectors;in respect of each stripe, calculating a parity sector of parity data representing the parity of all the sectors of data in the stripe; and writing each sector of data and each parity sectors onto a respective storage device in the array with the sectors of data and the parity sector in respect of each stripe being written onto different storage devices. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24)
- 1), and (N−
Specification