IP Library Granted Patent US 9,515,899
Granted Patent B2
US 9,515,899 · App. 13/720,566 · Granted Dec 6, 2016

Providing optimized quality of service to prioritized virtual machines and applications based on quality of shared resources

Inventors: Hari Krishna Vemuri (Pune, IN); Shweta Goyal (Pune, IN); Nirendra Awasthi (Pune, IN)
Assignee: Veritas Technologies LLC
H04L41/5022G06F9/45558H04L67/1097H04L67/322G06F2009/45579
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 9,515,899
App. No.
13/720,566
Granted
Dec 6, 2016
Kind
B2
Abstract

Quality of service is provided to prioritized VMs and applications, based on the varied quality of different shared computing resources. Each VM or application has an associated priority. A quality rating is dynamically assigned to each shared computing resource. Requests for shared computing resources made by specific VMs or applications are received. For each specific received request, the current priority of the requesting VM or application is identified. In response to each received request, a specific shared computing resource is assigned to the specific requesting VM or application. This assignment is made based on the current priority of the requesting VM or application and the current quality rating of the shared computing resource, thereby providing quality of service to the requesting VM or application corresponding to its current priority.

Claims (78)

1. A computer-implemented method comprising:

dynamically assigning a quality rating to each one of a plurality of shared computing resources, wherein

the quality rating quantifies a plurality of static and dynamic qualitative factors concerning the each one of the plurality of shared computing resources, and

the each one of the plurality of shared computing resources is accessible by one or more applications executed by one or more virtual machines executed by a physical computer;

receiving one or more requests for a shared computing resource from one or more requesting applications, wherein

each of the one or more requesting applications is assigned a priority;

identifying, for each of the one or more requests, the priority of the requesting application; and

in response to the each of the one or more requests, assigning a shared computing resource to the requesting application, wherein

the assigning is based on the priority of the requesting application and the quality rating of the shared computing resource.

2. The computer-implemented method of claim 1 wherein:

the one or more applications executed by the one or more virtual machines executed by the physical computer further comprise a plurality of virtual machines executed by a single host.

3. The computer-implemented method of claim 1 wherein:

the one or more applications executed by the one or more virtual machines further comprises an application executed by a specific virtual machine executed by a single host.

4. The computer-implemented method of claim 1 wherein:

the each one of the plurality of shared computing resources further comprises a resource that is shared among the one or more applications executed by the one or more virtual machines executed by the physical computer.

5. The computer-implemented method of claim 1 further comprising:

periodically evaluating the each one of the plurality of shared computing resources;

determining a current quality rating for the each one of the plurality of shared computing resources, based on a current status of the each one of the plurality of shared computing resources; and

assigning the current quality rating to the each one of the plurality of shared computing resources.

6. The computer-implemented method of claim 1 wherein:

the quality rating quantifies a plurality of qualitative factors concerning a specific type of shared computing resource.

7. The computer-implemented method of claim 1 wherein:

the quality rating quantifies a plurality of qualitative factors concerning the each one of the plurality of shared computing resources.

8. The computer-implemented method of claim 1 wherein:

the quality rating further comprises a single quantification of an overall quality of the each one of the plurality of shared computing resources.

9. The computer-implemented method of claim 1 wherein:

the priority of the one or more applications further comprises an indicator of a quality of service to be provided to the requesting application relative to other applications executed by the one or more virtual machines executed by the physical computer.

10. The computer-implemented method of claim 1 wherein the receiving one or more requests for a shared computing resource further comprises:

the one or more requests for a shared computing resource being made by the one or more virtual machines to a hypervisor.

11. The computer-implemented method of claim 1 wherein the receiving one or more requests for a shared computing resource further comprises:

receiving requests to access a virtual disk made by the one or more virtual machines.

12. The computer-implemented method of claim 1 wherein the identifying, for the each one of the plurality of requests, the priority of the requesting application further comprises:

identifying the requesting application, from the one or more requesting applications, that made the request; and

retrieving a current priority of the requesting application.

13. The computer-implemented method of claim 12 wherein the identifying the requesting application, from the one or more requesting applications, that made the request further comprises:

identifying a logical unit identifier (LUN) of a storage unit targeted by an input/output (IO) operation, the IO operation comprising the request.

14. The computer-implemented method of claim 1 wherein:

the receiving one or more requests for a shared computing resource further comprises receiving one or more requests to initiate input/output (IO) operations targeting a storage device;

the plurality of shared computing resources further comprises a plurality of queues, wherein

each queue of the plurality of queues is configured to access the storage device with a different level of priority; and

the assigning a shared computing resource to the requesting application further comprises assigning one queue of the plurality of queues to the requesting application.

15. The computer-implemented method of claim 1 further comprising:

logging information documenting usage of the plurality of shared computing resources by the one or more applications over time.

16. The computer-implemented method of claim 1 wherein the receiving one or more requests for a shared computing resource further comprises:

receiving one or more requests to access a multipathed storage device from the one or more requesting applications.

17. The computer-implemented method of claim 16 wherein:

the plurality of shared computing resources further comprises a plurality of queues, wherein

each queue of the plurality of queues is configured to access one path of a plurality of paths to physical storage; and

the dynamically assigning a quality rating to the each one of the plurality of shared computing resources further comprises assigning a level of priority to each queue of the plurality of queues.

18. The computer-implemented method of claim 16 wherein:

the plurality of shared computing resources further comprises a plurality of paths to physical storage; and

the dynamically assigning a quality rating to the each one of the plurality of shared computing resources further comprises

assigning one or more quality ratings to each path of the plurality of paths, wherein

the one or more quality ratings quantify the quality of the each path of the plurality of paths.

19. A non-transitory computer-readable storage medium storing program instructions executable to:

dynamically assign a quality rating to each one of a plurality of shared computing resources, wherein

the quality rating quantifies static and dynamic qualitative factors concerning the each one of the plurality of shared computing resources, and

the each one of the plurality of shared computing resources is accessible by one or more applications executed by one or more virtual machines executed by a physical computer;

receive one or more requests for a shared computing resource from one or more requesting applications, wherein

each of the one or more requesting applications is assigned a priority;

identify, for each of the one or more requests, the priority of the requesting application; and

in response to the each of the one or more requests, assign a shared computing resource to the requesting application, wherein

assigning is based on the priority of the requesting application and the quality rating of the shared computing resource.

20. A computer system comprising:

one or more processors; and

a memory coupled to the one or more processors, wherein the memory stores program instructions executable by the one or more processors to:

dynamically assign a quality rating to each one of a plurality of shared computing resources, wherein

the quality rating quantifies static and dynamic qualitative factors concerning the each one of the plurality of shared computing resources, and

the each one of the plurality of shared computing resources is accessible by one or more applications running on executed by one or more virtual machines executed by the computer system;

receive one or more requests for a shared computing resource from one or more requesting applications, wherein

each of the one or more requesting applications is assigned a priority;

identify, for each of the one or more requests, the priority of the requesting application; and

assign, in response to the each of the one or more requests, a shared computing resource to the requesting application, wherein

assigning is based on the priority of the requesting application and the quality rating of the shared computing resource.

21. The computer-implemented method of claim 1 wherein:

the receiving the one or more requests for a shared computing resource further comprises

receiving one or more requests to initiate input/output (IO) operations targeting a multipathed storage device; and

the plurality of shared computing resources further comprises a plurality of paths to a physical storage device.

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: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
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 Jan 3, 2013
From: VEMURI, HARI KRISHNA; GOYAL, SHWETA; AWASTHI, NIRENDRA
To: SYMANTEC CORPORATION
Reel/Frame 029563/0932 →
Continuity (1)
Related Publication 20140173113A1 · Jun 19, 2014