<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
On Jul 13, 2022, at 11:10, Grigory Shamov <<a href="mailto:Grigory.Shamov@umanitoba.ca" class="">Grigory.Shamov@umanitoba.ca</a>> wrote:<br class="">
<div>
<blockquote type="cite" class=""><br class="Apple-interchange-newline">
<div class="">
<div class="">Hi All,<br class="">
<br class="">
I am trying to arrange quotas for a University's cluster , on our new ES400 running  DDNs Lustre 2.12.<br class="">
Somehow, there is a desire to have nested quota : like, Faculty quota then Professors research group quota.<br class="">
<br class="">
Using "group" quota (as in Unix group) is something that I’d like to avoid if possible, because users come from LDAP with their own group as default (i.e., user:user) .
<br class="">
The users then are prone to mix up ownership of their files on the system with their PI group (user:pi-group), which creates a few support tickets when a wrong group goes over quota.<br class="">
<br class="">
Is it possible to have nested project quota on Lustre 2.12? Or, more than one project ID on a directory?
<br class="">
<br class="">
Faculty1 : project Id 1<br class="">
__ PI-group1 : Project id1, project id 2<br class="">
__ __ User1, user1 : inherit both ids from the Pi-group dir<br class="">
__ Pi-group 2: Project id 1, project id 3<br class="">
</div>
</div>
</blockquote>
<br class="">
</div>
<div>No, unfortunately this is not possible.  There is only one field for storing the PROJID on each inode (same as UID and GID), so each file can only belong to one project at a time.  This is the same for ext4 and XFS also.</div>
<div><br class="">
</div>
<div>It probably makes most sense to have each user with their own project (e.g. == UID), and then add up the project quotas for the PROJIDs under each PI's directory with a simple userspace script.</div>
<div><br class="">
</div>
<div>If users are part of multiple PI's directories, you might do something like ((16-bit-PI << 16) | 16-bit user), assuming UIDs can fit in 16 bits.  Otherwise, assign an 8-bit PI and 24-bit UID or similar, or just allocate multiple 32-bit PROJIDs to the few
 users that are in multiple PI directories.</div>
<br class="">
<div class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div>Cheers, Andreas</div>
<div>--</div>
<div>Andreas Dilger</div>
<div>Lustre Principal Architect</div>
<div>Whamcloud</div>
<div><br class="">
</div>
<div><br class="">
</div>
<div><br class="">
</div>
</div>
</div>
</div>
</div>
</div>
<br class="Apple-interchange-newline">
</div>
<br class="Apple-interchange-newline">
<br class="Apple-interchange-newline">
</div>
<br class="">
</body>
</html>