<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:01:18 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Whamcloud Community JIRA</title>
    <link>https://jira.whamcloud.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.4.14</version>
        <build-number>940014</build-number>
        <build-date>05-12-2023</build-date>
    </build-info>


<item>
            <title>[LU-13440] DNE3: limit directory default layout inheritance</title>
                <link>https://jira.whamcloud.com/browse/LU-13440</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;One problem that exists today is that default directory layouts are inherited by all new subdirectories created in the filesystem.  That makes it difficult to set e.g. &quot;&lt;tt&gt;lfs setdirstripe -D -c 1 -i -1&lt;/tt&gt;&quot; on the root directory and maybe a second level of directories without having it inherited by all of the subdirectories for the whole filesystem.&lt;/p&gt;

&lt;p&gt;It would be useful to add a option like &quot;&lt;tt&gt;lfs setdirstripe &amp;#45;&amp;#45;max&amp;#45;inherit&lt;/tt&gt;&quot; that stores &quot;&lt;tt&gt;lmv&amp;#95;max&amp;#95;inherit&lt;/tt&gt;&quot; on the default directory layout so that it is only copied down that many levels of subdirectories before it is not copied.  The &lt;tt&gt;lmv&amp;#95;max&amp;#95;inherit&lt;/tt&gt; would be decremented each time it is copied down to a new subdirectory, so there is no need to track the parent layout.&lt;/p&gt;

&lt;p&gt;For compatibility, &quot;&lt;tt&gt;lmv&amp;#95;max&amp;#95;inherit=0&lt;/tt&gt;&quot; would mean &quot;copy forever&quot;, so &quot;&lt;tt&gt;lmv&amp;#95;max&amp;#95;inherit=1&lt;/tt&gt;&quot; would mean &quot;do not copy default layout&quot;.  We don&apos;t need huge values here (e.g. &quot;&lt;tt&gt;lmv&amp;#95;max&amp;#95;inherit=255&lt;/tt&gt;&quot; would be totally fine).&lt;/p&gt;

&lt;p&gt;I don&apos;t think we need to do anything incompatible for older MDS nodes (e.g. we don&apos;t need to use a different LMV magic), since at worst the old MDS will copy this layout forever (ignoring &lt;tt&gt;lmv_max_inherit&lt;/tt&gt;) and have the same behaviour as before this feature existed.  Probably the easiest would be to split a &lt;tt&gt;&amp;#95;&amp;#95;u8&lt;/tt&gt; field out of &lt;tt&gt;lum&amp;#95;padding1&lt;/tt&gt; and leave an unused &lt;tt&gt;&amp;#95;&amp;#95;u8&lt;/tt&gt; and &lt;tt&gt;&amp;#95;&amp;#95;u16&lt;/tt&gt; for future use.&lt;/p&gt;</description>
                <environment></environment>
        <key id="58702">LU-13440</key>
            <summary>DNE3: limit directory default layout inheritance</summary>
                <type id="4" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11310&amp;avatarType=issuetype">Improvement</type>
                                            <priority id="3" iconUrl="https://jira.whamcloud.com/images/icons/priorities/major.svg">Major</priority>
                        <status id="5" iconUrl="https://jira.whamcloud.com/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="laisiyao">Lai Siyao</assignee>
                                    <reporter username="adilger">Andreas Dilger</reporter>
                        <labels>
                            <label>dne3</label>
                    </labels>
                <created>Wed, 8 Apr 2020 21:39:44 +0000</created>
                <updated>Thu, 19 May 2022 09:32:55 +0000</updated>
                            <resolved>Tue, 5 Oct 2021 20:54:34 +0000</resolved>
                                                    <fixVersion>Lustre 2.15.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                            <comments>
                            <comment id="295599" author="adilger" created="Sun, 21 Mar 2021 21:12:19 +0000"  >&lt;p&gt;Lai, could you please look into this next, whether it is possible to implement this in a relatively simple manner.  We still need something that will &quot;more automatically&quot; distribute the load across MDTs, even if directory split is not active.  It doesn&apos;t have to be perfect, but at least work with relatively little input from the admins if the MDTs become really imbalanced.  I can think of two relatively straight forward options, and we might consider to implement both if they are not too complex:&lt;/p&gt;

&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;the &quot;limited inheritance&quot; change described in this ticket would allow to e.g. set &quot;default remote directory&quot; (&quot;&lt;tt&gt;-D -c 1 -i -1&lt;/tt&gt;&quot;) on the root (or any) directory and then have it inherited for 2-3 directory levels before it reverts to &quot;local&quot; directories again.  This would allow &quot;&lt;tt&gt;-D -c1 -i -1 -X 3&lt;/tt&gt;&quot; or even &quot;&lt;tt&gt;-D -c4 -i -1 -X 3&lt;/tt&gt;&quot; to be set on the root and spread the top of the tree widely, so that all MDTs are used, and then the lower levels stay local to their MDTs.&lt;/li&gt;
&lt;/ul&gt;


&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;we could allow setting &quot;&lt;tt&gt;-D -c 1 -i -1&lt;/tt&gt;&quot; on the root directory and have an MDS tunable parameter to inherit the root directory layout for the whole filesystem.  That would need a bit of a change to the &quot;always round-robin remote directories&quot; so that it would only create remote directories if the MDTs are imbalanced, and prefer to create local directories if the MDT balance is good.  Maybe limit the &quot;round-robin&quot; to the root directory or the top-level directory?&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="296840" author="gerrit" created="Fri, 26 Mar 2021 10:18:27 +0000"  >&lt;p&gt;Lai Siyao (lai.siyao@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/43131&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/43131&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13440&quot; title=&quot;DNE3: limit directory default layout inheritance&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13440&quot;&gt;&lt;del&gt;LU-13440&lt;/del&gt;&lt;/a&gt; lmv: add default LMV inherit depth&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 4578bdf0091c7061328264b66f05f54b048da94d&lt;/p&gt;</comment>
                            <comment id="299401" author="gerrit" created="Wed, 21 Apr 2021 15:13:59 +0000"  >&lt;p&gt;Lai Siyao (lai.siyao@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/43385&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/43385&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13440&quot; title=&quot;DNE3: limit directory default layout inheritance&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13440&quot;&gt;&lt;del&gt;LU-13440&lt;/del&gt;&lt;/a&gt; obdclass: server qos penalty miscaculated&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 809bd318183f9b14cccf04f10e34b7b367f19e53&lt;/p&gt;</comment>
                            <comment id="299443" author="adilger" created="Wed, 21 Apr 2021 23:28:53 +0000"  >&lt;p&gt;I think the main goal here is to allow users to get reasonable MDT balancing without significant effort.  For new filesystems, I think the current patch is relatively good, but we also need a way to handle this for existing filesystems without the need to explicitly set a layout on every subdirectory (which would also be complex because the &quot;inherit depth&quot; would need to be changed each time, if not unlimited).&lt;/p&gt;

&lt;p&gt;For default layout inheritance from the root directory, one problem that we&apos;ve seen with &lt;b&gt;file&lt;/b&gt; layout inheritance is if the default layout xattr is copied to each subdirectory, then it is difficult to change the default afterward without changing it in &lt;b&gt;every&lt;/b&gt; directory in the filesystem, &lt;b&gt;except&lt;/b&gt; directories that had a different layout explicitly set on them.  If the root default layout has &lt;tt&gt;(lum_max_inherit = LMV_INHERIT_UNLIMITED)&lt;/tt&gt; then there is no need to copy the layout to the subdirectories at all, since it could just be cached on the root directory.  Also, we could assume for a root default layout even with &lt;tt&gt;(lum_max_inherit_rr != LMV_INHERIT_UNLIMITED)&lt;/tt&gt; that if the &lt;b&gt;parent&lt;/b&gt; directory does not have a layout, then we have exceeded &lt;tt&gt;lum_max_inherit_rr&lt;/tt&gt; and no copy of the default layout is needed.  Only the top &lt;tt&gt;lum_max_inherit_rr&lt;/tt&gt; directories would get an explicit xattr copy.&lt;/p&gt;

&lt;p&gt;For existing filesystems (which will almost certainly already have MDT imbalance), it probably makes sense to skip the RR phase entirely and set a default &quot;-c 1 -i -1 --max-inherit=-1&quot; default layout on the root directory, and make the automatic balancing of new directories in the whole filesystem &quot;smart enough&quot; (i.e. stick with parent MDT unless MDTs are imbalanced, probability of remote directory depends on imbalance between MDTs).&lt;/p&gt;

&lt;p&gt;One option (in a follow-on patch) would be to track the &quot;depth&quot; of every directory in memory and then use this to determine whether the rr applies or not?  That avoids the need to copy the layout explicitly for subdirectories, since it can ignore RR mode if depth &amp;gt; max_inherit_rr.   The probability of creating a subdirectory on a remote MDT would depend on the imbalance between MDTs and also the depth (higher-level directories are more likely to be remote).&lt;/p&gt;</comment>
                            <comment id="300413" author="gerrit" created="Tue, 4 May 2021 09:05:37 +0000"  >&lt;p&gt;Andreas Dilger (adilger@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/43530&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/43530&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13440&quot; title=&quot;DNE3: limit directory default layout inheritance&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13440&quot;&gt;&lt;del&gt;LU-13440&lt;/del&gt;&lt;/a&gt; utils: fix handling of lsa_stripe_off = -1&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 792fa045a1975a1a18af0d72470134e5bf997d6a&lt;/p&gt;</comment>
                            <comment id="300518" author="gerrit" created="Wed, 5 May 2021 02:52:09 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/43385/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/43385/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13440&quot; title=&quot;DNE3: limit directory default layout inheritance&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13440&quot;&gt;&lt;del&gt;LU-13440&lt;/del&gt;&lt;/a&gt; obdclass: server qos penalty miscaculated&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 0ccce7ecb72f847f4235a513424d90119edad7ca&lt;/p&gt;</comment>
                            <comment id="300519" author="gerrit" created="Wed, 5 May 2021 02:52:14 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/43131/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/43131/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13440&quot; title=&quot;DNE3: limit directory default layout inheritance&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13440&quot;&gt;&lt;del&gt;LU-13440&lt;/del&gt;&lt;/a&gt; lmv: add default LMV inherit depth&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 01d34a6b3b2e34f7414f627e4f87993322dafa78&lt;/p&gt;</comment>
                            <comment id="308037" author="gerrit" created="Thu, 22 Jul 2021 01:49:11 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/43530/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/43530/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-13440&quot; title=&quot;DNE3: limit directory default layout inheritance&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-13440&quot;&gt;&lt;del&gt;LU-13440&lt;/del&gt;&lt;/a&gt; utils: fix handling of lsa_stripe_off = -1&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 1dbe63301b8c5cb7f7d0fe9960cafd3cd0e45534&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="58701">LU-13439</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="49558">LU-10329</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="58656">LU-13417</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="64648">LU-14762</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="65307">LU-14868</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="67430">LU-15314</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="70278">LU-15850</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                                            <customfield id="customfield_10890" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i00xhz:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9223372036854775807</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>