LFS-SETQUOTA(1)

πŸ“¦ version 2.17.58, in ubuntu stonking

πŸ’… LFS-SETQUOTA(1) β€” bestie edition ✨

okay so this is lfs setquota, and honestly? it's the girl who decides who gets how much space and how much patience. it lives in the Lustre User Utilities family, and we're gonna go through literally every single flag together, no skips, no cap. 🫢


🌸 NAME 🌸

lfs-setquota β€” sets quota limits or grace time for users, groups or projects. that's the whole vibe. ✨


🌈 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

like, six whole shapes this command can take. it's giving versatile. πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

lfs setquota {-u|-g|-p} ... πŸ‘‘

this one sets the filesystem quotas for the specified user, group, or project ID respectively. pick your target, hand over an ID, done. πŸ’–

BIG IMPORTANT THING, bestie, listen up: quota limits should be configured large enough so that every single OST and MDT in the filesystem can allocate multiple of the minimum block and inode units. if you set those limits too low, applications may see EDQUOT (quota exceeded) errors before they can even use a meaningful portion of their assigned quota β€” and that's purely because of fragmentation of the quota units across multiple targets. so sad, so avoidable. 😭

also: quota block limit enforcement is not strict, especially with cached writes. so minimum quota limits are recommended to be GiB in size, to make sure the limit enforcement error is not a significant fraction of the quota itself. periodt. ⭐

lfs setquota {-U|-G|-P} ... πŸŽ€

sets the filesystem default limits for the user, group, or project quota type. and the slay part? if you set it, users/groups/projects without specific quota limits will just automatically use the default quota limits. automatic. iconic. ✨

lfs setquota --default ... 🧚

switches the specified user, group, or project ID over to using the default quota limits instead of whatever explicitly specified limits they had. and such an ID inherits new default quota limits if those defaults get changed later. it's a whole inheritance situation. πŸ’œ

lfs setquota --delete ... πŸ’€

deletes the unused user, group, or project ID from the quota database so that it is no longer reported. bye girl, you're not on the list anymore. πŸ‘‹

lfs setquota --reset πŸ”₯

recalculates 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. it's the "have you tried turning it off and on again" of quota land. 🌈

lfs setquota --times ... ⏰

sets the filesystem quota grace time for all users, groups, or projects, for the block and inode limits. the whole point? letting users exceed the quota limit for a short time so they can finish their work β€” without having to grant each user a bigger quota limit. generous queen energy. πŸ‘‘


✨ OPTIONS ✨

  • -b, --block-softlimit BLOCK_SOFTLIMIT β€” specifies the block softlimit. zero means unlimited. block limits unit is kilobyte (1024) by default, and block limits are always kilobyte-granular (yes, even if specified in bytes). you can slap a K, M, G, T, P, or E suffix on it to specify units of 2^10, 2^20, 2^30, 2^40, 2^50 and 2^60 bytes respectively. πŸ’…
  • -B, --block-hardlimit BLOCK_HARDLIMIT β€” specifies the block hardlimit. zero means unlimited. the block hardlimit should be greater than the block softlimit if it is being specified. no funny business. πŸ™…
  • -b, --block-grace {notify|BLOCK_GRACE_TIME} β€” specifies grace time for block quota in seconds, when used with the --times option. 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 β€” deletes the unused user, group, or project ID limit from the quota database. πŸ—‘οΈ
  • -D, --default β€” sets the specified user/group/project ID to use the default quota limits. πŸ’–
  • -g, --group GROUPNAME|GID β€” sets group quota for name GROUPNAME or numeric GID. πŸ‘―
  • -G, --default-grp β€” sets the default group quota limit. 🌸
  • -h, --help β€” prints the usage message. your friendly little helper bestie. πŸ™ˆ
  • -i, --inode-softlimit INODE_SOFTLIMIT β€” specifies the inode softlimit. zero means unlimited. it is recommended to specify inode limits in multiples of 1024. ✨
  • -I, --inode-hardlimit INODE_HARDLIMIT β€” specifies the inode hardlimit. zero means unlimited. the inode hardlimit should be greater than the inode softlimit when it's being specified. πŸ’…
  • -i, --inode-grace {notify|INODE_GRACE_TIME} β€” specifies grace time for inode quota in seconds, when used with the --times option. see the --block-grace-time option for a detailed description of the INODE_GRACE_TIME argument. 🧚
  • -p, --projid PROJECT_NAME|PROJID β€” sets project quota for PROJECT_NAME (from the /etc/projid(5) file) or the numeric PROJID. πŸŽ€
  • -P, --default-prj β€” sets the default project quota limit. 🌈
  • --pool POOL_NAME β€” sets quota per OST pool POOL_NAME. 🏊
  • -r, --reset β€” resets 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 β€” sets quota grace times. ⏰
  • -u, --user USERNAME|UID β€” sets user quota for USERNAME or numeric UID. πŸ‘‘
  • -U, --default-usr β€” sets the default user quota limit. ⭐

πŸ’œ EXAMPLES πŸ’œ

set quotas of user bob: 8 TiB block hardlimit and 6 TiB block softlimit:

# lfs setquota -u bob --block-softlimit 6T --block-hardlimit 8T /mnt/lustre

set quotas of user bob to use default quota setting:

# lfs setquota -u bob --default /mnt/lustre

set system default user quota 64 GiB block softlimit and 80 GiB block hardlimit:

# lfs setquota -U --block-softlimit 64G --block-hardlimit 80G /mnt/lustre

set grace times for user quotas: 36000 seconds for block quotas, 1 week and 4 days for inode quotas:

# lfs setquota -t -u --block-grace 36000 --inode-grace 1w4d /mnt/lustre

set hard block limit 1 TiB for user 'ivan' per pool 'flash_pool':

# lfs setquota -u ivan --pool flash_pool -B 1T /mnt/lustre

set grace time 10000 seconds for block quotas per pool 'flash_pool':

# lfs setquota -t -u --block-grace 10000 --pool flash_pool /mnt/lustre

delete unused user 'jack':

# lfs setquota -u jack --delete /mnt/lustre

reset the quota usage for user 'chad' that is having problems:

# lfs setquota -u chad -r /mnt/lustre

πŸŽ€ AVAILABILITY πŸŽ€

the lfs setquota command is part of the lustre(7) filesystem package since release 1.5.0. she's been around, she's got history, she ate. πŸ’…


πŸ‘‘ SEE ALSO πŸ‘‘


and that's the whole page, bestie!! 🫢 this one came from Lustre, dated 2026-03-19, and it's the LFS-SETQUOTA(1) girlie herself. go forth and quota responsibly, no cap. βœ¨πŸŽ€πŸŒΈπŸ’–πŸ¦‹β­

πŸ“¦ where this page comes from