<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:51:08 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-12273] DNE3: Metadata overstriping</title>
                <link>https://jira.whamcloud.com/browse/LU-12273</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9846&quot; title=&quot;Overstriping - more than stripe per OST per component&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9846&quot;&gt;&lt;del&gt;LU-9846&lt;/del&gt;&lt;/a&gt; describes the overstriping feature for data, which allows placing &amp;gt; 1 stripe per OST.&#160; This can be done with MDTs as well, for somewhat similar reasons:&lt;/p&gt;

&lt;p&gt;&quot;it allows more concurrency on the MDT, exceeding single-directory size limitations, directory migration/compaction, etc.&quot; (per Andreas)&lt;/p&gt;

&lt;p&gt;This exists in limited form today, accessible with a fail loc:&lt;br/&gt;
OBD_FAIL_LARGE_STRIPE (0x1703)&lt;/p&gt;

&lt;p&gt;Which is used in sanity test 300k to put a bunch of stripes on MDT0:&lt;/p&gt;
&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;        #define OBD_FAIL_LARGE_STRIPE   0x1703
        $LCTL set_param fail_loc=0x1703
        $LFS setdirstripe -i 0 -c192 $DIR/$tdir/striped_dir ||
                error &quot;set striped dir err

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Actually doing this as a feature requires various other enabling changes, but this test shows it should be possible.&#160; It&apos;s also possible to use the method in this test to create temporary setups for benchmarking this idea to confirm it&apos;s worth pursuing.&lt;/p&gt;</description>
                <environment></environment>
        <key id="55589">LU-12273</key>
            <summary>DNE3: Metadata overstriping</summary>
                <type id="2" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11311&amp;avatarType=issuetype">New Feature</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</priority>
                        <status id="1" iconUrl="https://jira.whamcloud.com/images/icons/statuses/open.png" description="The issue is open and ready for the assignee to start work on it.">Open</status>
                    <statusCategory id="2" key="new" colorName="default"/>
                                    <resolution id="-1">Unresolved</resolution>
                                        <assignee username="paf0186">Patrick Farrell</assignee>
                                    <reporter username="pfarrell">Patrick Farrell</reporter>
                        <labels>
                            <label>dne3</label>
                    </labels>
                <created>Wed, 8 May 2019 18:17:27 +0000</created>
                <updated>Mon, 22 Jan 2024 15:49:53 +0000</updated>
                                                                                <due></due>
                            <votes>0</votes>
                                    <watches>9</watches>
                                                                            <comments>
                            <comment id="248215" author="gerrit" created="Sun, 2 Jun 2019 17:33:43 +0000"  >&lt;p&gt;Patrick Farrell (pfarrell@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/35034&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/35034&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-12273&quot; title=&quot;DNE3: Metadata overstriping&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-12273&quot;&gt;LU-12273&lt;/a&gt; lod: metadata overstriping&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: c3bfede6854263915c967f53602d0a1e46d6d1bf&lt;/p&gt;</comment>
                            <comment id="253721" author="gerrit" created="Tue, 27 Aug 2019 20:14:40 +0000"  >&lt;p&gt;Patrick Farrell (pfarrell@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/35939&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/35939&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-12273&quot; title=&quot;DNE3: Metadata overstriping&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-12273&quot;&gt;LU-12273&lt;/a&gt; lod: Trivial metadata overstriping&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 6e97b13d5dd0ba3d49b5c5191f4733e95663e573&lt;/p&gt;</comment>
                            <comment id="350513" author="adilger" created="Fri, 21 Oct 2022 19:15:40 +0000"  >&lt;blockquote&gt;
&lt;p&gt;if we compare 2 x MDT per MDS vs MDT Overstriping=2, it&apos;s 2 x jbd2 thread vs still single journal thread, etc?&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Correct - with overstriping there is still only a single journal/device and some filesystem locks, while two separate MDTs have totally separate infrastructure (but each one is 1/2 the size and needs more space balancing, double journal memory usage).  If we can get &quot;close&quot; performance with 2x or 4x overstriping vs. 2x or 4x MDTs then using directory overstriping would be better overall.&lt;/p&gt;</comment>
                            <comment id="359734" author="gerrit" created="Thu, 19 Jan 2023 20:06:23 +0000"  >&lt;p&gt;&quot;Patrick Farrell &amp;lt;farr0186@gmail.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49707&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49707&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-12273&quot; title=&quot;DNE3: Metadata overstriping&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-12273&quot;&gt;LU-12273&lt;/a&gt; obd: Reserve metadata overstriping flags&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 91f41501f508166e33881d00ac795f9296f8978c&lt;/p&gt;</comment>
                            <comment id="360127" author="paf0186" created="Mon, 23 Jan 2023 22:38:16 +0000"  >&lt;p&gt;So this is fascinating.&lt;/p&gt;

&lt;p&gt;Each MDT does not know about itself in the pool code, because it&apos;s the local device, so it&apos;s handled differently.&lt;br/&gt;
The list of targets (in the QOS/RR pool code) on an MDT is &lt;b&gt;the other MDTs in the system&lt;/b&gt;.&lt;/p&gt;

&lt;p&gt;The practical result of this is the first MDT is not selected by the allocation code &lt;b&gt;on the MDT&lt;/b&gt;, so it only&lt;br/&gt;
gets one stripe on it.&lt;/p&gt;

&lt;p&gt;eg, with 2 MDTs:&lt;/p&gt;

&lt;p&gt;lmv_stripe_count: 8 lmv_stripe_offset: 1 lmv_hash_type: crush,overstriped&lt;br/&gt;
mdtidx &#160; &#160; &#160; &#160; &#160; FID&lt;span class=&quot;error&quot;&gt;&amp;#91;seq:oid:ver&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;1 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x240000400:0x2:0x0&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;0 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x200000401:0x2:0x0&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;0 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x200000401:0x3:0x0&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;0 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x200000401:0x4:0x0&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;0 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x200000401:0x5:0x0&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;0 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x200000401:0x6:0x0&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;0 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x200000401:0x7:0x0&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;0 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x200000401:0x8:0x0&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Or, with 4 MDTs, it can look like this:&#160;&lt;br/&gt;
lmv_stripe_count: 16 lmv_stripe_offset: 3 lmv_hash_type: crush,overstriped&lt;br/&gt;
mdtidx &#160; &#160; &#160; &#160; &#160; FID&lt;span class=&quot;error&quot;&gt;&amp;#91;seq:oid:ver&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;3 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x2c0000400:0x6:0x0&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;0 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x200000403:0x10:0x0&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;1 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x240000402:0x11:0x0&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;2 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x280000401:0x11:0x0&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;0 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x200000403:0x11:0x0&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;1 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x240000402:0x12:0x0&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;2 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x280000401:0x12:0x0&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;0 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x200000403:0x12:0x0&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;1 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x240000402:0x13:0x0&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;2 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x280000401:0x13:0x0&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;0 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x200000403:0x13:0x0&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;1 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x240000402:0x14:0x0&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;2 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x280000401:0x14:0x0&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;0 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x200000403:0x14:0x0&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;1 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x240000402:0x15:0x0&amp;#93;&lt;/span&gt;&lt;br/&gt;
&#160; &#160; &#160;2 &#160; &#160; &#160; &#160; &#160; &lt;span class=&quot;error&quot;&gt;&amp;#91;0x280000401:0x15:0x0&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Notice 3 is only used once.&lt;/p&gt;

&lt;p&gt;Allocation of the first stripe is handled like this, without reference to the pool:&lt;br/&gt;
&#160; &#160; &#160; &#160; /* Allocate the first stripe locally */&lt;br/&gt;
&#160; &#160; &#160; &#160; rc = dt_fid_alloc(env, lod-&amp;gt;lod_child, &amp;amp;fid, NULL, NULL);&lt;br/&gt;
&#160; &#160; &#160; &#160; if (rc &amp;lt; 0)&lt;br/&gt;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; GOTO(out, rc);&lt;/p&gt;

&lt;p&gt;&#160; &#160; &#160; &#160; stripes&lt;span class=&quot;error&quot;&gt;&amp;#91;0&amp;#93;&lt;/span&gt; = dt_locate_at(env, lod-&amp;gt;lod_child, &amp;amp;fid,&lt;br/&gt;
&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; dt-&amp;gt;do_lu.lo_dev-&amp;gt;ld_site-&amp;gt;ls_top_dev, &amp;amp;conf);&lt;/p&gt;

&lt;p&gt;&lt;b&gt;then&lt;/b&gt; the qos/rr alloc code is called to allocate the rest of the stripes.&lt;/p&gt;

&lt;p&gt;I&apos;m not sure what to do about this - The device init process doesn&apos;t really seem something to mess with.&lt;br/&gt;
I&apos;m thinking the right thing to do is special case this for RR + overstriping.&lt;/p&gt;

&lt;p&gt;Basically, add one more to the range of indices that can be selected during RR, and if it&apos;s found, then do&lt;br/&gt;
a local allocation. &#160;It complicates the code slightly but it&apos;s the only solution that seems sane.&lt;/p&gt;

&lt;p&gt;I&apos;ll do that if there&apos;s not an objection.&lt;/p&gt;</comment>
                            <comment id="372811" author="gerrit" created="Fri, 19 May 2023 07:01:21 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49707/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49707/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-12273&quot; title=&quot;DNE3: Metadata overstriping&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-12273&quot;&gt;LU-12273&lt;/a&gt; obd: Reserve metadata overstriping flags&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 8b62a8ca9c2e824d94fbf8bc266b4028e9b5fa63&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="47710">LU-9846</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="57290">LU-12926</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|i00fz3:</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>