Computer program and method for managing resources in a distributed storage system
First Claim
1. A method of managing a resource in a distributed storage system having a plurality of storage devices, comprising:
- generating a virtual pool of resources;
distributing the resources among a set of allocation pools on the storage devices;
where each allocation pool comprises;
a specification of minimum and maximum resources that the allocation pool can consume; and
a measure of current resource usage of the allocation pool;
examining a request for resources by an application to determine availability of requested resources within the set of allocation pools;
if the requested resources are available, then generating a virtual session in response to the request;
generating a set of tokens corresponding to the set of allocation pools, where each token represents a right to consume a minimum guaranteed amount and a maximum limit for a specific resource;
sending the set of tokens to the application for selective transmission to the storage device with a command;
maintaining, at each of the storage devices, a cache entry of the tokens that were recently sent to said storage devices; and
tracking the token in a token cache to monitor and limit consumption of the resources in the storage devices.
5 Assignments
0 Petitions
Accused Products
Abstract
A resource management system uses a virtual resource pool distributed across a set of storage devices to manage resources in a distributed storage system. The storage devices dedicate a resource in an allocation pool available to the virtual resource pool. The virtual resource pool is a virtual storage server in which an application receives at least a predetermined amount of storage capacity, a predetermined level of performance, or a predetermined reliability, represented by tokens. A virtual resource pool manager gives the tokens to an application. The application transmits the tokens along with the commands to the storage device. The token represents a right to consume up to some limit of resources on a specific storage device in a computing session. The storage device locally tracks resource consumption through the token.
-
Citations
17 Claims
-
1. A method of managing a resource in a distributed storage system having a plurality of storage devices, comprising:
-
generating a virtual pool of resources; distributing the resources among a set of allocation pools on the storage devices; where each allocation pool comprises; a specification of minimum and maximum resources that the allocation pool can consume; and a measure of current resource usage of the allocation pool; examining a request for resources by an application to determine availability of requested resources within the set of allocation pools; if the requested resources are available, then generating a virtual session in response to the request; generating a set of tokens corresponding to the set of allocation pools, where each token represents a right to consume a minimum guaranteed amount and a maximum limit for a specific resource; sending the set of tokens to the application for selective transmission to the storage device with a command; maintaining, at each of the storage devices, a cache entry of the tokens that were recently sent to said storage devices; and tracking the token in a token cache to monitor and limit consumption of the resources in the storage devices. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer program product comprising:
-
one or more computer-readable storage media having stored computer-executable instructions for implementing a method for providing any of a minimum level of performance or a maximum level of performance, to an application in a distributed storage architecture for a plurality of storage devices, said method comprising; managing resource capabilities represented by a plurality of tokens via a resource management system; where each token from the plurality of tokens represents a right to consume a minimum guaranteed amount and a maximum limit for a specific resource; negotiating between the application and the resource management system with regard to the application obtaining at least some of the tokens; generating a virtual pool of resources for distributing the tokens to the application; comparing the tokens against a minimum performance utilization of recently-seen tokens and determining whether there are sufficient resources available to accept the tokens, wherein each of the storage devices maintains a cache entry of the tokens that were recently sent to said storage devices; adding an allocation pool to the pool of resource when sufficient resources are not available in the pool of resources; and opening a session between the application and the storage devices upon determining there are sufficient resources available to accept the tokens. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A computer program product having a plurality of executable instruction codes that are stored on a computer-readable medium, for managing a resource in a distributed storage system having a plurality of storage devices, comprising:
-
a first set of instruction codes for generating a virtual pool of resources; a second set of instruction codes for distributing the resources among a set of allocation pools on the storage devices; where each allocation pool comprises; a specification of minimum and maximum resources that the allocation pool can consume; and a measure of current resource usage of the allocation pool; a third set of instruction codes for examining a request for resources by an application to determine availability of requested resources within the set of allocation pools; a fourth set of instruction codes for generating a virtual session in response to a request for resources by an application if the requested resources are available; a fifth set of instruction codes for generating a set of tokens representing the resources in the allocation pools; a sixth set of instruction codes for sending the set of tokens to the application for selective transmission to the storage device with a command, wherein each of the storage devices maintains a cache entry of the tokens that were recently sent to said storage devices; and a seventh set of instruction codes for tracking the token in a token cache to monitor and limit consumption of the resources in the storage devices. - View Dependent Claims (14, 15, 16, 17)
-
Specification