# US 10,313,251 B2 · Methods and systems for managing quality of service in a networked storage environment

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,313,251 B2
- Document ID: US10313251B2
- Status: Granted
- Kind: B2
- Application number: 15/011,919
- Filed: 2016-02-01
- Published: 2017-08-03
- Granted: 2019-06-04
- Earliest claimed: 2016-02-01
- Assignees: NetApp, Inc.
- Applicants: Netapp, Inc.
- Inventors: Dean Alan Kalman; John Alexander Scott; Sudha Sundaram
- Web page: https://patentgrep.com/patent/US10313251B2

## CPC

- H04L 47/24: Traffic characterised by specific attributes, e.g. priority or QoS
- G06F 3/061: {Improving I/O performance}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- H04L 41/40: using virtualisation of network functions or resources, e.g. SDN or NFV entities
- H04L 43/0888: Throughput
- H04L 43/20: the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- G06F 3/0635: {by changing the path, e.g. traffic rerouting, path reconfiguration}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods and systems for a networked storage system are provided. One method includes assigning a quality of service (QOS) parameter for a storage volume of a networked storage environment having a first storage node and a second storage node, where the QOS parameter is defined by a throughput value that defines a maximum data transfer rate and a number of input/output (I/O) operations executed within a time period (IOPS); distributing the QOS parameter between the first storage node and the second storage node; determining that throughput credit is available for processing an I/O request for using the storage volume; determining that IOPS credit is available for processing the request by the first storage node; and processing the I/O request when both the throughput credit and the IOPS credit is available.

## Claims

### Claim 1

A method, comprising:
assigning a quality of service (QOS) parameter for a storage volume of a networked storage system, accessible via a first node and a second node of the networked storage system, wherein the QOS parameter is based on a throughput value defining a maximum data transfer rate and a number of input/output (I/O) operations executed within a time period (IOPS) for the storage volume for storing and retrieving data;
dividing the QOS parameter between the first node and the second node, based on a traffic pattern of using the first node and the second node;
determining whether both throughput credit and IOPS credit are available for processing an I/O request by the first node, the I/O request classified based on a request attribute and assigned to the storage volume, the throughput credit indicating that first node has not reached a throughput threshold and the IOPS credit indicating that the first node has not reached an IOPS threshold;
processing the I/O request by the first node when the throughput credit and the IOPS credit are available; and
using the second node for processing the I/O request, if both the throughput and the IOPS credit are available for the second node and partially unavailable for the first node.

### Claim 2 (depends on 1)

The method of claim 1, further comprising;
when throughput or IOPS credit is unavailable for both the first node and the second node for processing the request, then delaying request processing until credit for both throughput and IOPS is available.

### Claim 3 (depends on 1)

The method of claim 1, wherein the throughput for the first storage node is based on an assigned number of IOPS, a total number of IOPS and a total throughput rate for the storage volume.

### Claim 4 (depends on 1)

The method of claim 1, wherein when the request is processed, then available throughput and IOPS credit for the storage volume is decreased.

### Claim 5 (depends on 1)

The method of claim 1, wherein the QOS parameter value is based on a service level objective assigned to the storage volume.

### Claim 6 (depends on 1)

The method of claim 1, wherein the first node and the second node operate within a cluster managing storage space for storing data on behalf of the storage volume and the I/O request is for storing data or reading data from the storage space.

### Claim 7 (depends on 1)

The method of claim 1, wherein the request attribute for classifying the request is based on one of a request type, a request target and a request protocol.

### Claim 8

A non-transitory, machine readable storage medium having stored thereon instructions for performing a method, comprising machine executable code which when executed by at least one machine, causes the machine to:
assign a quality of service (QOS) parameter for a storage volume of a networked storage system accessible via a first node and a second node of the networked storage system, wherein the QOS parameter is based on a throughput value defining a maximum data transfer rate and a number of input/output (I/O) operations executed within a time period (IOPS) for the storage volume for storing and retrieving data;
divide the QOS parameter between the first node and the second node based on a traffic pattern of using the first node and the second node;
determine whether both throughput credit and IOPS credit are available for processing an I/O request by the first node, the I/O request classified based on a request attribute and assigned to the storage volume, the throughput credit indicating that first node has not reached a throughput threshold and the IOPS credit indicating that the first node has not reached an IOPS threshold;
process the I/O request by the first node when the throughput credit and the IOPS credit are available; and
use the second node for processing the I/O request, if both the throughput and the IOPS credit are available for the second node and partially unavailable for the first node.

### Claim 9 (depends on 8)

The non-transitory, machine readable storage medium of claim 8, wherein when throughput or IOPS credit is unavailable for both the first and second node for processing the request, then request processing is delayed until credit for both throughput and IOPS is available.

### Claim 10 (depends on 8)

The non-transitory, machine readable storage medium of claim 8, wherein the throughput for the first node is based on an assigned number of IOPS, a total number of IOPS and a total throughput rate for the storage volume.

### Claim 11 (depends on 8)

The non-transitory, machine readable storage medium of claim 8, wherein when the request is processed, then available throughput and IOPS credit for the storage volume is decreased.

### Claim 12 (depends on 8)

The non-transitory, machine readable storage medium of claim 8, wherein the QOS parameter value is based on a service level objective assigned to the storage volume.

### Claim 13 (depends on 8)

The non-transitory, machine readable storage medium of claim 8, wherein the first node and the second node operate within a cluster managing storage space for storing data on behalf of the storage volume and the I/O request is for storing data or reading data from the storage space.

### Claim 14 (depends on 8)

The non-transitory, machine readable storage medium of claim 8, wherein the request attribute for classifying the request is based on one of a request type, a request target and a request protocol.

### Claim 15

A system comprising:
a memory containing machine readable medium comprising machine executable code having stored thereon instructions; and a processor coupled to the memory, the processor configured to execute the machine executable code to:
assign a quality of service (QOS) parameter for a storage volume of a networked storage system accessible via a first node and a second node of the networked storage system, wherein the QOS parameter is based on a throughput value defining a maximum data transfer rate and a number of input/output (I/O) operations executed within a time period (IOPS) for the storage volume for storing and retrieving data;
divide the QOS parameter between the first node and the second node based on a traffic pattern of using the first node and the second node;
determining whether both throughput credit and IOPS credit are available for processing an I/O request by the first node, the I/O request classified based on a request attribute and assigned to the storage volume, the throughput credit indicating that first node has not reached a throughput threshold and the IOPS credit indicating that the first node has not reached an IOPS threshold;
processing the I/O request by the first node when the throughput credit and the IOPS credit are available; and
using the second node for processing the I/O request, if both the throughput and the IOPS credit are available for the second node and partially unavailable for the first node.

### Claim 16 (depends on 15)

The system of claim 15, wherein when throughput or IOPS credit is unavailable for both the first node and the second node for processing the request, then the I/O request processing is delayed until credit for both throughput and IOPS is available.

### Claim 17 (depends on 15)

The system of claim 15, wherein the throughput for the first storage node is based on an assigned number of IOPS, a total number of IOPS and a total throughput rate for the storage volume.

### Claim 18 (depends on 15)

The system of claim 15, wherein when the request is processed, then available throughput and IOPS credit for the storage volume is decreased.

### Claim 19 (depends on 15)

The system of claim 15, wherein the QOS parameter value is based on a service level objective assigned to the storage volume.

### Claim 20 (depends on 15)

The system of claim 15, wherein the first node and the second node operate within a cluster managing storage space for storing data on behalf of the storage volume and the I/O request is for storing data or reading data from the storage space.

### Claim 21 (depends on 15)

The system of claim 15, wherein the request attribute for classifying the request is based on one of a request type, a request target and a request protocol.
