High-availability storage array

US11550473B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11550473-B2
Application numberUS-202016845922-A
CountryUS
Kind codeB2
Filing dateApr 10, 2020
Priority dateMay 3, 2016
Publication dateJan 10, 2023
Grant dateJan 10, 2023

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method of operating a storage system is disclosed. The method includes determining a storage cluster among storage arrays of the storage system. Each storage array includes at least two controllers and at least one storage shelf. The at least two controllers are configured to function as both a primary controller for a first storage array and a secondary controller for a second storage array.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: providing a high availability controller pair comprising a first controller and a second controller for a first storage array having first storage memory and a second storage array having second storage memory that is distinct from the first storage memory of the first storage array; tracking input/output (I/O) requests to determine a number of relay events for one or more of the I/O requests, wherein a relay event indicates an I/O request that was assigned to the second controller and was forwarded to the second controller by the first controller; and reducing the number of relay events by reassigning the first controller to handle a request that is assigned to the second controller, responsive to the tracking. 2. The method of claim 1 wherein the secondary controller is shared by multiple primary controllers. 3. The method of claim 1 wherein the secondary controller is shared by more than one storage component. 4. The method of claim 1 further comprising: accessing global metadata; and forwarding I/O requests based on the global metadata. 5. The method of claim 1 further comprising: receiving an I/O request at the first controller; determining the I/O request is associated with second controller; and forwarding the I/O request to the second controller. 6. The method of claim 1 further comprising: suggesting actions to reduce the number of relay events based on the tracking, wherein the actions include at least one from a set consisting of migrating a volume from one storage array to another, adding storage capacity to a storage array, removing storage capacity from a storage array, and changing cabling for relay minimization purposes. 7. The method of claim 1 wherein the reducing the number of relay events for one or more I/O requests comprises: modifying metadata replicated across storage arrays; and communicating the modified metadata across the storage arrays. 8. A storage system, comprising: a first controller and a second controller arranged in a high availability configuration for a first storage array having first storage memory and a second storage array having second storage memory that is distinct from the first storage memory of the first storage array; controllers of a storage cluster comprising the first storage array and the second storage array monitoring forwarded input/output (I/O) requests to determine a number of relay events for one or more I/O requests, wherein a relay event indicates an I/O request that was assigned to the second controller and was forwarded to the second controller by the first controller; and the controllers of the storage cluster, responsive to the monitoring, reducing the number of relay events by reassigning the first controller to handle a request that is assigned to the second controller, responsive to the monitoring. 9. The storage system of claim 8 wherein the secondary controller is shared by multiple primary controllers. 10. The storage system of claim 8 wherein the secondary controller is shared by more than one storage array. 11. The storage system of claim 8 further comprising: a global metadata accessing component that accesses global metadata; and an I/O forwarding component that forwards I/O requests based on the global metadata. 12. The storage system of claim 8 wherein an I/O request that is received at the first controller is forwarded to the second controller if it is determined that the I/O request is associated with the second controller. 13. The storage system of claim 8 , further comprising the s controllers of the storage cluster suggesting actions to reduce the number of relay events based on the first component, wherein the actions include at least one from a set consisting of migrating a volume from one storage array to another, adding storage capacity to a storage array, removing storage capacity from a storage array, and changing cabling for relay minimization purposes. 14. The storage system of claim 8 wherein the second component reduces the number of relay events for at least one I/O request by modifying metadata replicated across storage arrays, and communicating the modified metadata across the storage arrays. 15. A non-transitory computer-readable storage medium having program instructions stored thereon, which when executed by at least one processor, cause the at least one processor to perform a method comprising: providing a high availability controller pair comprising a first controller and a second controller for a first storage array having first storage memory and a second storage array having second storage memory that is distinct from the first storage memory of the first storage array; tracking input/output (I/O) requests to determine a number of relay events for one or more I/O requests, wherein a relay event indicates an I/O request that was assigned to the second controller and was forwarded to the second controller by the first controller; and reducing the number of relay events by reassigning the first controller to handle a request that is assigned to the second controller, responsive to the tracking. 16. The medium of claim 15 wherein the secondary controller is shared by multiple primary controllers. 17. The medium of claim 15 wherein the secondary controller is shared by more than one storage array. 18. The medium of claim 15 wherein the method further comprises: accessing global metadata; and forwarding I/O requests based on the global metadata. 19. The medium of claim 15 wherein the method further comprises: receiving an I/O request at the first controller; determining the I/O request is associated with the second controller; and forwarding the I/O request to the second controller. 20. The medium of claim 15 , wherein the method further comprises: suggesting actions to reduce the number of relay events based on the tracking, wherein the actions include at least one from a set consisting of migrating a volume from one storage array to another, adding storage capacity to a storage array, removing storage capacity from a storage array, and changing cabling for relay minimization purposes.

Assignees

Inventors

Classifications

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title

  • Controller construction arrangements · CPC title

  • Migration mechanisms · CPC title

  • by changing the path, e.g. traffic rerouting, path reconfiguration · CPC title

  • Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11550473B2 cover?
A method of operating a storage system is disclosed. The method includes determining a storage cluster among storage arrays of the storage system. Each storage array includes at least two controllers and at least one storage shelf. The at least two controllers are configured to function as both a primary controller for a first storage array and a secondary controller for a second storage array.
Who is the assignee on this patent?
Pure Storage Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/0605. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 10 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).