Optimizing allocation unit sizes for heterogeneous storage systems
Allocation units having equal allocation unit sizes are formed for writing into erase blocks of a storage system. One or more of the allocation units are formed of at least a portion of two erase blocks. Data is written to the erase blocks forming the allocation units such that one of the erase blocks is open at a time during the writing of the data.
1 . A storage system, comprising:
a plurality of solid-state storage devices comprising a plurality of erase blocks;
a storage controller comprising a processing device operatively coupled to the plurality of solid-state storage devices, configured to:
form a plurality of allocation units having equal allocation unit sizes for writing into the plurality of erase blocks, wherein one or more of the plurality of allocation units are formed of at least a portion of two erase blocks of the plurality of erase blocks; and
write data to the plurality of erase blocks forming the plurality of allocation units such that one of the plurality of erase blocks is open at a time during the writing of the data.
2 . The storage system of claim 1 , wherein the plurality of erase blocks comprises at least two erase blocks of differing sizes.
3 . The storage system of claim 2 , wherein the equal allocation unit sizes are equal to one of the at least two differing erase block sizes.
4 . The storage system of claim 2 , wherein the processing device is further configured to:
define the equal allocation unit sizes as greater than a minimum erase block size of the at least two differing erase block sizes.
5 . The storage system of claim 2 , wherein the processing device is further configured to:
define the equal allocation unit sizes as equal to a maximum size of the at least two differing erase block sizes.
6 . The storage system of claim 1 , wherein the plurality of erase blocks is directly mapped.
7 . The storage system of claim 1 , wherein the processing device is further configured to:
perform a head scan at zero offset into an allocation unit of the plurality of allocation units, wherein the allocation unit comprises a head section beginning at the zero offset into the allocation unit, and subsequent head sections of the plurality of allocation units begin at differing offsets in the plurality of erase blocks.
8 . A method, comprising:
forming, by a processing device of a storage controller, a plurality of allocation units having equal allocation unit sizes for writing into a plurality of erase blocks, wherein one or more of the plurality of allocation units are formed of at least a portion of two erase blocks of the plurality of erase blocks; and
writing data to the plurality of erase blocks forming the plurality of allocation units such that one of the plurality of erase blocks is open at a time during the writing of the data.
9 . The method of claim 8 , wherein the plurality of erase blocks comprises at least two erase blocks of differing sizes.
10 . The method of claim 9 , wherein the equal allocation unit sizes are equal to one of the at least two differing erase block sizes.
11 . The method of claim 9 , further comprising:
defining, by the processing device, the equal allocation unit sizes as greater than a minimum erase block size of the at least two differing erase block sizes.
12 . The method of claim 9 , further comprising:
defining, by the processing device, the equal allocation unit sizes as equal to a maximum size of the at least two differing erase block sizes.
13 . The method of claim 8 , wherein the plurality of erase blocks are directly mapped.
14 . The method of claim 8 , further comprising:
performing, by the processing device, a head scan at zero offset into an allocation unit of the plurality of allocation units, wherein the allocation unit comprises a head section beginning at the zero offset into the allocation unit, and subsequent head sections of the plurality of allocation units begin at differing offsets in the plurality of erase blocks.
15 . A non-transitory computer readable storage medium storing instructions which, when executed, cause a processing device to:
form a plurality of allocation units having equal allocation unit sizes for writing into a plurality of erase blocks, wherein one or more of the plurality of allocation units are formed of at least a portion of two erase blocks of the plurality of erase blocks; and
write data to the plurality of erase blocks forming the plurality of allocation units such that one of the plurality of erase blocks is open at a time during the writing of the data.
16 . The non-transitory computer readable storage medium of claim 15 , wherein the plurality of erase blocks comprises at least two erase blocks of differing sizes.
17 . The non-transitory computer readable storage medium of claim 16 , wherein the equal allocation unit sizes are equal to one of the at least two differing erase block sizes.
18 . The non-transitory computer readable storage medium of claim 15 , wherein the processing device is further configured to:
define the equal allocation unit sizes as greater than a minimum erase block size of the at least two differing erase block sizes.
19 . The non-transitory computer readable storage medium of claim 15 , wherein the plurality of erase blocks is directly mapped.
20 . The non-transitory computer readable storage medium of claim 15 , wherein the processing device is further configured to:
perform a head scan at zero offset into an allocation unit of the plurality of allocation units, wherein the allocation unit comprises a head section beginning at the zero offset into the allocation unit, and subsequent head sections of the plurality of allocation units begin at differing offsets in the plurality of erase blocks.