US20050138162A1 - System and method for managing usage quotas - Google Patents

System and method for managing usage quotas Download PDF

Info

Publication number
US20050138162A1
US20050138162A1 US11/008,489 US848904A US2005138162A1 US 20050138162 A1 US20050138162 A1 US 20050138162A1 US 848904 A US848904 A US 848904A US 2005138162 A1 US2005138162 A1 US 2005138162A1
Authority
US
United States
Prior art keywords
usage
quotas
quota
resource
classes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US11/008,489
Inventor
Brian Byrnes
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US11/008,489 priority Critical patent/US20050138162A1/en
Publication of US20050138162A1 publication Critical patent/US20050138162A1/en
Assigned to HERCULES TECHNOLOGY GROWTH CAPITAL, INC. reassignment HERCULES TECHNOLOGY GROWTH CAPITAL, INC. SECURITY AGREEMENT Assignors: AGAMI SYSTEMS, INC.
Assigned to STILES, DAVID reassignment STILES, DAVID SECURITY AGREEMENT Assignors: HERCULES TECHNOLOGY GROWTH CAPITAL, INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • H04L41/5022Ensuring fulfilment of SLA by giving priorities, e.g. assigning classes of service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing

Definitions

  • the present invention relates generally to computing systems, and more particularly to a method and system that define, track, and enforce resource usage quotas based on classes.
  • Computer network technology has improved the exchange of and access to information. As a result, computer use has become pervasive for both business and personal purposes. With increased use, however, has come the requirement for enterprise and co-location hosting facilities to store vast amounts of data. The increased demand for storage presents several challenges to providing a tracking and enforcement system that manages resource usage.
  • resources are not infinite and must be managed.
  • Managing resources requires defining, tracking, and enforcing user quotas associated with each resource.
  • conventional quota tracking and enforcement methods for storage resources often define user quotas in physical terms, such as how much space a user is allocated in a given file system. Although these conventional storage quota management methods are useful in some respects, they fail in others.
  • quotas are viewed in terms of physical bytes.
  • cost of resources in a distributed computing system and more particularly a distributed scalable storage system is also influenced by a multitude of other factors. Therefore, traditional storage quota management methods fail to adequately define, track, and enforce usage quotas and appropriately allocate their respective costs.
  • quota tracking and enforcement method and system which apply logical groupings, that is, classes, to user quotas. More particularly, the industry needs a method, which operates in a distributed computing system, which uses classes to define usage quotas, track resource usage, and enforce the defined quotas. The method needs to be applicable throughout the distributed system wherever quotas need to be allocated for a system resource, for example and without limitation, storage quotas. In the case of storage quotas, a user may want to use classes based on quality of service attributes of the system to determine how file space will be allocated. Classes add a level of abstraction to the concept of assigning resources to users.
  • a specific cost for storing a file can be associated with each storage class.
  • This means a storage class quota provides information regarding how much storage space a user is allowed to use, while a storage class identifies the cost associated with the type of space that the user can use.
  • the method and system should be flexible enough to allow tracking and enforcement of quotas for system attributes for example and without limitation bandwidth and number of files, and not simply those attributes that are defined on a per-directory or per-file system basis.
  • Another advantage of the present invention is to provide a quota management system in variety of process models such as but not limited to, a single process, multiple processes, or as distributed processes on multiple machines.
  • a further advantage of the present invention is to provide a highly scalable quota management system that can easily be scaled to provide for the expanding needs of customers.
  • Another advantage of the invention is to provide a quota management system for allowing the definition of classes that are stored in a configuration database and can be used for resource management.
  • Another advantage of the present invention is to provide a quota management system for allowing a tracking mechanism that monitors usage quotas.
  • Another advantage of the invention is to provide quota usage tracking for gathering quota usage information for a partition of a file system.
  • Another advantage of the present invention is to provide a quota management system for allowing an enforcement mechanism for usage quotas based on classes.
  • a further advantage of the present invention is to provide a quota management system for allowing the aggregation of the quota information for all partitions of a file system.
  • a quota usage system may include a quota usage server function, quota usage updater function, and a quota usage database that implements tracking and enforcement services.
  • the disclosed system and method are scalable. This is in contrast to conventional approaches that include quota tracking and enforcement, but cannot provide class-based quota management or highly scalable and customizable quota management.
  • FIG. 1 shows a quota usage management system as a part of a metadata service and a quota aggregation and enforcement process within a scalable storage system
  • FIG. 2 is a flow chart of a method for management of resource usage quotas
  • FIG. 3 is a diagram of an exemplary assignment of quality of service attributes by storage class ID
  • FIG. 4 is a flow chart depicting a method for quota usage definition and reporting
  • FIG. 5 is a flow chart outlining a method for quota usage tracking based on storage class
  • FIG. 6 is a flow chart showing a method for quota usage aggregation and enforcement.
  • FIG. 1 illustrated is an exemplary distributed, highly scalable storage system 300 incorporating an exemplary quota usage tracking system 10 a - 10 n in accordance with the principles of the present invention.
  • n is used herein to indicate an indefinite plurality, so that the number “n” when referred to one component does not necessarily equal the number “n” of a different component.
  • the number of Gateway Service nodes 70 a - 70 n does not, but may, equal the number of MDS servers 101 a - 100 n in FIG.
  • the distributed computing environment includes a plurality of clients such as an NFS client 61 , CIFS client 62 , HTTP client 63 , FTP client 64 , and SQL client 65 (collectively clients 11 ) capable of connecting to the data network through a load-balancing node 12 .
  • clients 11 capable of connecting to the data network through a load-balancing node 12 .
  • These applications are provided for purposes of illustration only, and are not limiting. Users may connect to the system through the NFS client 61 , CIFS client 62 , HTTP client 63 , FTP client 64 , or SQL client 65 .
  • Load balancing node 12 then connects to one or more Gateway Service nodes 70 a - 70 n , (collectively distributed gateway service 13 ) which are connected to an internal network 14 , for example but without limitation, a switched Internet Protocol (IP) based network.
  • Internal network 14 includes one or more network services that provide connectivity to several distributed scalable services, for example, but without limitation a scalable distributed Metadata Service (MDS) 15 , a scalable distributed Storage Service 16 , a scalable System Management Service (SMS) 17 , and a scalable distributed Quota Aggregation and Enforcement Service 19 .
  • MDS scalable distributed Metadata Service
  • SMS System Management Service
  • Quota Aggregation and Enforcement Service 19 scalable distributed Quota Aggregation and Enforcement Service
  • the distributed, scalable MDS 15 which is a component of the storage system 300 , can be made up of one or more metadata partitions ( 84 a - 84 n ).
  • a metadata partition cannot belong to more than one file system and each file system has at least one partition.
  • a file system is a logical hierarchical representation (“tree”) of, for example and without limitation, files, directories, and devices on a single physical server with a specified “root”. Usage quotas apply on a file system basis and not on an individual metadata partition basis.
  • Each metadata partition ( 84 a - 84 n ) is made up of an MDS Server ( 101 a - 101 n ) and an MDS database ( 100 a - 100 n ).
  • Each MDS Server ( 101 a - 101 n ) includes a Quota Usage Server ( 20 a - 20 n ) function and Quota Usage Updater function ( 40 a - 40 n ).
  • Each MDS Database ( 100 a - 100 n ) includes a Quota Usage Database portion ( 30 a - 30 n ).
  • the terms Quota Usage Server function and Quota Usage Server are equivalent and can be used interchangeably.
  • Quota Usage Updater function and Quota Usage Updater are equivalent and can be used interchangeably.
  • Quota Usage Database portion and Quota Usage Database are equivalent and can also be used interchangeably.
  • the Quota Usage Server, Quota Usage Updater, and Quota Usage Database make up the Quota Usage System 10 a - 10 n .
  • the Quota Usage Server, Quota Usage Updater, and Quota Usage Database can be implemented as a function within one or more processes or as individual processes while operating within the spirit and scope of the invention.
  • the distributed, scalable Storage Service 16 which is a component of the storage system 300 , can be made up of storage servers 85 a - 85 n and storage devices 87 a - 87 n .
  • Each storage server 85 a - 85 n can include one or more storage classes 88 a - 88 n .
  • Storage classes provide a level of abstraction to quotas by assigning a collection of Quality of Service (QoS) attributes to a particular storage class. Thus, instead of quotas being viewed in terms of physical bytes, quotas can now be viewed in terms of cost.
  • QoS Quality of Service
  • This concept of cost can also be applied to other storage characteristics, such as replicating data locally or remotely, storing data redundantly (using Redundant Arrays of Inexpensive Disks (RAID) or some other device technology), and so forth.
  • QoS attributes can define storage device characteristics, for example and without limitation, performance (speed), reliability (redundancy), and accessibility (availability). Therefore, associated with each storage class is the cost of storing the data.
  • the designation of storage classes is provided by way of example only and those of ordinary skill in the art will understand that numerous other resources such as network bandwidth, CPU usage, and memory usage may be designated and resource classes can be used to provide a level of abstraction to quotas by assigning a collection of resource-specific QoS to a particular resource class.
  • a distributed, scalable Quota Enforcement Service 19 which is an optional component of the storage system 300 , can be made up of one or more Quota Aggregation and Enforcement Service nodes 50 a - 50 n . Each service node aggregates quota usage and quota usage limit information, and initiates quota enforcement for a single file system, that is, for all the partitions that make up a file system.
  • FIG. 1 also shows that Gateway Service 13 communicates with the MDS 15 , Storage Service 16 , the SMS 17 , and the Configuration Database (CDB) 18 via network 14 .
  • the SMS 17 accesses the CDB 18 as well.
  • the Quota Usage Server 20 a - 20 n accesses Quota Usage Database 30 a - 30 n .
  • the MDS server 101 a - 101 n along with the Quota Usage Server 20 a - 20 n can be a single process on one machine, multiple processes on a single machine, or multiple processes on multiple machines.
  • one or more Gateway service nodes 70 a - 70 n can access a file system and each file system can have at least one partition in the present invention.
  • Each MDS 15 manages one or more MDS partitions 84 a - 84 n , but each MDS partition 84 a - 84 n is associated with only one MDS 15 .
  • An MDS database 100 a - 100 n for a single file system can contain data for one or more (not shown) metadata partitions 84 a - 84 n .
  • a Quota Usage System 10 a - 10 n handles quota usage information 160 a - 160 n , which applies to a file system as a whole rather than to metadata partitions 84 a - 84 n separately. However, the quota usage information 160 a - 160 n can be maintained on an individual metadata partition 84 a - 84 n basis.
  • the storage system 300 is illustrated as comprising a distributed Gateway Service 13 , made up of Gateway Service nodes 70 a - 70 n , a distributed Storage Service 16 , made up of storage servers 85 a - 85 n and storage devices 87 a - 87 n , and a distributed Metadata Service 15 , made up of MDS servers 101 a - 101 n and MDS databases 100 a - 100 n , but those skilled in the relevant art(s) will understand, based on the teachings contained herein, that fewer or additional, Gateway Service nodes 70 a - 70 n , storage servers 85 a - 85 n , storage devices 87 a - 87 n , MDS servers 101 a - 101 n and MDS databases 100 a - 100 n , as well as other services may be removed from, or added to the illustrated storage system and still be within the spirit and scope of the invention.
  • the Storage System 300 as shown in FIG. 1 includes a distributed Quota Aggregation and Enforcement Service 19 .
  • quota aggregation and enforcement is a valuable feature, its inclusion within a system is determined by customer requirements and the present invention is not necessarily limited by its inclusion or exclusion.
  • FIG. 2 is an overview of a method for managing resource usage quotas 200 according to an embodiment of the present invention (steps 210 - 280 ).
  • the function of managing resource usage quotas requires the definition of classes, definition of usage policies, application of quotas, generation of reports, and the storage of data by resource class in accordance with quota usage limits.
  • Storage classes are provided for purposes of illustration only, and are not limiting. Classes can be defined for any type of resource for which a quota may be desirable.
  • a class adds a level of abstraction to the concept of usage quotas and has the advantage of assigning a cost to a particular class.
  • quotas referring to the cost of storage instead of referring to, for example, actual storage in physical bytes that are to be allocated to a user.
  • the customer configures a user for a storage system 300
  • the customer defines classes and defines usage policies.
  • the Quota Usage System ( 10 a - 10 n in FIG. 1 ) interacts with other system components, such as the SMS ( 17 in FIG. 1 ), the Gateway Service ( 13 in FIG. 1 ), and the Storage Service ( 16 in FIG. 1 ) to implement quotas.
  • the SMS 17 handles quota definitions that the customer defines; the SMS 17 sets quotas and stores usage quotas ( 150 in FIG. 1 ) in the CDB 18 .
  • a customer defines the QoS attributes, which define class characteristics, for example and without limitation, performance, reliability, and accessibility, for storage classes (step 210 ).
  • the QoS attributes can be very flexible and arbitrary based on customer needs.
  • a customer can then define classes by assigning a Class Identification (ID) and QoS attributes to each defined class (step 220 ). The characteristics of a class depend on the QoS attributes assigned to it.
  • ID Class Identification
  • QoS attributes QoS attributes
  • step 210 As a result of defining QoS attributes (step 210 ) and defining classes (step 220 ), a cost of using that class of resource is implicitly assigned (step 235 ).
  • the assignment of QoS attributes by Class ID in the present invention will be described below in more detail in connection with FIG. 3 .
  • usage quota policies are defined for a plurality of users (step 240 ).
  • a usage quota policy helps a customer to automate the quota assignment process, that is, a customer can define a usage policy that can be applied to any number of users.
  • a policy can be defined as a set quotas of one or more storage classes. Any user defined with that policy would have the storage classes associated with the policy assigned to that user.
  • Usage quota policies automate the quota assignment process. Instead of individually assigning quotas of various storage classes to each user individually, policies can be used to easily assign quotas to a class of users.
  • Usage Policy A can assign to each user assigned this policy 10 MB of Very Reliable Storage, 20 MB of Reliable Storage, 10 MB of Adequately Reliable Storage and 5 MB of Very Highly Reliable Storage.
  • Usage Policy B can assign to each user assigned this policy 20 MB of Reliable Storage and 40 MB of Adequately Reliable Storage.
  • the customer can assign Usage Policy A to Users 1-6, and Usage Policy B to Users 7-12.
  • a customer typically configures several users and/or several user groups, that is, a class of users, and for each selected user or user group assigns selected usage quotas for each class defined in steps 210 and 220 , for example and without limitation, storage class, as needed, or sets a usage policy.
  • the SMS 17 then creates, in the CDB 18 , the quota limits for each user or file system based on the configuration information, that is, specific usage quota assignment or policy, provided by a customer. Defining and reporting quotas in the present invention will be described below in more detail in connection with FIG. 4 .
  • the management of resource usage quotas method can proceed to the application-of-quotas phase.
  • This phase is done without operator intervention.
  • the Quota Usage system 10 a - 10 n on FIG. 1
  • Gateway Service node 70 a - 70 n in FIG. 1
  • SMS 17 in FIG. 1
  • CDB 18 in FIG. 1
  • a Quota Enforcement Service 19 in FIG. 1
  • the Quota Usage system 10 a - 10 n on FIG. 1
  • SMS 17 in FIG. 1
  • CDB 18 in FIG. 1
  • a Quota Enforcement Service 19 in FIG. 1
  • the Quota Usage System ( 10 a - 10 n in FIG. 1 ) can track them (step 250 ).
  • Quotas for a file system or a user may be made up of at least one number, but quotas are often a matrix of storage space, the number of nodes for each storage class, and the sum of all of these.
  • Tracking quotas requires the Quota Usage System to update the information contained in the Quota Usage Database ( 30 - 30 n in FIG. 1 ) and to make it available when aggregating, enforcing, and reporting quota usage.
  • Each partition tracks its own quota usage, but it should be noted that quotas apply per file system. Therefore, quota usages should be aggregated. Tracking quotas in the present invention will be described in more detail in connection with FIG. 5 .
  • Quota usage information is maintained on an individual metadata partition basis. Aggregating quota usage information and enforcement allows quota usage information maintained by the Quota Usage System on an individual metadata partition basis to be collected together for an entire file system, that is, for all partitions that make up a file system (optional step 260 ).
  • a Quota Aggregation and Enforcement Service ( 19 in FIG. 1 ) can aggregate quota usage information. Aggregating quotas in the present invention will be described in more detail in connection with FIG. 6 .
  • quotas can be defined, tracked, and enforced by file owner or an entire file system (that is, one or more metadata partitions), many different reports relating to quota usage information can be generated (step 280 ).
  • the customer can customize reports and thereby has flexibility in determining the types of reports to be generated.
  • resource class definition Upon successful resource class definition, usage policy definition, and usage quota application (that is, tracking, aggregating, and enforcing), data can be stored accordingly in a Storage Service 16 (made up of interconnected Storage Servers 85 a - 85 n and Storage devices 87 a - 87 n in FIG. 1 ) by resource class ( 88 a - 88 n in FIG. 1 ).
  • the resource class ( 88 a - 88 n in FIG. 1 ) dictates the cost of storing data.
  • a customer can use a limited number of expensive, high-performance file servers that hold a “working set” of data, and also have a large amount of inexpensive storage (such as low-performance, inexpensive file servers, tape robots, jukeboxes with optical disks, etc.) to provide storage capacity for infrequently used data.
  • a class can define how and at what cost the customer wants to store data. It should be noted that the migration of data from a storage device is entirely transparent and automatic (on-demand upon a request to read or write to a file, or asynchronously whenever a file is being migrated to tertiary storage). Also file data stored initially on any given Storage Server ( 85 a - 85 n in FIG. 1 ) can be migrated later to any other node.
  • each storage class 340 is assigned QoS attributes 341 , Storage Class ID (SCID) 342 and implicitly a storage cost.
  • the QoS attributes 341 can include individual file, individual directory, and/or distributed computing system characteristics such as performance, reliability, availability, latency, and so forth. These however, are provided by way of example only and those of ordinary skill in the art will understand that numerous other attributes relating to other ways to describe data storage performance of the class may be designated.
  • Each storage class 340 for example, an adequately reliable class, a reliable class, a very reliable class, a highly reliable class, and a very highly reliable class can each be assigned a particular set of values for each of the QoS attributes 341 as defined for that storage class.
  • storage class “reliable”, assigned Storage Class ID (SCID) 2 has an implicit storage cost of 2 ⁇ $.
  • the collection of quality of service attributes 141 assigned to the “reliable” storage class include: performance of 1000 file creations/sec., reliability of RAID1, availability of 1, latency of 20 msec., and bandwidth of 10 Mbps.
  • a customer configures users for a system, for example and without limitation a storage system
  • the customer assigns a quota for each class to each user (or file system) or sets a usage policy.
  • the customer must add a file owner by assigning an ID to each file owner (step 410 ), configure a file owner for the system (step 420 ), and must assign a usage quota for each file owner based on system capabilities and customer requirements (step 430 ).
  • this information is reported to SMS 17 , which handles the processing of the quota definitions.
  • the SMS 17 creates storage class usage quota limits based on the customer-assigned quotas (step 440 ) and stores them in the CDB 18 (step 450 ).
  • the SMS 17 then contacts the Quota Usage Server 20 a - 20 n to retrieve current quota usage information 160 a - 160 n (step 460 ). With this information the SMS 17 can update the information stored in the CDB 18 and generate a usage report.
  • the Quota Usage Server retrieves the information from the Quota Usage Database 30 a - 30 n (step 470 ), and returns the updated quota usage information 160 a - 160 n to the SMS 17 (step 480 ).
  • the SMS 17 can then include the updated current usage information in a usage report (step 490 ). It should be noted that the generated report is based on customer requirements.
  • a Gateway Service node 70 a - 70 n receives a request to create, delete, or modify a file (collectively, a file modification request), for example and without limitation a request to modify the file length (step 510 ).
  • the Gateway Service node 70 a - 70 n then reads the metadata for the file (step 515 ) from the MDS 15 , or alternatively, from its own cache.
  • the Gateway Service node 70 a - 70 n can check whether it has received a quota limit exceeded notification for a particular file system or user from the Quota Aggregation and Enforcement Service 19 (step 520 ). The presence or absence of a notification depends on usage tracking set by a customer.
  • the Gateway Service node continues by executing the relevant user request (step 535 ). If a notification is present for the particular file system or user, the Gateway Service node 70 a - 70 n sends a rejection in response to the relevant user request and discontinues processing it (step 530 ). If processing is continued from step 525 , the Gateway Service node 70 a - 70 n can send a metadata update, in this example, a change to the file size, to the MDS 15 (step 535 ).
  • the MDS Server ( 101 a - 101 n in FIG. 1 ) updates the record in the MDS Database ( 100 a - 100 n in FIG.
  • a Quota Usage Updater ( 40 a - 40 n in FIG. 1 ) of the MDS Server synchronously updates the quota usage information ( 160 a - 160 n in FIG. 1 ) stored in the Quota Usage Database ( 30 a - 30 n in FIG. 1 ) of the MDS Database ( 100 a - 100 n in FIG. 1 ) (step 545 ).
  • the Quota Usage Updater 40 a - 40 n updates the stored quota usage information ( 160 a - 160 n in FIG. 1 ) using the owner ID.
  • the update which is based on the update sent from a Gateway Service node, can include file owner (in the case of owner change), file storage class, and file size changes, if any. It should be noted that if the user ID contained in the update does not exist in the Quota Usage Database ( 30 a - 30 n in FIG. 1 ) when the Quota Usage Updater 40 a - 40 n receives the update, the Quota Usage Updater 40 a - 40 n dynamically creates an entry for the user ID (step 550 ).
  • Each service node ( 50 a - 50 n in FIG. 1 ) aggregates quota usage and quota usage limit information and initiates quota enforcement for a single file system, that is, for all the partitions that make up a file system.
  • Enforcement of usage quotas can be achieved with a Gateway Service node 70 a - 70 n providing the actual enforcement of the quotas, while the Quota Aggregation and Enforcement Service 19 provides the necessary notification to the Gateway Service node 70 a - 70 n to make the enforcement decision.
  • a Quota Usage System, a Quota Aggregation and Enforcement Service node, and a Gateway Service node combine to achieve quota enforcement.
  • a Quota Usage Aggregation and Enforcement service polls the CDB 18 for quota limits (step 710 ). More particularly, each Quota Aggregation and Enforcement Service node 50 a - 50 n polls the CDB 18 for quota limits pertinent to a file system for which it is gathering information. This includes quota limit information about the file system and the users that can own files in that file system. Upon receipt of this information, a Quota Aggregation and Enforcement Service node 50 a - 50 n creates a quota table, which includes quota limit information for a file system, and all users and storage classes associated with that file system for which a quota limit has been set (step 715 ).
  • a Quota Aggregation and Enforcement Service node 50 a - 50 n When a Quota Aggregation and Enforcement Service node 50 a - 50 n creates a quota table, it can periodically poll the Quota Usage Database in each partition for quota usage information (step 720 ). The Quota Usage Database sends quota information to a Quota Usage Aggregation and Enforcement Service node (step 725 ). It can then add the information it receives from the Quota Usage Database to the quota table (step 728 ). The quota table can then contain the quota limit information as well as the current quota usage information, thereby providing a snapshot of the use of resources by class for each file system and user.
  • the Quota Usage Aggregation and Enforcement Service node 50 a - 50 n checks whether a quota limit for a file system, storage class, or user is exceeded or nearly exceeded (step 730 ).
  • the quota limit can be a hard quota or a soft quota.
  • a hard quota would be a limit that cannot be exceeded under any circumstances.
  • a soft quota for example and without limitation, can be exceeded for a predefined period of time with perhaps warning messages sent to the user.
  • a soft quota is more like a policy that determines behavior when nearing the allowable use of resources.
  • a soft limit can be made up of three numbers, a soft quota storage size, a predefined time that specifies how long a user can be over the soft quota, and a hard quota.
  • the behavior of an enforcement system when a user is nearing the usage limit can be simple to elaborate depending on customer requirements. For example, once a quota limit is exceeded or nearly exceeded (step 735 ), the Quota Aggregation and Enforcement Service node 50 a - 50 n can send a notification to the Gateway Service nodes 70 a - 70 n , which can update the relevant file system. The notification can indicate that the quota limit for the file system, storage class, or user has been exceeded or is about to be exceeded (step 740 ). It should be further apparent to those skilled in the relevant art(s) that policies for handling soft or hard quotas can vary widely and still be within the spirit and scope of the invention.
  • Whether the Quota Aggregation and Enforcement Service 19 sends a notification when a limit has been exceeded or some measure before can be configurable. It should be noted that the Gateway Service node 70 a - 70 n performs the actual enforcement by rejecting or accepting a request to create or modify a file from a client.

Abstract

A system for managing computer resource usage quotas includes a distributed gateway service, a plurality of clients, an internal network, a distributed storage service a system management service, a configuration database, and a distributed metadata service. A method for managing computer resource usage quotas applied to a plurality of users of data includes the steps of defining one or more resource classes, defining at least one usage policy for the resource classes, tracking quota usage for the usage quotas in accordance with the usage policy, and enforcing quota usage for the usage quotas, and storing the data in accord with the resource class definitions. Optionally, the quota usage may be aggregated.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • The present application is related to commonly owned, co-pending U.S. application Ser. No. 09/709,187 entitled “Scalable Storage System” by David Raccah et al., filed Nov. 10, 2000; U.S. application Ser. No. 09/731,418, entitled “Symmetric Shared Storage System,” by Olaf Manczak et al., filed Dec. 5, 2000; and U.S. application Ser. No. 09/664,677, entitled “File Storage System Having Separation of Components,” by George Feinberg et al., filed Sep. 19, 2000; each commonly owned by the present assignee, the contents of each being incorporated herein by reference in their entirety.
  • FIELD OF THE INVENTION
  • The present invention relates generally to computing systems, and more particularly to a method and system that define, track, and enforce resource usage quotas based on classes.
  • BACKGROUND OF THE INVENTION
  • Computer network technology has improved the exchange of and access to information. As a result, computer use has become pervasive for both business and personal purposes. With increased use, however, has come the requirement for enterprise and co-location hosting facilities to store vast amounts of data. The increased demand for storage presents several challenges to providing a tracking and enforcement system that manages resource usage.
  • In any computing system, including distributed scalable storage systems, resources are not infinite and must be managed. Among the types of resources that must be managed, are for example and without limitation, storage resources available to system users, bandwidth, and even the number of files. Managing resources requires defining, tracking, and enforcing user quotas associated with each resource. For example, conventional quota tracking and enforcement methods for storage resources often define user quotas in physical terms, such as how much space a user is allocated in a given file system. Although these conventional storage quota management methods are useful in some respects, they fail in others. For example, they do not provide for the definition of other characteristics about a storage resource that may be useful to manage, and they do not track or enforce quotas through the use of logical groupings, also called classes, which allow for more flexibility in quota definition, tracking and enforcement.
  • Using conventional methods to manage storage quotas, the quotas are viewed in terms of physical bytes. However the cost of resources in a distributed computing system and more particularly a distributed scalable storage system is also influenced by a multitude of other factors. Therefore, traditional storage quota management methods fail to adequately define, track, and enforce usage quotas and appropriately allocate their respective costs.
  • Thus, there exists in the industry a need to provide an improved quota tracking and enforcement method and system, which apply logical groupings, that is, classes, to user quotas. More particularly, the industry needs a method, which operates in a distributed computing system, which uses classes to define usage quotas, track resource usage, and enforce the defined quotas. The method needs to be applicable throughout the distributed system wherever quotas need to be allocated for a system resource, for example and without limitation, storage quotas. In the case of storage quotas, a user may want to use classes based on quality of service attributes of the system to determine how file space will be allocated. Classes add a level of abstraction to the concept of assigning resources to users. Moreover, a specific cost for storing a file can be associated with each storage class. This means a storage class quota provides information regarding how much storage space a user is allowed to use, while a storage class identifies the cost associated with the type of space that the user can use. Additionally, the method and system should be flexible enough to allow tracking and enforcement of quotas for system attributes for example and without limitation bandwidth and number of files, and not simply those attributes that are defined on a per-directory or per-file system basis.
  • In light of the above, it would be desirable to arrive at an approach to a quota tracking and enforcement system and method that may be used to monitor and control usage quotas without some or all of the drawbacks to conventional approaches described above.
  • SUMMARY OF THE INVENTION
  • Accordingly, it is an advantage of the present invention to provide a quota management system that allows the use of classes to provide highly customizable and easy to use resource usage management.
  • Another advantage of the present invention is to provide a quota management system in variety of process models such as but not limited to, a single process, multiple processes, or as distributed processes on multiple machines.
  • A further advantage of the present invention is to provide a highly scalable quota management system that can easily be scaled to provide for the expanding needs of customers.
  • Another advantage of the invention is to provide a quota management system for allowing the definition of classes that are stored in a configuration database and can be used for resource management.
  • Another advantage of the present invention is to provide a quota management system for allowing a tracking mechanism that monitors usage quotas.
  • Another advantage of the invention is to provide quota usage tracking for gathering quota usage information for a partition of a file system.
  • Another advantage of the present invention is to provide a quota management system for allowing an enforcement mechanism for usage quotas based on classes.
  • A further advantage of the present invention is to provide a quota management system for allowing the aggregation of the quota information for all partitions of a file system.
  • In view of the foregoing advantages and others, the present invention provides a system and method for defining, tracking, and enforcing quotas based on classes. According to the disclosed embodiments, a quota usage system may include a quota usage server function, quota usage updater function, and a quota usage database that implements tracking and enforcement services. In addition, the disclosed system and method are scalable. This is in contrast to conventional approaches that include quota tracking and enforcement, but cannot provide class-based quota management or highly scalable and customizable quota management.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • These and other aspects and features of the present invention will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures, wherein:
  • FIG. 1 shows a quota usage management system as a part of a metadata service and a quota aggregation and enforcement process within a scalable storage system;
  • FIG. 2 is a flow chart of a method for management of resource usage quotas;
  • FIG. 3 is a diagram of an exemplary assignment of quality of service attributes by storage class ID;
  • FIG. 4 is a flow chart depicting a method for quota usage definition and reporting;
  • FIG. 5 is a flow chart outlining a method for quota usage tracking based on storage class;
  • FIG. 6 is a flow chart showing a method for quota usage aggregation and enforcement.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • The present invention will now be described in detail with reference to the drawings, which are provided as illustrative examples of the invention so as to enable those skilled in the art to practice the invention. Notably, the implementation of certain elements of the present invention may be accomplished using software, hardware or any combination thereof, as would be apparent to those of ordinary skill in the art, and the figures and examples below are not meant to limit the scope of the present invention. Moreover, where certain elements of the present invention can be partially or fully implemented using known components, only those portions of such known components that are necessary for an understanding of the present invention will be described, and detailed descriptions of other portions of such known components will be omitted so as not to obscure the invention. Further, the present invention encompasses present and future known equivalents to the known components referred to herein by way of illustration. The preferred embodiment of the present invention will be described herein with reference to an exemplary implementation in a distributed, highly scalable storage system. However, the present invention is not limited to this exemplary implementation, but can be practiced in any computing environment including a distributed computing environment.
  • Looking now to FIG. 1, illustrated is an exemplary distributed, highly scalable storage system 300 incorporating an exemplary quota usage tracking system 10 a-10 n in accordance with the principles of the present invention. (In general, “n” is used herein to indicate an indefinite plurality, so that the number “n” when referred to one component does not necessarily equal the number “n” of a different component. For example, the number of Gateway Service nodes 70 a-70 n does not, but may, equal the number of MDS servers 101 a-100 n in FIG. 1.) The distributed computing environment includes a plurality of clients such as an NFS client 61, CIFS client 62, HTTP client 63, FTP client 64, and SQL client 65 (collectively clients 11) capable of connecting to the data network through a load-balancing node 12. These applications are provided for purposes of illustration only, and are not limiting. Users may connect to the system through the NFS client 61, CIFS client 62, HTTP client 63, FTP client 64, or SQL client 65. Load balancing node 12 then connects to one or more Gateway Service nodes 70 a-70 n, (collectively distributed gateway service 13) which are connected to an internal network 14, for example but without limitation, a switched Internet Protocol (IP) based network. Internal network 14 includes one or more network services that provide connectivity to several distributed scalable services, for example, but without limitation a scalable distributed Metadata Service (MDS) 15, a scalable distributed Storage Service 16, a scalable System Management Service (SMS) 17, and a scalable distributed Quota Aggregation and Enforcement Service 19.
  • The distributed, scalable MDS 15, which is a component of the storage system 300, can be made up of one or more metadata partitions (84 a-84 n). A metadata partition cannot belong to more than one file system and each file system has at least one partition. It should be noted that a file system is a logical hierarchical representation (“tree”) of, for example and without limitation, files, directories, and devices on a single physical server with a specified “root”. Usage quotas apply on a file system basis and not on an individual metadata partition basis.
  • Each metadata partition (84 a-84 n) is made up of an MDS Server (101 a-101 n) and an MDS database (100 a-100 n). Each MDS Server (101 a-101 n) includes a Quota Usage Server (20 a-20 n) function and Quota Usage Updater function (40 a-40 n). Each MDS Database (100 a-100 n) includes a Quota Usage Database portion (30 a-30 n). The terms Quota Usage Server function and Quota Usage Server are equivalent and can be used interchangeably. The terms Quota Usage Updater function and Quota Usage Updater are equivalent and can be used interchangeably. The terms Quota Usage Database portion and Quota Usage Database are equivalent and can also be used interchangeably. Together, the Quota Usage Server, Quota Usage Updater, and Quota Usage Database make up the Quota Usage System 10 a-10 n. It should be noted that the Quota Usage Server, Quota Usage Updater, and Quota Usage Database can be implemented as a function within one or more processes or as individual processes while operating within the spirit and scope of the invention.
  • The distributed, scalable Storage Service 16, which is a component of the storage system 300, can be made up of storage servers 85 a-85 n and storage devices 87 a-87 n. Each storage server 85 a-85 n can include one or more storage classes 88 a-88 n. Storage classes provide a level of abstraction to quotas by assigning a collection of Quality of Service (QoS) attributes to a particular storage class. Thus, instead of quotas being viewed in terms of physical bytes, quotas can now be viewed in terms of cost. This concept of cost can also be applied to other storage characteristics, such as replicating data locally or remotely, storing data redundantly (using Redundant Arrays of Inexpensive Disks (RAID) or some other device technology), and so forth. QoS attributes can define storage device characteristics, for example and without limitation, performance (speed), reliability (redundancy), and accessibility (availability). Therefore, associated with each storage class is the cost of storing the data. The designation of storage classes is provided by way of example only and those of ordinary skill in the art will understand that numerous other resources such as network bandwidth, CPU usage, and memory usage may be designated and resource classes can be used to provide a level of abstraction to quotas by assigning a collection of resource-specific QoS to a particular resource class. Similarly, instead of quotas being viewed in terms traditional to the resource, quotas for resources can now be viewed in terms of cost. A distributed, scalable Quota Enforcement Service 19, which is an optional component of the storage system 300, can be made up of one or more Quota Aggregation and Enforcement Service nodes 50 a-50 n. Each service node aggregates quota usage and quota usage limit information, and initiates quota enforcement for a single file system, that is, for all the partitions that make up a file system.
  • FIG. 1 also shows that Gateway Service 13 communicates with the MDS 15, Storage Service 16, the SMS 17, and the Configuration Database (CDB) 18 via network 14. The SMS 17 accesses the CDB 18 as well. Within the MDS 15, the Quota Usage Server 20 a-20 n accesses Quota Usage Database 30 a-30 n. The MDS server 101 a-101 n, along with the Quota Usage Server 20 a-20 n can be a single process on one machine, multiple processes on a single machine, or multiple processes on multiple machines. In addition, one or more Gateway service nodes 70 a-70 n can access a file system and each file system can have at least one partition in the present invention.
  • Each MDS 15 manages one or more MDS partitions 84 a-84 n, but each MDS partition 84 a-84 n is associated with only one MDS 15. An MDS database 100 a-100 n for a single file system can contain data for one or more (not shown) metadata partitions 84 a-84 n. A Quota Usage System 10 a-10 n handles quota usage information 160 a-160 n, which applies to a file system as a whole rather than to metadata partitions 84 a-84 n separately. However, the quota usage information 160 a-160 n can be maintained on an individual metadata partition 84 a-84 n basis.
  • The storage system 300 is illustrated as comprising a distributed Gateway Service 13, made up of Gateway Service nodes 70 a-70 n, a distributed Storage Service 16, made up of storage servers 85 a-85 n and storage devices 87 a-87 n, and a distributed Metadata Service 15, made up of MDS servers 101 a-101 n and MDS databases 100 a-100 n, but those skilled in the relevant art(s) will understand, based on the teachings contained herein, that fewer or additional, Gateway Service nodes 70 a-70 n, storage servers 85 a-85 n, storage devices 87 a-87 n, MDS servers 101 a-101 n and MDS databases 100 a-100 n, as well as other services may be removed from, or added to the illustrated storage system and still be within the spirit and scope of the invention.
  • It should be noted that the Storage System 300 as shown in FIG. 1 includes a distributed Quota Aggregation and Enforcement Service 19. Although quota aggregation and enforcement is a valuable feature, its inclusion within a system is determined by customer requirements and the present invention is not necessarily limited by its inclusion or exclusion.
  • Looking now to FIG. 2, which is an overview of a method for managing resource usage quotas 200 according to an embodiment of the present invention (steps 210-280). The function of managing resource usage quotas (150 in FIG. 1) requires the definition of classes, definition of usage policies, application of quotas, generation of reports, and the storage of data by resource class in accordance with quota usage limits. Storage classes are provided for purposes of illustration only, and are not limiting. Classes can be defined for any type of resource for which a quota may be desirable. A class adds a level of abstraction to the concept of usage quotas and has the advantage of assigning a cost to a particular class. For example, in the context of storage, using classes to define quotas has the advantage of quotas referring to the cost of storage instead of referring to, for example, actual storage in physical bytes that are to be allocated to a user. It should be noted that when the customer configures a user for a storage system 300, the customer defines classes and defines usage policies. It should also be noted that the Quota Usage System (10 a-10 n in FIG. 1) interacts with other system components, such as the SMS (17 in FIG. 1), the Gateway Service (13 in FIG. 1), and the Storage Service (16 in FIG. 1) to implement quotas. For example, in the present invention the SMS 17 handles quota definitions that the customer defines; the SMS 17 sets quotas and stores usage quotas (150 in FIG. 1) in the CDB 18. During the class-definition phase of the management of resource usage quotas method, a customer defines the QoS attributes, which define class characteristics, for example and without limitation, performance, reliability, and accessibility, for storage classes (step 210). The QoS attributes can be very flexible and arbitrary based on customer needs. A customer can then define classes by assigning a Class Identification (ID) and QoS attributes to each defined class (step 220). The characteristics of a class depend on the QoS attributes assigned to it. As a result of defining QoS attributes (step 210) and defining classes (step 220), a cost of using that class of resource is implicitly assigned (step 235). The assignment of QoS attributes by Class ID in the present invention will be described below in more detail in connection with FIG. 3.
  • When at least one class is defined, the management of resource usage quotas method can proceed to the usage-policies-definition phase. During this phase, usage quota policies are defined for a plurality of users (step 240). A usage quota policy helps a customer to automate the quota assignment process, that is, a customer can define a usage policy that can be applied to any number of users. A policy can be defined as a set quotas of one or more storage classes. Any user defined with that policy would have the storage classes associated with the policy assigned to that user. Usage quota policies automate the quota assignment process. Instead of individually assigning quotas of various storage classes to each user individually, policies can be used to easily assign quotas to a class of users. For example, Usage Policy A can assign to each user assigned this policy 10 MB of Very Reliable Storage, 20 MB of Reliable Storage, 10 MB of Adequately Reliable Storage and 5 MB of Very Highly Reliable Storage. Usage Policy B can assign to each user assigned this policy 20 MB of Reliable Storage and 40 MB of Adequately Reliable Storage. The customer can assign Usage Policy A to Users 1-6, and Usage Policy B to Users 7-12. A customer typically configures several users and/or several user groups, that is, a class of users, and for each selected user or user group assigns selected usage quotas for each class defined in steps 210 and 220, for example and without limitation, storage class, as needed, or sets a usage policy. The SMS 17 then creates, in the CDB 18, the quota limits for each user or file system based on the configuration information, that is, specific usage quota assignment or policy, provided by a customer. Defining and reporting quotas in the present invention will be described below in more detail in connection with FIG. 4.
  • When at least one usage policy is defined, the management of resource usage quotas method can proceed to the application-of-quotas phase. This phase is done without operator intervention. During this phase, the Quota Usage system (10 a-10 n on FIG. 1), Gateway Service node (70 a-70 n in FIG. 1), SMS (17 in FIG. 1), CDB (18 in FIG. 1), and a Quota Enforcement Service (19 in FIG. 1) interact to track, aggregate, and enforce quotas.
  • When quotas are defined for a user or file system in the CDB (18 in FIG. 1), the Quota Usage System (10 a-10 n in FIG. 1) can track them (step 250). Quotas for a file system or a user may be made up of at least one number, but quotas are often a matrix of storage space, the number of nodes for each storage class, and the sum of all of these. Tracking quotas requires the Quota Usage System to update the information contained in the Quota Usage Database (30-30 n in FIG. 1) and to make it available when aggregating, enforcing, and reporting quota usage. Each partition tracks its own quota usage, but it should be noted that quotas apply per file system. Therefore, quota usages should be aggregated. Tracking quotas in the present invention will be described in more detail in connection with FIG. 5.
  • Quota usage information is maintained on an individual metadata partition basis. Aggregating quota usage information and enforcement allows quota usage information maintained by the Quota Usage System on an individual metadata partition basis to be collected together for an entire file system, that is, for all partitions that make up a file system (optional step 260). A Quota Aggregation and Enforcement Service (19 in FIG. 1) can aggregate quota usage information. Aggregating quotas in the present invention will be described in more detail in connection with FIG. 6.
  • In addition, because quotas can be defined, tracked, and enforced by file owner or an entire file system (that is, one or more metadata partitions), many different reports relating to quota usage information can be generated (step 280). The customer can customize reports and thereby has flexibility in determining the types of reports to be generated.
  • Upon successful resource class definition, usage policy definition, and usage quota application (that is, tracking, aggregating, and enforcing), data can be stored accordingly in a Storage Service 16 (made up of interconnected Storage Servers 85 a-85 n and Storage devices 87 a-87 n in FIG. 1) by resource class (88 a-88 n in FIG. 1). The resource class (88 a-88 n in FIG. 1) dictates the cost of storing data. For example, a customer can use a limited number of expensive, high-performance file servers that hold a “working set” of data, and also have a large amount of inexpensive storage (such as low-performance, inexpensive file servers, tape robots, jukeboxes with optical disks, etc.) to provide storage capacity for infrequently used data. A class can define how and at what cost the customer wants to store data. It should be noted that the migration of data from a storage device is entirely transparent and automatic (on-demand upon a request to read or write to a file, or asynchronously whenever a file is being migrated to tertiary storage). Also file data stored initially on any given Storage Server (85 a-85 n in FIG. 1) can be migrated later to any other node.
  • Looking now to FIG. 3, the exemplary assignment of QoS attributes and a Class ID to a class in the present invention will now be described. In this example, the class is a storage class and the QoS attributes relate to storage, but the invention is not so limiting. Each storage class 340 is assigned QoS attributes 341, Storage Class ID (SCID) 342 and implicitly a storage cost. The QoS attributes 341 can include individual file, individual directory, and/or distributed computing system characteristics such as performance, reliability, availability, latency, and so forth. These however, are provided by way of example only and those of ordinary skill in the art will understand that numerous other attributes relating to other ways to describe data storage performance of the class may be designated. Each storage class 340, for example, an adequately reliable class, a reliable class, a very reliable class, a highly reliable class, and a very highly reliable class can each be assigned a particular set of values for each of the QoS attributes 341 as defined for that storage class. For example, storage class “reliable”, assigned Storage Class ID (SCID) 2, has an implicit storage cost of 2×$. The collection of quality of service attributes 141 assigned to the “reliable” storage class include: performance of 1000 file creations/sec., reliability of RAID1, availability of 1, latency of 20 msec., and bandwidth of 10 Mbps.
  • Looking now to FIG. 4, defining and reporting usage quota policies for users or a file system in the present invention will now be described. When a customer configures users for a system, for example and without limitation a storage system, the customer assigns a quota for each class to each user (or file system) or sets a usage policy. To make such an assignment, the customer must add a file owner by assigning an ID to each file owner (step 410), configure a file owner for the system (step 420), and must assign a usage quota for each file owner based on system capabilities and customer requirements (step 430). When a customer assigns quotas to users or file systems, this information is reported to SMS 17, which handles the processing of the quota definitions. The SMS 17 creates storage class usage quota limits based on the customer-assigned quotas (step 440) and stores them in the CDB 18 (step 450). The SMS 17 then contacts the Quota Usage Server 20 a-20 n to retrieve current quota usage information 160 a-160 n (step 460). With this information the SMS 17 can update the information stored in the CDB 18 and generate a usage report. The Quota Usage Server retrieves the information from the Quota Usage Database 30 a-30 n (step 470), and returns the updated quota usage information 160 a-160 n to the SMS 17 (step 480). The SMS 17 can then include the updated current usage information in a usage report (step 490). It should be noted that the generated report is based on customer requirements.
  • Looking now to FIG. 5, a method for quota usage tracking is shown. A Gateway Service node 70 a-70 n receives a request to create, delete, or modify a file (collectively, a file modification request), for example and without limitation a request to modify the file length (step 510). The Gateway Service node 70 a-70 n then reads the metadata for the file (step 515) from the MDS 15, or alternatively, from its own cache. The Gateway Service node 70 a-70 n can check whether it has received a quota limit exceeded notification for a particular file system or user from the Quota Aggregation and Enforcement Service 19 (step 520). The presence or absence of a notification depends on usage tracking set by a customer. If a notification is not present, the Gateway Service node continues by executing the relevant user request (step 535). If a notification is present for the particular file system or user, the Gateway Service node 70 a-70 n sends a rejection in response to the relevant user request and discontinues processing it (step 530). If processing is continued from step 525, the Gateway Service node 70 a-70 n can send a metadata update, in this example, a change to the file size, to the MDS 15 (step 535). The MDS Server (101 a-101 n in FIG. 1) updates the record in the MDS Database (100 a-100 n in FIG. 1) for the file contained in the update request and updates the corresponding usage information for the owner identified in the metadata update request (step 540). More particularly, a Quota Usage Updater (40 a-40 n in FIG. 1) of the MDS Server synchronously updates the quota usage information (160 a-160 n in FIG. 1) stored in the Quota Usage Database (30 a-30 n in FIG. 1) of the MDS Database (100 a-100 n in FIG. 1) (step 545). The Quota Usage Updater 40 a-40 n updates the stored quota usage information (160 a-160 n in FIG. 1) using the owner ID. The update, which is based on the update sent from a Gateway Service node, can include file owner (in the case of owner change), file storage class, and file size changes, if any. It should be noted that if the user ID contained in the update does not exist in the Quota Usage Database (30 a-30 n in FIG. 1) when the Quota Usage Updater 40 a-40 n receives the update, the Quota Usage Updater 40 a-40 n dynamically creates an entry for the user ID (step 550).
  • Referring now to FIG. 6, a method for quota usage aggregation and enforcement is shown. Each service node (50 a-50 n in FIG. 1) aggregates quota usage and quota usage limit information and initiates quota enforcement for a single file system, that is, for all the partitions that make up a file system. Enforcement of usage quotas can be achieved with a Gateway Service node 70 a-70 n providing the actual enforcement of the quotas, while the Quota Aggregation and Enforcement Service 19 provides the necessary notification to the Gateway Service node 70 a-70 n to make the enforcement decision. Thus, a Quota Usage System, a Quota Aggregation and Enforcement Service node, and a Gateway Service node combine to achieve quota enforcement.
  • To gather quota limit information, a Quota Usage Aggregation and Enforcement service polls the CDB 18 for quota limits (step 710). More particularly, each Quota Aggregation and Enforcement Service node 50 a-50 n polls the CDB 18 for quota limits pertinent to a file system for which it is gathering information. This includes quota limit information about the file system and the users that can own files in that file system. Upon receipt of this information, a Quota Aggregation and Enforcement Service node 50 a-50 n creates a quota table, which includes quota limit information for a file system, and all users and storage classes associated with that file system for which a quota limit has been set (step 715). Storage classes are defined per user and per file system. When a Quota Aggregation and Enforcement Service node 50 a-50 n creates a quota table, it can periodically poll the Quota Usage Database in each partition for quota usage information (step 720). The Quota Usage Database sends quota information to a Quota Usage Aggregation and Enforcement Service node (step 725). It can then add the information it receives from the Quota Usage Database to the quota table (step 728). The quota table can then contain the quota limit information as well as the current quota usage information, thereby providing a snapshot of the use of resources by class for each file system and user. The Quota Usage Aggregation and Enforcement Service node 50 a-50 n checks whether a quota limit for a file system, storage class, or user is exceeded or nearly exceeded (step 730). The quota limit can be a hard quota or a soft quota. A hard quota would be a limit that cannot be exceeded under any circumstances. A soft quota, for example and without limitation, can be exceeded for a predefined period of time with perhaps warning messages sent to the user. A soft quota is more like a policy that determines behavior when nearing the allowable use of resources. For example and without limitation, a soft limit can be made up of three numbers, a soft quota storage size, a predefined time that specifies how long a user can be over the soft quota, and a hard quota. The behavior of an enforcement system when a user is nearing the usage limit can be simple to elaborate depending on customer requirements. For example, once a quota limit is exceeded or nearly exceeded (step 735), the Quota Aggregation and Enforcement Service node 50 a-50 n can send a notification to the Gateway Service nodes 70 a-70 n, which can update the relevant file system. The notification can indicate that the quota limit for the file system, storage class, or user has been exceeded or is about to be exceeded (step 740). It should be further apparent to those skilled in the relevant art(s) that policies for handling soft or hard quotas can vary widely and still be within the spirit and scope of the invention.
  • Whether the Quota Aggregation and Enforcement Service 19 sends a notification when a limit has been exceeded or some measure before can be configurable. It should be noted that the Gateway Service node 70 a-70 n performs the actual enforcement by rejecting or accepting a request to create or modify a file from a client.
  • Although the present invention has been particularly described with reference to the preferred embodiments thereof, it should be readily apparent to those of ordinary skill in the art that changes and modifications in the form and details may be made without departing from the spirit and scope of the invention. It is intended that the appended claims include such changes and modifications. It should be further apparent to those skilled in the art that the various embodiments are not necessarily exclusive, but that features of some embodiments may be combined with features of other embodiments while remaining with the spirit and scope of the invention.

Claims (20)

1-13. (canceled)
14. A method for managing the cost of utilization of computer resources, said method comprising the steps of:
a) defining classes of computer resources based on quality of service attributes the classes having assigned costs;
b) defining computer resource usage policies based on said class definitions;
c) managing the cost of utilization of the computer resources by using the computer resources according to said usage policies; and
d) controlling usage of the computer resources by particular users based on the assigned costs and usage policies.
15. The method as defined in claim 14 wherein said quality of service attributes are selected from a group including resource performance, resource reliability, resource availability, resource latency, and resource bandwidth.
16. The method as defined in claim 14 wherein said step a) further includes assigning each class an identification designator.
17. The method as defined in claim 14 wherein said step b) further includes the step of assigning usage quotas to each of said defined classes.
18. The system as defined in claim 17 wherein said usage quotas are hard quotas.
19. The method as defined in claim 17 wherein said usage quotas are soft quotas.
20. A method for managing computer resources, comprising the steps of:
a) defining classes of persistent computer resources, said classes having assigned costs;
b) defining computer resource usage policies;
c) applying said usage policies to said classes;
d) generating reports on the usage of said classes; and
e) controlling usage of said persistent computer resources by particular individuals according to said defined classes in accordance with said computer resource usage policies and assigned costs.
21. (canceled)
22. The method as defined in claim 20 wherein said step a) further includes:
i) defining quality of service attributes.
23. The method as defined in claim 22 wherein said service attributes are selected from a group including resource performance resource reliability, resource availability, resource latency, and resource bandwidth.
24. The method as defined in claim 23 wherein each class is assigned a class identification.
25. The method as defined in claim 20 wherein said step b) further includes:
i) assigning usage quotas to said defined classes.
26. The method as defined in claim 25 wherein said step c) further includes:
i) tracking, aggregating, and enforcing said usage quotas.
27. The method as defined in claim 25 wherein said quotas are hard quotas.
28. The method as defined in claim 27 wherein said hard quotas cannot be exceeded under any circumstances.
29. The method as defined in claim 25 wherein said quotas are soft quotas.
30. The method as defined in claim 29 wherein said soft quotas may be exceeded for a predetermined period of time.
31. The method as defined in claim 26 wherein said enforcement includes sending notification when a usage quota has been exceeded.
32. The method as defined in claim 31 further including rejecting or accepting a request to use a computer resource when a quota has been exceeded.
US11/008,489 2001-05-10 2004-12-08 System and method for managing usage quotas Abandoned US20050138162A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/008,489 US20050138162A1 (en) 2001-05-10 2004-12-08 System and method for managing usage quotas

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/852,516 US6832248B1 (en) 2001-05-10 2001-05-10 System and method for managing usage quotas
US11/008,489 US20050138162A1 (en) 2001-05-10 2004-12-08 System and method for managing usage quotas

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/852,516 Continuation US6832248B1 (en) 2001-05-10 2001-05-10 System and method for managing usage quotas

Publications (1)

Publication Number Publication Date
US20050138162A1 true US20050138162A1 (en) 2005-06-23

Family

ID=33491101

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/852,516 Expired - Fee Related US6832248B1 (en) 2001-05-10 2001-05-10 System and method for managing usage quotas
US11/008,489 Abandoned US20050138162A1 (en) 2001-05-10 2004-12-08 System and method for managing usage quotas

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/852,516 Expired - Fee Related US6832248B1 (en) 2001-05-10 2001-05-10 System and method for managing usage quotas

Country Status (1)

Country Link
US (2) US6832248B1 (en)

Cited By (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050193128A1 (en) * 2004-02-26 2005-09-01 Dawson Colin S. Apparatus, system, and method for data access management
US20050278441A1 (en) * 2004-06-15 2005-12-15 International Business Machines Corporation Coordinating use of independent external resources within requesting grid environments
US20060048157A1 (en) * 2004-05-18 2006-03-02 International Business Machines Corporation Dynamic grid job distribution from any resource within a grid environment
US20060059492A1 (en) * 2004-09-14 2006-03-16 International Business Machines Corporation Determining a capacity of a grid environment to handle a required workload for a virtual grid job request
US20060149652A1 (en) * 2005-01-06 2006-07-06 Fellenstein Craig W Receiving bid requests and pricing bid responses for potential grid job submissions within a grid environment
US20060149714A1 (en) * 2005-01-06 2006-07-06 Fellenstein Craig W Automated management of software images for efficient resource node building within a grid environment
US20060150190A1 (en) * 2005-01-06 2006-07-06 Gusler Carl P Setting operation based resource utilization thresholds for resource use by a process
US20060150158A1 (en) * 2005-01-06 2006-07-06 Fellenstein Craig W Facilitating overall grid environment management by monitoring and distributing grid activity
US20060149576A1 (en) * 2005-01-06 2006-07-06 Ernest Leslie M Managing compliance with service level agreements in a grid environment
US20070162480A1 (en) * 2006-01-10 2007-07-12 Kabushiki Kaisha Toshiba System and method for monitoring consumables in a document processing environment
US20080222025A1 (en) * 2005-01-12 2008-09-11 International Business Machines Corporation Automatically distributing a bid request for a grid job to multiple grid providers and analyzing responses to select a winning grid provider
US20080256228A1 (en) * 2004-01-13 2008-10-16 International Business Machines Corporation Minimizing complex decisions to allocate additional resources to a job submitted to a grid environment
US20080307250A1 (en) * 2005-01-12 2008-12-11 International Business Machines Corporation Managing network errors communicated in a message transaction with error information using a troubleshooting agent
US20090013222A1 (en) * 2004-01-14 2009-01-08 International Business Machines Corporation Managing analysis of a degraded service in a grid environment
US20090132703A1 (en) * 2005-01-06 2009-05-21 International Business Machines Corporation Verifying resource functionality before use by a grid job submitted to a grid environment
US20090138594A1 (en) * 2005-01-06 2009-05-28 International Business Machines Corporation Coordinating the monitoring, management, and prediction of unintended changes within a grid environment
US20090240547A1 (en) * 2005-01-12 2009-09-24 International Business Machines Corporation Automating responses by grid providers to bid requests indicating criteria for a grid job
US20090276470A1 (en) * 2008-05-05 2009-11-05 Vijayarajan Rajesh Data Processing System And Method
US7685129B1 (en) * 2004-06-18 2010-03-23 Emc Corporation Dynamic data set migration
US20100100949A1 (en) * 2007-07-06 2010-04-22 Abhilash Vijay Sonwane Identity and policy-based network security and management system and method
US7707288B2 (en) 2005-01-06 2010-04-27 International Business Machines Corporation Automatically building a locally managed virtual node grouping to handle a grid job requiring a degree of resource parallelism within a grid environment
US7743038B1 (en) * 2005-08-24 2010-06-22 Lsi Corporation Inode based policy identifiers in a filing system
US20100229218A1 (en) * 2009-03-05 2010-09-09 Microsoft Corporation Quota management for network services
US7921133B2 (en) 2004-06-10 2011-04-05 International Business Machines Corporation Query meaning determination through a grid service
US8136118B2 (en) 2004-01-14 2012-03-13 International Business Machines Corporation Maintaining application operations within a suboptimal grid environment
US20120079134A1 (en) * 2010-09-23 2012-03-29 Microsoft Corporation Providing virtual networks using multi-tenant relays
US20120117235A1 (en) * 2009-08-18 2012-05-10 Telefonaktiebolaget L M Ericsson (Publ) Method, Apparatus and Computer Program for Enforcing Policy Across Associated Sessions Taking Into Account a Total Usage Quota for Associated User
US8275881B2 (en) 2004-01-13 2012-09-25 International Business Machines Corporation Managing escalating resource needs within a grid environment
US20130007267A1 (en) * 2007-03-02 2013-01-03 Pegasystems Inc. Proactive Performance Management for Multi-User Enterprise Software Systems
US8396757B2 (en) 2005-01-12 2013-03-12 International Business Machines Corporation Estimating future grid job costs by classifying grid jobs and storing results of processing grid job microcosms
US8775601B2 (en) 2011-06-29 2014-07-08 International Business Machines Corporation Managing organizational computing resources in accordance with computing environment entitlement contracts
US8812679B2 (en) 2011-06-29 2014-08-19 International Business Machines Corporation Managing computing environment entitlement contracts and associated resources using cohorting
US8880487B1 (en) 2011-02-18 2014-11-04 Pegasystems Inc. Systems and methods for distributed rules processing
US8924335B1 (en) 2006-03-30 2014-12-30 Pegasystems Inc. Rule-based user interface conformance methods
US20150033224A1 (en) * 2013-07-24 2015-01-29 Netapp, Inc. Method and system for presenting and managing storage shares
US8959480B2 (en) 2004-05-26 2015-02-17 Pegasystems Inc. Methods and apparatus for integration of declarative rule-based processing with procedural programming in a digital data-processing environment
US9195936B1 (en) 2011-12-30 2015-11-24 Pegasystems Inc. System and method for updating or modifying an application without manual coding
US9495651B2 (en) 2011-06-29 2016-11-15 International Business Machines Corporation Cohort manipulation and optimization
US9678719B1 (en) 2009-03-30 2017-06-13 Pegasystems Inc. System and software for creation and modification of software
US9760917B2 (en) 2011-06-29 2017-09-12 International Business Machines Corporation Migrating computing environment entitlement contracts between a seller and a buyer
US10467200B1 (en) 2009-03-12 2019-11-05 Pegasystems, Inc. Techniques for dynamic data processing
US10469396B2 (en) 2014-10-10 2019-11-05 Pegasystems, Inc. Event processing with enhanced throughput
US10609032B2 (en) 2017-12-07 2020-03-31 International Business Machines Corporation Enforcing compute equity models in distributed blockchain
CN111181791A (en) * 2019-12-31 2020-05-19 浪潮电子信息产业股份有限公司 Quota management method, device, equipment and storage medium
US10678598B2 (en) 2017-12-07 2020-06-09 International Business Machines Corporation Enforcing compute equity models in distributed blockchain
US10698647B2 (en) 2016-07-11 2020-06-30 Pegasystems Inc. Selective sharing for collaborative application usage
US10698599B2 (en) 2016-06-03 2020-06-30 Pegasystems, Inc. Connecting graphical shapes using gestures
US11048488B2 (en) 2018-08-14 2021-06-29 Pegasystems, Inc. Software code optimizer and method
US11057225B2 (en) 2017-12-07 2021-07-06 International Business Machines Corporation Enforcing compute equity models in distributed blockchain
US11567945B1 (en) 2020-08-27 2023-01-31 Pegasystems Inc. Customized digital content generation systems and methods

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7096469B1 (en) * 2000-10-02 2006-08-22 International Business Machines Corporation Method and apparatus for enforcing capacity limitations in a logically partitioned system
GB2377051B (en) * 2001-06-30 2005-06-15 Hewlett Packard Co Monitoring applicance for data storage arrays and a method of monitoring usage
US7412492B1 (en) * 2001-09-12 2008-08-12 Vmware, Inc. Proportional share resource allocation with reduction of unproductive resource consumption
US7568033B2 (en) * 2001-10-12 2009-07-28 Fujifilm Corporation Image storage system and image accumulation apparatus
US7406473B1 (en) * 2002-01-30 2008-07-29 Red Hat, Inc. Distributed file system using disk servers, lock servers and file servers
US7325017B2 (en) * 2003-09-24 2008-01-29 Swsoft Holdings, Ltd. Method of implementation of data storage quota
US7328225B1 (en) * 2002-03-27 2008-02-05 Swsoft Holdings, Ltd. System, method and computer program product for multi-level file-sharing by concurrent users
JP3956786B2 (en) * 2002-07-09 2007-08-08 株式会社日立製作所 Storage device bandwidth control apparatus, method, and program
US20040267827A1 (en) * 2003-06-30 2004-12-30 International Business Machines Corporation Method, apparatus, and program for maintaining quota information within a file system
US7493650B2 (en) * 2003-07-01 2009-02-17 Portauthority Technologies Inc. Apparatus and method for ensuring compliance with a distribution policy
US8261037B2 (en) * 2003-07-11 2012-09-04 Ca, Inc. Storage self-healing and capacity planning system and method
JP2005038071A (en) * 2003-07-17 2005-02-10 Hitachi Ltd Management method for optimizing storage capacity
US7958097B1 (en) * 2003-09-24 2011-06-07 Parallels Holdings, Ltd. Method and system for implementation of data storage quota
US7509589B2 (en) * 2003-09-30 2009-03-24 Hewlett-Packard Development Company, L.P. Storage domain GUI
US7177883B2 (en) * 2004-07-15 2007-02-13 Hitachi, Ltd. Method and apparatus for hierarchical storage management based on data value and user interest
US20060041587A1 (en) * 2004-08-18 2006-02-23 International Business Machines Corporation Disk quota management with limits classes
US7716275B1 (en) * 2004-08-31 2010-05-11 Symantec Operating Corporation Method and system for implementing shared quotas
US7567986B2 (en) * 2004-10-07 2009-07-28 Microsoft Corporation Method and system for limiting resource usage of a version store
US7421560B2 (en) * 2004-11-30 2008-09-02 Microsoft Corporation Method and system of computing quota usage
US20070027941A1 (en) * 2005-07-27 2007-02-01 International Business Machines Corporation System, method, and service for enforcing resource utilization in a distributed system
US7434011B2 (en) * 2005-08-16 2008-10-07 International Business Machines Corporation Apparatus, system, and method for modifying data storage configuration
US7716180B2 (en) 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
US7797395B1 (en) 2006-01-19 2010-09-14 Sprint Communications Company L.P. Assignment of data flows to storage systems in a data storage infrastructure for a communication network
US7801973B1 (en) 2006-01-19 2010-09-21 Sprint Communications Company L.P. Classification of information in data flows in a data storage infrastructure for a communication network
US7480734B1 (en) * 2006-01-19 2009-01-20 Sprint Communications Company L.P. Class of service analysis for data flows in a data storage infrastructure for a communication network
US7752437B1 (en) * 2006-01-19 2010-07-06 Sprint Communications Company L.P. Classification of data in data flows in a data storage infrastructure for a communication network
US7788302B1 (en) 2006-01-19 2010-08-31 Sprint Communications Company L.P. Interactive display of a data storage infrastructure for a communication network
US7895295B1 (en) 2006-01-19 2011-02-22 Sprint Communications Company L.P. Scoring data flow characteristics to assign data flows to storage systems in a data storage infrastructure for a communication network
US8510429B1 (en) 2006-01-19 2013-08-13 Sprint Communications Company L.P. Inventory modeling in a data storage infrastructure for a communication network
US8972876B2 (en) * 2006-05-26 2015-03-03 Sugarcrm Inc. Customer relationship management system and method
US7660884B2 (en) * 2006-11-10 2010-02-09 International Business Machines Corporation Apparatus, system, and method for generating a resource utilization description for a parallel data processing system
US8819203B1 (en) * 2007-09-28 2014-08-26 Emc Corporation Techniques for providing an application service to an application from an appliance-style application services platform
US8694622B2 (en) * 2007-10-04 2014-04-08 Microsoft Corporation Monitoring and controlling network communications
US8281012B2 (en) * 2008-01-30 2012-10-02 International Business Machines Corporation Managing parallel data processing jobs in grid environments
US8320246B2 (en) * 2009-02-19 2012-11-27 Bridgewater Systems Corp. Adaptive window size for network fair usage controls
US8577329B2 (en) 2009-05-04 2013-11-05 Bridgewater Systems Corp. System and methods for carrier-centric mobile device data communications cost monitoring and control
US9203629B2 (en) 2009-05-04 2015-12-01 Bridgewater Systems Corp. System and methods for user-centric mobile device-based data communications cost monitoring and control
US8935702B2 (en) * 2009-09-04 2015-01-13 International Business Machines Corporation Resource optimization for parallel data integration
US8578119B2 (en) * 2009-11-16 2013-11-05 Symantec Corporation File system quota and reservation
US8321569B2 (en) * 2009-12-17 2012-11-27 International Business Machines Corporation Server resource allocation
JPWO2011077489A1 (en) * 2009-12-24 2013-05-02 株式会社日立製作所 Storage system that provides virtual volumes
US20130339598A1 (en) * 2012-06-14 2013-12-19 Quantum Corpoaration Intelligent Active Vault Operation
CN104111800B (en) 2013-04-18 2018-02-23 阿里巴巴集团控股有限公司 The I/O port dispatching method and its dispatching device of a kind of virtual disk
US9558226B2 (en) * 2014-02-17 2017-01-31 International Business Machines Corporation Storage quota management
US9524302B2 (en) * 2014-03-05 2016-12-20 Scality, S.A. Distributed consistent database implementation within an object store
US10248682B2 (en) 2015-02-20 2019-04-02 Scality, S.A. Object storage system capable of performing snapshots, branches and locking
WO2017116262A1 (en) * 2015-12-29 2017-07-06 Ringcentral, Inc., (A Delaware Corporation) System and method for estimating distributed consumption of a quota
US10277529B2 (en) * 2016-03-21 2019-04-30 Microsoft Technology Licensing, Llc Visualization of computer resource quotas
US10558389B2 (en) * 2016-09-20 2020-02-11 International Business Machines Corporation Per-storage class quality of service (QoS) management within a distributed storage network (DSN) where the DSN stores data using dispersed storage error decoding/encoding
CN109144689B (en) * 2018-06-29 2023-06-06 华为云计算技术有限公司 Task scheduling method, device and computer program product
US11126351B2 (en) * 2020-01-09 2021-09-21 Salesforce.Com, Inc. Policy-based management of disk storage for consumer storge buckets
US20210326275A1 (en) * 2020-04-15 2021-10-21 EMC IP Holding Company LLC Dynamic bandwidth allocation of storage system ports
CN115617747B (en) * 2022-12-16 2023-03-28 新华三信息技术有限公司 File storage method, device and equipment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020018481A1 (en) * 2000-07-27 2002-02-14 Orckit Communications Ltd. Resource reservation in a ring network
US20020147733A1 (en) * 2001-04-06 2002-10-10 Hewlett-Packard Company Quota management in client side data storage back-up
US6842783B1 (en) * 2000-02-18 2005-01-11 International Business Machines Corporation System and method for enforcing communications bandwidth based service level agreements to plurality of customers hosted on a clustered web server
US6857025B1 (en) * 2000-04-05 2005-02-15 International Business Machines Corporation Highly scalable system and method of regulating internet traffic to server farm to support (min,max) bandwidth usage-based service level agreements

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6581092B1 (en) * 1999-09-29 2003-06-17 Ricoh Co., Ltd. Method and system for remote diagnostic, control and information collection based on various communication modes for sending messages to users
US5581703A (en) * 1993-06-29 1996-12-03 International Business Machines Corporation Method and apparatus for reserving system resources to assure quality of service
US5713013A (en) * 1996-01-25 1998-01-27 Apple Computer, Inc. System for establishing and enforcing maximum size of directory by preventing the size of the directory from exceeding the set quota size of the directory
US5819047A (en) * 1996-08-30 1998-10-06 At&T Corp Method for controlling resource usage by network identities
US5958009A (en) * 1997-02-27 1999-09-28 Hewlett-Packard Company System and method for efficiently monitoring quality of service in a distributed processing environment
FI972739A0 (en) * 1997-06-25 1997-06-25 Ericsson Telefon Ab L M Foerfarande och system Foer komunikation
US6086618A (en) * 1998-01-26 2000-07-11 Microsoft Corporation Method and computer program product for estimating total resource usage requirements of a server application in a hypothetical user configuration
AU6255199A (en) * 1998-09-17 2000-04-17 Tod Mcnamara System and method for network flow optimization using traffic classes
US6286052B1 (en) * 1998-12-04 2001-09-04 Cisco Technology, Inc. Method and apparatus for identifying network data traffic flows and for applying quality of service treatments to the flows
US6466980B1 (en) * 1999-06-17 2002-10-15 International Business Machines Corporation System and method for capacity shaping in an internet environment
US6516350B1 (en) * 1999-06-17 2003-02-04 International Business Machines Corporation Self-regulated resource management of distributed computer resources
US6463454B1 (en) * 1999-06-17 2002-10-08 International Business Machines Corporation System and method for integrated load distribution and resource management on internet environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6842783B1 (en) * 2000-02-18 2005-01-11 International Business Machines Corporation System and method for enforcing communications bandwidth based service level agreements to plurality of customers hosted on a clustered web server
US6857025B1 (en) * 2000-04-05 2005-02-15 International Business Machines Corporation Highly scalable system and method of regulating internet traffic to server farm to support (min,max) bandwidth usage-based service level agreements
US20020018481A1 (en) * 2000-07-27 2002-02-14 Orckit Communications Ltd. Resource reservation in a ring network
US20020147733A1 (en) * 2001-04-06 2002-10-10 Hewlett-Packard Company Quota management in client side data storage back-up

Cited By (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8387058B2 (en) 2004-01-13 2013-02-26 International Business Machines Corporation Minimizing complex decisions to allocate additional resources to a job submitted to a grid environment
US8275881B2 (en) 2004-01-13 2012-09-25 International Business Machines Corporation Managing escalating resource needs within a grid environment
US20080256228A1 (en) * 2004-01-13 2008-10-16 International Business Machines Corporation Minimizing complex decisions to allocate additional resources to a job submitted to a grid environment
US7734679B2 (en) 2004-01-14 2010-06-08 International Business Machines Corporation Managing analysis of a degraded service in a grid environment
US8136118B2 (en) 2004-01-14 2012-03-13 International Business Machines Corporation Maintaining application operations within a suboptimal grid environment
US20090013222A1 (en) * 2004-01-14 2009-01-08 International Business Machines Corporation Managing analysis of a degraded service in a grid environment
US7533181B2 (en) * 2004-02-26 2009-05-12 International Business Machines Corporation Apparatus, system, and method for data access management
US20050193128A1 (en) * 2004-02-26 2005-09-01 Dawson Colin S. Apparatus, system, and method for data access management
US20060048157A1 (en) * 2004-05-18 2006-03-02 International Business Machines Corporation Dynamic grid job distribution from any resource within a grid environment
US8959480B2 (en) 2004-05-26 2015-02-17 Pegasystems Inc. Methods and apparatus for integration of declarative rule-based processing with procedural programming in a digital data-processing environment
US7921133B2 (en) 2004-06-10 2011-04-05 International Business Machines Corporation Query meaning determination through a grid service
US7584274B2 (en) 2004-06-15 2009-09-01 International Business Machines Corporation Coordinating use of independent external resources within requesting grid environments
US20050278441A1 (en) * 2004-06-15 2005-12-15 International Business Machines Corporation Coordinating use of independent external resources within requesting grid environments
US7685129B1 (en) * 2004-06-18 2010-03-23 Emc Corporation Dynamic data set migration
US7712100B2 (en) 2004-09-14 2010-05-04 International Business Machines Corporation Determining a capacity of a grid environment to handle a required workload for a virtual grid job request
US20060059492A1 (en) * 2004-09-14 2006-03-16 International Business Machines Corporation Determining a capacity of a grid environment to handle a required workload for a virtual grid job request
US20060149714A1 (en) * 2005-01-06 2006-07-06 Fellenstein Craig W Automated management of software images for efficient resource node building within a grid environment
US7668741B2 (en) 2005-01-06 2010-02-23 International Business Machines Corporation Managing compliance with service level agreements in a grid environment
US20090138594A1 (en) * 2005-01-06 2009-05-28 International Business Machines Corporation Coordinating the monitoring, management, and prediction of unintended changes within a grid environment
US20060149652A1 (en) * 2005-01-06 2006-07-06 Fellenstein Craig W Receiving bid requests and pricing bid responses for potential grid job submissions within a grid environment
US8583650B2 (en) 2005-01-06 2013-11-12 International Business Machines Corporation Automated management of software images for efficient resource node building within a grid environment
US7743142B2 (en) * 2005-01-06 2010-06-22 International Business Machines Corporation Verifying resource functionality before use by a grid job submitted to a grid environment
US7793308B2 (en) * 2005-01-06 2010-09-07 International Business Machines Corporation Setting operation based resource utilization thresholds for resource use by a process
US20090132703A1 (en) * 2005-01-06 2009-05-21 International Business Machines Corporation Verifying resource functionality before use by a grid job submitted to a grid environment
US20060150190A1 (en) * 2005-01-06 2006-07-06 Gusler Carl P Setting operation based resource utilization thresholds for resource use by a process
US7788375B2 (en) 2005-01-06 2010-08-31 International Business Machines Corporation Coordinating the monitoring, management, and prediction of unintended changes within a grid environment
US7707288B2 (en) 2005-01-06 2010-04-27 International Business Machines Corporation Automatically building a locally managed virtual node grouping to handle a grid job requiring a degree of resource parallelism within a grid environment
US20060150158A1 (en) * 2005-01-06 2006-07-06 Fellenstein Craig W Facilitating overall grid environment management by monitoring and distributing grid activity
US20060149576A1 (en) * 2005-01-06 2006-07-06 Ernest Leslie M Managing compliance with service level agreements in a grid environment
US7761557B2 (en) 2005-01-06 2010-07-20 International Business Machines Corporation Facilitating overall grid environment management by monitoring and distributing grid activity
US8346591B2 (en) 2005-01-12 2013-01-01 International Business Machines Corporation Automating responses by grid providers to bid requests indicating criteria for a grid job
US20080307250A1 (en) * 2005-01-12 2008-12-11 International Business Machines Corporation Managing network errors communicated in a message transaction with error information using a troubleshooting agent
US7739155B2 (en) 2005-01-12 2010-06-15 International Business Machines Corporation Automatically distributing a bid request for a grid job to multiple grid providers and analyzing responses to select a winning grid provider
US7664844B2 (en) 2005-01-12 2010-02-16 International Business Machines Corporation Managing network errors communicated in a message transaction with error information using a troubleshooting agent
US20080222025A1 (en) * 2005-01-12 2008-09-11 International Business Machines Corporation Automatically distributing a bid request for a grid job to multiple grid providers and analyzing responses to select a winning grid provider
US8396757B2 (en) 2005-01-12 2013-03-12 International Business Machines Corporation Estimating future grid job costs by classifying grid jobs and storing results of processing grid job microcosms
US20090240547A1 (en) * 2005-01-12 2009-09-24 International Business Machines Corporation Automating responses by grid providers to bid requests indicating criteria for a grid job
US20080222024A1 (en) * 2005-01-12 2008-09-11 International Business Machines Corporation Automatically distributing a bid request for a grid job to multiple grid providers and analyzing responses to select a winning grid provider
US20080306866A1 (en) * 2005-01-12 2008-12-11 International Business Machines Corporation Automatically distributing a bid request for a grid job to multiple grid providers and analyzing responses to select a winning grid provider
US7743038B1 (en) * 2005-08-24 2010-06-22 Lsi Corporation Inode based policy identifiers in a filing system
US20070162480A1 (en) * 2006-01-10 2007-07-12 Kabushiki Kaisha Toshiba System and method for monitoring consumables in a document processing environment
US8924335B1 (en) 2006-03-30 2014-12-30 Pegasystems Inc. Rule-based user interface conformance methods
US10838569B2 (en) 2006-03-30 2020-11-17 Pegasystems Inc. Method and apparatus for user interface non-conformance detection and correction
US9658735B2 (en) 2006-03-30 2017-05-23 Pegasystems Inc. Methods and apparatus for user interface optimization
US20130007267A1 (en) * 2007-03-02 2013-01-03 Pegasystems Inc. Proactive Performance Management for Multi-User Enterprise Software Systems
US9189361B2 (en) * 2007-03-02 2015-11-17 Pegasystems Inc. Proactive performance management for multi-user enterprise software systems
US8984620B2 (en) * 2007-07-06 2015-03-17 Cyberoam Technologies Pvt. Ltd. Identity and policy-based network security and management system and method
US20100100949A1 (en) * 2007-07-06 2010-04-22 Abhilash Vijay Sonwane Identity and policy-based network security and management system and method
US20090276470A1 (en) * 2008-05-05 2009-11-05 Vijayarajan Rajesh Data Processing System And Method
US20100229218A1 (en) * 2009-03-05 2010-09-09 Microsoft Corporation Quota management for network services
US10467200B1 (en) 2009-03-12 2019-11-05 Pegasystems, Inc. Techniques for dynamic data processing
US9678719B1 (en) 2009-03-30 2017-06-13 Pegasystems Inc. System and software for creation and modification of software
US8452872B2 (en) * 2009-08-18 2013-05-28 Telefonaktiebolaget Lm Ericsson (Publ) Method, apparatus and computer program for enforcing policy across associated sessions taking into account a total usage quota for associated user
US20120117235A1 (en) * 2009-08-18 2012-05-10 Telefonaktiebolaget L M Ericsson (Publ) Method, Apparatus and Computer Program for Enforcing Policy Across Associated Sessions Taking Into Account a Total Usage Quota for Associated User
US8935427B2 (en) * 2010-09-23 2015-01-13 Microsoft Corporation Providing virtual networks using multi-tenant relays
US20120079134A1 (en) * 2010-09-23 2012-03-29 Microsoft Corporation Providing virtual networks using multi-tenant relays
US8880487B1 (en) 2011-02-18 2014-11-04 Pegasystems Inc. Systems and methods for distributed rules processing
US9270743B2 (en) 2011-02-18 2016-02-23 Pegasystems Inc. Systems and methods for distributed rules processing
US8819240B2 (en) 2011-06-29 2014-08-26 International Business Machines Corporation Managing computing environment entitlement contracts and associated resources using cohorting
US10769687B2 (en) 2011-06-29 2020-09-08 International Business Machines Corporation Migrating computing environment entitlement contracts between a seller and a buyer
US9495651B2 (en) 2011-06-29 2016-11-15 International Business Machines Corporation Cohort manipulation and optimization
US8775601B2 (en) 2011-06-29 2014-07-08 International Business Machines Corporation Managing organizational computing resources in accordance with computing environment entitlement contracts
US9659267B2 (en) 2011-06-29 2017-05-23 International Business Machines Corporation Cohort cost analysis and workload migration
US8775593B2 (en) 2011-06-29 2014-07-08 International Business Machines Corporation Managing organizational computing resources in accordance with computing environment entitlement contracts
US8812679B2 (en) 2011-06-29 2014-08-19 International Business Machines Corporation Managing computing environment entitlement contracts and associated resources using cohorting
US9760917B2 (en) 2011-06-29 2017-09-12 International Business Machines Corporation Migrating computing environment entitlement contracts between a seller and a buyer
US10572236B2 (en) 2011-12-30 2020-02-25 Pegasystems, Inc. System and method for updating or modifying an application without manual coding
US9195936B1 (en) 2011-12-30 2015-11-24 Pegasystems Inc. System and method for updating or modifying an application without manual coding
US9507614B2 (en) * 2013-07-24 2016-11-29 Netapp, Inc. Method and system for presenting and managing storage shares
US20150033224A1 (en) * 2013-07-24 2015-01-29 Netapp, Inc. Method and system for presenting and managing storage shares
US10469396B2 (en) 2014-10-10 2019-11-05 Pegasystems, Inc. Event processing with enhanced throughput
US11057313B2 (en) 2014-10-10 2021-07-06 Pegasystems Inc. Event processing with enhanced throughput
US10698599B2 (en) 2016-06-03 2020-06-30 Pegasystems, Inc. Connecting graphical shapes using gestures
US10698647B2 (en) 2016-07-11 2020-06-30 Pegasystems Inc. Selective sharing for collaborative application usage
US10678598B2 (en) 2017-12-07 2020-06-09 International Business Machines Corporation Enforcing compute equity models in distributed blockchain
US10609032B2 (en) 2017-12-07 2020-03-31 International Business Machines Corporation Enforcing compute equity models in distributed blockchain
US11057225B2 (en) 2017-12-07 2021-07-06 International Business Machines Corporation Enforcing compute equity models in distributed blockchain
US11048488B2 (en) 2018-08-14 2021-06-29 Pegasystems, Inc. Software code optimizer and method
CN111181791A (en) * 2019-12-31 2020-05-19 浪潮电子信息产业股份有限公司 Quota management method, device, equipment and storage medium
US11567945B1 (en) 2020-08-27 2023-01-31 Pegasystems Inc. Customized digital content generation systems and methods

Also Published As

Publication number Publication date
US6832248B1 (en) 2004-12-14

Similar Documents

Publication Publication Date Title
US6832248B1 (en) System and method for managing usage quotas
KR100974149B1 (en) Methods, systems and programs for maintaining a namespace of filesets accessible to clients over a network
US10579272B2 (en) Workload aware storage platform
US7962609B2 (en) Adaptive storage block data distribution
US20020194340A1 (en) Enterprise storage resource management system
US7171459B2 (en) Method and apparatus for handling policies in an enterprise
JP5160408B2 (en) Method, system, and computer program for selecting a resource manager to satisfy a service request
US20080243867A1 (en) Reliable and scalable multi-tenant asynchronous processing
US20070136308A1 (en) Accumulating access frequency and file attributes for supporting policy based storage management
US20060294045A1 (en) Control of service workload management
US20070078914A1 (en) Method, apparatus and program storage device for providing a centralized policy based preallocation in a distributed file system
US20020052980A1 (en) Method and apparatus for event handling in an enterprise
JP2008537816A5 (en)
EP1906347A1 (en) Object-based service oriented architecture method, apparatus and media
US20050071596A1 (en) Method, apparatus and program storage device for providing automatic performance optimization of virtualized storage allocation within a network of storage elements
US10579597B1 (en) Data-tiering service with multiple cold tier quality of service levels
US10855556B2 (en) Methods for facilitating adaptive quality of service in storage networks and devices thereof
WO2007041456A2 (en) Accumulating access frequency and file attributes for supporting policy based storage management
US20050193021A1 (en) Method and apparatus for unified storage of data for storage area network systems and network attached storage systems
JP3598522B2 (en) Distributed database management device
US11714566B2 (en) Customizable progressive data-tiering service
US11256440B2 (en) Method and distributed storage system for aggregating statistics
KR101901266B1 (en) System and method for parallel file transfer between file storage clusters
US20040216131A1 (en) Management apparatus
TW201643755A (en) Storage system having node with light weight container

Legal Events

Date Code Title Description
AS Assignment

Owner name: HERCULES TECHNOLOGY GROWTH CAPITAL, INC., CALIFORN

Free format text: SECURITY AGREEMENT;ASSIGNOR:AGAMI SYSTEMS, INC.;REEL/FRAME:021050/0675

Effective date: 20080530

AS Assignment

Owner name: STILES, DAVID, CALIFORNIA

Free format text: SECURITY AGREEMENT;ASSIGNOR:HERCULES TECHNOLOGY GROWTH CAPITAL, INC.;REEL/FRAME:021328/0080

Effective date: 20080801

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION