Category: Linux
Created: 2019-10-31
It’s recommended to enable file system quota on web servers, to check and to limit the disk space used by webhosting subscriptions. If a server is running just as a database server or as mail server, there’s no need for file system quota.
LiveConfig uses the so-called group quota - the disk space is limited per group.
Install the package “quota”, depending on your distribution:
Debian/Ubuntu:
root@srv:~# apt install quota
CentOS / Red Hat Enterprise Linux:
root@srv:~# yum install quota
openSUSE:
root@srv:~# zypper install quota
on ext3/ext4 file systems add the options grpjquota=aquota.group,jqfmt=vfsv0
to /etc/fstab
, e.g.:
UUID=[...] / ext4 errors=remount-ro,grpjquota=aquota.group,jqfmt=vfsv0 0 1
Then remount the file system:
root@srv:~# mount -vo remount <file system>
After this, recalculate the current quota usage:
root@srv:~# quotacheck -vgm <file system>
Finally, you can enable the quota:
root@srv:~# quotaon -vg <file system>
on XFS file systems it depends if quota has to be enabled on the root file system (/
) or on any other file system. If you want to enable it on a non-root file system, just add the option grpquota
to /etc/fstab
and remount it:
UUID=[...] /var xfs errors=remount-ro,grpjquota 0 1
root@srv:~# mount -vo remount <file system>
If quota should be enabled on the root file system, you need to add the option rootflags=grpquota
to the boot flags of your kernel. If the server is using a boot loader like e.g. Grub, add this option to the corresponding configuration file; when booting a virtual machine this might be added to its host configuration file (with Xen for example using the option extra = 'rootflags=grpquota'
).
on Virtuozzo-/OpenVZ containers the so-called second level quota has to be enabled for the corresponding container, which can only be done by the administrator of the host system. You can find more informations on this in the Virtuozzo documentation or in the OpenVZ Wiki.
Set the option quotaugidlimit
to the maximal number of users and groups in the container, including all system users and groups. After this, reboot the container to apply the new settings.
This example shows how quota is enabled for the container 101 with at most 500 users/groups:
root@srv:~# vzctl set 101 --quotaugidlimit 500 --save
Unable to apply new quota values: ugid quota not initialized
Saved parameters for CT 101
root@srv:~# vzctl restart 101
Restarting container
Stopping container ...
Container was stopped
Container is unmounted
Starting container ...
Container is mounted
Adding IP address(es): 192.168.100.101
Setting CPU units: 1000
Configure meminfo: 65536
File resolv.conf was modified
Container start in progress...
You can check with repquota -ag
if group quota is successfully enabled:
root@srv:~# repquota -ag
*** Report for group quotas on device /dev/disk/by-uuid/[...]
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
Group used soft hard grace used soft hard grace
----------------------------------------------------------------------
root -- 1203900 0 0 51406 0 0
[...]