Storage media data structure system and method
First Claim
1. A method of storing data in a grid-based data storage system comprising:
- defining an array of equal capacity data storage units, each data storage unit defined as a grouped plurality of data storage blocks from separate storage domains fewer than a total available number of storage domains; and
allocating each of the data storage units for storing either user data entirely or fault tolerance data entirely.
5 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is a data storage architecture employing a plurality of data grids each comprising an array of equal capacity data storage blocks organized into a plurality of rows and a plurality of columns such that each column corresponds to a storage domain in a data storage system and each row of the plurality of rows corresponds to a plurality of data storage blocks, one data storage block from each column of the plurality of columns at the same physical address, with the plurality of rows each having a plurality of contiguous data storage blocks in each domain. Capacity grids are produce by applying one of a plurality of sparing versions that designate at least one data storage block in each row of the grid is designated as spare, Defined within each capacity grid are one or more data storage units. Each data storage unit reflects a storage format, such as a RAID level, and defines data storage blocks, mirror data blocks, and parity data blocks depending upon storage the format and can provide fault tolerance in the event of a domain failure. User data is stored exclusively in a first portion of the grid and parity data, if any, is exclusively stored in a second portion of the grid, providing optimized performance. Data access employs metadata that may comprise grid and storage unit descriptors, data storage unit format, and a sparing table.
-
Citations
23 Claims
-
1. A method of storing data in a grid-based data storage system comprising:
-
defining an array of equal capacity data storage units, each data storage unit defined as a grouped plurality of data storage blocks from separate storage domains fewer than a total available number of storage domains; and allocating each of the data storage units for storing either user data entirely or fault tolerance data entirely. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
- 9. A grid-based data storage system comprising an array of equal capacity data storage units, each data storage unit defined as a grouped plurality of data storage blocks from separate storage domains fewer than a total available number of storage domains, wherein each data storage unit is individually allocated for storing either user data entirely or fault tolerance data entirely.
-
11. A method of storing data in a grid-based data storage system comprising:
-
defining an array of equal capacity data storage units, each data storage unit defined as a grouped plurality of data storage blocks from separate storage domains fewer than a total available number of storage domains; allocating each of the data storage units for storing either user data entirely or fault tolerance data entirely in accordance with a selected first storage format; and reallocating the data storage units for storing either user data entirely or fault tolerance data entirely in accordance with a selected second storage format if the number of data storage units in the first storage format is less than or equal to the number of data storage units in the second storage format. - View Dependent Claims (12, 13)
-
-
14. A data structure stored on a storage medium having an array of equal capacity data storage units, each data storage unit defined as a grouped plurality of data storage blocks from separate storage domains fewer than a total available number of storage domains, the data structure comprising a pointer that when multiplied by a storage capacity of said data storage blocks and by the number of rows of data storage units allocated for storing user data, and to which an offset, if any, is added, produces a base address in each storage domain.
-
15. A method of accessing data in a data storage system comprising:
-
defining an array of equal capacity data storage units, each data storage unit defined as a grouped plurality of data storage blocks from separate storage domains fewer than a total available number of storage domains; determining a domain and a physical address for at least one data storage block by applying an array pointer value to determine a base address of said array, applying a data storage unit pointer value to determine at least one domain to be accessed and to determine a row such that the row number minus one is multiplied by a capacity of said storage blocks and added to a base address to produce a physical address; and issuing an access command to said at least one domain that includes said physical address.
-
Specification