Method for dynamically implementing N+K redundancy in a storage subsystem
First Claim
1. A storage subsystem comprising:
- a plurality of storage arrays each including a plurality of storage devices;
a plurality of array controllers each coupled to one or more of the plurality of storage arrays and configured to create a storage volume including storage devices belonging to one or more of the plurality of storage arrays, wherein one or more arrays of the plurality of storage arrays corresponds to a failure group; and
a redundancy controller coupled to the plurality of array controllers and configured to implement N+K redundancy, wherein the redundancy controller further includes configuration functionality configured to automatically determine a number of redundant system data blocks to be stored on different storage devices for a given stripe of data dependent upon particular values of N and K provided as system configuration parameters and dependent upon physical system configuration information;
wherein the configuration functionality is further configured to;
determine a total number of failure groups (G′
);
determine a maximum number of storage devices (M) in any one of the storage arrays in response to determining that N+K>
G′
; and
allocate M−
K additional storage devices to another portion of storage devices in response to determining M>
K and in response to determining there are M−
K failure groups that include fewer than M storage devices allocated to the storage volume.
2 Assignments
0 Petitions
Accused Products
Abstract
In one embodiment, a storage subsystem includes a plurality of storage arrays each including a plurality of storage devices. The storage subsystem also includes a plurality of array controllers each coupled to one or more of the plurality of storage arrays. One or more of the arrays corresponds to a failure group. Each array controller may create a storage volume including storage devices belonging to one or more of plurality of storage arrays. In addition, the storage subsystem includes a redundancy controller that may be configured to implement N+K redundancy. The redundancy controller includes configuration functionality that may determine a number of redundant system data blocks to be stored on different storage devices for a given stripe of data that is dependent upon particular values of N and K and upon physical system configuration information.
58 Citations
19 Claims
-
1. A storage subsystem comprising:
-
a plurality of storage arrays each including a plurality of storage devices; a plurality of array controllers each coupled to one or more of the plurality of storage arrays and configured to create a storage volume including storage devices belonging to one or more of the plurality of storage arrays, wherein one or more arrays of the plurality of storage arrays corresponds to a failure group; and a redundancy controller coupled to the plurality of array controllers and configured to implement N+K redundancy, wherein the redundancy controller further includes configuration functionality configured to automatically determine a number of redundant system data blocks to be stored on different storage devices for a given stripe of data dependent upon particular values of N and K provided as system configuration parameters and dependent upon physical system configuration information; wherein the configuration functionality is further configured to; determine a total number of failure groups (G′
);determine a maximum number of storage devices (M) in any one of the storage arrays in response to determining that N+K>
G′
; andallocate M−
K additional storage devices to another portion of storage devices in response to determining M>
K and in response to determining there are M−
K failure groups that include fewer than M storage devices allocated to the storage volume. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method for dynamic configuration of a storage subsystem including a plurality of storage arrays each including a plurality of storage devices, said method comprising:
-
creating a storage volume including storage devices belonging to one or more of plurality of storage arrays, wherein one or more arrays of the plurality of storage arrays corresponds to a failure group; implementing N+K redundancy, by automatically determining a number of redundant system data blocks to be stored on different storage devices for a given stripe of data dependent upon particular values of N and K provided as system configuration parameters and dependent upon physical system configuration information; determining a total number of failure groups (G′
);determining a maximum number of storage devices (M) in any one of the storage arrays in response to determining that N+K>
G′
; andallocating M−
K additional storage devices to another portion of storage devices in response to determining M>
K and in response to determining there are M−
K failure groups that include fewer than M storage devices allocated to the storage volume. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A storage subsystem comprising:
-
a plurality of storage arrays each including a plurality of storage devices; a plurality of array controllers each coupled to one or more of the plurality of storage arrays and configured to create a storage volume including storage devices belonging to one or more of the plurality of storage arrays, wherein one or more arrays of the plurality of storage arrays corresponds to a failure group; and
a redundancy controller coupled to the plurality of array controllers and configured to implement N+K redundancy, wherein the redundancy controller further includes configuration functionality configured to automatically determine a number of redundant system data blocks to be stored on different storage devices for a given stripe of data dependent upon particular values of N and K provided as system configuration parameters and dependent upon physical system configuration information;wherein the configuration functionality is further configured to; in response to detecting a failure associated with a storage device in the storage volume, allocate a spare storage device belonging to a same failure group as the failing storage device and reconstruct the system data to the allocated storage device; allocate a spare storage device from another failure group that does not include a storage device belonging to the storage volume in response to determining there are no spare storage devices available in the same failure groups as the failing storage device; determine a maximum number of storage devices (M) in any of the failure groups and allocate a spare storage device belonging to a storage array that is not already contributing M storage devices in response to determining there are no spare storage devices from another failure group that does not include a storage device belonging to the storage volume; and allocate two storage devices from two different failure groups, using the first of the two storage devices to reconstruct the contents of the failed storage device and using the second of the two storage devices to create a new redundant storage device in response to determining there are no spare storage devices belonging to a failure group that is not already contributing M storage devices.
-
Specification