IP Library Granted Patent US 10,374,868
Granted Patent B2
US 10,374,868 · App. 14/927,280 · Granted Aug 6, 2019

Distributed command processing in a flash storage system

Inventors: Andrew Bernat (Mountain View, CA); Timothy Brennan (San Francisco, CA); Alan Driscoll (Fremont, CA); Grigori Inozemtsev (San Jose, CA)
Assignee: Pure Storage, Inc.
H04L41/042G06F3/0604G06F3/0629G06F3/0689H04L41/0853H04L41/0893H04L67/1097H04L41/0869
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,374,868
App. No.
14/927,280
Granted
Aug 6, 2019
Kind
B2
Abstract

Distributing management responsibilities for a storage system that includes a storage array controller and a plurality of storage devices, including: identifying a plurality of elements in the storage system; for each of the plurality of elements in the storage system, creating a distributed manager, wherein each distributed manager is configured for gathering information describing the state of the associated element in the storage system, determining an action to perform against the associated element in the storage system, and executing an approved action against the associated element in the storage system; and creating a distributed management hierarchy that includes each of the distributed managers.

Claims (32)

1. A method of load balancing of command processing in a storage system, the storage system including one or more storage devices and one or more storage array controllers, the method comprising:

for each of a plurality of components in the storage system, creating a management module, wherein each management module is configured to:

receive, from another module, a request to execute a command against a component associated with the other module;

determine, based on configuration parameters associated with the management module, whether the management module is authorized to approve the request; and

responsive to determining that the management module is authorized to approve the request, determine whether to approve the request.

2. The method of claim 1 wherein each management module is further configured to:

responsive to determining that the management module is not authorized to approve the request, forward the request to a parent management module.

3. The method of claim 1 wherein each management module is further configured to reject the request.

4. The method of claim 1 wherein each management module is further configured to:

receive an approved request;

identify a child management module for receiving the approved request; and

send, to the child management module, the approved request.

5. An apparatus for load balancing of command processing in a storage system that includes a plurality of storage devices and one or more storage array controllers, the apparatus comprising a computer processor and a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:

for each of a plurality of components in the storage system, creating a management module, wherein each management module is configured to:

receive, from another module, a request to execute a command against a component associated with the other module;

determine, based on configuration parameters associated with the management module, whether the management module is authorized to approve the request; and

responsive to determining that the management module is authorized to approve the request, determine whether to approve the request.

6. The apparatus of claim 5 wherein each management module is further configured to:

responsive to determining that the management module is not authorized to approve the request, forward the request to a parent management module.

7. The apparatus of claim 5 wherein each management module is further configured to reject the request.

8. The apparatus of claim 5 wherein each management module is further configured to:

receive an approved request;

identify a child management module for receiving the approved request; and

send, to the child management module, the approved request.

9. A computer program product for load balancing of command processing in a storage system that includes a plurality of storage devices and one or more storage array controllers, the computer program product including a non-transitory computer readable medium comprising computer program instructions that, when executed, cause a computer to carry out the steps of:

for each of a plurality of components in the storage system, creating a management module, wherein each management module is configured to:

receive, from another module, a request to execute a command against a component associated with the other module;

determine, based on configuration parameters associated with the management module, whether the management module is authorized to approve the request; and

responsive to determining that the management module is authorized to approve the request, determine whether to approve the request.

10. The computer program product of claim 9 wherein each management module is further configured to:

responsive to determining that the management module is not authorized to approve the request, forward the request to a parent management module.

11. The computer program product of claim 9 wherein each management module is further configured to reject the request.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2015
From: BERNAT, ANDREW; BRENNAN, TIMOTHY; DRISCOLL, ALAN; INOZEMTSEV, GRIGORI
To: PURE STORAGE, INC.
Reel/Frame 036918/0124 →
Continuity (1)
Related Publication 20170126470A1 · May 4, 2017