Load balancing technique for a storage array

US9720601B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9720601-B2
Application numberUS-201514619934-A
CountryUS
Kind codeB2
Filing dateFeb 11, 2015
Priority dateFeb 11, 2015
Publication dateAug 1, 2017
Grant dateAug 1, 2017

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 technique for load balancing uses heuristic-based algorithms with respect to input/output (I/O) latency of workloads destined to storage devices, e.g., solid state drives (SSDs), of a storage array attached to a storage system. Illustratively, “front-end” requests received from a host result in a back-end workload as those requests are processed by a storage I/O stack of the storage system and stored on the storage array. Accordingly, the technique maintains a consistent latency for the host requests (front-end) to control latency for the back-end workload. The load balancing technique illustratively load balances fixed (back-end) workloads having similar I/O sizes and I/O patterns. Illustratively, the technique balances the workloads across a plurality of storage ports over one or more I/O paths to the SSDs. Access to the SSDs may then be distributed among the storage ports.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: receiving from a host, a plurality of write requests directed towards a logical unit (LUN), each write request having data, the write request processed at a storage system having a memory coupled to a processor via a memory bus, the processor coupled to at least one storage controller attached to at least one shelf of solid state drives (SSDs); generating an input/output (I/O) workload from the plurality of write requests, the I/O workload including a de-duplication operation; looking ahead into an I/O queue having the I/O workload to predict an expected load on each I/O channel of a plurality of I/O channels included in the at least one storage controller; and controlling a back-end latency of the I/O workload to the SSDs by load balancing the I/O workload among the plurality of I/O channels based on the expected work load on each I/O channel, thereby for the plurality of write requests maintaining a predictable front-end latency to the host. 2. The method of claim 1 wherein predicting an expected load on each I/O channel of a plurality of I/O channels further comprises: using a read/write workload ratio, wherein a first latency associated with a read operation and a second latency associated with a write operation are known, and wherein the I/O workload includes the read operation and the write operation. 3. The method of claim 1 , wherein each SSD is associated with a primary I/O path and a secondary I/O path to the at least one storage controller, and wherein the load balancing of the I/O workload includes sending data across the primary I/O path and the secondary I/O path for each SSD. 4. The method of claim 1 wherein the I/O workload includes an unexpected read operation in response to the de-duplication operation. 5. The method of claim 1 , wherein each SSD is associated with a primary I/O path and a secondary I/O path to the at least one storage controller, wherein the load balancing of the I/O workload includes sending data across the primary I/O path for each SSD, and wherein the secondary I/O path is a failover I/O path for each SSD. 6. The method of claim 1 further comprising: reading a temperature of each respective SSD; and in response to the temperature of the respective SSD being outside of an operating temperature range, issuing a warmup I/O request to the respective SSD. 7. The method of claim 1 wherein load balancing the I/O workload includes calculating a number of I/O operations per second of the workload for each I/O channel. 8. The method of claim 1 wherein load balancing the I/O workload includes calculating an I/O latency histogram of the I/O workload for a plurality of durations. 9. The method of claim 1 wherein load balancing the I/O workload includes examining a reads pending count and a writes pending count indicating a respective number of read and write requests associated with the I/O queue. 10. The method of claim 5 further comprising: monitoring stream-open durations for a first SSD and a second SSD, wherein the first and second SSDs are multi-streaming; and in response to the first SSD having stream-open durations greater than an average stream-open duration and the second SSD having stream-open durations less than the average stream-open duration, exchanging a first primary I/O path associated with the first SSD with a second primary I/O path associated with the second SSD. 11. A method comprising: receiving from a host, a plurality of write request directed towards a logical unit (LUN), each write request having data, the write request processed at a storage system having a memory coupled to a processor via a memory bus, the processor coupled to at least one storage controller attached to at least one shelf of multi-stream solid state drives (SSDs); generating an input/output (I/O) workload from the plurality of write requests, the workload including the data and metadata associated with the data; and controlling a back-end latency of the I/O workload to the SSDs by load balancing the I/O workload among a plurality of I/O channels included in the at least one storage controller such that the plurality of write requests maintain a predictable front-end latency to the host, wherein a first stream for each SSD is used for the data and a second stream different from the first stream for each SSD is used for the metadata. 12. A system comprising: a storage system having a memory connected to a processor via a bus; at least one storage shelf coupled to the processor via at least one storage controller, each storage shelf having a plurality of solid state drives (SSDs); a storage I/O stack executing on the processor of the storage system, the storage I/O stack configured to: receive from a host, a plurality of write requests directed towards a logical unit (LUN), each write request having data; generate an input/output (I/O) workload from the plurality of write requests, the I/O workload including a de-duplication operation; look ahead into an I/O queue having the I/O workload to predict an expected load on each I/O channel of a plurality of I/O channels included in the at least one storage controller; and control a back-end latency of the I/O workload to the SSDs by load balancing the I/O workload among the plurality of I/O channels based on the expected work load on each I/O channel, thereby for the plurality of write requests maintaining a predictable front-end latency to the host. 13. The system of claim 12 wherein the storage I/O stack configured to predict an expected load on each I/O channel of a plurality of I/O channels is further configured to: use a read/write workload ratio, wherein a first latency associated with a read operation and a second latency associated with a write operation are known, and wherein the I/O workload includes the read operation and the write operation. 14. The system of claim 12 , wherein each SSD is associated with a primary I/O path and a secondary I/O path to the at least one storage controller, and wherein the load balancing of the I/O workload includes sending data across the primary I/O path and the secondary I/O path for each SSD. 15. The system of claim 12 the I/O workload includes an unexpected read operation in response to the de-duplication operation. 16. The system of claim 12 , wherein each SSD is associated with a primary I/O path and a secondary I/O path to the at least one storage controller, and wherein the load balancing of the I/O workload includes sending data across the primary I/O path for each SSD, and wherein the secondary I/O path is a failover I/O path for each SSD. 17. The system of claim 12 wherein the storage I/O stack is further configured to: read a temperature of each respective SSD; and in response to the temperature of the respective SSD being outside of an operating temperature range, issue a warmup I/O request to the respective SSD. 18. The system of claim 12 wherein load balancing the I/O workload includes calculating a number of I/O operations per second of the workload for each I/O channel. 19. The system of claim 12 wherein load balancing the I/O workload includes calculating a I/O latency histogram of the I/O workload for a plurality of durations. 20. The system of claim 12 wherein the load balancing the I/O workload includes examining a reads pending counter and a writes pending counter indicating a respective number of read and write requests associated with the I/O queue.

Assignees

Inventors

Classifications

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

  • G06F3/0611Primary

    in relation to response time · CPC title

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

  • Monitoring storage devices or systems · CPC title

  • G06F3/0688Primary

    Non-volatile semiconductor memory arrays · 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 US9720601B2 cover?
A technique for load balancing uses heuristic-based algorithms with respect to input/output (I/O) latency of workloads destined to storage devices, e.g., solid state drives (SSDs), of a storage array attached to a storage system. Illustratively, “front-end” requests received from a host result in a back-end workload as those requests are processed by a storage I/O stack of the storage system an…
Who is the assignee on this patent?
Netapp Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/0611. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 01 2017 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).