IP Library Granted Patent US 10,082,985
Granted Patent B2
US 10,082,985 · App. 14/671,519 · Granted Sep 25, 2018

Data striping across storage nodes that are assigned to multiple logical arrays

Inventors: John Hayes (Mountain View, CA); Par Botes (Mountain View, CA)
Assignee: Pure Storage, Inc.
G06F3/0665G06F3/0611G06F3/0631G06F3/0688G06F3/0689G06F11/1076
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,082,985
App. No.
14/671,519
Granted
Sep 25, 2018
Kind
B2
Abstract

A storage cluster is provided. The storage cluster includes a plurality of storage nodes coupled together as the storage cluster. The plurality of storage nodes is configured to assign data to two or more logical arrays and the plurality of storage nodes is configured to establish data striping across the plurality of storage nodes for user data of each of the two or more logical arrays.

Claims (49)

1. A storage cluster comprising:

a plurality of storage nodes coupled together as the storage cluster;

the plurality of storage nodes configured to cooperate with each other to partition the storage cluster into two or more logical arrays and assign data to the two or more logical arrays, without presence of and reliance upon a central controller, wherein each logical array functions as a storage cluster; and

the plurality of storage nodes configured to cooperate with each other to establish data striping across the plurality of storage nodes for user data of each of the two or more logical arrays, with a plurality of the authorities controlling data striping of one of the two or more logical arrays, each authority controlling data according to an authority-specific range of data identifiers, and wherein the plurality of storage nodes are further configured to establish metadata and control, for both user data of a first logical array and user data of a second logical array, across the plurality of storage nodes.

2. The storage cluster of claim 1 , wherein:

the plurality of storage nodes are further configured to establish metadata and control for user data of a first logical array in a first subset of the plurality of storage nodes; and

the plurality of storage nodes are further configured to establish metadata and control for user data of a second logical array in a second subset of the plurality of storage nodes, wherein the first subset and the second subset do not overlap, and wherein the data striping for the user data of each of the first logical array and the second logical array is across the first subset and the second subset.

3. The storage cluster of claim 1 , wherein:

the plurality of storage nodes are further configured to assign a first subset of the plurality of storage nodes to a first logical array and a second subset of the plurality of storage nodes to a second logical array, wherein the data striping across the plurality of storage nodes is wider as compared to data striping across only the first subset or data striping across only the second subset.

4. The storage cluster of claim 1 , wherein:

the plurality of storage nodes are further configured to establish first metadata and first control for first user data of a first logical array in a first subset of the plurality of storage nodes; and

the plurality of storage nodes are further configured to establish second metadata and second control for second user data of a second logical array in a second subset of the plurality of storage nodes, wherein the first metadata and the first control are isolated from the second metadata and the second control.

5. The storage cluster of claim 1 , further comprising:

a single chassis housing the plurality of storage nodes.

6. The storage cluster of claim 1 , further comprising:

two or more chassis having the plurality of storage nodes therein, wherein the data striping across the plurality of storage nodes spans at least two of the two or more chassis.

7. A plurality of storage nodes, comprising:

one or more chassis; and

a plurality of storage nodes in the one or more chassis, wherein the one or more chassis couples the plurality of storage nodes as a storage cluster, wherein:

the plurality of storage nodes are configured to cooperate with each other to partition the plurality of storage nodes and establish a first logical array and a second logical array, without presence of and reliance upon a central controller, wherein the first logical array functions as a first storage cluster and the second logical array functions as a second storage cluster; and

the plurality of storage nodes are configured to cooperate with each other to perform data striping, controlled by a plurality of authorities in the plurality of storage nodes, for user data of the first logical array and the second logical array across the plurality of storage nodes and data striping, each of the first and second pluralities of authorities controlling data according to an authority-specific range of data identifiers, and wherein the plurality of storage nodes are further configured to establish metadata and control, for both user data of the first logical array and user data of the second logical array, across the plurality of storage nodes.

8. The plurality of storage nodes of claim 7 , wherein:

metadata and control for the first user data are assigned to a first subset of the plurality of storage nodes;

metadata and control for the second user data are assigned to a second subset of the plurality of storage nodes; and

a fault in processing the first user data is confined to the first subset of the plurality of storage nodes and isolated from the second subset of the plurality of storage nodes.

9. The plurality of storage nodes of claim 7 , wherein:

the one or more chassis includes two chassis, with the plurality of storage nodes occupying the two chassis;

the data striping for the first user data spans the two chassis; and

the data striping for the second user data spans the two chassis.

10. The plurality of storage nodes of claim 7 , wherein:

the plurality of storage nodes are further configured to perform automatic provisioning, including determining arrangement of metadata, control and user data relative to the first logical array and the second logical array.

11. The plurality of storage nodes of claim 7 , wherein:

the plurality of storage nodes are further configured to shift compute resources of a one of the plurality of storage nodes from the first logical array to the second logical array; and

the plurality of storage nodes are further configured to assign compute resources of a further storage node to either the first logical array or the second logical array regardless of which of the one or more chassis the further storage node occupies or which slot in the one or more chassis the further storage node occupies.

12. A method for data striping across storage nodes in a storage cluster performed by the storage nodes cooperating with each other without presence of and reliance upon a central storage array controller, the method comprising:

creating at least a first logical array and a second logical array in a plurality of storage nodes of a storage cluster, wherein the first logical array acts as a first storage cluster and the second logical array acts as a second storage cluster;

performing data striping, under control of a plurality of authorities in the plurality of storage nodes according to authority-specific ranges of data identifiers, for user data, of which each respective logical array has ownership, across the plurality of storage nodes, and wherein the plurality of storage nodes are further configured to establish metadata and control, for both user data of the first logical array and user data of the second logical array, across the plurality of storage nodes.

13. The method of claim 12 , further comprising:

sharing metadata and control for the first user data and the second user data across the plurality of storage nodes.

14. The method of claim 12 , wherein assigning the plurality of storage nodes further comprises:

assigning a first subset of the plurality of storage nodes to the first logical array to control the first user data; and

assigning a second subset of the plurality of storage nodes to the second logical array to control the second user data, wherein assigning the first subset and assigning the second subset includes an automatic provisioning.

15. The method of claim 12 , wherein assigning the plurality of storage nodes further comprises:

assigning a first subset of the plurality of storage nodes to the first logical array to control the first user data; and

assigning a second subset of the plurality of storage nodes to the second logical array to control the second user data, wherein assigning the first subset and assigning the second subset includes a manual provisioning.

16. The method of claim 12 , further comprising:

reassigning one of the plurality of storage nodes, from being assigned to the first logical array and controlling a portion of the first user data, to being assigned to the second logical array and controlling a portion of the second user data.

17. The method of claim 12 , further comprising:

indicating, at a visual indicator of each storage node of the plurality of storage nodes, responsive to the assigning, whether the storage node is unassigned, whether the storage node is assigned to the first logical array, whether the storage node is assigned to the second logical array, or whether the storage node is shared by two or more logical arrays.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 3, 2015
From: HAYES, JOHN; BOTES, PAR
To: PURE STORAGE, INC.
Reel/Frame 035333/0366 →
Continuity (1)
Related Publication 20160283141A1 · Sep 29, 2016
Cited By (47)
US 12,197,390 US 12,204,413 US 12,204,768 US 12,204,788 US 12,212,624 US 12,216,903 US 12,229,402 US 12,229,437 US 12,235,743 US 12,236,117 US 12,242,425 US 12,253,922 US 12,253,941 US 12,271,264 US 12,271,359 US 12,277,106 US 12,282,799 US 12,293,111 US 12,314,131 US 12,314,163 US 12,314,170 US 12,314,183 US 12,340,107 US 12,341,848 US 12,366,972 US 12,373,289 US 12,373,340 US 12,379,854 US 12,393,340 US 12,393,353 US 12,430,053 US 12,430,059 US 12,439,544 US 12,475,041 US 12,481,442 US 12,487,920 US 12,511,239 US 12,524,309 US 12,547,317 US 12,561,093 US 12,572,421 US 12,619,469 US 12,682,949 US 12,687,973 US 12,699,512 US 12,717,709 US 12,724,670