When working with quotas, consider the following:
- Currently, to set a quota, the relevant filesystem must be mounted on the host where the set quota command is to be run.
- When setting a quota, you should go through a new mount-point. Meaning, if you are using a host that has mounts from Content Software for File versions before 3.10, first unmount all relevant mount point and then mount them again.
- Quotas can be set within nested directories (up to 4 levels of nested quotas are supported) and over-provisioned under the same directory quota tree. E.g., /home can have a quota of 1TiB, and each user directory under it can have a quota of 10GiB, while there are 200 users.
- Moving files (or directories) between two directories with quotas, into a directory with a quota, or outside of a directory with a quota is not supported. The WekaFS filesystem returns EXDEV in such a case, which is usually converted by the operating system to copy&delete but is OS-dependent.
- Quotas and hardlinks:
- An existing hardlink is not counted as part of the quota.
- Once a directory has a quota, it is not allowed to create a hardlink to files residing under directories with different (or without) directory quotas.
- Restoring a filesystem from a snapshot turns the quotas back to the configuration at the time of the snapshot.
- Creating a new filesystem from a snap-2-obj does not preserve the original quotas.
- When working with enforcing quotas along with a writecache mount-mode, similarly to other POSIX solutions, getting above the quota might not sync all the cache writes to the backend servers. Use sync, syncfs, or fsync to commit the cached changes to the system (or fail due to exceeding the quota).