Patent ID: 8239622

Claim:
A method for rearranging data blocks including N coupled storage devices having a source data element configuration and a source data storage efficiency E S , when adding M coupled storage devices including (N+M) coupled storage devices having a destination data storage efficiency E D , wherein M and N are positive integers, the method comprising the unordered steps of: selecting a destination data element configuration for the (N+M) coupled storage devices without initializing each of the (N+M) coupled storage devices to zero that provides the destination data storage efficiency E D , wherein a Hamming distance of the (N+M) storage devices is greater than two; selecting a temporary data element configuration for the M coupled storage devices for which the exchange of one or more data blocks between the temporary data element configuration and the source data element configuration produces the destination data element configuration; identifying the data blocks that can be exchanged between the temporary data element configuration and the source data element configuration to produce the destination data element configuration; distributing new data blocks in a diagonal configuration; maintaining the location of the diagonal configuration for adding new stripes within an original set of the N+M coupled storage devices; rearranging each of the stripes such that protection against controller failure is maximized; exchanging the identified data blocks between the temporary data element configuration and the source data element configuration to produce the destination data element configuration having the destination data storage efficiency E D , wherein a number of the data blocks is equal to a number of parity blocks; reducing control complexity by creating a cyclic destination configuration between diagonal and row configurations for each group of N coupled storage devices between N and (N+M) coupled storage devices; limiting movement of data from the identified data blocks to exchanges between the data blocks in the (N+M) coupled storage devices; and reducing data movement from the identified data blocks by not overwriting duplicate data being transferred from one of the identified data blocks to another one of the identified data blocks.