IP Library Granted Patent US 9,967,342
Granted Patent B2
US 9,967,342 · App. 15/376,220 · Granted May 8, 2018

Storage system architecture

Inventors: John Colgrove (Mountain View, CA); John D. Davis (Mountain View, CA); John Hayes (Mountain View, CA)
Assignee: Pure Storage, Inc.
H04L67/1097G06F3/0604G06F3/067G06F3/0613G06F3/0635G06F3/0685G06F13/4022G06F13/4282H04L12/40169
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 9,967,342
App. No.
15/376,220
Granted
May 8, 2018
Kind
B2
Abstract

A storage system is provided. The storage system includes a plurality of storage units, each of the plurality of storage units having storage memory for user data and a plurality of storage nodes, each of the plurality of storage nodes configured to have ownership of a portion of the user data. The storage system includes a first pathway, coupling the plurality of storage units such that each of the plurality of storage units can communicate with at least one other of the plurality of storage units via the first pathway without assistance from the plurality of storage nodes.

Claims (62)

1. A storage system comprising:

a plurality of storage nodes, each having a processor;

a plurality of storage units, each having a controller and solid-state storage memory;

a first pathway that couples the processors of the plurality of storage nodes and is configured to couple to a network external to the storage system; and

a second pathway that couples at least a first controller of a first storage unit to a second controller of a second storage unit for communication, wherein the second pathway is a direct controller to controller coupling.

2. The storage system of claim 1 , further comprising:

the first controller of the first storage unit configured to send a write request and a data shard or a parity shard through the second pathway to the second controller of the second storage units; and

the second controller of the second storage unit configured to write the data shard or the parity shard into the solid-state storage memory of the second storage unit, responsive to the write request.

3. The storage system of claim 1 , further comprising:

the first controller of the first storage unit configured to send an inquiry through the second pathway to the second controller of the second storage unit; and

the second controller of the second storage unit configured to send a reply, through the second pathway to the first controller of the first storage unit, responsive to the inquiry, with the processors of the plurality of storage nodes being non-participatory in the communication.

4. The storage system of claim 1 , further comprising:

the first controller of the first storage unit configured to send a read request for data or metadata through the second pathway to the second controller of the second storage unit; and

the second controller of the second storage unit configured to send the data or the metadata through the second pathway to the first controller of the second storage unit, responsive to the read request.

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

the first or second pathway coupling at least a first processor of a first storage node to at least the first controller of the first storage unit;

the first processor of the first storage node configured to send a direction to construct data from data shards, through the first or second pathway to the first controller of the first storage unit; and

the first controller of the first storage unit configured to send requests for the data shards through the second pathway to further controllers of further storage units.

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

each of the plurality of storage units configured to communicate a heartbeat through the second pathway.

7. The storage system of claim 1 , further comprising:

the first pathway including a network switch; and

the second pathway including a PCI (peripheral component interconnect) Express bus.

8. A storage system comprising:

a plurality of storage nodes having a plurality of processors;

a plurality of storage units, each one of the plurality of storage units having a controller and solid-state storage memory;

a first pathway coupling the plurality of processors of the plurality of storage nodes to each other and configured to couple to a network; and

a second pathway coupling at least a first controller of a first one of the plurality of storage units and a second controller of a second one of the plurality of storage units for communication without participation by the processors of the plurality of storage nodes.

9. The storage system of claim 8 , further comprising:

the first one of the plurality of storage units configured to have the first controller communicate a write request and a data shard or a parity shard to the second controller through the second pathway; and

the second one of the plurality of storage units configured to have the second controller store the data shard or the parity shard in the solid-state storage memory of the second storage unit, responsive to the write request.

10. The storage system of claim 8 , further comprising:

the first one of the plurality of storage units configured to have the first controller communicate an inquiry to the second controller through the second pathway; and

the second one of the plurality of storage units configured to have the second controller communicate a reply to the first controller through the second pathway.

11. The storage system of claim 8 , further comprising:

the first one of the plurality of storage units configured to have the first controller communicate a read request for data or metadata to the second controller through the second pathway; and

the second one of the plurality of storage units configured to have the second controller communicate the data or the metadata to the first controller through the second pathway.

12. The storage system of claim 8 , further comprising:

one of the plurality of storage nodes configured to have a processor communicate a direction to construct data from data shards to the first controller; and

the first one of the plurality of storage units configured to have the first controller communicate at least one request for at least one data shard to the second controller through the second pathway.

13. The storage system of claim 8 , further comprising:

the first and second ones of the plurality of storage units configured to have the first controller and the second controller each communicate a heartbeat through the second pathway.

14. The storage system of claim 8 , further comprising:

a network switch, through which the first pathway passes; and

a PCI (peripheral component interconnect) Express bus, through which the second pathway passes.

15. A method for communication in a storage system, performed by processors in the storage system, comprising:

communicating among two or more of a plurality of processors of a plurality of storage nodes of a storage system through a first pathway; and

communicating among at least a first controller of a first one of a plurality of storage units of the storage system and a second controller of a second one of the plurality of storage units through a second pathway, wherein each of the plurality of storage units has solid-state storage memory and wherein the second pathway is a direct controller to controller coupling.

16. The method of claim 15 , further comprising:

sending a write request and a data shard or a parity shard from the first controller of the first one of the plurality of storage units to the second controller of the second one of the plurality of storage units, through the second pathway; and

writing the data shard or the parity shard into the solid-state storage memory of the second one of the plurality of storage units.

17. The method of claim 15 , further comprising:

sending an inquiry from the first controller of the first one of the plurality of storage units to the second controller of the second one of the plurality of storage units, through the second pathway; and

sending a reply from the second controller of the second one of the plurality of storage units to the first controller of the first one of the plurality of storage units, through the second pathway.

18. The method of claim 15 , further comprising:

sending a read request for data or metadata from the first controller of the first one of the plurality of storage units to the second controller of the second one of the plurality of storage units, through the second pathway; and

sending the data or the metadata from the second controller of the second one of the plurality of storage units to the first controller for of the first one of the plurality of storage units through the second pathway.

19. The method of claim 15 , further comprising:

communicating a direction to construct data from data shards from a processor of one of the plurality of storage nodes to the first controller of the first one of the plurality of storage units; and

sending a plurality of requests for a plurality of data shards from the first controller of the first one of the plurality of storage units to further controllers of further ones of the plurality of storage units through the second pathway.

20. The method of claim 15 , further comprising:

communicating a heartbeat from the first controller of the first one of the plurality of storage units to the second controller of the second one of the plurality of storage units through the second pathway, and wherein the second pathway is a direct controller to controller connection.

Continuity (5)
Continuation 15167792 · May 27, 2016
Continuation 14961665 · Dec 7, 2015
Continuation 14618999 · Feb 10, 2015
Continuation In Part 14296151 · Jun 4, 2014
Related Publication 20170093980A1 · Mar 30, 2017