The XFS quota subsystem manages limits on disk space (blocks) and file (inode) usage. XFS quotas control or report on usage of these items on a user, group, or directory or project level. Also, note that while user, group, and directory or project quotas are enabled independently, group and project quotas are mutually exclusive.
When managing on a per-directory or per-project basis, XFS manages the disk usage of directory hierarchies associated with a specific project. In doing so, XFS recognizes cross-organizational “group” boundaries between projects. This provides a level of control that is broader than what is available when managing quotas for users or groups.
XFS quotas are enabled at mount time, with specific mount options. Each mount option can also be specified as
noenforce; this will allow usage reporting without enforcing any limits. Valid quota mount options are:
uqnoenforce– User quotas
gqnoenforce– Group quotas
pqnoenforce– Project quota
Once quotas are enabled, the
xfs_quotatool can be used to set limits and report on disk usage. By default,
xfs_quotais run interactively, and in basic mode. Basic mode sub-commands simply report usage, and are available to all users. Basic
- quota username/userID
Show usage and limits for the given
Shows free and used counts for blocks and inodes.
xfs_quotaalso has an expert mode. The sub-commands of this mode allow actual configuration of limits, and are available only to users with elevated privileges. To use expert mode sub-commands interactively, run
xfs_quota -x. Expert mode sub-commands include:
- report /path
Reports quota information for a specific file system.
Modify quota limits.
For a complete list of sub-commands for either basic or expert mode, use the sub-command
All sub-commands can also be run directly from a command line using the
-xfor expert sub-commands.
Example – Display a sample quota report
For example, to display a sample quota report for
/dev/blockdevice), use the command
xfs_quota -x -c 'report -h' /home. This will display output similar to the following:
User quota on /home (/dev/blockdevice) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 00 [------] testuser 103.4G 0 0 00 [------] ...
To set a soft and hard inode count limit of 500 and 700 respectively for user
john(whose home directory is
/home/john), use the following command:
xfs_quota -x -c 'limit isoft=500 ihard=700 john' /home/
In this case, pass mount_point which is the mounted xfs file system.
By default, the
limitsub-command recognizes targets as users. When configuring the limits for a group, use the
-goption (as in the previous example). Similarly, use
Soft and hard block limits can also be configured using
Example – Set a soft and hard block limit
For example, to set a soft and hard block limit of 1000m and 1200m, respectively, to group
/target/pathfile system, use the following command:
xfs_quota -x -c 'limit -g bsoft=1000m bhard=1200m accounting' /target/path
bhardcount by the byte.
While real-time blocks (
rtbsoft) are described in
man xfs_quotaas valid units when setting quotas, the real-time sub-volume is not enabled in this release. As such, the
rtbsoftoptions are not applicable.
Setting Project Limits
Before configuring limits for project-controlled directories, add them first to
/etc/projects. Project names can be added to
/etc/projectidto map project IDs to project names. Once a project is added to
/etc/projects, initialize its project directory using the following command:
xfs_quota -x -c 'project -s projectname' project_path
Quotas for projects with initialized directories can then be configured, with:
xfs_quota -x -c 'limit -p bsoft=1000m bhard=1200m projectname'
Generic quota configuration tools (
edquotafor example) may also be used to manipulate XFS quotas. However, these tools cannot be used with XFS project quotas.
Red Hat recommends the use of
xfs_quotaover all other available tools.
For more information about setting XFS quotas, refer to
man projid(5), and