IP Library › Granted Patent US 10,671,480
Granted Patent B2
US 10,671,480 · App. 15/941,580 · Granted Jun 2, 2020

Utilization of erasure codes in a storage system

Inventors: John Hayes (Mountain View, CA); John Colgrove (Mountain View, CA); John D. Davis (Mountain View, CA)
Assignee: Pure Storage, Inc.
G06F11/1076G06F3/06G06F3/065G06F3/0607G06F3/067G06F3/0613G06F3/0619G06F3/0632G06F3/0655G06F3/0688G06F11/1068G06F11/1092G06F12/0246H03M13/154G06F11/108G06F2201/845G06F2212/7206G06F2212/7207
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,671,480
App. No.
15/941,580
Granted
Jun 2, 2020
Kind
B2
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.

Claims (31)

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.

2. The method of claim 1 , wherein the set of erasure codes includes two or more differing erasure codes coexisting in the plurality of storage nodes.

3. The method of claim 1 , wherein determining that one of the plurality of storage nodes is unreachable is based on one of lack of a heartbeat, lack of a response to a query, or a timeout.

4. The method of claim 1 , wherein the plurality of storage nodes are distributed throughout multiple chassis.

5. The method of claim 1 , wherein the at least one authority is located on a differing storage node from the one of the plurality of storage nodes determined to be unreachable.

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.

7. The computer readable media of claim 6 , wherein the set of erasure codes include two or more differing erasure codes coexisting in the plurality of storage nodes.

8. The computer readable media of claim 6 , wherein determining that one of the plurality of storage nodes is unreachable is based on one of lack of a heartbeat, lack of a response to a query, or a timeout.

9. The computer readable media of claim 6 , wherein the plurality of storage nodes are distributed throughout multiple chassis.

10. The computer readable media of claim 6 , wherein the at least one authority is located on a differing storage node from the one of the plurality of storage nodes determined to be unreachable.

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.

12. The storage cluster of claim 11 , wherein the erasure codes include two or more differing erasure codes coexisting in the plurality of storage nodes.

13. The storage cluster of claim 11 , wherein determining that one of the plurality of storage nodes is unreachable is based on one of lack of a heartbeat, lack of a response to a query, or a timeout.

14. The storage cluster of claim 11 , wherein the plurality of storage nodes are distributed throughout multiple chassis.

Continuity (5)
Continuation 14954757 · Nov 30, 2015
Continuation 14610766 · Jan 30, 2015
Continuation 14491552 · Sep 19, 2014
Continuation 14296151 · Jun 4, 2014
Related Publication 20180225174A1 · Aug 9, 2018
Cited By (5)
US 12,204,403 US 12,242,337 US 12,346,561 US 12,405,857 US 12,417,176