Patent ID: 8639878

Claim:
A method for expanding the storage capacity of a storage cluster comprising two or more storage computers, the method comprising: generating a plurality of pre-defined maps; storing the plurality of pre-defined maps, each pre-defined map defining a stripe pattern for storing data on a storage cluster consisting of a specific number of storage computers, wherein the storage capacity of the storage cluster is divided into storage zones, the stripe pattern for each pre-defined map is further defined such that each storage zone is stored on at least two storage computers in the storage cluster, and the stripe pattern for each pre-defined map designates for each storage zone a same one of the at least two storage computers as an owner of the storage zone and the others of the at least two storage computers as peers for the storage zone; striping data across the storage computers of the storage cluster according to a first map from the plurality of pre-defined maps defining a stripe pattern for storing data on a storage cluster consisting of N storage computers; adding a new storage computer to the storage cluster; and in response to the addition of the new storage computer to the storage cluster, re-striping the data across the storage computers according to a second map from the plurality of pre-defined maps defining a stripe pattern for storing data on a storage cluster consisting of N+1 storage computers, wherein the stripe patterns of the first map and the second map are defined such that, during re-striping, movement of data never occurs between two storage computers that existed in the storage cluster prior to the addition of the new storage computer, regardless of the number of storage computers that exist in the storage cluster, and wherein the plurality of pre-defined maps are generated and stored before the new storage computer is added to the storage cluster.