I’m experiencing an issue with project quotas on an ext4 filesystem, specifically with the hard limit not blocking writes when exceeded.
Here are the steps I’ve taken to set up project quotas:
- Check mount and modules loaded:
# mount | grep /data
/dev/sdb on /data type ext4 (rw,relatime,prjquota)
- Create a Test Folder:
# mkdir /data/TestFolder
- Define Projects:
# echo "TestFolder:100" > /etc/projid
# echo "100:/data/TestFolder" > /etc/projects
- Set Project Quota Attributes:
# chattr +P -p 100 /data/TestFolder
- Set Project Quotas:
# setquota -P -t 0 0 -a /data
# setquota -P TestFolder 100M 110M 0 0 /data
Disable grace time and set 100Mb/110Mb for soft/hard limits
- Check Quotas:
# repquota -Ps /data
*** Report for project quotas on device /dev/sdb
Block grace time: 00:00; Inode grace time: 00:00
Space limits File limits
Project used soft hard grace used soft hard grace
----------------------------------------------------------------------
TestFolder -- 4K 92160K 150M 1 0 0
#0 -- 20K 0K 0K 2 0 0
Now, create first testfile for reach soft limit:
# dd if=/dev/zero of=/data/TestFolder/test1.bin bs=1M count=100
sdb: warning, project block quota exceeded.
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.0860563 s, 1.2 GB/s
# repquota -Ps /data
*** Report for project quotas on device /dev/sdb
Block grace time: 00:00; Inode grace time: 00:00
Space limits File limits
Project used soft hard grace used soft hard grace
----------------------------------------------------------------------
TestFolder +- 101M 100M 110M none 2 0 0
#0 -- 20K 0K 0K 2 0 0
Second test for reach the hard limit:
# dd if=/dev/zero of=/data/TestFolder/test2.bin bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.0942253 s, 1.1 GB/s
# repquota -Ps /data
*** Report for project quotas on device /dev/sdb
Block grace time: 00:00; Inode grace time: 00:00
Space limits File limits
Project used soft hard grace used soft hard grace
----------------------------------------------------------------------
TestFolder +- 201M 100M 110M none 3 0 0
#0 -- 20K 0K 0K 2 0 0