System 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;
generating a virtual session in response to a request by an application;
generating a set of tokens representing the resources in the allocation pools;
sending the set of tokens to the application for selective transmission to the storage device with a command; 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.
488 Citations
20 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;
generating a virtual session in response to a request by an application;
generating a set of tokens representing the resources in the allocation pools;
sending the set of tokens to the application for selective transmission to the storage device with a command; 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)
-
-
8. A system 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, comprising:
-
a resource management system for managing resource capabilities represented by a plurality of tokens;
a communication channel between the application and the resource management system, to facilitate negotiations between the application and the resource management system with regard to the application obtaining at least some of the tokens;
a virtual pool of resources for distributing the tokens to the application;
an allocation pool manager for comparing the tokens against a minimum performance utilization of recently-seen tokens and determining whether there are sufficient resources available to accept the tokens; and
the resource management system opening a session between the application and the storage devices upon the storage devices accepting the tokens. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. 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;
a third set of instruction codes for generating a virtual session in response to a request by an application;
a fourth set of instruction codes for generating a set of tokens representing the resources in the allocation pools;
a fifth set of instruction codes for sending the set of tokens to the application for selective transmission to the storage device with a command; and
a sixth 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 (16, 17, 18, 19, 20)
-
Specification