<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:38:22 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-10808] DoM: component end should align with dom_stripesize</title>
                <link>https://jira.whamcloud.com/browse/LU-10808</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;If the DoM component &lt;tt&gt;extent_end&lt;/tt&gt; is set larger than the MDT &lt;tt&gt;dom_stripesize&lt;/tt&gt; (via &lt;tt&gt;lfs setstripe &amp;#45;Eextent&amp;#95;end &amp;#45;L mdt&lt;/tt&gt; ) then this currently generates an error.&#160; Since users do not have any easy way to determine the &lt;tt&gt;dom_stripesize&lt;/tt&gt; on the MDT, and it may in fact be different on a per-MDT basis (e.g. if MDT0000 sets &lt;tt&gt;dom_stripesize=0&lt;/tt&gt; because it was formatted before DoM, or it is adjusted automatically by the MDS when the MDT is nearly full).&#160; This complicates DoM usage for users (imagine a striped directory that has different DoM size limits for the MDTs it is striped over).&lt;/p&gt;

&lt;p&gt;The MDS should automatically adjust the component &lt;tt&gt;extent_end&lt;/tt&gt; to match the MDT &lt;tt&gt;dom_stripesize&lt;/tt&gt;, and if &lt;tt&gt;dom_stripesize=0&lt;/tt&gt; then the DoM component should be removed.&lt;/p&gt;</description>
                <environment></environment>
        <key id="51328">LU-10808</key>
            <summary>DoM: component end should align with dom_stripesize</summary>
                <type id="7" iconUrl="https://jira.whamcloud.com/images/icons/issuetypes/task_agile.png">Technical task</type>
                            <parent id="49050">LU-10176</parent>
                                    <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</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="tappro">Mikhail Pershin</assignee>
                                    <reporter username="adilger">Andreas Dilger</reporter>
                        <labels>
                            <label>DoM2</label>
                    </labels>
                <created>Mon, 12 Mar 2018 20:08:09 +0000</created>
                <updated>Wed, 5 Feb 2020 20:20:05 +0000</updated>
                            <resolved>Wed, 22 Aug 2018 18:48:30 +0000</resolved>
                                    <version>Lustre 2.11.0</version>
                                    <fixVersion>Lustre 2.12.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>10</watches>
                                                                            <comments>
                            <comment id="226153" author="rdeshmukh_ddn" created="Tue, 17 Apr 2018 13:09:51 +0000"  >&lt;p&gt;&#160;Just curious here and hence few questions&lt;/p&gt;

&lt;p&gt;&amp;gt; The MDS should automatically adjust the component extent_end to match the MDT dom_stripesize,&lt;br/&gt;
 &amp;gt; and if dom_stripesize=0 then the DoM component should be removed.&lt;/p&gt;

&lt;p&gt;Does this mean that if mdt component size value greater than dom_stripesize&lt;br/&gt;
 then it will be set to dom_stripesize&lt;/p&gt;

&lt;p&gt;also if dom_stripesize=0 then even if user mention DoM component it wont be considered and &lt;br/&gt;
 only PFL will be considered ?&lt;/p&gt;

&lt;p&gt;It seems we are doing kind of similar stuff (in lod_fix_desc_stripe_size()), while we are setting dom_stripesize value.&lt;/p&gt;

&lt;p&gt;i.e. even if the dom_stripesize is set to value less than LOV_MIN_STRIPE_SIZE, then it is set to default&lt;br/&gt;
 value and if try to set value say 65K then it will be set as 64K as multiple of LOV_MIN_STRIPE_SIZE&lt;/p&gt;</comment>
                            <comment id="226161" author="adilger" created="Tue, 17 Apr 2018 14:17:11 +0000"  >&lt;p&gt;Also needing consideration here is that DoM components should be skipped entirely if there is no (or very little) space on the MDT. It might make sense to shrink &lt;tt&gt;dom_stripesize&lt;/tt&gt; as the MDT begins to get full, but at least a simple fix is to just go directly to zero once the MDT free space is below some threshold.&lt;/p&gt;</comment>
                            <comment id="226167" author="adilger" created="Tue, 17 Apr 2018 15:18:45 +0000"  >&lt;p&gt;I tested out setting &lt;tt&gt;dom_maxstripesize&lt;/tt&gt; and if this is less than &lt;tt&gt;LOV_MIN_STRIPE_SIZE&lt;/tt&gt; sets it to the &lt;b&gt;default&lt;/b&gt; stripe size, rather than the &lt;b&gt;minimum&lt;/b&gt;:&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;void lod_fix_desc_stripe_size(__u64 *val)
{               
        &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (*val &amp;lt; LOV_MIN_STRIPE_SIZE) {
                &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (*val != 0)
                        LCONSOLE_INFO(&lt;span class=&quot;code-quote&quot;&gt;&quot;Increasing &lt;span class=&quot;code-keyword&quot;&gt;default&lt;/span&gt; stripe size to &quot;&lt;/span&gt;
                                      &lt;span class=&quot;code-quote&quot;&gt;&quot;minimum value %u\n&quot;&lt;/span&gt;,
                                      LOV_DESC_STRIPE_SIZE_DEFAULT);
                *val = LOV_DESC_STRIPE_SIZE_DEFAULT;
        } &lt;span class=&quot;code-keyword&quot;&gt;else&lt;/span&gt; &lt;span class=&quot;code-keyword&quot;&gt;if&lt;/span&gt; (*val &amp;amp; (LOV_MIN_STRIPE_SIZE - 1)) {
                *val &amp;amp;= ~(LOV_MIN_STRIPE_SIZE - 1);
                LCONSOLE_WARN(&lt;span class=&quot;code-quote&quot;&gt;&quot;Changing &lt;span class=&quot;code-keyword&quot;&gt;default&lt;/span&gt; stripe size to %llu (a &quot;&lt;/span&gt;
                              &lt;span class=&quot;code-quote&quot;&gt;&quot;multiple of %u)\n&quot;&lt;/span&gt;,
                              *val, LOV_MIN_STRIPE_SIZE);
        }
}
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Since this is also used for regular file striping (typically with &lt;tt&gt;stripe_size=0&lt;/tt&gt; to indicate the default) then it may be difficult to change this behaviour.  One option is to pass in the &quot;&lt;tt&gt;default&lt;/tt&gt;&quot; value from the caller, so that LOV can use &lt;tt&gt;LOV_DESC_STRIPE_SIZE_DEFAULT&lt;/tt&gt; but DoM can use &lt;tt&gt;LOV_MIN_STRIPE_SIZE&lt;/tt&gt;.  Alternately, &lt;tt&gt;lod_dom_stripesize_seq_write()&lt;/tt&gt; could check for a value below &lt;tt&gt;LOV_MIN_STRIPE_SIZE&lt;/tt&gt; and return an error code to the caller.&lt;/p&gt;</comment>
                            <comment id="226364" author="tappro" created="Thu, 19 Apr 2018 13:32:43 +0000"  >&lt;p&gt;yes, I found that too and already fixed this in a patch, it sets limit to the minimum rather than default value.&lt;/p&gt;</comment>
                            <comment id="226365" author="gerrit" created="Thu, 19 Apr 2018 13:38:03 +0000"  >&lt;p&gt;Mike Pershin (mike.pershin@intel.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/32073&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/32073&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10808&quot; title=&quot;DoM: component end should align with dom_stripesize&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10808&quot;&gt;&lt;del&gt;LU-10808&lt;/del&gt;&lt;/a&gt; lod: align wrong DoM stripe values with defaults&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 33206489d8b3252d96ca4d23d7774d54d8b085fc&lt;/p&gt;</comment>
                            <comment id="228322" author="tappro" created="Tue, 22 May 2018 14:20:07 +0000"  >&lt;p&gt;Andreas wrote in patch comments:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;What happens if we have a 16-way striped directory with a default layout like:&lt;/p&gt;

&lt;p&gt;    lfs setstripe -E 1M -L mdt -E 64M -c 1 -E -1 -c 128 /dir&lt;/p&gt;

&lt;p&gt;and then one of the MDTs runs out of space?  Ideally, it &lt;em&gt;wouldn&apos;t&lt;/em&gt; run out of space (the MDS should reduce lod_dom_max_stripesize automatically as it gets full so the DoM components get smaller) but it will eventually run out of space. In  case like this, we don&apos;t really want 1/16 of the files to return -EFBIG.&lt;/p&gt;

&lt;p&gt;There is no way (currently) to disable file creation on a single MDT in the striped directory, so we would want to remove the DoM component from the file to reduce MDT space usage rather than failing file creation randomly based on the filename.&lt;/p&gt;

&lt;p&gt;Is it possible to check if the layout is a default layout, or explicitly set by a user? It would be confusing if the user specifies a DoM component and it just silently disappears, but this is somewhat less of an issue if it is coming from a default setting (parent directory or filesystem root).&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Put it here to don&apos;t forget and prepare workaround in later patches&lt;/p&gt;</comment>
                            <comment id="228323" author="gerrit" created="Tue, 22 May 2018 14:22:34 +0000"  >&lt;p&gt;Mike Pershin (mike.pershin@intel.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/32482&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/32482&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10808&quot; title=&quot;DoM: component end should align with dom_stripesize&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10808&quot;&gt;&lt;del&gt;LU-10808&lt;/del&gt;&lt;/a&gt; lod: remove DoM component is disabled&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 6b1cc1f9b42e8cacab90099c9c56f0ab96d9a471&lt;/p&gt;</comment>
                            <comment id="228328" author="paf" created="Tue, 22 May 2018 15:14:39 +0000"  >&lt;p&gt;This question has likely been answered elsewhere, but yes, it&apos;s possible to know if a layout is a default layout.&#160; At file creation time, there&apos;s a moment where you inherit from a template.&#160; But after that there&apos;s no way to know, currently.&lt;/p&gt;

&lt;p&gt;It seems like your suggestion is if any MDT in the set is low on space, then remove the DOM component from the layout (presumably at file creation time rather than permanently, since ideally out of space is transient).&#160; So we stop doing DOM entirely because we can&apos;t skip that one MDT.&#160; That will require some interrogation of the MDTs but it should be possible, if a little awkward.&lt;/p&gt;

&lt;p&gt;An alternate possibility occurs to me, sort of adjacent to the self-extending PFL work and exploiting similar ideas.&#160; DOM is always the first component &amp;amp; so is always instantiated.&#160; But we could do the &quot;stripe to target, then check space on target before really making objects&quot; trick I&apos;m using in the SEPFL work (posting soon, sorry).&lt;/p&gt;

&lt;p&gt;If there&apos;s insufficient space on a particular MDT, we could either try another MDT (...not so sure about this one...) or we could rewrite the layout dynamically to remove the DoM component, assuming it&apos;s followed by a regular OST component.&#160; (Which it doesn&apos;t have to be.)&lt;/p&gt;

&lt;p&gt;If we did the &quot;try another MDT&quot; solution, we&apos;d either need to try all MDTs and fail once they were out of space, or we&apos;d &lt;b&gt;still&lt;/b&gt; have to do the &quot;rewrite layout to replace DoM with regular OST layout&quot; thing.&lt;/p&gt;

&lt;p&gt;Just stop doing DoM once one MDT is full does seem like the easiest (and perhaps most comprehensible) behavior.&#160; But there&apos;s another route if we wanted to take it.&lt;/p&gt;</comment>
                            <comment id="228600" author="adilger" created="Fri, 25 May 2018 06:27:21 +0000"  >&lt;p&gt;I&apos;m not suggesting to disable DoM permanently if one MDT is full, only on a per-file basis. Firstly, MDT is the one that selects the file layout and should decide if it is full, and this can be done on a per-MDT basis. &lt;/p&gt;

&lt;p&gt;Secondly, the hash of the filename is what decides which MDT is used, so we can&apos;t try different MDTs to find space for the DoM data. &lt;/p&gt;</comment>
                            <comment id="229313" author="gerrit" created="Thu, 7 Jun 2018 20:08:06 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/32073/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/32073/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10808&quot; title=&quot;DoM: component end should align with dom_stripesize&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10808&quot;&gt;&lt;del&gt;LU-10808&lt;/del&gt;&lt;/a&gt; lod: align wrong DoM stripe values with defaults&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 9146d261f35b394e10afde3eec2d5895425261e0&lt;/p&gt;</comment>
                            <comment id="229318" author="gerrit" created="Thu, 7 Jun 2018 20:08:53 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/32482/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/32482/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10808&quot; title=&quot;DoM: component end should align with dom_stripesize&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10808&quot;&gt;&lt;del&gt;LU-10808&lt;/del&gt;&lt;/a&gt; lod: remove DoM component if DoM is disabled&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 3fd758ed4f40f235d26df9fd7c6b459590fbe0cf&lt;/p&gt;</comment>
                            <comment id="232448" author="pjones" created="Wed, 22 Aug 2018 18:48:30 +0000"  >&lt;p&gt;Seems like all patches have landed for 2.12&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="50077">LU-10465</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="51157">LU-10786</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="51826">LU-10917</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="53902">LU-11608</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="48585">LU-10070</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|hzzubb:</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>