IP Library Granted Patent US 10,185,688
Granted Patent B2
US 10,185,688 · App. 14/952,506 · Granted Jan 22, 2019

Quality of service for internal I/Os using internal flow mechanism

Inventors: Prasanna Wakhare (Pune, IN); Niranjan Pendharkar (Pune, IN)
Assignee: VERITAS TECHNOLOGIES LLC
G06F13/4027G06F3/068G06F3/0613G06F3/0619G06F3/0631G06F3/0659G06F9/45558G06F11/1451G06F12/0804G06F12/0815G06F2009/45579G06F2201/84G06F2212/1032G06F2212/152G06F2212/281
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,185,688
App. No.
14/952,506
Granted
Jan 22, 2019
Kind
B2
Abstract

A method for Quality of Service (QoS) for internal input/output (I/O) using an internal flow mechanism in a storage system is provided. The method includes establishing internal I/O flows corresponding to external I/O flows for one or more computing machines or virtual machines implemented with physical computing resources requesting I/Os. The method includes inheriting service-level agreement (SLA) values from the external I/O flows to the internal I/O flows and determining demands for the external I/O flows and the internal I/O flows. The method includes distributing credits to the internal I/O flows and the external I/O flows according to minimum I/O operations per unit time values, based on the service-level agreement values, and distributing remaining credits to the external I/O flows and the internal I/O flows according to priority and demand of each of the external I/O flows and the internal I/O flows.

Claims (52)

1. A processor-based method for Quality of Service (QoS) for internal input/output (I/O) using an internal flow mechanism in a storage system, comprising:

establishing, in a storage system, internal I/O flows corresponding to external I/O flows for one or more computing machines or virtual machines implemented with physical computing resources requesting I/Os to the storage system;

inheriting service-level agreement (SLA) values from the external I/O flows to the internal I/O flows;

determining demands for the external I/O flows and the internal I/O flows;

distributing credits to the internal I/O flows and the external I/O flows according to minimum I/O operations per unit time values, based on the service-level agreement values; and

distributing remaining credits to the external I/O flows and the internal I/O flows according to priority and demand of each of the external I/O flows and the internal I/O flows.

2. The method of claim 1 , further comprising:

servicing in the storage system the internal I/O flows and the external I/O flows in accordance with the credits distributed thereto.

3. The method of claim 1 , wherein determining the demands is based on arrival I/O operations per unit time of a flow and based on total latency for serving and queuing the flow.

4. The method of claim 1 , wherein distributing the remaining credits according to the priority and demand comprises distributing credits proportional to priority of a flow.

5. The method of claim 1 , wherein distributing the remaining credits according to the priority and demand comprises, for at least one flow, distributing credits proportional to the priority for the flow and less than the demand for the flow.

6. The method of claim 1 , wherein the inheriting and the distributing remaining credits according to priority and demand result in an internal I/O flow corresponding to an external I/O flow of higher priority receiving more credits than an internal I/O flow corresponding to an external I/O flow of lower priority.

7. The method of claim 1 , wherein the demands are based on latency of underlying storage in the storage system and wherein distributing the credits based on the minimum I/O operations per unit time value and distributing the remaining credits according to the priority and demand ensure credits given to the external I/O flows are consistent with latency and throughput of the underlying storage.

8. A tangible, non-transitory, computer-readable media having instructions thereupon which, when executed by a processor, cause the processor to perform a method comprising:

tracking, in a storage system, for one or more computing machines or virtual machines implemented with physical computing resources, each of a plurality of external I/O (input/output) flows, having I/O requests for the storage system, and corresponding internal I/O flows;

inheriting service-level agreement (SLA) values including priorities and minimum I/O operations per unit time from the external I/O flows to the internal I/O flows;

calculating demands for each of the external I/O flows and each of the internal I/O flows;

assigning credits for each of the external I/O flows and each of the internal I/O flows, based on the minimum I/O operations per unit time in accordance with the service-level agreement values; and

assigning further credits for each of the external I/O flows and each of the internal I/O flows, based on the priorities and calculated demands.

9. The computer-readable media of claim 8 , wherein the method further comprises:

managing the internal I/O flows through at least one storage stack or storage queue in the storage system, on paths to underlying storage devices or storage tiers, consistent with the credits of the internal I/O flows.

10. The computer-readable media of claim 8 , wherein calculating the demands for each of the external I/O flows and each of the internal I/O flows comprises:

calculating a demand based on arrival I/O operations per unit time and total latency for serving and queuing, for each of the external I/O flows and each of the internal I/O flows.

11. The computer-readable media of claim 8 , wherein the assigning further credits for each of the external I/O flows and each of the internal I/O flows, based on the priorities and calculated demands comprises:

determining credits proportional to priority, for each of the external I/O flows and each of the internal I/O flows, based on the priorities from the service level agreements.

12. The computer-readable media of claim 8 , wherein the assigning further credits for each of the external I/O flows and each of the internal I/O flows, based on the priorities and calculated demands comprises:

determining credits proportional to priority and less than calculated demand, for each of the external I/O flows and each of the internal I/O flows.

13. The computer-readable media of claim 8 , wherein calculating the demands comprises:

setting a demand of a flow proportional to an arrival I/O operations per unit time of the flow if a total latency for serving and queuing the flow is less than or equal to a deadline for the flow based on the service-level agreement values and otherwise setting the demand of the flow proportional to a sum of the arrival I/O operations per unit time of the flow plus the total latency for serving and queuing the flow, divided by the deadline for the flow, for each of the external I/O flows and each of the internal I/O flows.

14. A storage system with an internal flow mechanism for Quality of Service, comprising:

at least one processor;

a first port configured to couple to one or more computing machines or virtual machines;

a second port configured to couple to a storage memory;

a flow tracker, configured to track external I/O (input/output) flows having I/O requests from the one or more computing machines or virtual machines and configured to track internal I/O flows corresponding to the external I/O flows;

the flow tracker configured to inherit, from the external I/O flows to the internal I/O flows, service-level agreement (SLA) values including priorities and minimum I/O operations per unit time;

a demand calculator configured to calculate demands for each of the external I/O flows and each of the internal I/O flows, each demand as an estimate of I/O operations per unit time demanded by a workload; and

a credit assignor configured to:

distribute credits to the internal I/O flows and the external I/O flows according to minimum I/O operations per unit time values, based on the service-level agreement values; and

distribute remaining credits to the external I/O flows and the internal I/O flows according to priority and demand of each of the external I/O flows and the internal I/O flows.

15. The storage system of claim 14 , further comprising:

one or more storage stacks or storage queues; and

the flow tracker configured to manage the internal I/O flows through the one or more storage stacks or storage queues on paths to the storage memory, based on the credits assigned to each of the internal I/O flows.

16. The storage system of claim 14 , wherein each demand is based on arrival I/O operations per unit time and total latency for serving and queuing, for each of the external I/O flows and each of the internal I/O flows.

17. The storage system of claim 14 , further comprising:

the credit assignor configured to determine credits proportional to priority, for each of the external I/O flows and each of the internal I/O flows, based on the service-level agreement values.

18. The storage system of claim 14 , further comprising:

the credit assignor configured to determine credits proportional to priority and less than calculated demand, for each of the external I/O flows and each of the internal I/O flows, wherein the priority is based on the service-level agreement values.

19. The storage system of claim 14 , further comprising:

the credit assignor configured to assign a greater number of credits to an internal I/O flow corresponding to an external I/O flow of higher priority than to an internal I/O flow corresponding to an external I/O flow of lower priority, as a result of the service-level agreement values being inherited from the external I/O flows to the internal I/O flows.

20. The storage system of claim 14 , further comprising:

the demand calculator configured to set a demand of a flow proportional to an arrival I/O operations per unit time of the flow when a total latency for serving and queuing the flow is less than or equal to a deadline for the flow based on the service-level agreement values, for each of the external I/O flows and each of the internal I/O flows; and

the demand calculator configured to set the demand of the flow proportional to a sum of the arrival I/O operations per unit time of the flow plus the total latency for serving and queuing the flow, divided by the deadline for the flow, when the total latency for serving and queuing the flow is greater than the deadline for the flow based on the service-level agreement values, for each of the external I/O flows and each of the internal I/O flows.

Assignments (16)
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038483/0203 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037693/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2015
From: WAKHARE, PRASANNA; PENDHARKAR, NIRANJAN
To: SYMANTEC CORPORATION
Reel/Frame 037199/0107 →
Continuity (1)
Related Publication 20160292116A1 · Oct 6, 2016