[LU-12358] Cache isolation via User/Group/Project quota on the PCC backend fs Created: 29/May/19 Updated: 25/Jan/23 |
|
| Status: | Open |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Minor |
| Reporter: | Qian Yingjin | Assignee: | Qian Yingjin |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||||||||||
| Rank (Obsolete): | 9223372036854775807 | ||||||||||||||||
| Description |
|
We can also enforce a quota limitation of the capacity usage for each user, group, or project to provide cache isolation. An administrator can specify the quota enforcement on the local LPCC file system. Thus, users can perform PCC-cached I/O on these files until they receive a return value -ENOSPC or -EDQUOT, which means that they hit the quota limit or that there is no free capacity left on the local PCC backend fs. At this time, I/O will fall back to the normal I/O path. With this feature, it can have multiple PCC backends on a single client with different caching rules, so we can define upfront how much of the client FS can be used for each cache. |
| Comments |
| Comment by Li Xi [ 04/Jun/19 ] |
|
I think there needs to be a mechanism for a global PCC quota management. I am wondering whether we can implement some thing like following: 1) Under /.lustre directory, we create a quota file /.lustre/pcc_quota. 2) /.lustre/pcc_quota records the default soft/hard limitations of space/inode usage for each user/group/project for each PCC storage. 3) The limitation could be relative numbers not absolute nubmer, meaning, if the PCC storage is bigger, the actual limitation is higher. That means, the limitation for a user could be (e.g.) 30% of the PCC space. 4) When a PCC device is added into Lustre client, the file /.lustre/pcc_quota will be readed automatically by PCC codes, and the quota setting of the local file system will be calculated based on the configuration of /.lustre/pcc_quota as well as the capacity of the PCC device. When the PCC is being added to PCC, the quota setting will be configured automatically to the PCC file system. 5) We could add complex quota configuration in /.lustre/pcc_quota too, in order to assign a specific quota configuration to a special PCC device or to a special Lustre client, because for example the PCC device is significantly larger than the normal PCC devices. But assuming all PCC devices have similar specifications, this might be an extension and not necessarily implmented in the first version. 6) By enforcing a global percentage limitation to all PCC stoages, we can enforce an entire space/inode usage control on all PCC storage in the whole cluster. This is not actually an "global" control though, which means even a user doesn't use any space on one PCC storage, the user still can't exceed its local limitations on other PCC storages. A mechanism which enable global quota control would be even better, but I feel that kind of mechanism would be complex and won't be robust enough to address the problems of actively adding/deleting PCC storages. |
| Comment by Gerrit Updater [ 06/Sep/20 ] |
|
Yingjin Qian (qian@ddn.com) uploaded a new patch: https://review.whamcloud.com/39831 |