<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:25: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-2430] Migration tool for DNE</title>
                <link>https://jira.whamcloud.com/browse/LU-2430</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Comments from Andreas:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This relates to the need to rebalance the inodes between an existing MDT and a newly-added MDT in some manner, preferably without having to move all of the file data just to make namespace changes.&lt;br/&gt;
We discussed something like &quot;lfs mv -i &lt;/p&gt;
&lt;div class=&quot;error&quot;&gt;&lt;span class=&quot;error&quot;&gt;Unknown macro: {mdt_idx}&lt;/span&gt; &lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div class=&quot;error&quot;&gt;&lt;span class=&quot;error&quot;&gt;Unknown macro: {pathname}&lt;/span&gt; &lt;/div&gt;
&lt;p&gt;&quot; (same parameters as &quot;lfs mkdir&quot;/&quot;lfs setdirstripe&quot;) to move the name and inode over to the specified MDT, but not keeping the same FID for that file. The inode number is not preserved for local filesystems when &quot;mv&quot; is called to move a file across different filesystems. This would only work for non-directories, since the ability to migrate a whole directory is difficult and does not need to be implemented for the first version of this tool.&lt;/p&gt;

&lt;p&gt;Moving a whole directory hierarchy is non-trivial, since we don&apos;t want the namespace to be split if the user-space tool is interrupted in some way. One possible way to do this safely without the ability to migrate whole directories is:&lt;/p&gt;&lt;/blockquote&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;do a breadth-first traversal of the directory tree
create a duplicate directory hierarchy on the target MDT using llapi_mkdir()
if the file is small, just copy it to the new directory
if the file is large hard link it into the new hierarchy (leave remote inode in place)
delete the old hierarchy (to get rid of the hard links/copies)
if the inode is remote with 1 hard link, call llapi_mv() to move the file name and inode (still resident on the original MDT) to the new MDT
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;This is not mandatory for DNE phase I, but nice to have. And this is definitely needed for DNE phase II.&lt;/p&gt;&lt;/blockquote&gt;</description>
                <environment></environment>
        <key id="16851">LU-2430</key>
            <summary>Migration tool for DNE</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="di.wang">Di Wang</assignee>
                                    <reporter username="di.wang">Di Wang</reporter>
                        <labels>
                    </labels>
                <created>Tue, 4 Dec 2012 23:46:20 +0000</created>
                <updated>Wed, 17 Apr 2019 17:15:23 +0000</updated>
                            <resolved>Thu, 29 May 2014 15:45:38 +0000</resolved>
                                    <version>Lustre 2.6.0</version>
                                    <fixVersion>Lustre 2.6.0</fixVersion>
                                        <due>Thu, 30 May 2013 00:00:00 +0000</due>
                            <votes>0</votes>
                                    <watches>10</watches>
                                                                            <comments>
                            <comment id="48926" author="adilger" created="Fri, 7 Dec 2012 15:56:21 +0000"  >&lt;p&gt;The &lt;tt&gt;llapi_mv()&lt;/tt&gt; functionality could benefit from on &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-2016&quot; title=&quot;Layout swapping, MDD part&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-2016&quot;&gt;&lt;del&gt;LU-2016&lt;/del&gt;&lt;/a&gt; (MDD layout swap) and &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-2017&quot; title=&quot;Layout swapping, client  and MDT parts&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-2017&quot;&gt;&lt;del&gt;LU-2017&lt;/del&gt;&lt;/a&gt; (MDC layout swap).  Once layout swap is available, {{llapi_mv()} would be able to mknod() a new file on the new MDT and then swap the layout from the old inode to the new one, and delete the old inode.&lt;/p&gt;

&lt;p&gt;One complexity of using layout swap for moving the node instead of swapping the objects is that &quot;llapi_swap_layouts()&quot; will not preserve the open file handles or layout lock on the old resource/FID.  While applications doing IO on the objects would still be able to read/write the original objects, their open file handle and layout lock would now point to an open-unlinked inode, and likely cause the objects to be unlinked when the file descriptor is closed (due to nlink == 0 on the old inode).&lt;/p&gt;

&lt;p&gt;That means the &lt;tt&gt;lfs_mv()&lt;/tt&gt; should only migrate inodes that it knows to be unused.  How it does this on the client needs to be figured out,  though it presumably would get some kind of error back from the MDS.  It isn&apos;t possible to just refuse to swap the layout on a file that is open, since that will always be the case for normal layout swap with a temporary open-unlinked file (see &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-2441&quot; title=&quot;Temporary file support&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-2441&quot;&gt;&lt;del&gt;LU-2441&lt;/del&gt;&lt;/a&gt;).  Possibly flags could be passed to the layout swap in the case of inode migration to have the MDS return -EBUSY if the &quot;source&quot; inode is in use.&lt;/p&gt;</comment>
                            <comment id="60735" author="di.wang" created="Sat, 15 Jun 2013 07:26:10 +0000"  >&lt;p&gt;&lt;a href=&quot;http://review.whamcloud.com/#change,6662&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,6662&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="85139" author="jlevi" created="Thu, 29 May 2014 15:45:38 +0000"  >&lt;p&gt;Patch landed to Master. Please reopen ticket if more work is needed.&lt;/p&gt;</comment>
                            <comment id="102133" author="gerrit" created="Sat, 20 Dec 2014 00:09:41 +0000"  >&lt;p&gt;Andreas Dilger (andreas.dilger@intel.com) uploaded a new patch: &lt;a href=&quot;http://review.whamcloud.com/13161&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/13161&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-2430&quot; title=&quot;Migration tool for DNE&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-2430&quot;&gt;&lt;del&gt;LU-2430&lt;/del&gt;&lt;/a&gt; utils: fix &quot;lfs mv&quot; command parsing&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 13440292305d6a8cdce949501f8b5f5eb3357ff6&lt;/p&gt;</comment>
                            <comment id="105538" author="gerrit" created="Tue, 3 Feb 2015 18:18:34 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;http://review.whamcloud.com/13161/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/13161/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-2430&quot; title=&quot;Migration tool for DNE&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-2430&quot;&gt;&lt;del&gt;LU-2430&lt;/del&gt;&lt;/a&gt; utils: fix &quot;lfs mv&quot; command parsing&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 5c61e053874caafe75f84c149de933050e9ec660&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="23466">LU-4712</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="34519">LU-7749</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="23371">LU-4682</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="23372">LU-4683</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="31126">LU-6866</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="31128">LU-6868</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="19238">LUDOC-156</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="33845">LU-7607</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                            <subtask id="19237">LU-3424</subtask>
                    </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|hzvd9r:</customfieldvalue>

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