Providing redundancy in a storage system
First Claim
1. A method for providing redundancy in a storage cluster comprising two or more storage computers, the method comprising:
- storing a plurality of pre-defined maps on each of the two or more storage computers in the storage cluster, each pre-defined map defining a stripe pattern for storing data on a storage cluster consisting of a specific number of storage computers according to storage zones, wherein the stripe pattern for each pre-defined map is defined such that when the storage cluster is striped according to a first of the pre-defined maps, and a new storage computer is added to the storage cluster, data may be re-striped between the storage computers according to a second of the pre-defined maps such that storage zones are never moved 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, wherein 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 wherein the stripe pattern for each pre-defined map designates for each storage zone 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 of the pre-defined maps corresponding to the number of storage computers in the storage cluster;
receiving an input/output operation directed toward a destination storage zone at a storage computer designated by the first map as the owner of the destination storage zone;
performing the input/output operation at the storage computer designated by the first map as the owner of the destination storage zone; and
mirroring the input/output operation to the storage computers designated by the first map as peers for the destination storage zone.
3 Assignments
0 Petitions
Accused Products
Abstract
A system, method, apparatus, and computer-readable medium are described for providing redundancy in a storage system. According to one method, maps are generated and stored that define stripe patterns for storing data on the storage nodes of a storage cluster. The maps are defined such that when a new storage node is added to the cluster, no movement of data occurs between two storage nodes that existed in the cluster prior to the addition of the new storage node during re-striping, and such that the data stored on each storage node is mirrored on another storage node. Storage nodes may also be designated as an owner or a peer for each storage zone. Input/output operations received at an owner node are fielded directly and mirrored to the peer node, while input/output operations received at a peer node are redirected to the owner node for processing.
53 Citations
10 Claims
-
1. A method for providing redundancy in a storage cluster comprising two or more storage computers, the method comprising:
-
storing a plurality of pre-defined maps on each of the two or more storage computers in the storage cluster, each pre-defined map defining a stripe pattern for storing data on a storage cluster consisting of a specific number of storage computers according to storage zones, wherein the stripe pattern for each pre-defined map is defined such that when the storage cluster is striped according to a first of the pre-defined maps, and a new storage computer is added to the storage cluster, data may be re-striped between the storage computers according to a second of the pre-defined maps such that storage zones are never moved 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, wherein 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 wherein the stripe pattern for each pre-defined map designates for each storage zone 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 of the pre-defined maps corresponding to the number of storage computers in the storage cluster; receiving an input/output operation directed toward a destination storage zone at a storage computer designated by the first map as the owner of the destination storage zone; performing the input/output operation at the storage computer designated by the first map as the owner of the destination storage zone; and mirroring the input/output operation to the storage computers designated by the first map as peers for the destination storage zone. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer-readable storage medium having computer-executable instructions stored thereon which, when executed by a computer, will cause the computer to perform a method for providing redundancy in a storage cluster comprising two or more storage computers, the method comprising:
-
storing a plurality of pre-defined maps on each of the two or more storage computers in the storage cluster, each pre-defined map defining a stripe pattern for storing data on a storage cluster consisting of a specific number of storage computers according to storage zones, wherein the stripe pattern for each pre-defined map is defined such that when the storage cluster is striped according to a first of the pre-defined maps, and a new storage computer is added to the storage cluster, data may be re-striped between the storage computers according to a second of the pre-defined maps such that storage zones are never moved 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, wherein 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 wherein the stripe pattern for each pre-defined map designates for each storage zone 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 of the pre-defined maps corresponding to the number of storage computers in the storage cluster; receiving an input/output operation directed toward a destination storage zone at a storage computer designated by the first map as the owner of the destination storage zone; performing the input/output operation at the storage computer designated by the first map as the owner of the destination storage zone; and mirroring the input/output operation to the storage computers designated by the first map as peers for the destination storage zone.
-
-
8. A computer-readable storage medium having stored thereon:
-
a 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; and computer-executable instructions that, when executed by storage computers in a storage cluster comprising N storage computers, N being greater than or equal to two, cause the storage computers to stripe 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; add a new storage computer to the storage cluster; and in response to the addition of the new storage computer to the storage cluster, re-stripe 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, 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 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. - View Dependent Claims (9, 10)
-
Specification