How do I set up the project quota needed for limiting container storage size for the dir backend on Ubuntu 18.04? I also asked the question at Stack Exchange:
- tune2fs -O project -Q prjquota /dev/sdaX
- Update /etc/fstab to add the
prjquotamount option
The tune2fs must be done when the filesystem isn’t mounted.
If doing the /etc/fstab change live, either reboot or manually add the mount option to your current mount.
Thanks! Here the things I tried so far:
- Installed Quota with
apt install quota -y - Put
prjquotainto/etc/fstabfor the root / and rebooted, filesystem got booted as read-only, no project quota (from here only with prjquota instead of the user and group quotas) - Also
find /lib/modules/uname -r-type f -name '*quota_v*.ko*'was run and both kernel modules/lib/modules/4.15.0-96-generic/kernel/fs/quota/quota_v2.koand/lib/modules/4.15.0-96-generic/kernel/fs/quota/quota_v1.kowere found (from this tutorial) - Put
GRUB_CMDLINE_LINUX_DEFAULT="rootflags=prjquota"into/etc/default/grub, ranupdate-gruband rebooted, machine does not come up anymore
What else can I try?
Did you do the tune2fs part?
No, I can’t as / root is mounted. How do I do this?
root@vps:~# tune2fs -O project -Q prjquota /dev/sda2
tune2fs 1.44.1 (24-Mar-2018)
The quota feature may only be changed when the filesystem is unmounted.
Mount also does not work:
root@vps:~# mount /dev/sda2 -o prjquota,remount /
mount: /: mount point not mounted or bad option.
root@vps:~# mount /dev/sda2 -o prjquota /
mount: /: /dev/sda2 already mounted on /.
You need to do it when it’s not mounted, so either from the initramfs or by booting from an CDROM or USB stick and then enabling the feature from there.
You cannot use prjquota as a mount option until you’ve enabled the feature with tune2fs.
Researching about initramfs brought me back to GRUB as it is supposed to be connected if I didn’t misunderstand. And doing some more testing did bring results:
rootflags=quota was added to /etc/default/grub
GRUB_CMDLINE_LINUX="... rootflags=quota"
Then update-grub was run.
And after the reboot root@vps:~# cat /proc/mounts | grep ' / ' shows that there is now quota
/dev/sda2 / ext4 rw,relatime,quota,usrquota,errors=remount-ro,data=ordered 0 0
But trying it with pquota or prjquota does not work…
Think it might be a bug in grub2, reported it here.
quota and usrquota have nothing to do with prjquota.
Again, you NEED to run that tune2fs command, there’s just no way around it.
All the other bits you’ve been messing with are for AFTER the tune2fs has been done.
Ok, I went the temporary ramdisk way and managed to unmount /dev/sda2.
-
I ran
tune2fs -O project -Q prjquota /dev/sda2which didn’t throw any errors, just the version of the program, so I am quessing it worked. -
Then I mounted it with the according option
mount /dev/sda2 -o prjquota /oldroot. Pivoted back to the real root. -
Finally I was able to turn on the project quota on /dev/sda2 (installed quota of course)
root@vps:~# quotaon -Pv -F vfsv1 / /dev/sda2 [/]: project quotas turned onAlso repquota is showing the quota is on on /
root@vps:~# repquota -Ps / *** Report for project quotas on device /dev/sda2 Block grace time: 7days; Inode grace time: 7days Space limits File limits Project used soft hard grace used soft hard grace ---------------------------------------------------------------------- #0 -- 3670M 0K 0K 66228 0 0
Then we have to specify a profile like this:
sudo lxc profile device add profile-name root disk pool=default path=/ size=5GB
And add it to a container by running:
sudo lxc launch ubuntu:18.04 c2 -p default -p profile-name
And it worked!!! ![]()
One question though, I get
root@c1:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 4882812 751956 4130856 16% /
root@c1:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 4.7G 735M 4.0G 16% /
How do I get it to actually 5GB?
Also, can I switch the size on a running container? Can I switch the default profile’s root size?
How to best do that sort of thing?
Use 5GiB instead of 5GB. It’s the old 1000 vs 1024 thing.
Hey @stgraber, I answered my question here: https://unix.stackexchange.com/questions/578349/project-quota-on-a-live-root-ext4-filesystem-on-ubuntu-18-04
Would you like me to post a tutorial here as well?
That would be great thanks. I can move it in to the tutorials section.