<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:11:36 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-7749] DNE3: migrated orphan survive till next reboot</title>
                <link>https://jira.whamcloud.com/browse/LU-7749</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;during migration we put old objects onto /PENDING and leave it there till the next reboot (PENDING cleanup). this approach has a number of problems:&lt;br/&gt;
1) space (inodes and directories) aren&apos;t released&lt;br/&gt;
    so if one wanted to rebalance/free space on MDT will have to reboot it&lt;br/&gt;
2) PENDING/ may become huge slowing down regular unlinks&lt;br/&gt;
     this is especially bad as it never shrink&lt;/p&gt;
</description>
                <environment></environment>
        <key id="34519">LU-7749</key>
            <summary>DNE3: migrated orphan survive till next reboot</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="wc-triage">WC Triage</assignee>
                                    <reporter username="bzzz">Alex Zhuravlev</reporter>
                        <labels>
                            <label>dne3</label>
                    </labels>
                <created>Fri, 5 Feb 2016 11:54:19 +0000</created>
                <updated>Tue, 7 Apr 2020 22:29:05 +0000</updated>
                                            <version>Lustre 2.8.0</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                            <comments>
                            <comment id="141321" author="adilger" created="Fri, 5 Feb 2016 12:41:26 +0000"  >&lt;p&gt;Alex, what do you propose for a solution here?  There is definitely a need to keep migrated inodes on the current MDT for some time, to avoid access races as well as things like NFS file handles (which contain the FID).  The problem with NFS file handles is that they can be long lived.&lt;/p&gt;

&lt;p&gt;I agree that keeping the old inode for a long time isn&apos;t necessarily desirable, so possibly an LRU and/or aging to remove them?  Should this be seconds, minutes, hours?&lt;/p&gt;

&lt;p&gt;You had previously also mentioned that the inodes are deleted from PENDING after a reboot, which I guess is true since nothing holds them open after recovery.  It would be nice to fix this as well, though I don&apos;t think it is a blocker.&lt;/p&gt;

&lt;p&gt;In theory, we don&apos;t need to actually keep this redirection on the disk.  It could be only in memory (at least currently, since PENDING isn&apos;t really persistent across recovery), but then it would pin a lot of RAM, which may be even less desirable.  It would also be possible to have a redirection index with &lt;span class=&quot;error&quot;&gt;&amp;#91;key=old_fid,value=new_fid&amp;#93;&lt;/span&gt; mappings, which would take less space than keeping a whole inode around, but it wouldn&apos;t be any faster than PENDING if it grows large since it is still an index.  We could also delete and recreate PENDING after recovery if it is empty but very large, or even if non-empty by moving remaining files to the new PENDING (though this adds complexity).&lt;/p&gt;</comment>
                            <comment id="141962" author="bzzz" created="Thu, 11 Feb 2016 13:32:51 +0000"  >&lt;p&gt;Andreas, do we already have a support for such a forwarding on the client side?&lt;/p&gt;

&lt;p&gt;big PENDING/ affects regular unlink/close while a separate index does not.&lt;/p&gt;</comment>
                            <comment id="142140" author="adilger" created="Sat, 13 Feb 2016 08:56:56 +0000"  >&lt;p&gt;I think a few smaller patches could be made to improve things here:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;scan of PENDING periodically (hourly?) to free objects that are not open but older than an hour (maybe /proc tunable to adjust scan interval), or if free inodes are getting low&lt;/li&gt;
	&lt;li&gt;change recovery to keep redirection objects in PENDING after reboot&lt;/li&gt;
	&lt;li&gt;implementing &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7607&quot; title=&quot;Preserve inode number after MDT migration &quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7607&quot;&gt;LU-7607&lt;/a&gt; would also reduce the need to keep redirector inodes around, but not eliminate it for NFS filesystems unless the Lustre file handle could locate the redirected inode. I don&apos;t know if we would be able to detect if NFS is ever used on an object, since this is local to the client, but migration may happen on another client. I guess it would be possible for the client to send a flag/set_info to the MDS of the export operations are ever used. If not, then the redirector objects don&apos;t need to be kept much longer than the end of the migration transaction.&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="267095" author="adilger" created="Tue, 7 Apr 2020 22:29:05 +0000"  >&lt;p&gt;I think that this functionality is being implemented by patch &lt;a href=&quot;https://review.whamcloud.com/38135&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/38135&lt;/a&gt; &quot;&lt;tt&gt;&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11025&quot; title=&quot;DNE3: directory restripe&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11025&quot;&gt;&lt;del&gt;LU-11025&lt;/del&gt;&lt;/a&gt; dne: add FID mapping interfaces&lt;/tt&gt;&quot;?&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="16851">LU-2430</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="52253">LU-11025</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="33845">LU-7607</issuekey>
        </issuelink>
                            </outwardlinks>
                                                        </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|hzy0gv:</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>