Utilization of erasure codes in a storage system
First Claim
1. A method for accessing user data in a plurality of storage nodes having nonvolatile solid-state memory, comprising:
- distributing the user data throughout the plurality of storage nodes using one or more of a set of erasure codes, the one or more erasure codes determined by a plurality of authorities, each authority of the plurality of authorities having ownership for a corresponding range of the user data;
in response to determining that one of the plurality of storage nodes is unreachable;
reading the user data across a remainder of the plurality of storage nodes, using a first subset of erasure codes from the set of erasure codes;
writing the user data across the remainder of the plurality of storage nodes, using a second subset of erasure codes from the set of erasure codes; and
accessing the user data, via one or more of the set of erasure codes as determined by at least one of the plurality of authorities, from the remainder of the plurality of storage nodes.
0 Assignments
0 Petitions
Accused Products
Abstract
A plurality of storage nodes in a single chassis is provided. The plurality of storage nodes in the single chassis is configured to communicate together as a storage cluster. Each of the plurality of storage nodes includes nonvolatile solid-state memory for user data storage. The plurality of storage nodes is configured to distribute the user data and metadata associated with the user data throughout the plurality of storage nodes such that the plurality of storage nodes maintain the ability to read the user data, using erasure coding, despite a loss of two of the plurality of storage nodes. A plurality of compute nodes is included in the single chassis, each of the plurality of compute nodes is configured to communicate with the plurality of storage nodes. A method for accessing user data in a plurality of storage nodes having nonvolatile solid-state memory is also provided.
261 Citations
14 Claims
-
1. A method for accessing user data in a plurality of storage nodes having nonvolatile solid-state memory, comprising:
-
distributing the user data throughout the plurality of storage nodes using one or more of a set of erasure codes, the one or more erasure codes determined by a plurality of authorities, each authority of the plurality of authorities having ownership for a corresponding range of the user data; in response to determining that one of the plurality of storage nodes is unreachable; reading the user data across a remainder of the plurality of storage nodes, using a first subset of erasure codes from the set of erasure codes; writing the user data across the remainder of the plurality of storage nodes, using a second subset of erasure codes from the set of erasure codes; and accessing the user data, via one or more of the set of erasure codes as determined by at least one of the plurality of authorities, from the remainder of the plurality of storage nodes. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A tangible, non-transitory, computer-readable media having instructions thereupon which, when executed by a processor, cause the processor to perform a method comprising:
-
distributing user data throughout a plurality of storage nodes using one or more of a set of erasure codes, the one or more erasure codes determined by a plurality of authorities, each authority of the plurality of authorities having ownership for a corresponding range of the user data; in response to determining that one of the plurality of storage nodes is unreachable; reading the user data across a remainder of the plurality of storage nodes, using a first subset of erasure codes from the set of erasure codes; writing the user data across the remainder of the plurality of storage nodes, using a second subset of erasure codes from the set of erasure codes; and accessing the user data, via one or more of the set of erasure codes as determined by at least one of the plurality of authorities, from the remainder of the plurality of storage nodes. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A storage cluster, comprising:
-
solid-state storage memory; a processor, configurable to execute instructions causing the processor to; distribute user data throughout a plurality of storage nodes using one or more of a set of erasure codes, the one or more erasure codes determined by a plurality of authorities, each authority of the plurality of authorities having ownership for a corresponding range of the user data; in response to determining that one of the plurality of storage nodes is unreachable; reading the user data across a remainder of the plurality of storage nodes, using a first subset of erasure codes from the set of erasure codes; writing the user data across the remainder of the plurality of storage nodes, using a second subset of erasure codes from the set of erasure codes; and accessing the user data, via one or more of the set of erasure codes as determined by at least one of the plurality of authorities, from the remainder of the plurality of storage nodes. - View Dependent Claims (12, 13, 14)
-
Specification