What is claimed is:
1. A method, comprising:
generating one or more sets of storage devices, wherein each set is configured to be mutually exclusive with respect to other sets of the one or more sets such that storage devices within the same set provide the basis for the formation of a RAID (Redundant Arrays of Independent Disks) stripe;
forming a RAID stripe from respective storage extents associated with different storage devices of the same set;
mapping a storage object to the RAID stripe;
servicing host I/O (Input/Output) operations directed to the storage object by using the RAID stripe mapped thereto; and
generating a first set of storage device, wherein generating the first set of storage devices includes:
upon addition of one or more new storage devices, determining if any further storage devices can be added to the first set by evaluating the current amount of storage devices in the first set and an upper limit of storage devices that represent a maximum number of storage devices that can be included in the first set,
in the event of determining that further storage devices can be added to the first set, determining an amount of the new storage devices to be added to the first set such that the amount of determined to be added to the first set fills the first set by as much as is possible given the number of new storage devices and the upper limit of the first set except in the situation where such an amount would leave an amount of new storage devices remaining that is insufficient to meet a lower limit of a second set in which case the amount to be added to the first set is balanced against the amount needed to satisfy the lower limit associated with the second set, and
added the amount of the new storage devices to the first set.
2. The method as claimed in claim 1 , wherein generating the one or more sets includes setting an upper limit and a lower limit of storage devices for each set in order to control the number of storage devices that can be included within the respective sets.
3. The method as claimed in claim 1 , wherein a first and a second set of storage devices are generated; and further comprising:
upon removal of one or more storage devices from the first set, determining that the number of storage devices within the first set is less than a lower limit of storage devices that represents a minimum number of storage devices that can be included in the first set;
in response to the said determination, adding at least one storage device from the second set to the first set provided the loss of the at least one storage device from the second set does not cause the number of storage devices in the second set to be less than a lower limit of storage devices that represents a minimum number of storage devices that can be included in the second set; and
copying data stored on the at least one storage device to at least one of the remaining storage devices in the second set.
4. The method as claimed in claim 1 , wherein an amount of the new storage devices remain after determining the amount of new storage devices to add to the first set; and further comprising:
determining if the remaining amount of the new storage devices can be added to a second set by evaluating at least one of the remaining amount of the new storage devices or the current amount of storage devices in the second set and at least one of a lower limit and an upper limit of storage devices that respectfully represent a minimum and a maximum number of storage devices that can be included in the second set; and
in the event of determining that the remaining amount of the new storage devices can be added to the second set, adding the remaining amount of the new storage devices to the second set.
5. The method as claimed in claim 1 , wherein a first set comprises a storage device that has not provided a storage extent to the RAID stripe; and further comprising:
detecting a failure in connection with a storage device that provides a storage extent to form the RAID stripe;
selecting the storage device that has not provided a storage extent to the RAID stripe based on wear and/or utilization in connection with the storage device; and
rebuilding the RAID stripe by utilizing a storage extent from the selected storage device.
6. The method as claimed in claim 1 , further comprising:
receiving a request for storage;
in response to receiving the request, selecting one of the one or more sets based on wear and/or utilization associated therewith; and
forming a new RAID stripe from respective storage extents associated with different storage devices of the selected set in order to satisfy the request.
7. An apparatus, comprising:
memory; and
processing circuitry coupled to the memory, the memory storing instructions which, when executed by the processing circuitry, cause the processing circuitry to:
generate one or more sets of storage devices, wherein each set is configured to be mutually exclusive with respect to other sets of the one or more sets such that storage devices within the same set provide the basis for the formation of a RAID (Redundant Arrays of Independent Disks) stripe;
form a RAID stripe from respective storage extents associated with different storage devices of the same set;
map a storage object to the RAID stripe;
service host I/O (Input/Output) operations directed to the storage object by using the RAID stripe mapped thereto; and
generate a first set of storage devices, wherein generating the first set of storage devices includes:
upon addition of one or more new storage devices, determine if any further storage devices can be added to the first set by evaluating the current amount of storage devices in the first set and an upper limit storage devices that represents a maximum number of storage devices that can be included in the first set,
in the event of determining that further storage devices can be added to the first set, determine an amount of the new storage devices to be added to the first set such that the amount determined to be added to the first set fills the first set by as much as is possible given the number of new storage devices and the upper limit of the first set except in the situation where such an amount would leave an amount of new storage devices remaining that is insufficient to meet a lower limit of a second set in which case the amount to be added to the first set is balances against the amount needed to satisfy the lower limit associated with the second set, and
add the amount of the new storage devices to the first set.
8. The apparatus as claimed in claim 7 , wherein generating the one or more sets includes setting an upper limit and a lower limit of storage devices for each set in order to control the number of storage devices that can be included within the respective sets.
9. The apparatus as claimed in claim 7 , wherein a first and a second set of storage devices are generated; and further comprising instructions which, when executed by the processing circuitry, cause the processing circuitry to:
upon removal of one or more storage devices from the first set, determine that the number of storage devices within the first set is less than a lower limit of storage devices that represents a minimum number of storage devices that can be included in the first set;
in response to the said determination, add at least one storage device from the second set to the first set provided the loss of the at least one storage device from the second set does not cause the number of storage devices in the second set to be less than a lower limit of storage devices that represents a minimum number of storage devices that can be included in the second set; and
copy data stored on the at least one