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. <EOS>