<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:35:49 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-10520] Cannot format large MDT with ldiskfs </title>
                <link>https://jira.whamcloud.com/browse/LU-10520</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;Taken from: &lt;a href=&quot;https://github.com/intel-hpdd/intel-manager-for-lustre/issues/450&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://github.com/intel-hpdd/intel-manager-for-lustre/issues/450&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&#160;&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;Description&quot;&gt;&lt;/a&gt;Description&lt;/h3&gt;

&lt;p&gt;When trying to create a MDT on a 29TB volume, the mke2fs command receive &lt;tt&gt;^extents&lt;/tt&gt; instead of &lt;tt&gt;extents&lt;/tt&gt; which cause the command to fails.&lt;/p&gt;
&lt;h3&gt;&lt;a name=&quot;Repro&quot;&gt;&lt;/a&gt;Repro&lt;/h3&gt;

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

&lt;p&gt;Create an MDT on a large LUN.&lt;/p&gt;

&lt;p&gt;&#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;modprobe osd_ldiskfs: 0


mkfs.lustre --mdt --mgsnode=172.21.61.200@tcp0 --mgsnode=172.21.61.206@tcp0 --failnode=172.21.61.200@tcp0 --reformat --index=0 --mkfsoptions=-I 512 -i 2048 -J size=2048 --backfstype=ldiskfs --fsname=BIGSI01 /dev/mapper/mpathb: 1

   Permanent disk data:
Target:     BIGSI01:MDT0000
Index:      0
Lustre FS:  BIGSI01
Mount type: ldiskfs
Flags:      0x61
              (MDT first_time update )
Persistent mount opts: user_xattr,errors=remount-ro
Parameters:  mgsnode=172.21.61.200@tcp:172.21.61.206@tcp failover.node=172.21.61.200@tcp

device size = 30501008MB
formatting backing filesystem ldiskfs on /dev/mapper/mpathb
	target name   BIGSI01:MDT0000
	4k blocks     7808258048
	options       -I 512 -i 2048 -J size=2048 -q -O dirdata,uninit_bg,^extents,mmp,dir_nlink,quota,huge_file,64bit,flex_bg -E lazy_journal_init -F
mkfs_cmd = mke2fs -j -b 4096 -L BIGSI01:MDT0000 -I 512 -i 2048 -J size=2048 -q -O dirdata,uninit_bg,^extents,mmp,dir_nlink,quota,huge_file,64bit,flex_bg -E lazy_journal_init -F /dev/mapper/mpathb 7808258048
   Found a gpt partition table in /dev/mapper/mpathb
   Extents MUST be enabled &lt;span class=&quot;code-keyword&quot;&gt;for&lt;/span&gt; a 64-bit filesystem.  Pass -O extents to rectify.


mkfs.lustre FATAL: Unable to build fs /dev/mapper/mpathb (256)

mkfs.lustre FATAL: mkfs failed 256
 

&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If I manually try the command and remove the &quot;^&quot; character, the command succeeds.&lt;/p&gt;
</description>
                <environment></environment>
        <key id="50259">LU-10520</key>
            <summary>Cannot format large MDT with ldiskfs </summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="1" iconUrl="https://jira.whamcloud.com/images/icons/priorities/blocker.svg">Blocker</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="ys">Yang Sheng</assignee>
                                    <reporter username="joe.grund">Joe Grund</reporter>
                        <labels>
                    </labels>
                <created>Tue, 16 Jan 2018 17:48:02 +0000</created>
                <updated>Thu, 18 Apr 2019 22:27:24 +0000</updated>
                            <resolved>Thu, 8 Mar 2018 17:40:00 +0000</resolved>
                                    <version>Lustre 2.10.0</version>
                    <version>Lustre 2.11.0</version>
                                    <fixVersion>Lustre 2.11.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>9</watches>
                                                                            <comments>
                            <comment id="218333" author="joe.grund" created="Tue, 16 Jan 2018 17:50:10 +0000"  >&lt;p&gt;Ok found where the &quot;^extends&quot; come from :&lt;/p&gt;

&lt;p&gt;It&apos;s in build in the mkfs.lustre binary from lustre-2.10.2-1.src.rpm&lt;/p&gt;

&lt;p&gt;Exactly it seems to come from here:&lt;br/&gt;
lustre/utils/mount_utils_ldiskfs.c:601: append_unique(anchor, &quot;,&quot;, &quot;^extents&quot;, NULL, maxbuflen);&lt;/p&gt;

&lt;p&gt;The line is the same for all the 2.10 releases, so this might not be entirely related to the issue (or else this probably would have shown in more places).&lt;/p&gt;

&lt;p&gt;Although, I am not sure that line 601 is supposed to look like that, as line 600 which add &quot;uninit_bg&quot; to the options list is :&lt;/p&gt;

&lt;p&gt;lustre/utils/mount_utils_ldiskfs.c:600: append_unique(anchor, &quot;,&quot;, &quot;uninit_bg&quot;, NULL, maxbuflen);&lt;/p&gt;</comment>
                            <comment id="218339" author="pjones" created="Tue, 16 Jan 2018 18:12:15 +0000"  >&lt;p&gt;Yang Sheng&lt;/p&gt;

&lt;p&gt;Could you please look into this?&lt;/p&gt;

&lt;p&gt;Thanks&lt;/p&gt;

&lt;p&gt;Peter&lt;/p&gt;</comment>
                            <comment id="218341" author="adilger" created="Tue, 16 Jan 2018 18:26:40 +0000"  >&lt;p&gt;There is no point in formatting an MDT filesystem larger than about 8-16TB, unless the new Data-on-MDT (DoM) feature is used, but that feature will not be available until the Lustre 2.11 release.&lt;/p&gt;

&lt;p&gt;Since the MDT (without the DoM feature) only holds inodes (1KB in size for 2.10 and later) plus directories, xattrs, and some Lustre log files (average 2KB per inode), and there is an upper limit of 4B inodes, 4B * 2KB = 8TB.  Having a larger MDT is largely a waste of space, since the extra space above 8TB cannot be used until the DoM feature is available.&lt;/p&gt;

&lt;p&gt;If you are formatting this very large MDT in anticipation of the DoM feature, and are aware of this limitation that is OK.  We need to make a patch to &lt;tt&gt;libmount_utils_ldiskfs.c&lt;/tt&gt; to enable the &lt;tt&gt;extents&lt;/tt&gt; feature only for MDT filesystems over 16TB in size.&lt;/p&gt;
</comment>
                            <comment id="218346" author="lbailleul" created="Tue, 16 Jan 2018 19:12:00 +0000"  >&lt;p&gt;Hi,&lt;/p&gt;

&lt;p&gt;Thanks for the quick clarification.&lt;br/&gt;
 This is a test system and basically the MDT was built out of one of the LUN that was&#160;supposed to be an OST.&lt;br/&gt;
 There was no intention to use DoM at this point (but it is good to hear that the feature is coming).&lt;/p&gt;

&lt;p&gt;I was suspecting an issue with the size of the MDT as reducing the LUN from 29TB to 2TB allows it to format properly.&lt;/p&gt;

&lt;p&gt;Although I still get the weird &quot;&amp;#94;extents&quot; in the mke2fs parameters list (is this a typo, or does &apos;^&apos; has special meaning ?).&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;mkfs.lustre --mdt --mgsnode=172.21.61.200@tcp0 --mgsnode=172.21.61.206@tcp0 --failnode=172.21.61.200@tcp0 --reformat --index=0 --mkfsoptions=-I 512 -i 2048 -J size=2048 --backfstype=ldiskfs --fsname=TEST01 /dev/mapper/mpathb: 0&lt;/p&gt;

&lt;p&gt;Permanent disk data:&lt;br/&gt;
 Target: TEST01:MDT0000&lt;br/&gt;
 Index: 0&lt;br/&gt;
 Lustre FS: TEST01&lt;br/&gt;
 Mount type: ldiskfs&lt;br/&gt;
 Flags: 0x61&lt;br/&gt;
 (MDT first_time update )&lt;br/&gt;
 Persistent mount opts: user_xattr,errors=remount-ro&lt;br/&gt;
 Parameters: mgsnode=172.21.61.200@tcp:172.21.61.206@tcp failover.node=172.21.61.200@tcp&lt;/p&gt;

&lt;p&gt;device size = 1992294MB&lt;br/&gt;
 formatting backing filesystem ldiskfs on /dev/mapper/mpathb&lt;br/&gt;
 target name TEST01:MDT0000&lt;br/&gt;
 4k blocks 510027366&lt;br/&gt;
 options -I 512 -i 2048 -J size=2048 -q -O dirdata,uninit_bg,^extents,mmp,dir_nlink,quota,huge_file,flex_bg -E lazy_journal_init -F&lt;br/&gt;
 mkfs_cmd = mke2fs -j -b 4096 -L TEST01:MDT0000 -I 512 -i 2048 -J size=2048 -q -O dirdata,uninit_bg,^extents,mmp,dir_nlink,quota,huge_file,flex_bg -E lazy_journal_init -F /dev/mapper/mpathb 510027366&lt;/p&gt;&lt;/blockquote&gt;

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

&lt;p&gt;Also last thing, creating a zpool of 29TB and creating an MDT on top of it works, even if as you mentioned, while running 2.10 this is mostly wasting space.&lt;/p&gt;</comment>
                            <comment id="218382" author="ys" created="Wed, 17 Jan 2018 06:30:27 +0000"  >&lt;p&gt;Hi, Louis,&lt;/p&gt;

&lt;p&gt;The &apos;^&apos; means disabled feature. That said, we disable extents feature on MDT default.&lt;/p&gt;

&lt;p&gt;Thanks,&lt;br/&gt;
YangSheng&lt;/p&gt;</comment>
                            <comment id="218384" author="adilger" created="Wed, 17 Jan 2018 07:47:49 +0000"  >&lt;p&gt;Note that formatting a ZFS MDT if 29 TB is not a necessarily a waste of space, since ZFS dynamically allocates inodes in the filesystem, though it uses about twice as much space per inode (4KB vs 2KB) compared to ldiskfs. That means if it is used to create a lot of files (as the MDT is traditionally used, it could hold about 7B inodes, or if it was used to hold 64KB files for DoM it could hold about 450M files. &lt;/p&gt;</comment>
                            <comment id="219253" author="gerrit" created="Fri, 26 Jan 2018 14:01:44 +0000"  >&lt;p&gt;Yang Sheng (yang.sheng@intel.com) uploaded a new patch: &lt;a href=&quot;https://review.whamcloud.com/31037&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/31037&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10520&quot; title=&quot;Cannot format large MDT with ldiskfs &quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10520&quot;&gt;&lt;del&gt;LU-10520&lt;/del&gt;&lt;/a&gt; mkfs: enable extents for big MDT&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: 1&lt;br/&gt;
Commit: e9ce401071c41b07d494291183d92f3beace24c4&lt;/p&gt;</comment>
                            <comment id="219510" author="sbuisson" created="Wed, 31 Jan 2018 06:45:08 +0000"  >&lt;blockquote&gt;&lt;p&gt;There is no point in formatting an MDT filesystem larger than about 8-16TB, unless the new Data-on-MDT (DoM) feature is used, but that feature will not be available until the Lustre 2.11 release.&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;p&gt;Since the MDT (without the DoM feature) only holds inodes (1KB in size for 2.10 and later) plus directories, xattrs, and some Lustre log files (average 2KB per inode), and there is an upper limit of 4B inodes, 4B * 2KB = 8TB. Having a larger MDT is largely a waste of space, since the extra space above 8TB cannot be used until the DoM feature is available.&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Hi,&lt;br/&gt;
When calculating MDT disk space consumption, we might not forget space used by Changelog entries. As a rule of thumb, a Changelog entry is of an average of 125 B. And for instance, when touching a new file, if all Changelog entry types are recorded, 3 Changelog entries are generated (CREATE, OPEN, CLOSE).&lt;br/&gt;
My point is space over 8TB on MDT device can be useful to store Changelog entries before they are consumed and cleared.&lt;/p&gt;

&lt;p&gt;Cheers,&lt;br/&gt;
Sebastien.&lt;/p&gt;</comment>
                            <comment id="222831" author="gerrit" created="Thu, 8 Mar 2018 17:35:44 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/31037/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/31037/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-10520&quot; title=&quot;Cannot format large MDT with ldiskfs &quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-10520&quot;&gt;&lt;del&gt;LU-10520&lt;/del&gt;&lt;/a&gt; mkfs: enable extents for big MDT&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: eb65c3a586f1efd425f8360972b5d365cfecf7e1&lt;/p&gt;</comment>
                            <comment id="222843" author="pjones" created="Thu, 8 Mar 2018 17:40:00 +0000"  >&lt;p&gt;Landed for 2.11&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10010">
                    <name>Duplicate</name>
                                                                <inwardlinks description="is duplicated by">
                                        <issuelink>
            <issuekey id="55437">LU-12196</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                                                <inwardlinks description="is related to">
                                                        </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|hzzr6n:</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>