Asymmetrical striping of mirrored storage device arrays and concurrent access to even tracks in the first array and odd tracks in the second array to improve data access performance
First Claim
1. A data storage system comprising:
- a first array of data storage devices;
a second array of data storage devices; and
a storage controller coupled to the first array of storage devices and the second array of storage devices for accessing mirrored data contained in the first array of data storage devices and also contained in the second array of data storage devices, the storage controller being programmed to respond to a request to access a specified portion of the mirrored data by accessing the specified portion of the mirrored data in the first array of data storage devices when the specified portion of the mirrored data cannot be accessed in the second array of data storage devices, and by accessing the specified portion of the mirrored data in the second array of data storage devices when the specified portion of the mirrored data cannot be accessed in the first array of data storage devices;
wherein each data storage device in the first array of data storage devices contains a respective share of the mirrored data, each data storage device in the second array of data storage devices contains a respective share of the mirrored data, each data storage device in the second array of data storage devices contains a respective share of the mirrored data contained in said each data storage device in the first array of data storage devices, and each data storage device in the first array of data storage devices contains a respective share of the mirrored data contained in said each data storage device in the second array of data storage devices;
wherein the mirrored data contained in the first array of data storage devices and also contained in the second array of data storage devices is subdivided into respective data blocks, each data storage device in the first array of data storage devices contains the same number of the data blocks so that the data blocks are cells in a first matrix, each data storage device in the second array of data storage devices contains the same number of the data blocks so that the data blocks are cells in a second matrix, and the second matrix is the transpose of the first matrix.
8 Assignments
0 Petitions
Accused Products
Abstract
Mirrored data is contained in a first data storage device array and also in a second data storage device array. However, devices in the first array are not simply mirrors of devices in the second array. Instead, each data storage device in the second array contains a respective share of the mirrored data contained in each data storage device in the first array, and each data storage device in the first array contains a respective share of the mirrored data contained in each data storage device in the second array. Therefore, when a data storage device in one array fails, the failure load is spread over the data storage devices of the other array. For disk storage devices, the mirrored data can be arranged in the first and second arrays so that the mirrored data is contained at the same disk track radius in both arrays in order to equalize seek time for write access or sequential read access to both arrays. Alternatively, the mirrored data can be arranged so that mirrored data at the minimum and maximum track radius in one array is contained at the mean track radius of the other array in order to minimize seek time for random read access.
106 Citations
11 Claims
-
1. A data storage system comprising:
-
a first array of data storage devices;
a second array of data storage devices; and
a storage controller coupled to the first array of storage devices and the second array of storage devices for accessing mirrored data contained in the first array of data storage devices and also contained in the second array of data storage devices, the storage controller being programmed to respond to a request to access a specified portion of the mirrored data by accessing the specified portion of the mirrored data in the first array of data storage devices when the specified portion of the mirrored data cannot be accessed in the second array of data storage devices, and by accessing the specified portion of the mirrored data in the second array of data storage devices when the specified portion of the mirrored data cannot be accessed in the first array of data storage devices;
whereineach data storage device in the first array of data storage devices contains a respective share of the mirrored data, each data storage device in the second array of data storage devices contains a respective share of the mirrored data, each data storage device in the second array of data storage devices contains a respective share of the mirrored data contained in said each data storage device in the first array of data storage devices, and each data storage device in the first array of data storage devices contains a respective share of the mirrored data contained in said each data storage device in the second array of data storage devices;
whereinthe mirrored data contained in the first array of data storage devices and also contained in the second array of data storage devices is subdivided into respective data blocks, each data storage device in the first array of data storage devices contains the same number of the data blocks so that the data blocks are cells in a first matrix, each data storage device in the second array of data storage devices contains the same number of the data blocks so that the data blocks are cells in a second matrix, and the second matrix is the transpose of the first matrix. - View Dependent Claims (2, 3)
the data storage devices in the first and second arrays of data storage devices contain rotating disks, and the mirrored data is contained at different radii on the rotating disks, wherein each of the data blocks contained in each of the data storage devices is contained at radii over a respective range of radii on said each of the data storage devices, the data blocks in each row of the first matrix are contained in the data storage devices in the first array of data storage devices at the same range of radii, and the data blocks in each row of the second matrix are contained in the data storage devices in the second array of data storage devices at the same range of radii. -
3. The method as claimed in claim 1, wherein
the data storage devices in the first and second arrays of data storage devices contain rotating disks, the mirrored data is stored in even and odd numbered circular tracks on planar surfaces of the rotating disks, and the storage controller is further programmed for a read access to the specified portion of the mirrored data by issuing a read command to one of the data storage devices in the first array of data storage devices for reading one half of the specified portion of the mirrored data from odd numbered tracks and by issuing a read command to one of the data storage devices in the second array of data storage devices for concurrently reading another half of the specified portion of the mirrored data from even numbered tracks.
-
-
4. A data storage system comprising:
-
a first array of disk drives;
a second array of disk drives;
a storage controller coupled to the first array of disk drives and the second array of disk drives for accessing mirrored data contained in the first array of disk drives and also contained in the second array of disk drives, the storage controller being programmed to respond to a request to access a specified portion of the mirrored data by accessing the specified portion of the mirrored data in the first array of disk drives when the specified portion of the mirrored data cannot be accessed in the second array of disk drives, and by accessing the specified portion of the mirrored data in the second array of disk drives when the specified portion of the mirrored data cannot be accessed in the first array of disk drives;
whereinthe mirrored data is subdivided into a plurality of data blocks, each disk drive in the first array of disk drives contains a respective share of the data blocks, each disk drive in the second array of disk drives contains a respective share of the data blocks, said each disk drive in the second array of disk drives contains a respective one of the data blocks contained in said each disk drive in the first array of disk drives, and said each disk drive in the first array of disk drives contains a respective one of the data blocks contained in said each disk drive in the second array of disk drives;
whereinsaid each disk drive in the first array of disk drives contains the same number of the data blocks so that the data blocks in the first array of disk drives are organized according to a first matrix having rows and columns of the data blocks, each row in the first matrix indicating a striping of the data blocks across the disk drives in the first array of disk drives, and each column in the first matrix indicating a striping of the data blocks within a respective one of the disk drives in the first array of disk drives, and so that the data blocks in the second array of disk drives are organized according to a second matrix having rows and columns of the data blocks, each row in the second matrix indicating a striping of the data blocks across the disk drives in the second array of disk drives, and each column in the second matrix indicating a striping of the data blocks within a respective one of the disk drives in the second array of disk drives, wherein the second matrix is the transpose of the first matrix. - View Dependent Claims (5, 6, 7)
the disk drives in the first and second arrays of disk drives contain rotating disks, and each of the data blocks contained in each of the disk drives is contained at radii over a respective range of radii on said each of the disk drives, the data blocks in each row of the first matrix are contained in the disk drives in the first array of disk drives at the same range of radii, and the data blocks in each row of the second matrix are contained in the disk drives in the second array of disk drives at the same range of radii. -
7. The method as claimed in claim 4, wherein
the disk drives in the first and second arrays of disk drives contain rotating disks, the mirrored data is stored in even and odd numbered circular tracks on planar surfaces of the rotating disks, and the storage controller is further programmed for a read access to the specified portion of the mirrored data by issuing a read command to one of the data storage devices in the first array of data storage devices for reading one half of the specified portion of the mirrored data from odd numbered tracks and by issuing a read command to one of the data storage devices in the second array of data storage devices for concurrently reading another half of the specified portion of the mirrored data from even numbered tracks.
-
-
8. A data storage system comprising:
-
a first array of disk drives;
a second array of disk drives;
a storage controller coupled to the first array of disk drives and the second array of disk drives for accessing mirrored data contained in the first array of disk drives and also contained in the second array of disk drives, the storage controller being programmed to respond to a request to access a specified portion of the mirrored data by accessing the specified portion of the mirrored data in the first array of disk drives when the specified portion of the mirrored data cannot be accessed in the second array of disk drives, and by accessing the specified portion of the mirrored data in the second array of disk drives when the specified portion of the mirrored data cannot be accessed in the first array of disk drives;
whereinthe mirrored data is subdivided into a plurality of data blocks, each disk drive in the first array of disk drives contains a respective share of the data blocks, each disk drive in the second array of disk drives contains a respective share of the data blocks, said each disk drive in the second array of disk drives contains a respective one of the data blocks contained in said each disk drive in the first array of disk drives, and said each disk drive in the first array of disk drives contains a respective one of the data blocks contained in said each disk drive in the second array of disk drives;
whereinsaid each disk drive in the first array of disk drives contains the same number of the data blocks so that the data blocks in the first array of disk drives are organized according to a first matrix having rows and columns of the data blocks, each row in the first matrix indicating a striping of the data blocks across the disk drives in the first array of disk drives, and each column in the first matrix indicating a striping of the data blocks within a respective one of the disk drives in the first array of disk drives, and so that the data blocks in the second array of disk drives are organized according to a second matrix having rows and columns of the data blocks, each row in the second matrix indicating a striping of the data blocks across the disk drives in the second array of disk drives, and each column in the second matrix indicating a striping of the data blocks within a respective one of the disk drives in the second array of disk drives, wherein the striping as indicated by each row of the first matrix is the same as the striping as indicated by a respective one of the columns of the second matrix. - View Dependent Claims (9, 10, 11)
the disk drives in the first and second arrays of disk drives contain rotating disks, and each of the data blocks contained in each of the disk drives is contained at radii over a respective range of radii on said each of the disk drives, the data blocks in each row of the first matrix are contained in the disk drives in the first array of disk drives at the same range of radii, and the data blocks in each row of the second matrix are contained in the disk drives in the second array of disk drives at the same range of radii. -
11. The method as claimed in claim 8, wherein
the disk drives in the first and second arrays of disk drives contain rotating disks, the mirrored data is stored in even and odd numbered circular tracks on planar surfaces of the rotating disks, and the storage controller is further programmed for a read access to the specified portion of the mirrored data by issuing a read command to one of the data storage devices in the first array of data storage devices for reading one half of the specified portion of the mirrored data from odd numbered tracks and by issuing a read command to one of the data storage devices in the second array of data storage devices for concurrently reading another half of the specified portion of the mirrored data from even numbered tracks.
-
Specification