LFS-SETQUOTA(1)

NAME
lfs-setquota - set quota limits or grace time for users, groups or projects.

SYNOPSIS

lfs setquota {-u|--user|-g|--group|-p|--projid} ID
    [--pool POOL_NAME] [-b|--block-softlimit BLOCK_SOFTLIMIT[KMGTPE]]
    [-B|--block-hardlimit BLOCK_HARDLIMIT[KMGTPE]]
    [-i|--inode-softlimit INODE_SOFTLIMIT[KMGTPE]]
    [-I|--inode-hardlimit INODE_HARDLIMIT[KMGTPE]] MOUNT_POINT

lfs setquota {-U|--default-usr | -G|--default-grp | -P|--default-prj}
    [--pool POOL_NAME] [-b|--block-softlimit BLOCK_SOFTLIMIT[KMGTPE]]
    [-B|--block-hardlimit BLOCK_HARDLIMIT[KMGTPE]]
    [-i|--inode-softlimit INODE_SOFTLIMIT[KMGTPE]]
    [-I|--inode-hardlimit INODE_HARDLIMIT[KMGTPE]] MOUNT_POINT

lfs setquota {-D|--default}
    {-u|--user | -g|--group | -p|--projid} [--pool POOL_NAME] ID MOUNT_POINT

lfs setquota --delete
    {-u|--user | -g|--group | -p|--projid} ID MOUNT_POINT

lfs setquota {-t|--times} {-u|-g|-p} [--pool
    POOL_NAME] [-b|--block-grace BLOCK_GRACE_TIME]
    [-i|--inode-grace INODE_GRACE_TIME] MOUNT_POINT

lfs setquota --reset {-u|--user|-g|--group|-p|--projid}
    ID MOUNT_POINT

Note: Quota enforcement is not strict, especially with cached writes. Set limits accordingly.

DESCRIPTION

lfs setquota {-u|-g|-p} ...
    Command sets the filesystem quotas for the specified user, group, or project ID respectively.

Quota limits should be configured large enough so that each OST and MDT in the filesystem can allocate multiple of the minimum block and inode units. If the limits are set too low, applications may see EDQUOT (quota exceeded) errors before they can use a meaningful portion of their assigned quota due to fragmentation of the quota units across multiple targets.

Quota block limit enforcement is not strict, especially with cached writes, and as such minimum quota limits are recommended to be GiB in size to ensure the limit enforcement error is not a significant fraction of the quota itself.

lfs setquota {-U|-G|-P} ...
    Set the filesystem default limits for user, group, project quota type. If set, users/groups/projects without specific quota limits will use the default quota limits automatically.

lfs setquota --default ...
    Change the specified user, group, or project ID to use the default quota limits instead of explicitly specified limits. Such ID inherits new default quota limits, if they are changed.

lfs setquota --delete ...
    Delete the unused user, group, or project ID from the quota database so that it is no longer reported.

lfs setquota --reset
    Recalculate the quota accounting for the specified user, group, or project ID in case of inconsistencies in the aggregate quota stored in the main quota database.

lfs setquota --times ...
    Set the filesystem quota grace time for all users, groups, or projects for the block and inode limits. This is intended to allow users to exceed the quota limit for a short time to complete their work without having to grant each user a larger quota limit.

OPTIONS

-b|--block-softlimit BLOCK_SOFTLIMIT
    Specify block softlimit, zero means unlimited. Block limits unit is kilobyte (1024) by default, and block limits are always kilobyte-granular (even if specified in bytes). Block limits can be specified with a K, M, G, T, P, or E suffix to specify units of 2^10, 2^20, 2^30, 2^40, 2^50 and 2^60 bytes respectively.

-B|--block-hardlimit BLOCK_HARDLIMIT
    Specify block hardlimit, zero means unlimited. The block hardlimit should be greater than the block softlimit if it is being specified.

-b|--block-grace {notify|BLOCK_GRACE_TIME}
    Specify grace time for block quota in seconds, when used with --times option. The BLOCK_GRACE_TIME is a global value that can take two forms:

    BLOCK_GRACE_TIME
        indicates the time in seconds that the soft quota limit can be exceeded before users are prevented from creating new files or consuming more space. This is intended to allow users to exceed the quota limit for a short time to complete their work without having to grant each user a larger quota limit.

    notify
        informs users that are exceeding their soft quota limit ('*' in the quota output) that they are nearing their hard quota limit, but does not block new writes until the hard quota limit is reached. The soft quota state is reset once the user, group, or project reduces their space usage or file count below the soft quota limit. Grace time is specified in "XXwXXdXXhXXmXXs" format or as an integer seconds value. The maximum is 2^48 - 1 seconds.

--delete
    Delete the unused user, group, or project ID limit from the quota database.

-D|--default
    Set the specified user/group/project ID to use the default quota limits.

-g|--group GROUPNAME|GID
    Set group quota for name GROUPNAME or numeric GID.

-G|--default-grp
    Set default group quota limit.

-h|--help
    Print usage message.

-i|--inode-softlimit INODE_SOFTLIMIT
    Specify inode softlimit, zero means unlimited. It is recommended to specify inode limits in multiples of 1024.

-I|--inode-hardlimit INODE_HARDLIMIT
    Specify inode hardlimit, zero means unlimited. The inode hardlimit should be greater than inode softlimit when it's being specified.

-i|--inode-grace {notify|INODE_GRACE_TIME}
    Specify grace time for inode quota in seconds, when used with --times option. See the --block-grace-time option for a detailed description of the INODE_GRACE_TIME argument.

-p|--projid PROJECT_NAME|PROJID
    Set project quota for PROJECT_NAME (from the /etc/projid(5) file) or the numeric PROJID.

-P|--default-prj
    Set default project quota limit.

--pool POOL_NAME
    Set quota per OST pool POOL_NAME.

-r|--reset
    Reset the internal quota data of the user|group|project quota. It can be used to fix quota in an inconsistent database (such as quota grant).

-t|--times
    Set quota grace times.

-u|--user USERNAME|UID
    Set user quota for USERNAME or numeric UID.

-U|--default-usr
    Set default user quota limit.

EXAMPLES

$ lfs setquota -u bob --block-softlimit 6T --block-hardlimit 8T /mnt/lustre
    Set quotas of user `bob': 8 TiB block hardlimit and 6 TiB block softlimit

$ lfs setquota -u bob --default /mnt/lustre
    Set quotas of user `bob' to use default quota setting

$ lfs setquota -U --block-softlimit 64G --block-hardlimit 80G /mnt/lustre
    Set system default user quota: 64 GiB block softlimit and 80 GiB block hardlimit

$ lfs setquota -t -u --block-grace 36000 --inode-grace 1w4d /mnt/lustre
    Set grace times for user quotas: 36000 seconds for block quotas, 1 week and 4 days for inode quotas

$ lfs setquota -u ivan --pool flash_pool -B 1T /mnt/lustre
    Set hard block limit 1 TiB for user 'ivan' per pool 'flash_pool'

$ lfs setquota -t -u --block-grace 10000 --pool flash_pool /mnt/lustre
    Set grace time 10000 seconds for block quotas per pool 'flash_pool'

$ lfs setquota -u jack --delete /mnt/lustre
    Delete unused user 'jack'.

$ lfs setquota -u chad -r /mnt/lustre
    Reset the quota usage for user 'chad' that is having problems.

SEE ALSO
lfs(1), lfs-quota(1)