<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:56:48 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-6052] Change &quot;lfs mv&quot; to &quot;lfs migrate -M&quot;</title>
                <link>https://jira.whamcloud.com/browse/LU-6052</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;&quot;lfs mv&quot; caused some confusion between mv and lfs mv. So we better to change lfs mv to lfs migrate -M.&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;[12/18/14, 2:50:08 PM] Andreas Dilger: we could still use &quot;lfs migrate -M {mdt_idx} /path/to/file&quot; to migrate files across MDTs if everyone thinks &quot;lfs mv&quot; is a bad name for the command?
[12/18/14, 2:52:34 PM] Andreas Dilger: like &quot;lfs migrate -i {ost_idx} /path/to/file&quot; is to migrate objects across OSTs
[12/18/14, 2:53:01 PM] wangdi: yes, we can do that. or just use lfs mdt_migrate as John suggested
[12/18/14, 2:53:48 PM] wangdi: but lfs migrate is bounded with lfs_setstripe, not sure whether add another parameter is good thing
[12/18/14, 2:53:50 PM] wangdi:         {&quot;migrate&quot;, lfs_setstripe, 0, &quot;migrate file from one OST layout to &quot;
         &quot;another (may be not safe with concurent writes).\n&quot;
[12/18/14, 2:54:31 PM] wangdi: anyway, either way is fine to me
[12/18/14, 2:58:14 PM] Andreas Dilger: Di: lfs_migrate() could parse the &quot;-M&quot; option before calling lfs_setstripe() if just migrating the inode.  if it is migrating the objects also, then we may as well just use lfs_setstripe() and create the volatile file on the right MDT in the first place.
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment></environment>
        <key id="27980">LU-6052</key>
            <summary>Change &quot;lfs mv&quot; to &quot;lfs migrate -M&quot;</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="2" iconUrl="https://jira.whamcloud.com/images/icons/priorities/critical.svg">Critical</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="di.wang">Di Wang</reporter>
                        <labels>
                    </labels>
                <created>Thu, 18 Dec 2014 23:02:26 +0000</created>
                <updated>Wed, 29 Jul 2015 15:58:42 +0000</updated>
                            <resolved>Wed, 29 Jul 2015 15:58:42 +0000</resolved>
                                    <version>Lustre 2.8.0</version>
                                    <fixVersion>Lustre 2.8.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>10</watches>
                                                                            <comments>
                            <comment id="102078" author="rread" created="Fri, 19 Dec 2014 17:29:39 +0000"  >&lt;p&gt;Is there a use case for migrating both MDT and OST objects at the same time?  If not, then this should be a separate command such as mdt_migrate instead of adding conflicting options to the same command.  &lt;/p&gt;</comment>
                            <comment id="102132" author="adilger" created="Sat, 20 Dec 2014 00:01:24 +0000"  >&lt;p&gt;Robert, it is &lt;em&gt;possible&lt;/em&gt; to move the file to both a new MDT and OST(s) at the same time.  What would be needed is for lfs.c::lfs_migrate() to specify a desired MDT index when creating the new temporary target file, and then copy the data into this new file.  At the end the temporary inode would replace the existing one like lfs_mv() is already doing.  That is almost the same as what we were doing with the old code before the MDS could do &quot;client-safe&quot; migration.&lt;/p&gt;

&lt;p&gt;I don&apos;t have any use cases off the top of my head why a user might want to do this.  Maybe balancing space for both MDTs and OSTs at the same time?&lt;/p&gt;

&lt;p&gt;The reason for keeping it in the same command is that the operations are conceptually the same - moving the backing storage of an object from one server to another.  I think it should be clear from the context of the command (moving a regular file or directory) whether &quot;stripe count&quot; applies to the number of OST objects or MDT objects, but I haven&apos;t looked into the actual implementations to see if there are any other potential conflicts.&lt;/p&gt;

&lt;p&gt;That said, I don&apos;t have a strong opinion on this, just that several people had commented that &quot;lfs mv&quot; was not a very good name for this functionality because it doesn&apos;t correspond to moving files to somewhere else in the namespace like &quot;mv&quot; does, and the first choice of command names (namely &quot;lfs migrate&quot;) was already used, but I think they are similar enough that they should be the same command.&lt;/p&gt;</comment>
                            <comment id="102134" author="rread" created="Sat, 20 Dec 2014 00:46:34 +0000"  >&lt;p&gt;I agree they are conceptually similar, but they are still quite different operations. It&apos;s confusing UI to have one command with options to do completely different things, especially when aren&apos;t necessarily done together. The set_param mess with -P is an excellent example of that.  It&apos;s better to have different commands that to perform different operations, and have them all work the same way.  Perhaps we can rename the existing migrate to ost_migrate and rename mv to mdt_migrate, and ensure the options for each are consistent where appropriate. Then it&apos;s clear which one to use for different types of migration, and they each present the same interface. &lt;/p&gt;

&lt;p&gt;Actually, I  thought the MDT was determined by hashing the filename...  How do we support migrating  a file to an arbitrary MDT?&lt;/p&gt;</comment>
                            <comment id="102140" author="adilger" created="Sat, 20 Dec 2014 06:16:54 +0000"  >&lt;p&gt;While the filename in a &lt;em&gt;striped directory&lt;/em&gt; determines which directory shard the &lt;em&gt;name&lt;/em&gt; is located in, it is possible to store the inode itself on a different MDT, since only the FID determines which MDT the inode is located on, and that can be arbitrarily chosen.  It is definitely more efficient to have the name and the inode on the same MDT as the parent directory, but in some cases this isn&apos;t possible (remote directories, hard linked files, rename).  The &lt;tt&gt;lfs mv&lt;/tt&gt; command today will typically migrate whole directory trees to maintain efficiency, but it could be used on individual files if there is a reason to do so (e.g. multi-tiered storage, WAN locality, possibly metadata replication in the future, etc.)&lt;/p&gt;

&lt;p&gt;As for the name of the lfs sub-commands, I don&apos;t see how &quot;mdt_migrate&quot; and &quot;ost_migrate&quot; significantly better than &quot;migrate --mdt-index&quot; (or &quot;migrate -m&quot;) and &quot;migrate --ost-index&quot; (or &quot;migrate -o&quot;), but what I really want is something that is easy for users to use and remember.&lt;/p&gt;</comment>
                            <comment id="103363" author="jlevi" created="Tue, 13 Jan 2015 18:36:17 +0000"  >&lt;p&gt;Lai,&lt;br/&gt;
Would you be able to take this one?&lt;/p&gt;</comment>
                            <comment id="103367" author="adilger" created="Tue, 13 Jan 2015 18:39:10 +0000"  >&lt;p&gt;The old &lt;tt&gt;lfs mv&lt;/tt&gt; command should be left in place for compatibility reasons, but marked as deprecated.&lt;/p&gt;</comment>
                            <comment id="106909" author="gerrit" created="Fri, 13 Feb 2015 09:10:28 +0000"  >&lt;p&gt;Lai Siyao (lai.siyao@intel.com) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/13754&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/13754&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-6052&quot; title=&quot;Change &amp;quot;lfs mv&amp;quot; to &amp;quot;lfs migrate -M&amp;quot;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-6052&quot;&gt;&lt;del&gt;LU-6052&lt;/del&gt;&lt;/a&gt; utils: change &quot;lfs mv&quot; to &quot;lfs migrate&quot;&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 430e16cadf8eeaa04ebcd37431052cf061463c18&lt;/p&gt;</comment>
                            <comment id="122556" author="gerrit" created="Wed, 29 Jul 2015 15:42:15 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;http://review.whamcloud.com/13754/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/13754/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-6052&quot; title=&quot;Change &amp;quot;lfs mv&amp;quot; to &amp;quot;lfs migrate -M&amp;quot;&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-6052&quot;&gt;&lt;del&gt;LU-6052&lt;/del&gt;&lt;/a&gt; utils: change &quot;lfs mv&quot; to &quot;lfs migrate&quot;&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 849d7d5b1b4cabb7578c3ab5aaf271e90dd33864&lt;/p&gt;</comment>
                            <comment id="122562" author="pjones" created="Wed, 29 Jul 2015 15:58:42 +0000"  >&lt;p&gt;Landed for 2.8&lt;/p&gt;</comment>
                    </comments>
                    <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|hzx2v3:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>16862</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>