<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 &lt;<a href="mailto:Grigory.Shamov@umanitoba.ca" class="">Grigory.Shamov@umanitoba.ca</a>&gt; 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 &nbsp;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 &quot;group&quot; quota (as in Unix group) is something that I\u2019d 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. &nbsp;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. &nbsp;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 &lt;&lt; 16) | 16-bit user), assuming UIDs can fit in 16 bits. &nbsp;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&nbsp;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>