CloudLinux™ 7 updates may break quotas. For this reason, after each CloudLinux 7 update, you must run the /usr/local/cpanel/scripts/fixquotas script and then remount the file system.
If you disable and then reenable quotas, servers that use the XFS® filesystem and run the CentOS 7, CloudLinux, AlmaLinux OS, or Red Hat® Enterprise Linux® (RHEL) 7 operating systems require one of the following additional actions for quotas to function properly:
Use WHM’s Initial Quota Setup interface (WHM » Home » Server Configuration » Initial Quota Setup) to configure quotas.
Use the command line interface to run the /usr/local/cpanel/scripts/fixquotas script and then remount the file system.
Perform the /usr/local/cpanel/scripts/fixquotas script’s actions manually. For more information, read the Red Hat XFS and XFS Quota Management documentation.
This document describes how to confirm whether you properly configured the disk space quotas on your system’s devices. We enable quotas by default on new installations, but you must enable quotas for any device on which cPanel accounts exist.
Verify whether your device uses quotas
To verify whether your devices use quotas, connect to your system via SSH as the root user and perform the following actions in your command line interface:
Run the mount command
Run the mount command without any arguments to obtain basic information about all your currently-mounted file systems.
Entries that contain the usrquota variable are quota-enabled.
For example, the following output from the mount command confirms that the /dev/mapper/VolGroup00-LogVol00 device uses quotas because it contains a usrquota variable:
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw,usrquota)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/usr/tmpDSK on /tmp type ext3 (rw,noexec,nosuid,loop=/dev/loop0)
/tmp on /var/tmp type none (rw,noexec,nosuid,bind)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
Note:
For more information about the mount command, visit the mount command documentation.
Examine the file system table contents
Important:
The /etc/fstab file is read-only. You cannot configure quotas by editing this file, only see whether quotas are enabled using the usrquota variable.
The file system table (/etc/fstab) file maps devices to their respective mount points within a system, displaying configuration options in six columns. These options determine the purpose of each file system and how it should mount:
Column
Description
Example
Device
The physical device that contains the data.
/dev/sda5
Mountpoint
The filepath to the device’s data storage location.
/backup
FStype
The type of file system.
ext3
Options
The mount options for the file system. These options include the usrquota variable if quotas are enabled, as well as whether the system or users can execute programs on the device.
defaults,noexec
Dump
The dump option. This option has no impact on whether quotas are enabled. The dump backup utility uses this option.
0
Pass
The fsck option. This option has no impact on whether quotas are enabled. The fsck file checking utility uses this option.
0
To display the contents of the /etc/fstab file, run the cat /etc/fstab command. The /etc/fstab file will resemble the following example, where entries that contain the usrquota variable are quota-enabled:
/dev/sda5 /backup ext3 defaults,noexec 00
LABEL=/boot /boot ext3 defaults,usrquota 12
tmpfs /dev/shm tmpfs defaults 00
devpts /dev/pts devpts gid=5,mode=62000
sysfs /sys sysfs defaults 00
proc /proc proc defaults 00
/dev/sda5 /swap swap defaults 00
/usr/tmpDSK /tmp ext3 defaults,noauto 00
Note:
For more information about the fstab file, visit the fstab command documentation, or connect to your system via SSH and run the man fstab command.
List the file systems in the /etc/mtab file with quota options enabled
Run the following command to print all of the file systems that exist in the /etc/mtab file with read and write privileges and quota options enabled:
After you verify which devices do not use quotas, connect to those devices via SSH as the root user and run the /usr/local/cpanel/scripts/initquotas script. This script adds the usrquota variable to the Options column in the /etc/fstab file.
Verify that you enabled quota files
After you run the /usr/local/cpanel/scripts/initquotas script, use the ls command with a wildcard character to confirm the following:
The quota files exist in the root directory (/).
Each file is greater than 0 bytes.
For example, the following ls -l /*.user command lists the contacts of the root directory (/):
The -l flag in this example causes ls output to display in long-listing format. This format displays the following information:
The file’s permissions.
Which user owns the file.
Which group owns the file.
The size of the file in bytes.
The file’s last modification date.
If there are no quota files in the root directory, run the /usr/local/cpanel/scripts/initquotas script again to create these files.
If quota files do exist, but quotas do not function, delete these quota files and then run the /usr/local/cpanel/scripts/initquotas or /usr/local/cpanel/scripts/fixquotas scripts.
A note about Virtuozzo®
If you use Virtuozzo, you must perform the following actions:
Enable second-level (per-user) quotas in addition to first-level (per-container) quotas.
Some servers that run the Ubuntu operating system do not have the quota_v2 kernel module that enables quotas. If your server runs the Ubuntu operating system and quotas do not work, it may not have this module.
Check if your server has loaded its quota_v2 module
Run this command to check if your server has loaded its quota_v2 module:
lsmod | grep quota_v2
If your server has loaded its quota_v2 module, it will produce an output that resembles the following example:
quota_v2 163841
quota_tree 204801 quota_v2
If your server produces a response that does not contain quota_v2, you must install the appropriate quota_v2 module.
Install your server’s quota_v2 module
To install your server’s appropriate quota_v2 module, perform the following steps:
.1Check your server’s kernel metapackage.a. Run the following command to find the server’s current boot image:
.2Check which quota_v2 module you must install for your server’s empty Reverse Depends kernel metapackage:
Kernel metapackage
quota_v2 package
linux-aws
linux-modules-extra-aws
linux-aws-edge
linux-modules-extra-aws-edge
linux-aws-lts-20.04
linux-modules-extra-aws-lts-20.04
linux-azure
linux-modules-extra-azure
linux-azure-cvm
linux-modules-extra-azure-cvm
linux-azure-edge
linux-modules-extra-azure-edge
linux-azure-fde
linux-modules-extra-azure-fde
linux-azure-lts-20.04
linux-modules-extra-azure-lts-20.04
linux-gcp
linux-modules-extra-gcp
linux-gcp-edge
linux-modules-extra-gcp-edge
linux-gcp-lts-20.04
linux-modules-extra-gcp-lts-20.04
linux-gke
linux-modules-extra-gke
linux-gke-5.4
linux-modules-extra-gke-5.4
linux-gkeop
linux-modules-extra-gkeop
linux-gkeop-5.4
linux-modules-extra-gkeop-5.4
linux-ibm
linux-modules-extra-ibm
linux-ibm-lts-20.04
linux-modules-extra-ibm-lts-20.04
linux-virtual
linux-image-extra-virtual
linux-virtual-hwe-20.04
linux-image-extra-virtual-hwe-20.04
linux-virtual-hwe-20.04-edge
linux-image-extra-virtual-hwe-20.04-edge
.3Use the following command to install the appropriate quota_v2 module for your server’s empty Reverse Depends kernel
metapackage, where $example is the name of the appropriate quote_v2 module:
aptinstall$example
Note:You may also run the /usr/local/cpanel/scripts/fixquotas script to automatically install the appropriate quota_v2 packages for each kernel metapackage on your server.