Details
-
Bug
-
Resolution: Unresolved
-
Minor
-
None
-
None
-
3
-
9223372036854775807
Description
A number of sites have requested the ability to have hierarchical/nested project quotas in order to aggregate multiple project IDs for a tenant into a single aggregate limit, in order to restrict the total usage for multiple projects.
Rather than implement this at the level of the backing filesystem (which doesn't currently have space in the inode to store more IDs), one option would be for the MDS to add the quota usage from multiple project IDs into a single total, in a manner similar to OST pool quotas, and in general how the MDS is managing quota limits rather than quota accounting.
The MDS would sum the quota usage across all IDs in the aggregate, and then decide whether IDs would be granted new qunits when the OSTs have consumed their total space.
Some open questions include:
- what is a good name for this feature? "aggregate quota", "parent quota", "collective quota", other? "group quota" is already used.
- should this allow aggregating quotas from multiple/random disjoint project IDs? would it be enough to allow a range of IDs (e.g. 1000-1999 or 100000-199999) to be aggregated into single parent quota limit
- should an actual project ID (e.g. 1000 or 100000) be allocated as the placeholder for the "aggregate" quota accounting/limits? or should this grouping be "virtual" without an actual ID (which might cause confusion between the actual "p=1000" usage and the aggregate usage)
- should it be possible to aggregate a hierarchy of projects (e.g. 1000-1999 in one parent A, 3000-3999 into a second parent B, then add "A" and "B" into a third aggregate)? it may be that we can add this afterward on an as-needed basis, if it isn't easily done in the initial implementation
Attachments
Issue Links
- is related to
-
LU-16857 OST object allocation should not select OSTs/pools where quota is exceeded
-
- Open
-
-
LU-17166 add NRS TBF rule for projid
-
- Open
-
- is related to
-
LU-16771 add client statfs() cache for project quotas
-
- Resolved
-
-
LU-18109 Nodemap UID/GID/PROJID idmap offsetting
-
- Resolved
-
-
LU-11571 MDT pool
-
- Open
-
- mentioned in
-
Page Loading...
This looks pretty similar with what we have already done in OST Pool Quotas. In a case of project ranges we should respect not only separate PROJECT id limits(i.e. apply the lowest one) but Pool Quotas also.
I haven't done any deep investigation, but at 1st look we need to have some universal Pools where we would have OST Pool Quotas, MDT Pool Quotas, Project Pool Quotas, Uid Pool Quotas, etc ... Trying too look at this problem from technical view. If Im right(it should be clear after a short investigation), we would just need to implement quota project ranges configuration mechanism. On the lower level we would consider project ranges together with existing OST Pool Quotas. Another words we would need to clone already existed OST pools configuration code for ranges of quota projects/UIDs/GIDs. Right now OST Pool Quotas look up different OST pools and apply the minimum limit. Nothing needs to be changed in this code if we would add there "Project Pools Quotas" - there would be also a list of pools, so no difference at first look. The only extra effort should be done to start support Pool inode limits - it doesn't exist right now as we don't have MDT Pools. However, I designed OST PQ to be able to add inodes support later as much simplier as possible. So I hope it won't be a problem to have also "Project Pool Quotas" for inodes(number of files).