Manage quotas using the CLI

Manage directory, user, and group quotas for your filesystems using the WEKA CLI.

Using the CLI, you can:

Set default quota

Command: weka fs quota set-default

Sets the default quota for the specified path. The default quota is automatically applied when new instances of the selected quota type are created under that path. For example, when a new subdirectory is created (directory type), or when a new user or group starts consuming space in the filesystem (user or group type).

Before using this command, ensure that a mount point to the relevant filesystem is set.

weka fs quota set-default <path> [--type type] [--soft soft] [--hard hard] [--grace grace] [--owner owner]

Parameters

Name
Value

path*

Path to the directory to set the quota. Required for directory quota only. The relevant filesystem must be mounted when setting the quota.

type

Quota type.

Possible values: directory, user, or group Default: directory

soft

Soft quota limit. Exceeding this number is displayed as an exceeded quota, but it is not enforced until the grace period is over. The capacity can be in decimal or binary units. Format: 1GB, 1TB, 1GiB, 1TiB, unlimited Default: unlimited

hard

Hard quota limit. Exceeding this number does not allow more writes before clearing some space in the directory. The capacity can be in decimal or binary units. Format: 1GB, 1TB, 1GiB, 1TiB, unlimited Default: unlimited

grace

Specify the grace period before the soft limit is treated as a hard limit. Format: 1d, 1w, unlimited Default: unlimited

owner

A unique string identifying the directory owner (can be a name, email, slack ID, and so on.) This owner is shown in the quota report and can be notified upon exceeding the quota. Supports up to 48 characters.

  • To set advisory only quotas, use a soft quota limit without setting a grace period.

  • When hard and soft quotas exist, setting the value of one of them to 0 clears this quota.

Set and display default user and group quotas

Set a default user quota

A default user quota is automatically applied to any new user who starts consuming space in the filesystem. Use the following command to set it:

Example: Set a default 90 GB soft limit and a 100 GB hard limit for all new users writing to /mnt/default:

Set a default group quota

A default group quota is automatically applied to any new group that starts consuming space in the filesystem. Use the following command to set it:

Example: Set a default 450 GB soft limit and a 500 GB hard limit for all new groups writing to /mnt/default:

Display default user quotas

Use the following command to list all default user quotas:

To list default user quotas for a specific filesystem:

Display default group quotas

Use the following command to list all default group quotas:

To list default group quotas for a specific filesystem:

Set quota

Command: weka fs quota set

Before setting a quota, check which scenario applies:

  • Directory quota: A Data Services container is required to run the QUOTA_COLORING background task.

  • User or group quota on filesystems created in WEKA 5.1.20 or later: User quota accounting is enabled automatically. No Data Services container is required.

  • User or group quota on filesystems created before WEKA 5.1.20: Run weka fs quota enable-users before setting the quota. A Data Services container is required for this one-time operation.

Related topic

Set up a Data Services container for background tasks.

Use the following command to set a quota:

weka fs quota set <path> [--type type] [--id id] [--soft soft] [--hard hard] [--grace grace] [--owner owner] [--filesystem filesystem] [--snap-name snap-name] [--color color]

Parameters

Name
Value

path*

Path to the directory to set the quota. Required for directory quota only. The relevant filesystem must be mounted when setting the quota.

type

Quota type.

Possible values: directory, user, or group Default: directory

id

The UID or GID the quota applies to. Required when type is user or group.

soft

Soft quota limit. Exceeding this number is displayed as an exceeded quota, but it is not enforced until the grace period is over. The capacity can be in decimal or binary units. Format: 1GB, 1TB, 1GiB, 1TiB, unlimited Default: unlimited

hard

Hard quota limit. Exceeding this number does not allow more writes before clearing some space in the directory. The capacity can be in decimal or binary units. Format: 1GB, 1TB, 1GiB, 1TiB, unlimited Default: unlimited

grace

Specify the grace period before the soft limit is treated as a hard limit. Format: 1d, 1w, unlimited Default: unlimited

owner

A unique string identifying the directory owner (can be a name, email, slack ID, and so on.) This owner will be shown in the quota report and can be notified upon exceeding the quota. Supports up to 48 characters.

filesystem

Specifies the target filesystem for applying the quota. This parameter only applies for user or group quota. Use this parameter when the quota must be enforced outside of a mount point, or in cases where the POSIX user does not have direct access to the directory through a mounted path. For requirement details, see Guidelines for quota management.

snap-name

Name of the writable snapshot. Use this parameter to set a quota outside the mount point.

Set and display user and group quotas

Set a user quota

Use the following command to set a quota for a specific user:

Example: Set a 90 GB soft limit and a 100 GB hard limit for user ID 1001 on the filesystem default:

Set a group quota

Use the following command to set a quota for a specific group:

Example: Set a 450 GB soft limit and a 500 GB hard limit for group ID 2001 on the filesystem default:

Display user quotas

Use the following command to list all user quotas across all filesystems:

To list user quotas for a specific filesystem:

By default, only quotas that exceed their limits are displayed. Use --all to display all user quotas, including those within their limits.

Display group quotas

Use the following command to list all group quotas across all filesystems:

To list group quotas for a specific filesystem:

Enable or disable user quota accounting

Command: weka fs quota enable-users / weka fs quota disable-users

User quota accounting applies to both user quotas and group quotas.

  • Filesystems created in WEKA 5.1.20 or later: User quota accounting is enabled automatically. User and group quotas can be set immediately.

  • Filesystems created before WEKA 5.1.20: Enable user quota accounting before setting user or group quotas. Run the following command:

This triggers a one-time background QUOTA_COLORING task that stamps existing objects with UID quota identifiers. A Data Services container must be running on the cluster for this operation to complete.

There is no fallback mode for this operation. If no Data Services container is available, the command does not complete.

Per-user and per-group quota limits can be set after accounting is enabled.

To disable user quota accounting, run the following command:

Only a Data Services container is required to enable user quota accounting on an existing filesystem. A frontend container on the backend server is not required for this operation.

Parameters

Name
Value

filesystem*

Filesystem name.

snap-name

Name of the writable snapshot.

List quotas or default quotas

Command: weka fs quota list / weka fs quota list-default

Use the following command to list the quotas (by default, only exceeding quotas are listed):

weka fs quota list [filesystem] [--snap-name snap-name] [--type type] [--path path] [--under under] [--over over] [--quick] [--all]

Parameters

Name
Value

filesystem

Filesystem name. Use this parameter to display a quota report only on the specified filesystem. Default: All filesystems

snap-name

Displays the quota report from the time of the snapshot. It must be a valid snapshot name and be given along with the corresponding filesystem.

type

Quota type.

Possible values: directory, user, or group Default: directory

path

Path to a directory. Shows quota report only on the specified directory. The relevant filesystem must be mounted in the server running the query.

under

A path to a directory under a wekafs mount. The relevant filesystem must be mounted in the server running the query.

over

Shows only quotas over this percentage of usage. Possible values: 0-100

quick

Do not resolve inode to a path. Provides quicker results if the report contains many entries. Default: False

all

Shows all the quotas, not just the exceeding ones. Default: False

Use the following command to list the directory default quotas:

weka fs quota list-default [filesystem] [--snap-name snap-name] [--type type] [--path path]

Parameters

Name
Value

filesystem

Filesystem name. Use this parameter to display the default quotas only on the specified filesystem. Default: All filesystems

snap-name

Displays the default quotas from the time of the snapshot. It must be a valid snapshot name and specified along with the corresponding fs-name.

type

Quota type.

Possible values: directory, user, or group Default: directory

path

Path to a directory. Shows the default quotas report only on the specified directory. The relevant filesystem must be mounted in the server running the query.

Unset default quota

Command: weka fs quota unset-default

Use the following command to unset a default quota of a directory:

weka fs quota unset-default <path> [--type type] [--filesystem filesystem] [--snap-name snap-name]

Parameters

Name
Value

path*

Path to the directory to set the quota. The relevant filesystem must be mounted when setting the quota.

type

Quota type.

Possible values: directory, user, or group

filesystem

Filesystem name. Required for user or group types.

snap-name

Name of the writable snapshot. Only applies to user or group types.

Reset quota

Command: weka fs quota reset

Use the following command to reset a quota:

weka fs quota reset [path] [--type type] [--id id] [--generation generation] [--filesystem filesystem] [--snap-name snap-name]

Parameters

Name
Value

path*

Path to the directory to unset the quota. The relevant filesystem must be mounted when setting the quota.

type

Quota type.

Possible values: directory, user, or group

id

The UID or GID the quota applies to. Required when type is user or group.

generation

The generation of the directory quota to remove. Applies to directory quotas only. If omitted, the current generation is used.

filesystem

Filesystem name. Required for user or group types.

snap-name

Name of the writable snapshot to remove if exists. Only applies to user or group types.

Last updated