9.3. Limiting Disk Usage
9.3.1. Setting Disk Usage Limits
If your system requires that a certain amount of space remains free in order to achieve a certain level of performance, you may need to limit the amount of space that Red Hat Gluster Storage consumes on a volume or directory.
Use the following command to limit the total allowed size of a directory, or the total amount of space to be consumed on a volume.
# gluster volume quota VOLNAME limit-usage path hard_limit
For example, to limit the size of the
/dir
directory on the data
volume to 100 GB, run the following command:
# gluster volume quota data limit-usage /dir 100GB
This prevents the
/dir
directory and all files and directories underneath it from containing more than 100 GB of data cumulatively.
To limit the size of the entire
data
volume to 1 TB, set a 1 TB limit on the root directory of the volume, like so:
# gluster volume quota data limit-usage / 1TB
You can also set a percentage of the hard limit as a soft limit. Exceeding the soft limit for a directory logs warnings rather than preventing further disk usage. For example, to set a soft limit at 75% of your volume's hard limit of 1TB, run the following command.
# gluster volume quota data limit-usage / 1TB 75
By default, brick logs are found in
/var/log/glusterfs/bricks/BRICKPATH.log
.
The default soft limit is 80%. However, you can alter the default soft limit on a per-volume basis by using the
default-soft-limit
subcommand. For example, to set a default soft limit of 90% on the data volume, run the following command:
# gluster volume quota data default-soft-limit 90
Then verify that the new value is set with the following command:
# gluster volume quota VOLNAME list
Changing the default soft limit does not remove a soft limit set with the
limit-usage
subcommand.
9.3.2. Viewing Current Disk Usage Limits
You can view all of the limits currently set on a volume by running the following command:
# gluster volume quota VOLNAME list
For example, to view the quota limits set on test-volume:
# gluster volume quota test-volume list Path Hard-limit Soft-limit Used Available -------------------------------------------------------- / 50GB 75% 0Bytes 50.0GB /dir 10GB 75% 0Bytes 10.0GB /dir/dir2 20GB 90% 0Bytes 20.0GB
To view limit information for a particular directory, specify the directory path. Remember that the directory's path is relative to the Red Hat Gluster Storage volume mount point, not the root directory of the server or client on which the volume is mounted.
# gluster volume quota VOLNAME list /<directory_name>
For example, to view limits set on the /dir directory of the test-volume volume:
# gluster volume quota test-volume list /dir Path Hard-limit Soft-limit Used Available ------------------------------------------------- /dir 10.0GB 75% 0Bytes 10.0GB
You can also list multiple directories to display disk limit information on each directory specified, like so:
# gluster volume quota VOLNAME list DIR1 DIR2
9.3.2.1. Viewing Quota Limit Information Using the df
Utility
By default, the
df
utility does not take quota limits into account when reporting disk usage. This means that clients accessing directories see the total space available to the volume, rather than the total space allotted to their directory by quotas. You can configure a volume to display the hard quota limit as the total disk space instead by setting quota-deem-statfs
parameter to on
.
To set the
quota-deem-statfs
parameter to on
, run the following command:
# gluster volume set VOLNAME quota-deem-statfs on
This configures
df
to to display the hard quota limit as the total disk space for a client.
The following example displays the disk usage as seen from a client when
quota-deem-statfs
is set to off
:
# df -hT /home Filesystem Type Size Used Avail Use% Mounted on server1:/test-volume fuse.glusterfs 400G 12G 389G 3% /home
The following example displays the disk usage as seen from a client when
quota-deem-statfs
is set to on
:
# df -hT /home Filesystem Type Size Used Avail Use% Mounted on server1:/test-volume fuse.glusterfs 300G 12G 289G 4% /home
9.3.3. Setting Quota Check Frequency (Timeouts)
You can configure how frequently Red Hat Gluster Storage checks disk usage against the disk usage limit by specifying soft and hard timeouts.
The
soft-timeout
parameter specifies how often Red Hat Gluster Storage checks space usage when usage has, so far, been below the soft limit set on the directory or volume. The default soft timeout frequency is every 60
seconds.
To specify a different soft timeout, run the following command:
# gluster volume quota VOLNAME soft-timeout seconds
The
hard-timeout
parameter specifies how often Red Hat Gluster Storage checks space usage when usage is greater than the soft limit set on the directory or volume. The default hard timeout frequency is every 5
seconds.
To specify a different hard timeout, run the following command:
# gluster volume quota VOLNAME hard-timeout seconds
Important
Ensure that you take system and application workload into account when you set soft and hard timeouts, as the margin of error for disk usage is proportional to system workload.
9.3.4. Setting Logging Frequency (Alert Time)
The
alert-time
parameter configures how frequently usage information is logged after the soft limit has been reached. You can configure alert-time
with the following command:
# gluster volume quota VOLNAME alert-time time
By default, alert time is 1 week (
1w
).
The time parameter in the command can be used with one of the following formats:
Unit of time | Format 1 | Format 2 |
---|---|---|
Second(s) | [integer]s | [integer]sec |
Minute(s) | [integer]m | [integer]min |
Hour(s) | [integer]h | [integer]hr |
Day(s) | [integer]d | [integer]days |
Week(s) | [integer]w | [integer]wk |
The [integer] is the number of units of time that need to be provided. Any one of the format for any unit of time can be used. For example:
The following command sets the logging frequency for volume named test-vol to every 10 minutes.
# gluster volume quota test-vol alert-time 10m
Whereas, the following command will set the logging frequency for volume named test-vol to every 10 days.
# gluster volume quota test-vol alert-time 10days
9.3.5. Removing Disk Usage Limits
If you don't need to limit disk usage, you can remove the usage limits on a directory by running the following command:
# gluster volume quota VOLNAME remove DIR
For example, to remove the disk limit usage on /data directory of test-volume:
# gluster volume quota test-volume remove /data volume quota : success
To remove a volume-wide quota, run the following command:
# gluster vol quota VOLNAME remove /
This does not remove limits recursively; it only impacts a volume-wide limit.