IP Library › Granted Patent US 10,078,473
Granted Patent B2
US 10,078,473 · App. 15/057,952 · Granted Sep 18, 2018

Resource allocation in networked storage systems

Inventors: Reyaz Ahmed (Fremont, CA); Mayank Saxena (Pleasanton, CA); Todd Jason Mills (Union City, CA); Aleksandr Khasymski (San Jose, CA)
Assignee: NETAPP, INC.
G06F3/067G06F3/061G06F3/0659H04L29/08072
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,078,473
App. No.
15/057,952
Granted
Sep 18, 2018
Kind
B2
Abstract

Methods and systems for a storage environment are provided. A policy for an input/output (I/O) stream having a plurality of I/O requests for accessing storage at a storage device of the storage sub-system is translated into flow attributes so that the I/O stream can be assigned to one of a plurality of queues maintained for placing I/O requests based on varying priorities defined by set polices. When an I/O request for the associated policy is received by the storage sub-system; the storage sub-system determines a flow attribute associated with the I/O request and the policy; selects a queue for staging the I/O request, such that the selected queue is of either higher priority than what is indicated by the flow attribute or at least of a same priority as indicated by the flow attribute; and allocates storage sub-system resource for processing the received I/O request.

Claims (38)

1. A machine implemented method, comprising;

associating a policy for an input/output (I/O) stream having a plurality of I/O requests for accessing storage at a storage device of a storage sub-system for reading and writing data;

translating the policy into flow attributes by a processor of the storage sub-system for assigning the I/O stream to one of a plurality of queues maintained by the processor for placing I/O requests based on varying priorities defined by set polices;

determining a flow attribute associated with an I/O request received by the storage sub-system and the policy; and

selecting a queue for staging the I/O request, wherein the selected queue is one of, a higher priority than what is indicated by the flow attribute, and at least of a same priority as indicated by the flow attribute

wherein a storage sub-system resource is allocated for processing the received I/O request;

wherein the policy identifies an initiator that generates the I/O stream, a target that identifies the storage sub-system for processing the I/O stream and a set of values that are based on a set of tuples identifying that the policy is for read requests.

2. The method of claim 1 , wherein the set of tuples identify that the policy is for write requests.

3. The method of claim 1 , wherein the set of tuples identify a latency for processing the I/O stream and a number of I/O operations that are processed within a duration.

4. The method of claim 1 , wherein the set of tuples identify the policy is for read and write requests.

5. The method of claim 1 , wherein the set of tuples identify an acceptable variance of parameters defined by the policy.

6. The method of claim 1 , wherein the storage sub-system tracks storage-subsystem resource utilization and allocates the resource for the I/O request to meet a certain service level defined by the policy.

7. The method of claim 1 , wherein the storage sub-system maintains a high priority queue, a medium priority queue and a low priority queue and when the I/O request is for a medium priority, then the storage-subsystem first attempts to find space at the high priority queue and if high priority queue space is unavailable, then the I/O request is staged at the medium priority queue.

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:

associate a policy for an input/output (I/O) stream having a plurality of I/O requests for accessing storage at a storage device of a storage sub-system for reading and writing data;

translate the policy into flow attributes by a processor of the storage sub-system for assigning the I/O stream to one of a plurality of queues maintained by the processor for placing I/O requests based on varying priorities defined by set polices;

determine a flow attribute associated with an I/O request received by the storage sub-system and the policy; and

select a queue for staging the I/O request, wherein the selected queue is one of, a higher priority than what is indicated by the flow attribute, and at least of a same priority as indicated by the flow attribute

wherein a storage sub-system resource is allocated for processing the received I/O request;

wherein the policy identifies an initiator that generates the I/O stream, a target that identifies the storage sub-system for processing the I/O stream and a set of values that are based on a set of tuples identifying that the policy is for read requests.

9. The non-transitory, storage medium of claim 8 , wherein the set of tuples identify that the policy is for write requests.

10. The non-transitory, storage medium of claim 8 , wherein the set of tuples identify a latency for processing the I/O stream and a number of I/O operations that are processed within a duration.

11. The non-transitory, storage medium of claim 8 , wherein the set of tuples identify the policy is for read and write requests.

12. The non-transitory, storage medium of claim 8 , wherein the set of tuples identify an acceptable variance of parameters defined by the policy.

13. The non-transitory, storage medium of claim 8 , wherein the storage sub-system tracks storage-subsystem resource utilization and allocates the resource for the I/O request to meet a certain service level defined by the policy.

14. The non-transitory, storage medium of claim 8 , wherein the storage sub-system maintains a high priority queue, a medium priority queue and a low priority queue and when the I/O request is for a medium priority, then the storage-subsystem first attempts to find space at the high priority queue and if high priority queue space is unavailable, then the I/O request is staged at the medium priority queue.

15. A system, comprising:

a memory containing machine readable medium comprising machine executable code having stored thereon instructions; and a processor module of a storage sub-system coupled to the memory, the processor module configured to execute the machine executable code to:

translate a policy for an input/output (I/O) stream having a plurality of I/O requests for accessing storage at a storage device of the storage sub-system for reading and writing data, into flow attributes for assigning the I/O stream to one of a plurality of queues maintained for placing I/O requests based on varying priorities defined by polices;

determine a flow attribute associated with an I/O request received by the storage sub-system and the policy; and

select a queue for staging the I/O request, wherein the selected queue is one of, a higher priority than what is indicated by the flow attribute, and at least of a same priority as indicated by the flow attribute

wherein a storage sub-system resource is allocated for processing the received I/O request;

wherein the policy identifies an initiator that generates the I/O stream, a target that identifies the storage sub-system for processing the I/O stream and a set of values that are based on a set of tuples identifying that the policy is for read requests.

16. The system of claim 15 , wherein the set of tuples identify that the policy is for write requests.

17. The system of claim 15 , wherein the set of tuples identify a latency for processing the I/O stream and a number of I/O operations that are processed within a duration.

18. The system of claim 15 , wherein the set of tuples identify the policy is for read and write requests.

19. The system of claim 15 , wherein the set of tuples identify an acceptable variance of parameters defined by the policy.

20. The system of claim 15 , wherein the storage sub-system maintains a high priority queue, a medium priority queue and a low priority queue and when the I/O request is for a medium priority, then the storage-subsystem first attempts to find space at the high priority queue and if high priority queue space is unavailable, then the I/O request is staged at the medium priority queue.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 1, 2016
From: AHMED, REYAZ; SAXENA, MAYANK; MILLS, TODD JASON; KHASYMSKI, ALEKSANDR
To: NETAPP, INC.
Reel/Frame 037865/0974 →
Continuity (2)
Provisional Application 62136975 · Mar 23, 2015
Related Publication 20160283135A1 · Sep 29, 2016
Cited By (5)
US 12,204,657 US 12,235,954 US 12,248,566 US 12,411,962 US 12,561,428