Load balancing technique for a storage array

US2016231948A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016231948-A1
Application numberUS-201514619934-A
CountryUS
Kind codeA1
Filing dateFeb 11, 2015
Priority dateFeb 11, 2015
Publication dateAug 11, 2016
Grant date

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 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 and a processor, the storage system having one or more storage controllers attached to one or more shelves of solid state drives (SSDs); generating an input/output (I/O) workload from the plurality of write requests; and controlling a back-end latency of the I/O workload to the SSDs such that the plurality of write requests maintain a predictable front-end latency. 2 . The method of claim 1 further comprising: load balancing the I/O workload among a plurality of I/O channels included in the one or more storage controllers. 3 . The method of claim 2 , wherein each SSD is associated with a primary I/O path and a secondary I/O path to the one or more storage controllers, 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 2 , further comprising: predicting an expected load on each I/O channel of the plurality of I/O channels by looking ahead into an I/O queue having the I/O workload. 5 . The method of claim 2 , wherein each SSD is associated with a primary I/O path and a secondary I/O path to the one or more storage controllers, 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 2 wherein load balancing the I/O workload includes calculating a number of I/O operations per second of the workload for each port. 8 . The method of claim 2 wherein load balancing the I/O workload includes calculating a I/O latency histogram of the I/O workload for a plurality of durations. 9 . The method of claim 4 wherein the 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 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 and a processor, the storage system having one or more storage controllers attached to one or more shelves 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 such that the plurality of write requests maintain a predictable front-end latency, 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; one or more storage shelves coupled to the storage system via one or more storage controllers, the storage shelves 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 when executed operable to: receive 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; and control a back-end latency of the I/O workload to the SSDs such that the plurality of write requests maintain a predictable front-end latency. 13 . The system of claim 12 wherein the storage I/O stack is further operable to: load balancing the I/O workload among a plurality of I/O channels included in the one or more storage controllers. 14 . The system of claim 13 , wherein each SSD is associated with a primary I/O path and a secondary I/O path to the one or more storage controllers, 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 13 wherein the storage I/O stack is further operable to: predict an expected load on each I/O channel of the plurality of I/O channels by looking ahead into an I/O queue having the I/O workload. 16 . The system of claim 13 , wherein each SSD is associated with a primary I/O path and a secondary I/O path to the one or more storage controllers, 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 operable 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 13 wherein load balancing the I/O workload includes calculating a number of I/O operations per second of the workload for each port. 19 . The system of claim 13 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 15 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

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

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

  • Monitoring storage devices or systems · 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 US2016231948A1 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 Thu Aug 11 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).