<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:44:30 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-11510] preserve PFL/FLR/DoM layout with lfs_migrate</title>
                <link>https://jira.whamcloud.com/browse/LU-11510</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;The &lt;tt&gt;lfs_migrate&lt;/tt&gt; tool does not currently preserve the PFL/FLR/DoM components of the layout when a file is migrated.  By default, it will get the stripe_count and stripe_size of the file (maybe pool and mirror_count if &lt;a href=&quot;https://review.whamcloud.com/32977&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/32977&lt;/a&gt; is updated to do so), but it does not preserve more complex layout details.&lt;/p&gt;

&lt;p&gt;Dropping the initial components of a PFL file is probably desirable, since it is unlikely that a file will become smaller, and it makes sense to keep the stripe_count of a file at the widest needed.&lt;/p&gt;

&lt;p&gt;We &lt;b&gt;do&lt;/b&gt; need to keep the number of mirrors across migration, and it would probably be good to keep any OST pools per mirror, if they exist.&lt;/p&gt;

&lt;p&gt;Separately, it would be useful to have some way to migrate &lt;b&gt;only&lt;/b&gt; the mirror(s) that exist on particular OSTs if we are trying to empty particular OSTs.&lt;/p&gt;</description>
                <environment></environment>
        <key id="53584">LU-11510</key>
            <summary>preserve PFL/FLR/DoM layout with lfs_migrate</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="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="emoly.liu">Emoly Liu</assignee>
                                    <reporter username="adilger">Andreas Dilger</reporter>
                        <labels>
                    </labels>
                <created>Fri, 12 Oct 2018 03:01:54 +0000</created>
                <updated>Mon, 22 Jun 2020 22:59:51 +0000</updated>
                            <resolved>Thu, 5 Mar 2020 22:55:22 +0000</resolved>
                                    <version>Lustre 2.11.0</version>
                    <version>Lustre 2.12.0</version>
                                    <fixVersion>Lustre 2.14.0</fixVersion>
                    <fixVersion>Lustre 2.12.5</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>8</watches>
                                                                            <comments>
                            <comment id="253737" author="emoly.liu" created="Wed, 28 Aug 2019 07:01:35 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.whamcloud.com/secure/ViewProfile.jspa?name=adilger&quot; class=&quot;user-hover&quot; rel=&quot;adilger&quot;&gt;adilger&lt;/a&gt;,&lt;/p&gt;

&lt;p&gt;To meet the requirement, the following changes will be done to lfs_migrate tool:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;use yaml file to save migrated file layout&lt;/li&gt;
	&lt;li&gt;save the detailed OST pool information&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;What&apos;s more, do we need to add options to control these features or by default?&#160;&lt;/p&gt;</comment>
                            <comment id="253901" author="adilger" created="Fri, 30 Aug 2019 05:29:07 +0000"  >&lt;p&gt;I think the easiest way to implement this is to leverage the &quot;&lt;tt&gt;lfs setstripe --copy&lt;/tt&gt;&quot; option to copy the layout from the source file to the target file. It may be that with PFL/FLR/DoM files that we should change lfs_migrate to not try to get the source stripe_count and stripe_size and just copy the layout from the source file (ie. do less handling of the layout rather than more)?&lt;/p&gt;</comment>
                            <comment id="254267" author="gerrit" created="Fri, 6 Sep 2019 12:49:00 +0000"  >&lt;p&gt;Emoly Liu (emoly@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/36082&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/36082&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11510&quot; title=&quot;preserve PFL/FLR/DoM layout with lfs_migrate&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11510&quot;&gt;&lt;del&gt;LU-11510&lt;/del&gt;&lt;/a&gt; scripts: add --copy and --yaml to lfs_migarate&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 16fb4f3eb169c05809784d14f54cf3fd4f67fd36&lt;/p&gt;</comment>
                            <comment id="254296" author="adilger" created="Fri, 6 Sep 2019 20:27:58 +0000"  >&lt;p&gt;It seems like the core problem is that &quot;&lt;tt&gt;lfs migrate&lt;/tt&gt;&quot; doesn&apos;t handle PFL files very well.  Starting with a 2-component stripe_count=&amp;lt;1, 4&amp;gt; file (with the 4-stripe component initialized):&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 !$
lfs getstripe /myth/tmp/pfl/64M
/myth/tmp/pfl/64M
  lcm_layout_gen:  3
  lcm_entry_count: 2
    lcme_id:             1
    lcme_flags:          init
    lcme_extent.e_start: 0
    lcme_extent.e_end:   33554432
      lmm_stripe_count:  1
      lmm_stripe_size:   1048576
      lmm_pattern:       1
      lmm_layout_gen:    0
      lmm_stripe_offset: 2
      lmm_pool:          audio
      lmm_objects:
      - 0: { l_ost_idx: 2, l_fid: [0x100020000:0x26cdc7:0x0] }

    lcme_id:             2
    lcme_flags:          init
    lcme_extent.e_start: 33554432
    lcme_extent.e_end:   EOF
      lmm_stripe_count:  4
      lmm_stripe_size:   1048576
      lmm_pattern:       1
      lmm_layout_gen:    0
      lmm_stripe_offset: 4
      lmm_objects:
      - 0: { l_ost_idx: 4, l_fid: [0x100040000:0x311e78:0x0] }
      - 1: { l_ost_idx: 0, l_fid: [0x100000000:0x22ca87:0x0] }
      - 2: { l_ost_idx: 1, l_fid: [0x100010000:0x1b1931:0x0] }
      - 3: { l_ost_idx: 3, l_fid: [0x100030000:0x22233d:0x0] }
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Using &quot;&lt;tt&gt;lfs getstripe -c /myth/tmp/pfl/64M&lt;/tt&gt;&quot; returns a stripe_count of &lt;tt&gt;4&lt;/tt&gt; from the last instantiated component as one would expect.  Running &quot;&lt;tt&gt;lfs migrate&lt;/tt&gt;&quot; without any arguments doesn&apos;t preserve the PFL layout &lt;b&gt;AND&lt;/b&gt; it doesn&apos;t even keep the stripe count from the last initialized component of the source file.    At a minimum, &quot;&lt;tt&gt;lfs migrate /myth/tmp/pfl/64M&lt;/tt&gt;&quot; should use &lt;tt&gt;stripe_count=4&lt;/tt&gt; to create the new file, or copy the whole PFL layout but instead it is using the filesystem-wide default &lt;tt&gt;stripe_count=1&lt;/tt&gt;:&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 !$
lfs getstripe /myth/tmp/pfl/64M
/myth/tmp/pfl/64M
lmm_stripe_count:  1
lmm_stripe_size:   1048576
lmm_pattern:       1
lmm_layout_gen:    4
lmm_stripe_offset: 3
	obdidx		 objid		 objid		 group
	     3	       2237247	     0x22233f	             0
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;I think it makes sense to use the &quot;&lt;tt&gt;lfs migrate &amp;#45;&amp;#45;copy&lt;/tt&gt;&quot; option internally to copy the layout from the source file, or from the parent directory for &quot;&lt;tt&gt;lfs_migrate &amp;#45;R&lt;/tt&gt;&quot;.  The &quot;&lt;tt&gt;&amp;#45;&amp;#45;yaml&lt;/tt&gt;&quot; option still can specify an arbitrary layout.  That can potentially simplify migration &lt;/p&gt;</comment>
                            <comment id="260697" author="dstewart" created="Tue, 7 Jan 2020 19:07:58 +0000"  >&lt;p&gt;Hi Emoly/Andreas, do we have any updates on this?&lt;/p&gt;</comment>
                            <comment id="262425" author="gerrit" created="Mon, 3 Feb 2020 03:28:19 +0000"  >&lt;p&gt;&lt;del&gt;Emoly Liu (emoly@whamcloud.com) uploaded a new patch:&lt;/del&gt; &lt;a href=&quot;https://review.whamcloud.com/37401&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/37401&lt;/a&gt;&lt;br/&gt;
&lt;del&gt;Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11510&quot; title=&quot;preserve PFL/FLR/DoM layout with lfs_migrate&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11510&quot;&gt;&lt;del&gt;LU-11510&lt;/del&gt;&lt;/a&gt; lfs: create a comp file correctly when migrating&lt;/del&gt;&lt;br/&gt;
&lt;del&gt;Project: fs/lustre-release&lt;/del&gt;&lt;br/&gt;
&lt;del&gt;Branch: master&lt;/del&gt;&lt;br/&gt;
&lt;del&gt;Current Patch Set: 1&lt;/del&gt;&lt;br/&gt;
&lt;del&gt;Commit: a12d86989152bc6fbb9ad3e6566c24c29b077f76&lt;/del&gt;&lt;/p&gt;</comment>
                            <comment id="263891" author="adilger" created="Mon, 24 Feb 2020 07:58:02 +0000"  >&lt;blockquote&gt;
&lt;p&gt;the next step is to move the file to the new OSTs by adding an option to lfs_migrate tool to let the customer specify the OST list.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Normally when doing large-scale migration, the OST selection would be handled by the MDS by disabling object creation on some OSTs (via &quot;lctl set_param osp.&amp;lt;fsname&amp;gt;-OST&lt;span class=&quot;error&quot;&gt;&amp;#91;xxxx-yyyy&amp;#93;&lt;/span&gt;.max_create_count=0&quot;) and running &quot;lfs find -ost xxxx,...,yyyy&quot; to list all of the files on those OSTs to migrate.  I think the common case is finding files on OSTs that &lt;em&gt;shouldn&apos;t&lt;/em&gt; be used, and the MDS QOS policy will already bias file allocation onto OSTs with more free space.&lt;/p&gt;

&lt;p&gt;I think would be useful for making easier file layout policies for users are:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;using &quot;&lt;tt&gt;lfs setstripe -&lt;del&gt;copy XXX&lt;/tt&gt;&quot; to select a template layout from an existing file/directory (this should already work with the new patch), but allowing an &quot;alias&quot; like &lt;tt&gt;&lt;/del&gt;-copy=@mypattern&lt;/tt&gt; that looks for the file &quot;&lt;tt&gt;$HOME/.lfs/mypattern&lt;/tt&gt;&quot; or similar&lt;/li&gt;
	&lt;li&gt;finishing patch &lt;a href=&quot;https://review.whamcloud.com/28972&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/28972&lt;/a&gt; &quot;&lt;tt&gt;&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9982&quot; title=&quot;Clients striping from mapped FID in nodemap&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9982&quot;&gt;LU-9982&lt;/a&gt; lustre: Clients striping from mapped FID in nodemap&lt;/tt&gt;&quot; so that it is possible to set a per-fileset default layout&lt;/li&gt;
	&lt;li&gt;implementing the &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9392&quot; title=&quot;lfs migrate -o and lfs setstripe -o should pick OST from ost_list&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9392&quot;&gt;LU-9392&lt;/a&gt; functionality to allow &lt;tt&gt;setstripe&lt;/tt&gt; to specify a range of OSTs, but set the stripe count smaller than the OST list, similar to how an OST pool works, but available to users instead of admins&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="263903" author="emoly.liu" created="Mon, 24 Feb 2020 14:09:49 +0000"  >&lt;blockquote&gt;
&lt;p&gt;implementing the &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9392&quot; title=&quot;lfs migrate -o and lfs setstripe -o should pick OST from ost_list&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9392&quot;&gt;LU-9392&lt;/a&gt; functionality to allow setstripe to specify a range of OSTs, but set the stripe count smaller than the OST list, similar to how an OST pool works, but available to users instead of admins&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;This is close to my idea.&lt;/p&gt;</comment>
                            <comment id="264712" author="gerrit" created="Thu, 5 Mar 2020 22:35:57 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/36082/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/36082/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11510&quot; title=&quot;preserve PFL/FLR/DoM layout with lfs_migrate&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11510&quot;&gt;&lt;del&gt;LU-11510&lt;/del&gt;&lt;/a&gt; lfs: migrate a composite layout file correctly&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 8bedfa377fbd0c9f1b6ea2c40d36fdcaa52137df&lt;/p&gt;</comment>
                            <comment id="264738" author="pjones" created="Thu, 5 Mar 2020 22:55:22 +0000"  >&lt;p&gt;Landed for 2.14&lt;/p&gt;</comment>
                            <comment id="264752" author="gerrit" created="Fri, 6 Mar 2020 00:53:07 +0000"  >&lt;p&gt;Minh Diep (mdiep@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/37814&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/37814&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11510&quot; title=&quot;preserve PFL/FLR/DoM layout with lfs_migrate&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11510&quot;&gt;&lt;del&gt;LU-11510&lt;/del&gt;&lt;/a&gt; lfs: migrate a composite layout file correctly&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: b2_12&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: fdb231d505dda018515f754475527041e67af7c8&lt;/p&gt;</comment>
                            <comment id="266968" author="gerrit" created="Mon, 6 Apr 2020 21:15:17 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/37814/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/37814/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11510&quot; title=&quot;preserve PFL/FLR/DoM layout with lfs_migrate&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11510&quot;&gt;&lt;del&gt;LU-11510&lt;/del&gt;&lt;/a&gt; lfs: migrate a composite layout file correctly&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: b2_12&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: dc88cb0843e57be3930558e4e1b5c9b5d3af3311&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="51218">LU-10801</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="48297">LU-9982</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="45222">LU-9392</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="59674">LU-13703</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="46611">LU-9629</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|i0043r:</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>