<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 03:27: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>[LU-16479] Automatically manage/control DEGRADED ZFS OST&apos;s</title>
                <link>https://jira.whamcloud.com/browse/LU-16479</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;We have the obdfilter.testfs-OST000*.degraded&#160;value set/unset by zedlets (/etc/zfs/zed.d/statechange-lustre.sh) based on zpool being DEGRADED/ONLINE, We&apos;d like to have this behavior enabled/disabled through an option so that we have I/O or newer allocations to DEGRADED OST&apos;s as well and hence there is no degradation in net bandwidth of the filesystem due to the degraded OSTs.&lt;br/&gt;
&#160;&lt;br/&gt;
Introduce a new Lustre-specific ZFS dataset user property (lustre:autodegrade=on|off) for this purpose. Update the Lustre zedlet and also extend the mkfs.lustre utility to add this property by default when creating a new Lustre server(only for ZFS OSTs). The default behavior would remain the same (lustre:autodegrade=on) which disables new allocations to DEGRADED OSTs.&lt;br/&gt;
Creating a user property has a few advantages:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;User properties are a generic ZFS feature and won&apos;t be interpreted by ZFS itself. No ZFS changes are needed.&lt;/li&gt;
	&lt;li&gt;The property can be set per dataset providing more granularity.&lt;/li&gt;
	&lt;li&gt;The property is persistent and will survive reboots.&lt;/li&gt;
&lt;/ol&gt;
</description>
                <environment>Lustre filesystem with ZFS as backend filesystem for OST&amp;#39;s.</environment>
        <key id="74014">LU-16479</key>
            <summary>Automatically manage/control DEGRADED ZFS OST&apos;s</summary>
                <type id="4" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11310&amp;avatarType=issuetype">Improvement</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="akash-b">Akash B</assignee>
                                    <reporter username="akash-b">Akash B</reporter>
                        <labels>
                    </labels>
                <created>Mon, 16 Jan 2023 10:36:36 +0000</created>
                <updated>Fri, 17 Feb 2023 13:19:50 +0000</updated>
                            <resolved>Tue, 14 Feb 2023 06:26:42 +0000</resolved>
                                    <version>Upstream</version>
                    <version>Lustre 2.15.0</version>
                                    <fixVersion>Lustre 2.16.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>7</watches>
                                                                            <comments>
                            <comment id="359348" author="gerrit" created="Tue, 17 Jan 2023 18:41:34 +0000"  >&lt;p&gt;&quot;Akash B &amp;lt;akash-b@hpe.com&amp;gt;&quot; uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49660&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49660&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-16479&quot; title=&quot;Automatically manage/control DEGRADED ZFS OST&amp;#39;s&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-16479&quot;&gt;&lt;del&gt;LU-16479&lt;/del&gt;&lt;/a&gt; utils: Add option to manage degraded ZFS OST&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: ccf612d181952744e1dd13a842c02bb28ba181d1&lt;/p&gt;</comment>
                            <comment id="360927" author="ofaaland" created="Mon, 30 Jan 2023 20:51:10 +0000"  >&lt;p&gt;Hi Akash,&lt;br/&gt;
What motivated this?  Did you see disk failures during testing that affected results unnecessarily?&lt;br/&gt;
thanks&lt;/p&gt;</comment>
                            <comment id="362056" author="JIRAUSER18017" created="Wed, 8 Feb 2023 07:29:30 +0000"  >&lt;p&gt;Hi Olaf,&lt;/p&gt;

&lt;p&gt;By default for ZFS OSTs, the lustre zedlet(statechange-lustre.sh) does the automatic manipulation of Lustre degraded state. While writing to multiple OSS nodes where one or two OSTs are in a degraded state (&lt;tt&gt;D seen in lfs df -h at the client side&lt;/tt&gt;), reduces the overall bandwidth(performance degradation) of the filesystem.&lt;/p&gt;

&lt;p&gt;We&apos;d want to have this behavior enabled/disabled through an option. Talked to Brian Behlendorf about this behavior for having this as a user property which administrators can use to enable/disable this behavior.&#160;&lt;/p&gt;
&lt;div class=&quot;code panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;codeContent panelContent&quot;&gt;
&lt;pre class=&quot;code-java&quot;&gt;
Hey Akash,
&#160;
On occasion we&apos;ve also wanted to be able to administratively disable &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt; behavior, supporting &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt; sounds great.
&#160;
I agree that splitting portions of the patch between Lustre and ZFS is awkward.&#160; It&lt;span class=&quot;code-quote&quot;&gt;&apos;d be nice to handle it entirely on the Lustre side.&#160; An alternate solution would be to introduce a &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; Lustre specific ZFS dataset user property.&#160; As I&apos;&lt;/span&gt;m sure you&apos;ve noticed Lustre already adds the following dataset properties which are used &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; configuration
&#160;
kern3/ost1&#160; lustre:flags&#160; &#160; &#160; &#160; &#160; &#160;4130&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;local&#160;
kern3/ost1&#160; lustre:fsname&#160; &#160; &#160; &#160; &#160;lslide&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160;local
kern3/ost1&#160; lustre:version&#160; &#160; &#160; &#160; 1&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; local
kern3/ost1&#160; lustre:mgsnode&#160; &#160; &#160; &#160; 7@kfi:9@kfi&#160; &#160; &#160; &#160; &#160; &#160; &#160; local
kern3/ost1&#160; lustre:index&#160; &#160; &#160; &#160; &#160; 0&#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; &#160; local
kern3/ost1&#160; lustre:failover.node&#160; 21@kfi:3@kfi&#160; &#160; &#160; &#160; &#160; &#160; &#160;local
kern3/ost1&#160; lustre:svname&#160; &#160; &#160; &#160; &#160;lslide-OST0000&#160; &#160; &#160; &#160; &#160;local
&#160;
We could add a &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; lustre:autodegrade=&amp;lt;on|off&amp;gt; user property (See &quot;User Properties in zfsprops(7)).&#160; The statechange-lustre.sh zedlet could then check &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt; property on the dataset to control the behavior.&#160; This has a few advantages:
1. User properties are a &lt;span class=&quot;code-keyword&quot;&gt;generic&lt;/span&gt; ZFS feature and won&apos;t be interpreted by ZFS itself.&#160; No ZFS changes are needed.
2. The property can be set per dataset providing more granularity.
3. The property is persistent and will survive reboots.&#160;&#160;
4. This mechanism is already used within the zedlet to identify Lustre datasets;
e.g.: ZFS get -rH -s local -t filesystem -o name lustre:svname ${ZEVENT_POOL}
5. You can add the property at any time to an existing MDT/OST
What &lt;span class=&quot;code-keyword&quot;&gt;do&lt;/span&gt; you think?&#160; If you were to implement &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt; I&apos;d suggest not only updating the Lustre zedlet, but also extending the lustre.mkfs utility to add &lt;span class=&quot;code-keyword&quot;&gt;this&lt;/span&gt; property by &lt;span class=&quot;code-keyword&quot;&gt;default&lt;/span&gt; when creating a &lt;span class=&quot;code-keyword&quot;&gt;new&lt;/span&gt; Lustre server.
&#160;
Thanks,
Brian
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</comment>
                            <comment id="362671" author="gerrit" created="Tue, 14 Feb 2023 06:04:51 +0000"  >&lt;p&gt;&quot;Oleg Drokin &amp;lt;green@whamcloud.com&amp;gt;&quot; merged in patch &lt;a href=&quot;https://review.whamcloud.com/c/fs/lustre-release/+/49660/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/c/fs/lustre-release/+/49660/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-16479&quot; title=&quot;Automatically manage/control DEGRADED ZFS OST&amp;#39;s&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-16479&quot;&gt;&lt;del&gt;LU-16479&lt;/del&gt;&lt;/a&gt; utils: Add option to manage degraded ZFS OST&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: a2de6af65d21bff0d9357c30e6eb4ba049ff2059&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_10040" key="com.atlassian.jira.plugin.system.customfieldtypes:labels">
                        <customfieldname>Epic</customfieldname>
                        <customfieldvalues>
                                        <label>server</label>
            <label>zfs</label>
    
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10030" key="com.atlassian.jira.plugin.system.customfieldtypes:labels">
                        <customfieldname>Epic/Theme</customfieldname>
                        <customfieldvalues>
                                        <label>zfs</label>
    
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|i03a47:</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>
                                                                                                                                                                                                                                                                                                                                                                                                                </customfields>
    </item>
</channel>
</rss>