<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:21:42 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-15834] &quot;lfs mirror extend&quot; should take current OSTs into account</title>
                <link>https://jira.whamcloud.com/browse/LU-15834</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;When running &quot;&lt;tt&gt;lfs mirror extend&lt;/tt&gt;&quot; to add a mirror to an existing file, it appears that the OST(s) used for the original layout are not taken into account, if OST pools or indices are not explicitly specified:&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;$ lfs getstripe /myth/tmp/flr
/myth/tmp/flr
lmm_stripe_count:  1
lmm_stripe_size:   1048576
lmm_pattern:       raid0
lmm_layout_gen:    0
lmm_stripe_offset: 1
	obdidx		 objid		 objid		 group
	     1	       2352362	     0x23e4ea	             0
$ lfs mirror extend -N -c 1 /myth/tmp/flr
$ lfs getstripe /myth/tmp/flr
/myth/tmp/flr
  lcm_layout_gen:    1
  lcm_mirror_count:  2
  lcm_entry_count:   2
    lcme_id:             65537
    lcme_mirror_id:      1
    lcme_flags:          init
    lcme_extent.e_start: 0
    lcme_extent.e_end:   EOF
      lmm_stripe_count:  1
      lmm_stripe_size:   1048576
      lmm_pattern:       raid0
      lmm_layout_gen:    0
      lmm_stripe_offset: 1
      lmm_objects:
      - 0: { l_ost_idx: 1, l_fid: [0x100010000:0x23e4ea:0x0] }

    lcme_id:             131073
    lcme_mirror_id:      2
    lcme_flags:          init
    lcme_extent.e_start: 0
    lcme_extent.e_end:   EOF
      lmm_stripe_count:  1
      lmm_stripe_size:   1048576
      lmm_pattern:       raid0
      lmm_layout_gen:    0
      lmm_stripe_offset: 1
      lmm_objects:
      - 0: { l_ost_idx: 1, l_fid: [0x100010000:0x23e4eb:0x0] }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;in this case, both the original and mirror copy of the file are allocated on OST0001 because it has the most free space, which isn&apos;t helpful in terms of availability or performance for this file.&lt;/p&gt;

&lt;p&gt;A previous patch &lt;a href=&quot;https://review.whamcloud.com/32404&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/32404&lt;/a&gt; &quot;&lt;tt&gt;&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9007&quot; title=&quot;Improved object allocator for FLR composite files&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9007&quot;&gt;&lt;del&gt;LU-9007&lt;/del&gt;&lt;/a&gt; lod: improve obj alloc for FLR file&lt;/tt&gt;&quot; added &lt;tt&gt;lod_should_avoid_ost()&lt;/tt&gt; to handle new OST object allocations for different components of a single mirror, but does not appear to handle allocations across FLR mirrors.&lt;/p&gt;

&lt;p&gt;Requirements for OST selection on components with overlapping extents should be, in order of decreasing priority:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;objects with overlapping components &lt;b&gt;must not&lt;/b&gt; share the same OST.  Implies &lt;tt&gt;mirror_count &amp;lt;= ost_count / component_stripe_count&lt;/tt&gt;.  In theory this could be relaxed if all replicas have the same &lt;tt&gt;stripe_count&lt;/tt&gt; and &lt;tt&gt;stripe_size&lt;/tt&gt;, then it would only require that the same OST cannot be at the same &lt;tt&gt;stripe_index&lt;/tt&gt; of different components, in which case max replica count == OST count, but this is more difficult to control.&lt;/li&gt;
	&lt;li&gt;objects with overlapping components &lt;b&gt;should not&lt;/b&gt; share OSTs on the same OSS node (by NID from &lt;tt&gt;imp-&amp;gt;imp_connection-&amp;gt;c_peer.nid&lt;/tt&gt;, as &lt;tt&gt;qos_add_tgt()&lt;/tt&gt; does) to avoid the shared node failure domain.&lt;/li&gt;
	&lt;li&gt;objects with overlapping components &lt;b&gt;should not&lt;/b&gt; share OSTs on the same OSS failover pair (by failover NID from &lt;tt&gt;imp-&amp;gt;imp_conn_list.oic_conn-&amp;gt;c_peer.nid&lt;/tt&gt;, as &lt;tt&gt;lprocfs_import_seq_show()&lt;/tt&gt; does) to avoid the shared storage enclosure/controller failure domain.  There may be other OSS nodes that share the same storage enclosure/controller, but there isn&apos;t any way for the client to determine this automatically.&lt;/li&gt;
	&lt;li&gt;objects with overlapping components &lt;b&gt;should not&lt;/b&gt; be on OSTs on the same network switch, power supply, rack, etc. but this depends on external information that is not currently available to Lustre. That could optionally be added via a separate configuration file/options, but the above cases will automatically cover the most important failure scenarios&lt;/li&gt;
&lt;/ol&gt;
</description>
                <environment></environment>
        <key id="70207">LU-15834</key>
            <summary>&quot;lfs mirror extend&quot; should take current OSTs into account</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</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="bobijam">Zhenyu Xu</assignee>
                                    <reporter username="adilger">Andreas Dilger</reporter>
                        <labels>
                    </labels>
                <created>Mon, 9 May 2022 19:22:26 +0000</created>
                <updated>Fri, 17 Nov 2023 22:22:21 +0000</updated>
                                            <version>Lustre 2.14.0</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                            <comments>
                            <comment id="334705" author="adilger" created="Fri, 13 May 2022 00:13:10 +0000"  >&lt;p&gt;Is this also fixed by the &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-15841&quot; title=&quot;sanity-flr test 47 is failing with &amp;#39;component 65537, 131075, 196613 have objects allocated on duplicated OSTs&amp;#39;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-15841&quot;&gt;&lt;del&gt;LU-15841&lt;/del&gt;&lt;/a&gt; patch?&lt;/p&gt;</comment>
                            <comment id="334839" author="bobijam" created="Fri, 13 May 2022 18:38:29 +0000"  >&lt;p&gt;I think not, as mirror extent w/o specifying victim_file, the mirror_extend_layout() just create a volatile file using the basic stripe_size/stripe_count from the source file and the object allocation of the volatile file does not consider those of the source file, and mirror merge just append the layout component of the volatile file as a new mirror to the source file.&lt;/p&gt;</comment>
                            <comment id="369335" author="gerrit" created="Thu, 13 Apr 2023 04:48:12 +0000"  >&lt;p&gt;&quot;Zhenyu Xu &amp;lt;bobijam@hotmail.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/50622&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/50622&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-15834&quot; title=&quot;&amp;quot;lfs mirror extend&amp;quot; should take current OSTs into account&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-15834&quot;&gt;LU-15834&lt;/a&gt; lfs: mirror extend take current OSTs into account&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 0c1dad7e0e9b533516637e3aa457ad9d263c30dc&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="42940">LU-9007</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="70244">LU-15841</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="48931">LU-10158</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|i02pdr:</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>
                                                                                            <customfield id="customfield_10060" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Severity</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10022"><![CDATA[3]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        </customfields>
    </item>
</channel>
</rss>