IP Library › Granted Patent US 9,244,742
Granted Patent B2
US 9,244,742 · App. 13/485,615 · Granted Jan 26, 2016

Distributed demand-based storage quality of service management using resource pooling

Inventors: Ajay Gulati (Palo Alto, CA); Ganesha Shanmuganathan (Santa Clara, CA); Peter Joseph Varman (Houston, TX)
Assignee: VMware, Inc.
G06F9/5061G06F9/4881G06F9/45533
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,244,742
App. No.
13/485,615
Granted
Jan 26, 2016
Kind
B2
Abstract

A system and method for providing quality of service (QoS) for clients running on host computers to access a common resource uses a resource pool module and a local scheduler in at least one of the host computers. The resource pool module operates to compute an entitlement of each client for the common resource based on a current capacity for the common resource and demands of the clients for the common resource. In addition, the resource pool module operates to assign a portion of the computed current capacity for the common resource to a particular host computer using the computed entitlement of each client running on the particular host computer. The local scheduler operates to allocate the portion of the computed current capacity among the clients running on the particular host computer.

Claims (33)

1. A method for providing quality of service (QoS) for clients running on host computers to access a common resource, the method comprising:

computing a current capacity for the common resource based on a global average latency for accessing the common resource by the clients;

computing dynamic reservation values for the clients running on the host computers by distributing a global reservation value for the common resource among the clients to derive the dynamic reservation values for the clients, including temporarily limiting the amount of the global reservation value distributed to a client to a demand of that client for the common resource; and

allocating the computed current capacity among the clients running on the host computers using the dynamic reservation values for the clients,

wherein the distributing of the global reservation value for the common resource among the clients includes distributing the global reservation value through a hierarchical structure of parent and child nodes such that the global reservation value at a root node of the hierarchical structure is distributed to lower nodes of the hierarchical structure in a level-by-level process.

2. The method of claim 1 , wherein the allocating of the computed current capacity for the common resource includes distributing the common resource among the clients based on shares assigned to the clients.

3. The method of claim 1 , further comprising computing the demand of each client running on a particular host computer using a local average latency for accessing the common resource from the particular host computer and an average number of inputs/outputs in response requests to access the common resource from that client.

4. The method of claim 3 , further comprising storing the computed demand in a shared file that is accessible by each of the host computers or transmitting the computed demand to other host computers in connection with the particular host computer.

5. The method of claim 1 , further comprising assigning a portion of the computed current capacity for the common resource to a particular host computer, including adjusting the depth of a host queue of the particular host computer, the host queue being used to store outstanding requests for the common resource from the clients running on the particular host computer.

6. The method of claim 1 , wherein the computing the current capacity for the common resource includes computing the current capacity for the common resource using the global average latency, a smoothing parameter and a resource congestion threshold value.

7. A system comprising:

at least one processor;

a plurality of clients operably connected to the at least one processor;

a resource interface with a host queue to store requests from the clients to access a common resource;

a resource pool module operably connected to the at least one processor, the resource pool module comprising:

a first component configured to compute a current capacity for the common resource based on a global average latency for accessing the common resource by the clients; and

a second component configured to compute dynamic reservation values for the clients by distributing a global reservation value for the common resource among the clients to derive the dynamic reservation values for the clients, including temporarily limiting the amount of the global reservation value distributed to a client to a demand of that client for the common resource, wherein the second component is further configured to distribute the global reservation value through a hierarchical structure of parent and child nodes such that the global reservation value at a root node of the hierarchical structure is distributed to lower nodes of the hierarchical structure in a level-by-level process; and

a scheduler operably connected to the resource pool module, the scheduler being configured to allocate the computed current capacity among the clients using the dynamic reservation values for the clients.

8. The system of claim 7 , wherein the scheduler is configured to distribute the computed current capacity for the common resource among the clients based on shares assigned to the clients.

9. The system of claim 7 , wherein the resource pool module is configured to compute the demand of each client using a local average latency for accessing the common resource from the host computer and an average number of inputs/outputs in response requests to access the common resource from that client.

10. The system of claim 9 , wherein the resource pool module is further configured to store the computed demand in a shared file that is accessible by other host computers or configured to transmit the computed demand to other host computers in connection with the host computer.

11. The system of claim 7 , wherein the resource pool module is configured to adjust the depth of a host queue of the host computer to assign a portion of the computed current capacity for the common resource to the host computer, the host queue being used to store outstanding requests for the common resource from the clients.

12. The system of claim 7 , wherein the resource pool module is configured to compute the current capacity for the common resource using the global average latency, a smoothing parameter and a resource congestion threshold value.

13. A non-transitory computer-readable storage medium containing program instructions for providing quality of service to clients in host computers to access a common resource, wherein execution of the program instructions by one or more processors of the host computers the one or more processors causes the one or more processors to perform steps comprising:

computing a current capacity for the common resource based on a global average latency for accessing the common resource by the clients;

computing dynamic reservation values for the clients running on the host computers by distributing a global reservation value for the common resource among the clients to derive the dynamic reservation values for the clients, including temporarily limiting the amount of the global reservation value distributed to a client to a demand of that client for the common resource; and

allocating the computed current capacity among the clients running on the host computers using the dynamic reservation values for the clients,

wherein the distributing of the global reservation value for the common resource among the clients includes distributing the global reservation value through a hierarchical structure of parent and child nodes such that the global reservation value at a root node of the hierarchical structure is distributed to lower nodes of the hierarchical structure in a level-by-level process.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the allocating of the computed current capacity for the common resource includes distributing the common resource among the clients based on shares assigned to the clients.

15. The non-transitory computer-readable storage medium of claim 13 , wherein the steps further comprises computing the demand of each client running on a particular host computer using a local average latency for accessing the common resource from the particular host computer and an average number of inputs/outputs in response requests to access the common resource from that client.

16. The non-transitory computer-readable storage medium of claim 13 , wherein the steps further comprises the computed demand in a shared file that is accessible by each of the host computers.

17. The non-transitory computer-readable storage medium of claim 13 , wherein the steps further comprises assigning a portion of the computed current capacity for the common resource to a particular host computer, including includes adjusting the depth of a host queue of the particular host computer, the host queue being used to store outstanding requests for the common resource from the clients running on the particular host computer.

18. The non-transitory computer-readable storage medium of claim 13 , wherein the computing the current capacity for the common resource includes computing the current capacity for the common resource using the global average latency, a smoothing parameter and a resource congestion threshold value.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2012
From: GULATI, AJAY; SHANMUGANATHAN, GANESHA; VARMAN, PETER JOSEPH
To: VMWARE, INC.
Reel/Frame 028299/0541 →
Continuity (1)
Related Publication 20130326064A1 · Dec 5, 2013