Topology independent storage arrays and methods
First Claim
Patent Images
1. A method comprising:
- providing, to a storage node, a first storage sub-map to map a plurality of data block identifiers to a corresponding plurality of physical locations on a storage device, the first storage sub-map being specific to the storage node;
providing, to a client device, a second storage sub-map to map a data block identifier, of the plurality of data block identifiers, to the storage node and the second storage sub-map to further map another data block identifier to another storage node; and
providing, to the another storage node, a third storage sub-map to map the another data block identifier to a physical location on the storage device or on another storage device, the first storage sub-map, the second storage sub-map, and the third storage sub-map configured to implement a topology of a storage array according to an array policy, the storage array having a plurality of storage nodes, including the storage node and the another storage node, and a plurality of storage devices, including the storage device and the another storage device.
10 Assignments
0 Petitions
Accused Products
Abstract
A topology independent storage array. In a preferred embodiment the topology of the array is reconfigurable due to information control packets passed among storage nodes comprising the array. The topology of the array, as determine by the relationship between data sets stored within the array'"'"'s storage nodes and storage maps of the storage node, can be reconfigured without requiring a complete duplication of the entire array. In especially preferred embodiments, the topology of the storage array follows a Z-10 or a Z-110 configuration where storage devices store one or more mirrored parts of a data set per storage device.
-
Citations
29 Claims
-
1. A method comprising:
-
providing, to a storage node, a first storage sub-map to map a plurality of data block identifiers to a corresponding plurality of physical locations on a storage device, the first storage sub-map being specific to the storage node; providing, to a client device, a second storage sub-map to map a data block identifier, of the plurality of data block identifiers, to the storage node and the second storage sub-map to further map another data block identifier to another storage node; and providing, to the another storage node, a third storage sub-map to map the another data block identifier to a physical location on the storage device or on another storage device, the first storage sub-map, the second storage sub-map, and the third storage sub-map configured to implement a topology of a storage array according to an array policy, the storage array having a plurality of storage nodes, including the storage node and the another storage node, and a plurality of storage devices, including the storage device and the another storage device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method comprising:
-
providing, to a storage node, a first storage sub-map to map a plurality of data block identifiers to a corresponding plurality of physical locations on a storage device, the first storage sub-map being specific to the storage node; and providing, to a client device, a second storage sub-map to map a data block identifier, of the plurality of data block identifiers, to the storage node, the first storage sub-map and the second storage sub-map configured to implement a topology of a storage array according to an array policy, the storage array having a plurality of storage nodes, including the storage node and another storage node, and a plurality of storage devices, including the storage device, wherein the second storage sub-map is to further map the data block identifier to the another storage node to provide the client device direct access to the another storage node from among the plurality of storage nodes.
-
-
11. A storage array comprising:
-
a first storage node to communicate with a storage device, the first storage node being responsible for access to a first partition of the storage device by having a first storage map to map a plurality of data block identifiers to the first partition, the first storage node being directly addressable by communications received from a network external to the storage array and the first partition being associated with a striped logical group; and a second storage node to communicate with the storage device, the second storage node being responsible for access to a second partition of the storage device by having a second storage map to map another plurality of data block identifiers to the second partition, the second storage node being directly addressable by communications received from the network and the second partition to mirror a third partition associated with the striped logical group. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A system comprising:
-
means for providing, to a storage node, a first storage sub-map to map a plurality of data block identifiers to a corresponding plurality of physical locations on a storage device, the first storage sub-map being specific to the storage node; means for providing, to a client device, a second storage sub-map to map a data block identifier, of the plurality of data block identifiers, to the storage node and the second storage sub-map to further map another data block identifier to another storage node; and means for providing, to the another storage node, a third storage sub-map to map the another data block identifier to a physical location on the storage device or on another storage device, the first storage sub-map, the second storage sub-map, and the third storage sub-map configured to implement a topology of a storage array according to an array policy, the storage array having a plurality of storage nodes, including the storage node and the another storage node, and a plurality of storage devices, including the storage device and the another storage device. - View Dependent Claims (24, 25, 26, 27, 28)
-
-
29. A system comprising:
-
means for providing, to a storage node, a first storage sub-map to map a plurality of data block identifiers to a corresponding plurality of physical locations on a storage device, the first storage sub-map being specific to the storage node; and means for providing, to a client device, a second storage sub-map to map a data block identifier, of the plurality of data block identifiers, to the storage node, the first storage sub-map and the second storage sub-map configured to implement a topology of a storage array according to an array policy, the storage array having a plurality of storage nodes, including the storage node, and a plurality of storage devices, including the storage device, wherein the second storage sub-map is to further map the data block identifier to another storage node to provide the client device direct access to the another storage node from among the plurality of storage nodes.
-
Specification