Distributed demand-based storage quality of service management using resource pooling
First Claim
1. A method for providing quality of service (QoS) for clients running on host computers to access a common resource, the method comprising:
- receiving information defining a hierarchical structure of nodes for resource allocation, each node representing at least one client, wherein a static reservation value of the current capacity of the common resource is assigned to a respective node of the hierarchical structure of nodes, and a dynamic reservation value of the current capacity of the common resource is periodically computed for the respective node, the respective node having a parent node in the hierarchical structure of nodes;
determining that the dynamic reservation value computed for a particular time interval is greater than the static reservation value, the dynamic reservation value being computed by distribution of a global reservation value of the current capacity of the common resource allocated to a root node through the hierarchical structure of nodes, such that a corresponding dynamic reservation value is computed for the particular time interval for each node in the hierarchical structure of nodes, wherein the dynamic reservation value computed for the respective node is based on;
the dynamic reservation value computed for the parent node of the respective node, and an average number of inputs/outputs per second performed at the respective node; and
allocating, for the particular time interval, a portion of the current capacity of the common resource to the respective node based on the dynamic reservation value.
1 Assignment
0 Petitions
Accused Products
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.
-
Citations
21 Claims
-
1. A method for providing quality of service (QoS) for clients running on host computers to access a common resource, the method comprising:
-
receiving information defining a hierarchical structure of nodes for resource allocation, each node representing at least one client, wherein a static reservation value of the current capacity of the common resource is assigned to a respective node of the hierarchical structure of nodes, and a dynamic reservation value of the current capacity of the common resource is periodically computed for the respective node, the respective node having a parent node in the hierarchical structure of nodes; determining that the dynamic reservation value computed for a particular time interval is greater than the static reservation value, the dynamic reservation value being computed by distribution of a global reservation value of the current capacity of the common resource allocated to a root node through the hierarchical structure of nodes, such that a corresponding dynamic reservation value is computed for the particular time interval for each node in the hierarchical structure of nodes, wherein the dynamic reservation value computed for the respective node is based on;
the dynamic reservation value computed for the parent node of the respective node, and an average number of inputs/outputs per second performed at the respective node; andallocating, for the particular time interval, a portion of the current capacity of the common resource to the respective node based on the dynamic reservation value. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system comprising:
-
at least one processor; a plurality of clients operably connected to the at least one processor and running on host computers; 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, when executed, causing the at least one processor to; receive information defining a hierarchical structure of nodes for resource allocation, each node representing at least one client, wherein a static reservation value of the current capacity of the common resource is assigned to a respective node of the hierarchical structure of nodes, and a dynamic reservation value of the current capacity of the common resource is periodically computed for the respective node, the respective node having a parent node in the hierarchical structure of nodes; determine that the dynamic reservation value computed for a particular time interval is greater than the static reservation value, the dynamic reservation value being computed by distribution of a global reservation value of the current capacity of the common resource allocated to a root node through the hierarchical structure of nodes, such that a corresponding dynamic reservation value is computed for the particular time interval for each node in the hierarchical structure of nodes, wherein the dynamic reservation value computed for the respective node is based on;
the dynamic reservation value computed for the parent node of the respective node, and an average number of inputs/outputs per second performed at the respective node; anda scheduler operably connected to the resource pool module, the scheduler being configured to allocate, for the particular time interval, a portion of the current capacity of the common resource to the respective node based on the dynamic reservation value. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer-readable storage medium containing program instructions for providing quality of service (QoS) for clients running on host computers to access a common resource, the program instructions, when executed by one or more processors, causing the one or more processors to:
-
receive information defining a hierarchical structure of nodes for resource allocation, each node representing at least one client, wherein a static reservation value of the current capacity of the common resource is assigned to a respective node of the hierarchical structure of nodes, and a dynamic reservation value of the current capacity of the common resource is periodically computed for the respective node, the respective node having a parent node in the hierarchical structure of nodes; determine that the dynamic reservation value computed for a particular time interval is greater than the static reservation value, the dynamic reservation value being computed by distribution of a global reservation value of the current capacity of the common resource allocated to a root node through the hierarchical structure of nodes, such that a corresponding dynamic reservation value is computed for the particular time interval for each node in the hierarchical structure of nodes, wherein the dynamic reservation value computed for the respective node is based on;
the dynamic reservation value computed for the parent node of the respective node, and an average number of inputs/outputs per second performed at the respective node; andallocate, for the particular time interval, a portion of the current capacity of the common resource to the respective node based on the dynamic reservation value. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification