Dynamically selecting segment heights in a heterogeneous RAID group
A system includes a solid-state storage array having a plurality of solid-state storage devices and a storage controller coupled to the solid-state storage array, the storage controller including a processing device, the processing device to select a segment height based on erase block sizes of the plurality of solid-state storage devices. The processing device is further to program a data segment using the segment height to a data stripe across two or more of the plurality of solid-state storage devices and store the segment height in metadata associated with the data segment.
1. A system comprising:
a solid-state storage system comprising a plurality of solid-state storage devices; and
a storage controller coupled to the solid-state storage system, the storage controller comprising a processing device, the processing device to:
select a segment height based on erase block sizes of the plurality of solid-state storage devices, the segment height based on a multiple of the erase block sizes, wherein the plurality of solid-state storage devices comprise at least two solid-state storage devices having different erase block sizes;
write a data segment using the segment height to a data stripe across two or more of the plurality of solid-state storage devices; and
store the segment height in metadata associated with the data segment.
2. The system of claim 1 , wherein the multiple of the erase block sizes is a smallest erase block size.
3. The system of claim 1 , wherein the processing device is further to:
determine a new segment height based on the erase block sizes of the plurality of solid-state storage devices upon determining that the segment height based on the multiple exceeds a threshold.
4. The system of claim 1 , wherein
the multiple is a smallest erase block size of the erase block sizes, and wherein the segment height is a multiple of the smallest erase block size.
5. The system of claim 1 , wherein the processing device is further to:
select a new segment height upon determining that an erase block size of at least one of the plurality of solid-state storage devices has changed based on a configuration change, wherein the new segment height is based on the erase block sizes of the plurality of solid-state storage devices and the erase block size of the at least one of the plurality of solid-state storage devices that has changed.
6. The system of claim 1 , wherein to select the segment height based on the erase block sizes associated with the plurality of solid-state storage devices, the processing device is further to:
determine the segment height that corresponds to a largest erase block size of the plurality of solid-state storage devices.
7. A method, comprising:
selecting, by a processing device of a storage controller, a segment height based on erase block sizes of a plurality of solid-state storage devices, the segment height based on a multiple of the erase block sizes, wherein the plurality of solid-state storage devices comprise at least two solid-state storage devices having different erase block sizes;
writing a data segment using the segment height to a data stripe across two or more of the plurality of solid-state storage devices; and
storing the segment height in metadata associated with the data segment.
8. The method of claim 7 , wherein the multiple of the erase block sizes is a smallest erase block size.
9. The method of claim 7 , further comprising:
determining a new segment height based on the erase block sizes of the plurality of solid-state storage devices upon determining that the segment height based on the multiple exceeds a threshold.
10. The method of claim 7 , wherein the multiple is a smallest erase block size of the erase block sizes.
11. The method of claim 7 , further comprising:
selecting a new segment height upon determining that an erase block size of at least one of the plurality of solid-state storage devices has changed based on a configuration change, wherein the new segment height is based on the erase block sizes of the plurality of solid-state storage devices and the erase block size of the at least one of the plurality of solid-state storage devices that has changed.
12. The method of claim 7 , wherein selecting the segment height based on the erase block sizes associated with the plurality of solid-state storage devices further comprises:
determining the segment height that corresponds to a largest erase block size of the plurality of solid-state storage devices.
13. A non-transitory computer readable storage medium storing instructions, which when executed, cause a processing device to:
select a segment height based on erase block sizes of a plurality of solid-state storage devices, the segment height based on a multiple of the erase block sizes, wherein the plurality of solid-state storage devices comprise at least two solid-state storage devices having different erase block sizes;
write a data segment using the segment height to a data stripe across two or more of the plurality of solid-state storage devices; and
store the segment height in metadata associated with the data segment.
14. The non-transitory computer readable storage medium of claim 13 , wherein the multiple of the erase block sizes is a smallest erase block size.
15. The non-transitory computer readable storage medium of claim 13 , wherein the multiple is a smallest erase block size of the erase block.
16. The non-transitory computer readable storage medium of claim 13 , wherein the processing device is further to:
select a new segment height upon determining that an erase block size of at least one of the plurality of solid-state storage devices has changed based on a configuration change, wherein the new segment height is based on the erase block sizes of the plurality of solid-state storage devices and the erase block size of the at least one of the plurality of solid-state storage devices that has changed.
17. The non-transitory computer readable storage medium of claim 13 , wherein to select the segment height based on the erase block sizes associated with the plurality of solid-state storage devices, the processing device is further to:
determine the segment height that corresponds to a largest erase block size of the plurality of solid-state storage devices.