<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:47:38 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-11868] ZFS ea size limited to 32K</title>
                <link>https://jira.whamcloud.com/browse/LU-11868</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;The ZFS OSD limits the ea size to&#160;DXATTR_MAX_ENTRY_SIZE, which defaults to 32K.&lt;/p&gt;

&lt;p&gt;This is done when ddp_max_ea_size is set:&lt;/p&gt;

&lt;p&gt;param-&amp;gt;ddp_max_ea_size = DXATTR_MAX_ENTRY_SIZE;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;Per Alex Z., this is probably incorrect, since ZFS can use dedicated objects for EAs.&lt;/p&gt;

&lt;p&gt;This was discovered and confirmed in testing overstriping (&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-9846&quot; title=&quot;Overstriping - more than stripe per OST per component&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-9846&quot;&gt;&lt;del&gt;LU-9846&lt;/del&gt;&lt;/a&gt;):&lt;br/&gt;
&lt;a href=&quot;https://testing.whamcloud.com/test_sets/ea834356-1552-11e9-9ed8-52540065bddc&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://testing.whamcloud.com/test_sets/ea834356-1552-11e9-9ed8-52540065bddc&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Specifically, test 27ci:&lt;br/&gt;
This is a test for overstriping, which is &amp;gt; 1 stripe per OST. This tries to create 2000 stripes.&lt;br/&gt;
It works on ldiskfs (with ea_inode) enabled, but on ZFS, we only get 1363 total stripes&lt;/p&gt;

&lt;p&gt;32768/24 bytes per stripe = 1365&lt;/p&gt;

&lt;p&gt;So, minus a little for the rest of the layout EA, this matches.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;So 32K is too small, especially if we increase the stripe limit to 10K, as the overstriping patch series does in a later patch.&#160; The question is what should the limit be.&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;

&lt;p&gt;I would suggest as a possible value:&lt;br/&gt;
/* Maximum EA size is limited by LNET_MTU for remote objects */&lt;br/&gt;
#define OSD_MAX_EA_SIZE 1048364&lt;/p&gt;

&lt;p&gt;Which is currently in the ldiskfs OSD, but is clearly not ldiskfs specific.&lt;/p&gt;

&lt;p&gt;I&apos;m curious to get feedback here.&lt;/p&gt;</description>
                <environment></environment>
        <key id="54569">LU-11868</key>
            <summary>ZFS ea size limited to 32K</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="pfarrell">Patrick Farrell</assignee>
                                    <reporter username="pfarrell">Patrick Farrell</reporter>
                        <labels>
                    </labels>
                <created>Wed, 16 Jan 2019 18:47:40 +0000</created>
                <updated>Fri, 7 Feb 2020 19:46:01 +0000</updated>
                            <resolved>Tue, 30 Apr 2019 12:57:48 +0000</resolved>
                                                    <fixVersion>Lustre 2.13.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>5</watches>
                                                                            <comments>
                            <comment id="240161" author="pfarrell" created="Wed, 16 Jan 2019 18:51:07 +0000"  >&lt;p&gt;The problem is, if we do this, I think we&apos;ll hit the same OOM issues in autotest as when we try to enable ea_inode on ldiskfs:&lt;br/&gt;
&lt;a href=&quot;https://review.whamcloud.com/#/c/33706/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/#/c/33706/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Comment there explains a bit:&lt;/p&gt;

&lt;p&gt;I have a theory on this that I&apos;m hoping to be able to confirm from the dump.&lt;/p&gt;

&lt;p&gt;ea_inode has been the config in many (most?) deployed Cray systems for a few years years, with no issues with OOM.&lt;/p&gt;

&lt;p&gt;I think we&apos;re seeing OOM not because of a bug, but because various buffers are allocated to maximum ea size, which with ea_inode is ~ 1 MiB for ldiskfs.&lt;/p&gt;

&lt;p&gt;I think we&apos;re just running the VMs out of memory because of this. The autotest VMs are tiny, ~1.6 GB.&lt;/p&gt;

&lt;p&gt;Not sure what to do about that. I&apos;ll look at the buffers and see if it&apos;s possible to change how they&apos;re allocated - there are a bunch of them that depend indirectly on ea_size.&lt;/p&gt;</comment>
                            <comment id="240163" author="pfarrell" created="Wed, 16 Jan 2019 18:52:55 +0000"  >&lt;p&gt;One other possibility would be to limit the OSD_MAX_EA_SIZE to some smaller value.&#160; 10,000 stripes requires ~ 240K of EA, so we could probably limit it to a 256 KiB size.&#160; But that&apos;s arbitrary, not directly connected to any specific limitation.&lt;/p&gt;</comment>
                            <comment id="240168" author="adilger" created="Wed, 16 Jan 2019 21:51:49 +0000"  >&lt;p&gt;Can you please verify that tools like getfattr, setfattr, cp, rsync, tar, etc. can work with xattrs larger than 32KB or 64KB?  AFAIR, there is a hard limit in the kernel for the xattr size that the VFS will even accept, so allowing files with a larger layout internally may cause a lot of problems later. &lt;/p&gt;</comment>
                            <comment id="240242" author="pfarrell" created="Thu, 17 Jan 2019 16:14:53 +0000"  >&lt;p&gt;Good to know - I&apos;ll check on that.&#160; I suspect we&apos;ve got a 64 KiB limit - That is in /usr/include/linux/limits.h:&lt;/p&gt;

&lt;p&gt;#define XATTR_SIZE_MAX 65536 /* size of an extended attribute value (64k) */&lt;/p&gt;

&lt;p&gt;And is used (inconsistently) in the ACL code as an upper limit.&lt;/p&gt;

&lt;p&gt;That raises a challenging question, then, if we wish to raise stripe count much beyond 2K (Even 2K is over 32 KiB, so...).&#160; Interesting - I&apos;ll noodle on it.&lt;/p&gt;</comment>
                            <comment id="240265" author="pfarrell" created="Thu, 17 Jan 2019 19:28:03 +0000"  >&lt;p&gt;Yes, trying to access an ea_size greater than 64K causes E2BIG from getfattr (specifically, the getxattr syscall).&lt;/p&gt;

&lt;p&gt;Here&apos;s an example with 2,730 stripes, trusted.lov is 65792 bytes:&lt;br/&gt;
getxattr(&quot;2730file&quot;, &quot;trusted.lov&quot;, 0x23e2f70, 65792) = -1 E2BIG (Argument list too long)&lt;/p&gt;

&lt;p&gt;2720 stripes is fine:&lt;/p&gt;

&lt;p&gt;getxattr(&quot;2720file&quot;, &quot;trusted.lov&quot;, &lt;span class=&quot;error&quot;&gt;&amp;#91;...&amp;#93;&lt;/span&gt;,&#160;65536) = 65312&lt;/p&gt;

&lt;p&gt;I&apos;m going to assume this limit applies to at least some of the other tools as well, so we&apos;ll have to respect it.&lt;/p&gt;



&lt;p&gt;Just to confirm: This matters for manual editing and backups of MDTs, right?&lt;/p&gt;</comment>
                            <comment id="240269" author="gerrit" created="Thu, 17 Jan 2019 20:10:58 +0000"  >&lt;p&gt;Patrick Farrell (pfarrell@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/34058&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/34058&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11868&quot; title=&quot;ZFS ea size limited to 32K&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11868&quot;&gt;&lt;del&gt;LU-11868&lt;/del&gt;&lt;/a&gt; osd: Set max ea size to XATTR_SIZE_MAX&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: b730ac71c6461b34b196a90066a38d94d3baf87d&lt;/p&gt;</comment>
                            <comment id="240270" author="gerrit" created="Thu, 17 Jan 2019 20:29:42 +0000"  >&lt;p&gt;Patrick Farrell (pfarrell@whamcloud.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/34059&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/34059&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11868&quot; title=&quot;ZFS ea size limited to 32K&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11868&quot;&gt;&lt;del&gt;LU-11868&lt;/del&gt;&lt;/a&gt; mdc: Improve xattr buffer allocations&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: 055702a13537c99d7f09364a350d8027359c694e&lt;/p&gt;</comment>
                            <comment id="240937" author="gerrit" created="Wed, 30 Jan 2019 02:41:31 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/34059/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/34059/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11868&quot; title=&quot;ZFS ea size limited to 32K&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11868&quot;&gt;&lt;del&gt;LU-11868&lt;/del&gt;&lt;/a&gt; mdc: Improve xattr buffer allocations&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 4f78164f8748cf8013331637ba33388e83fbd627&lt;/p&gt;</comment>
                            <comment id="246485" author="gerrit" created="Tue, 30 Apr 2019 03:35:58 +0000"  >&lt;p&gt;Oleg Drokin (green@whamcloud.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/34058/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/34058/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-11868&quot; title=&quot;ZFS ea size limited to 32K&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-11868&quot;&gt;&lt;del&gt;LU-11868&lt;/del&gt;&lt;/a&gt; osd: Set max ea size to XATTR_SIZE_MAX&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 3ec712bd183a859a7bb09280b8a5a1776ec5e2c2&lt;/p&gt;</comment>
                            <comment id="246518" author="pjones" created="Tue, 30 Apr 2019 12:57:48 +0000"  >&lt;p&gt;Landed for 2.13&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="54733">LU-11910</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="47710">LU-9846</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="56211">LU-12481</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </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|i009pr:</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>