<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:41:22 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>[LUDOC-244] LFSCK Adjustment Interface documentation is inconsistent</title>
                <link>https://jira.whamcloud.com/browse/LUDOC-244</link>
                <project id="10070" key="LUDOC">Lustre Documentation</project>
                    <description>&lt;p&gt;The LFSCK Adjustment Interface documentation in the Lustre manual (section 28.4.3) has a couple of inconsistencies.&lt;/p&gt;

&lt;p&gt;In section 28.4.3.1, the lfsck_speed_limit example shows it being set to &apos;N&apos;, while the table of possible values shows that it should be set to 0 or a positive integer.&lt;/p&gt;

&lt;p&gt;The same thing goes for section 28.4.3.2, in which the auto_scrub example shows it being set to &apos;N&apos;, while the table shows possible values of 0 or a positive integer.&lt;/p&gt;

&lt;p&gt;I think the integer guidance is correct, but I&apos;ll need to verify.  Then the examples should be updated to use nonnegative integers instead of &apos;N&apos;.&lt;/p&gt;

&lt;p&gt;Additionally, the two options in the table for auto_scrub also seem to be saying the same thing to me:&lt;/p&gt;

&lt;p&gt;&quot;Do not start OI Scrub automatically.&quot;&lt;/p&gt;

&lt;p&gt;VS.&lt;/p&gt;

&lt;p&gt;&quot;Manually start OI Scrub if needed.&quot;&lt;/p&gt;

&lt;p&gt;Not starting something automatically implies it will need to be started manually, so these are saying the same thing.&lt;/p&gt;

&lt;p&gt;Finally, it wouldn&apos;t hurt to change the &quot;Synopsis&quot; headings to &quot;Example usage&quot; or something and to update &quot;Mount Options&quot; to &quot;Auto Scrub&quot;.&lt;/p&gt;</description>
                <environment></environment>
        <key id="25137">LUDOC-244</key>
            <summary>LFSCK Adjustment Interface documentation is inconsistent</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="yong.fan">nasf</assignee>
                                    <reporter username="haasken">Ryan Haasken</reporter>
                        <labels>
                    </labels>
                <created>Thu, 12 Jun 2014 23:50:47 +0000</created>
                <updated>Tue, 11 Nov 2014 23:57:05 +0000</updated>
                            <resolved>Tue, 11 Nov 2014 23:57:05 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                            <comments>
                            <comment id="86577" author="haasken" created="Fri, 13 Jun 2014 16:36:59 +0000"  >&lt;p&gt;Oh, I see.  In the synopsis of each command, &apos;N&apos; is just an arbitrary non-negative integer.  I guess I interpreted it as being shorthand for &quot;No&quot; in the auto_scrub case.  Perhaps putting that N in a &amp;lt;replaceable&amp;gt; element will make it more clear that is just a placeholder for a non-negative integer.&lt;/p&gt;

&lt;p&gt;However, I think the description of LFSCK behavior when auto_scrub is set to a positive integer should still be updated.  When set to a positive integer, this sets dev-&amp;gt;no_scrub=0, which allows the OI scrub to be triggered automatically by RPC in osd_fid_lookup().  I would suggest something like &quot;Automatically start OI Scrub if inconsistency detected in OI lookup.&quot;&lt;/p&gt;</comment>
                            <comment id="86583" author="haasken" created="Fri, 13 Jun 2014 17:20:03 +0000"  >&lt;p&gt;I&apos;m not entirely clear on &quot;Section 28.4.3.2. Mount options&quot;.  It seems that the auto_scrub parameter/noscrub mount option will activate an OI scrub in two different situations.&lt;/p&gt;

&lt;p&gt;The first situation would be when an MDT file-level restore is detected.  The second situation would be when inconsistency is detected during OI lookup.  I took these situations from the OI Scrub solution architecture document.&lt;/p&gt;

&lt;p&gt;Both the auto_scrub parameter and the noscrub mount option use the same underlying osd_device-&amp;gt;no_scrub data, and this data controls whether OI scrub is triggered in either of these situations.  Am I understanding this correctly?&lt;/p&gt;

&lt;p&gt;If I am understanding this correctly, I think this section should be renamed &quot;Auto scrub&quot;, and it should describe the set_param way of setting auto_scrub as well as the mount option way of setting no_scrub.  It should describe the two situations in which an OI scrub will be triggered automatically.  Can anybody with some LFSCK expertise weigh in on this?&lt;/p&gt;</comment>
                            <comment id="86584" author="haasken" created="Fri, 13 Jun 2014 17:27:48 +0000"  >&lt;p&gt;Should the noscrub mount option also be described in the section on mount.lustre options (Section 37.15.3)?  &lt;/p&gt;

&lt;p&gt;I think the manual should also give an example of setting the noscrub mount option in section 28.4.3.2.&lt;/p&gt;</comment>
                            <comment id="86632" author="yong.fan" created="Sat, 14 Jun 2014 00:28:03 +0000"  >&lt;p&gt;As you said, there are two switches for the administrator to control whether trigger OI scrub automatically when some inconsistent OI mapping or file-level backup/restore is detected:&lt;/p&gt;

&lt;p&gt;1) The lproc parameter &quot;auto_scrub&quot;. It is a dynamica interface. The administrator can change it anytime after the system online. The default value is non-zero, means enable the auto trigger mechanism. If the administrator changes it as zero via &quot;lctl conf_param&quot; (or &quot;lctl set_param -P&quot;), then such parameter changing will be remembered, and will take effect all the time in spite of mount/umount, until the administrator change it again:&lt;/p&gt;

&lt;p&gt;2) The server mount options &quot;-o noscrub&quot;. It is used to control the OI scrub at the beginning. To guarantee that the OI scrub will NOT by auto triggered just during the mount, the administrator can specify the mount options &quot;-o noscrub&quot;, then &quot;auto_scrub&quot; parameter will be set as zero by force. It is better to explain related things in the mount.lustre section in the manual.&lt;/p&gt;
</comment>
                            <comment id="86753" author="haasken" created="Mon, 16 Jun 2014 23:21:07 +0000"  >&lt;p&gt;Thank you for the clarification.  I have another question for you.  If the &quot;noscrub&quot; mount option is set, then will &quot;auto_scrub&quot; remain set to zero while the file system is mounted?  Meaning, will automatic scrub be disabled when an inconsistent OI mapping is detected in addition to being disabled at mount time?&lt;/p&gt;</comment>
                            <comment id="86761" author="yong.fan" created="Tue, 17 Jun 2014 00:27:18 +0000"  >&lt;p&gt;Currently, if &quot;noscrub&quot; mount option is specified, then the &quot;auto_scrub&quot; parameter will be set as zero by force when the OSD processing the mount. So before you change the &quot;auto_scrub&quot; next time via lproc interface, the &quot;auto_scrub&quot; will keep zero and the OI scrub will not be auto triggered even if detect some OI inconsistency. But if you want, you can change &quot;auto_scrub&quot; as non-zero after the mount, then the OI scrub auto triggering mechanism will be enabled again.&lt;/p&gt;</comment>
                            <comment id="93663" author="yong.fan" created="Wed, 10 Sep 2014 07:34:17 +0000"  >&lt;p&gt;Ryan, is there anything else to be updated for the Lustre document about LFSCK/OI_scrub? Do you want me to make a document patch for that or you will do that by yourself? Thanks!&lt;/p&gt;</comment>
                            <comment id="93812" author="haasken" created="Thu, 11 Sep 2014 22:14:13 +0000"  >&lt;p&gt;Yes, thanks for answering my questions.  I&apos;ll submit a documentation patch shortly, and I would appreciate it if you could review.&lt;/p&gt;

&lt;p&gt;Is the noscrub mount option a Lustre server-specific mount.lustre option that should be documented in section 37.15.3?&lt;/p&gt;</comment>
                            <comment id="93819" author="haasken" created="Thu, 11 Sep 2014 23:04:18 +0000"  >&lt;p&gt;Here is a patch.  Can you please review?&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://review.whamcloud.com/#/c/11886/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#/c/11886/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One other thing that ought to be explained in the Lustre manual is the meaning of phases 1 and 2 within both the namespace LFSCK and the layout LFSCK.  Can you please explain?  It&apos;s not very clear to me from reading the LFSCK design docs either.&lt;/p&gt;</comment>
                            <comment id="96191" author="yong.fan" created="Sun, 12 Oct 2014 04:53:30 +0000"  >&lt;p&gt;Currently, LFSCK use two phases scanning to guarantee all the inconsistency can be handled completely and efficiently.&lt;/p&gt;

&lt;p&gt;1) The first-stage scanning&lt;br/&gt;
There is a LFSCK main engine on every MDT/OST that involves the LFSCK. During the first-stage scanning, each LFSCK main engine scans its local device via low layer object-table based iteration that uses linear scanning method and guarantees that all the objects related with this server (MDT or OST) will be checked. But sometimes, the LFSCK cannot know whether the object is inconsistency or cannot know how to repair the inconsistency until the first-stage scanning finished. Then the LFSCK needs the second-stage scanning.&lt;/p&gt;

&lt;p&gt;2) The second-stage scanning&lt;br/&gt;
During the first stage-scaninng, some uncertain objects will be recorded, depends on the LFSCK type.&lt;/p&gt;

&lt;p&gt;2.1) For namespace LFSCK, the object will multiple hard-links, or with multiple linkEA entries, or with remote parent, and so on, will be recorded in the namespace LFSCK tracing file. And then, in the second-stage scanning, the namespace LFSCK will scan the objects in the namespace LFSCK tracing file in turn and handle the uncertain inconsistency.&lt;/p&gt;

&lt;p&gt;2.2) For layout LFSCK, the OST-objects that are not referenced by any MDT-object are recorded in a bitmap. When the LFSCK moves to the second-stage scanning, the OST-objects in such bitmap will be re-scanned to check whether they are really orphans or not.&lt;/p&gt;

&lt;p&gt;I am not sure whether it is your want or not. Please let me know if you still be confused by anything else.&lt;/p&gt;</comment>
                            <comment id="96310" author="haasken" created="Tue, 14 Oct 2014 16:46:57 +0000"  >&lt;p&gt;Thanks, that is the explanation I was looking for.  I think the explanation of the two phases should be added to the Lustre manual so that the user can understand the meaning of the &quot;&lt;span class=&quot;error&quot;&gt;&amp;#91;Checked|Updated|Failed&amp;#93;&lt;/span&gt; Phase&lt;span class=&quot;error&quot;&gt;&amp;#91;1|2&amp;#93;&lt;/span&gt;&quot; output from the LFSCK status interface.  I think it would be appropriate to describe these phases in the &quot;Description&quot; sections of the &quot;LFSCK status of namespace via procfs&quot; and &quot;LFSCK status of layout via procfs&quot; sections.&lt;/p&gt;</comment>
                            <comment id="98890" author="haasken" created="Tue, 11 Nov 2014 16:15:14 +0000"  >&lt;p&gt;&lt;a href=&quot;http://review.whamcloud.com/#/c/11886/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#/c/11886/&lt;/a&gt; has landed, so this ticket can be resolved.  I&apos;ve opened &lt;a href=&quot;https://jira.whamcloud.com/browse/LUDOC-261&quot; title=&quot;LFSCK namespace and layout check phases need explanation&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LUDOC-261&quot;&gt;&lt;del&gt;LUDOC-261&lt;/del&gt;&lt;/a&gt; to track the separate issue of the missing documentation on the phases of the LFSCK namespace and layout checks.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="26057">LUDOC-254</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|hzwodb:</customfieldvalue>

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