Overview of Quotas

Prev Next

Quotas let you manage cluster capacity usage. The quota mechanism limits the amount of storage capacity that can be used by one or more directories and, more granularly, by particular users or groups within that directories.

Quota Limits

Quota limits can enforce the following restrictions:

  • Amount of storage capacity used by a certain directory.

  • Number of files and directories (or objects) created in a certain directory.
    When limiting the number of files and directories, a file with multiple hardlinks is counted only once.

You can define soft limits and hard limits. When a soft limit is configured, you can also set a grace period.

  • Reaching a soft limit triggers the SOFT_EXCEEDED alarm but does not block further writes to the directory.
    If a grace period is set and the directory continues to exceed a soft limit for the entire grace period, an additional GRACE_EXPIRED alarm is triggered and further writes to the directory are blocked.
    If the grace period is not set, write to the directory are only blocked when a hard limit is reached. 

  • When a hard limit is reached, the HARD_EXCEEDED alarm is raised, and further writes to the directory are blocked.

Directory Quotas

Directory quotas are defined per directory to limit the capacity that can be used by the directory, and/or to set the maximum allowed number of files or directories that can be created under the directory.

Quotas can be nested up to three levels deep for any path. For example, if there are quotas already defined for directories /a/b, /a/b/c and /a/b/c/d, a quota could not be created for /a/b/c/d/e as this would result in nesting four levels deep. Likewise, a quota could not be created for /a, as it would result in nesting four levels deep of /a/b/c/d. However, quotas could be created at /a/b/c/e or /a/b/f as these would not exceed nesting three levels deep.

The quota applies to the entire directory, including all subdirectories. If a quota configured on a subdirectory is bigger than the quota on its parent directory, the more restrictive quota applies.

Directory Quota Accounting

Quota capacity usage is counted according to the bytes used by every file and not according to the logical file size.

Many operating systems support sparse files, which are files that are allocated disk space only for the used bytes and not for the empty bytes in the file. The logical file size can be much larger than the allocated space taken by the file. VAST Cluster is aware of sparse files and does not count the empty bytes in a sparse file as quota capacity. For example, a sparse file whose logical file size is 500GB but only 64MB were written to it, uses only 64MB of quota capacity.

User Quotas and Group Quotas

User quotas and group quotas are defined per user or group of users to allow for more granular control on usage of the directory for which a directory quota exists.

User and group quotas limit the amount of capacity that individual users or groups can use within the directory, and/or to set a maximum allowed number of files and directories (or objects) to be created by the user or group.

User/group quotas can be created when you create a directory quota, or added to a directory quota later.

User Quota Accounting

Users querying directory capacity from a client protocol see the capacity in terms of the directory quota. In other words, for example, when nothing has yet been written to the directory, then regardless of user quota, user running the df command from Linux should return the entire directory quota even if the user quota is smaller.

Files owned by a user count towards the user's quota usage.

Files are counted towards a group quota if the file is owned by the group owner.

User quotas are updated when owning groups or users are changed on affected files and directories.

User quota accounting recognizes all supported client protocols.

Quota Groups

NOTE: Quota groups are available starting with VAST Cluster 5.3.5.

You can create a quota group (a group of directory quota) and configure quota group limits that will apply to directories of all directory quotas included in the quota group. Limits defined at the quota group level apply to the set of member directories as a whole (not to each individual directory).

Limits that can be set per quota group include soft and hard limits on capacity usage and on the number of files and directories, as well as the grace period. In addition, a quota group can enforce raising VMS alarms on reaching a limit, and also querying providers for user email addresses.

Quota group limits are imposed in addition to and on top of the limits imposed by its member quotas. The most restrictive limit applies.

For example, for a quota group that imposes a quota group limit of 100GB and includes 5 member quotas:

  • The directories of the member quotas cannot consume more than 100GB in total.

  • If a directory is limited to 5GB by a member quota, the directory cannot be larger than 5GB.

  • If a member quota is 120GB, the directory cannot be larger than 100GB.

The following rules and limitations apply when using group quotas:

  • A quota can be added to up to 4 quota groups.

  • Nesting of quota groups is not allowed.

  • Changes in quota group membership can only be done by overwriting the entire list of member quotas. It's not possible to append an existing quota group, or to remove a quota from a quota group.

  • Grouping of user quotas is not supported.

Quota Group Accounting

A quota group aggregates capacity usage of its member directory quotas. For example, for a quota group containing quota A and quota B, where the quota A directory holds 8TB and the quota B directory holds 16TB, the capacity usage of the group quota is reported as 24TB.

Enabling or Disabling Quota Alarms

You can determine whether the cluster raises VMS alarms when users or groups exceed their quota limits. This setting is made per quota and is by default enabled.

When the cluster is configured to raise alarms for a certain quota, the following event alarms are raised:

  • An alarm for a threshold event that is used to monitor the number of users exceeding their quotas. According to the default event definition, an alarm of major severity is raised when one or more users exceed their user quota limits. The alarm notification reports the number of users that exceeded their quotas.

  • An alarm for a threshold event that is used to monitor the number of users that are blocked from writing to the quota. According to the default event definition, an alarm of critical severity is raised when one or more users is blocked from writing to the quota.

Remote Quota Protocol (rquota) Support

VAST Cluster lets users track their quota consumption using the Remote Quota Protocol (rquota). rquota is supported for NFSv3.

For each rquota request made for a certain user ID and path, VAST Cluster returns the current quota limits (amount of storage, number of files) and actual consumption values.

Requirements and limitations are as follows:

  • rquota v1 is supported.

  • VAST Cluster responds to GETQUOTA requests. SETQUOTA requests are not supported.

  • Quota information can be provided for active users only.

  • Information about group quotas is not provided.