A computer-implemented method for facilitating the rebalancing of striped information across multiple storage devices, to be performed by a computing device comprising at least one processor, the method comprising: allocating, by the computing device, "Y" contiguous storage spaces on "Y" physical storage devices of multiple storage devices, thereby to create "Y" physical stripes across the "Y" physical storage devices; characterized in that the method additionally comprises: dividing, by the computing device, the "Y" contiguous storage spaces into "N" chunks, wherein: "N" is a value equal to the least common multiple of {y, 3, 4, 5,..., x}, "x" is equal to a maximum number of logical stripes of chunks, and "y" is equal to a minimum number of logical stripes of chunks; allocating, by the computing device, the "N" chunks to "X" logical stripes of chunks; allocating, by the computing device, each of the first "Y" logical stripes of chunks of the "X" logical stripes of chunks to a respective physical stripe in each of the "Y" physical stripes; dividing, by the computing device, remaining logical stripes of chunks by "Y" to form respective sub-groups of logical stripes of chunks; and allocating, by the computing device, the respective sub-groups of logical stripes of chunks across the "Y" physical stripes. allocating, by the computing device, "Y" contiguous storage spaces on "Y" physical storage devices of multiple storage devices, thereby to create "Y" physical stripes across the "Y" physical storage devices; characterized in that the method additionally comprises: dividing, by the computing device, the "Y" contiguous storage spaces into "N" chunks, wherein: "N" is a value equal to the least common multiple of {y, 3, 4, 5,..., x}, "x" is equal to a maximum number of logical stripes of chunks, and "y" is equal to a minimum number of logical stripes of chunks; allocating, by the computing device, the "N" chunks to "X" logical stripes of chunks; allocating, by the computing device, each of the first "Y" logical stripes of chunks of the "X" logical stripes of chunks to a respective physical stripe in each of the "Y" physical stripes; dividing, by the computing device, remaining logical stripes of chunks by "Y" to form respective sub-groups of logical stripes of chunks; and allocating, by the computing device, the respective sub-groups of logical stripes of chunks across the "Y" physical stripes. dividing, by the computing device, the "Y" contiguous storage spaces into "N" chunks, wherein: "N" is a value equal to the least common multiple of {y, 3, 4, 5,..., x}, "x" is equal to a maximum number of logical stripes of chunks, and "y" is equal to a minimum number of logical stripes of chunks; "N" is a value equal to the least common multiple of {y, 3, 4, 5,..., x}, "x" is equal to a maximum number of logical stripes of chunks, and "y" is equal to a minimum number of logical stripes of chunks; allocating, by the computing device, the "N" chunks to "X" logical stripes of chunks; allocating, by the computing device, each of the first "Y" logical stripes of chunks of the "X" logical stripes of chunks to a respective physical stripe in each of the "Y" physical stripes; dividing, by the computing device, remaining logical stripes of chunks by "Y" to form respective sub-groups of logical stripes of chunks; and allocating, by the computing device, the respective sub-groups of logical stripes of chunks across the "Y" physical stripes.