<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 02:29:17 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-9788] upgrading ldiskfs on-disk format from 2.4.3 lustre version to 2.8.0</title>
                <link>https://jira.whamcloud.com/browse/LU-9788</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;ORNL&apos;s main production file system was formatted during the 2.4.3 lustre time frame. Since then we have move to 2.5 and now to lustre 2.8.0 without updating the ldiskfs on line format. This ticket is a request into what has changed and the impact of the changes. Lastly we need to ensure the upgrade it correct when done.&lt;/p&gt;</description>
                <environment></environment>
        <key id="47379">LU-9788</key>
            <summary>upgrading ldiskfs on-disk format from 2.4.3 lustre version to 2.8.0</summary>
                <type id="9" iconUrl="https://jira.whamcloud.com/images/icons/issuetypes/undefined.png">Question/Request</type>
                                            <priority id="3" iconUrl="https://jira.whamcloud.com/images/icons/priorities/major.svg">Major</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="10000">Done</resolution>
                                        <assignee username="adilger">Andreas Dilger</assignee>
                                    <reporter username="simmonsja">James A Simmons</reporter>
                        <labels>
                    </labels>
                <created>Thu, 20 Jul 2017 13:59:27 +0000</created>
                <updated>Sat, 10 Mar 2018 07:57:57 +0000</updated>
                            <resolved>Sat, 10 Mar 2018 07:57:57 +0000</resolved>
                                                                        <due></due>
                            <votes>0</votes>
                                    <watches>6</watches>
                                                                            <comments>
                            <comment id="202964" author="pjones" created="Thu, 20 Jul 2017 17:06:19 +0000"  >&lt;p&gt;Andreas&lt;/p&gt;

&lt;p&gt;Could you please advise?&lt;/p&gt;

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

&lt;p&gt;Peter&lt;/p&gt;</comment>
                            <comment id="202989" author="adilger" created="Thu, 20 Jul 2017 20:26:16 +0000"  >&lt;p&gt;We work hard to maintain upgrade and downgrade compatibility between Lustre releases for the on-disk format. New features that affect the on-disk format in a manner that prevents a downgrade to the previous Lustre version will typically&#160;require explicit action from the administrator to enable before it is used, to allow the system to be upgraded without affecting the disk format, and only enabling the new feature once the new Lustre release is known to be stable in your environment.&#160;&lt;/p&gt;

&lt;p&gt;It would be good to get the output of &quot;dumpe2fs -h&quot; from the MDT and one OST (assuming they are the same) to see what ldiskfs features are currently enabled, and check if there may be performance improvements possible after the upgrade.&#160;&lt;/p&gt;

&lt;p&gt;Secondly, in addition to upgrading the servers, will you also be upgrading the clients, or will you be running with different client versions? &#160;I believe that you may already be running 2.8 clients on your system.&#160;&lt;/p&gt;

&lt;p&gt;There are two issues that I&apos;m aware of that would affect upgrade+downgrade to a 2.4 MDS. One is that the client multiple metadata request feature (&quot;multi-slot last_rcvd&quot;) sets a flag on the MDT for the new recovery file format that prevents mounting on an unsupported version of Lustre (&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-7410&quot; title=&quot;After downgrade from 2.8 to 2.5.5, hit unsupported incompat filesystem feature(s) 400&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-7410&quot;&gt;&lt;del&gt;LU-7410&lt;/del&gt;&lt;/a&gt;).  This has a simple workaround if it is hit if you need to downgrade, as described in that ticket. &lt;/p&gt;

&lt;p&gt;The second is related to LFSCK (&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-8605&quot; title=&quot;Downgrading from 2.8 to 2.5: fsck_namespace_load: fail to load lfsck_namespace&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-8605&quot;&gt;&lt;del&gt;LU-8605&lt;/del&gt;&lt;/a&gt;), and can be avoided by having the fix applied to your 2.8 code before the upgrade. You may already have a fix for this issue. &lt;/p&gt;

&lt;p&gt;If you want to be prudent, it makes sense to create a backup of the MDT prior to the upgrade. This can be done with &quot;dd&quot;of the raw MDT filesystem to.a backup device before installing the new Lustre release. DDN has also been testing the use of &quot;e2image&quot; to make copies of the ldiskfs metadata, which have the advantage of only backing up the in-use parts of the device, and are stored more compactly. It would be possible to make an e2image backup of the OSTs as well, since the actual space used would be relatively small. &lt;br/&gt;
&#160;&lt;/p&gt;</comment>
                            <comment id="206080" author="bhoagland" created="Tue, 22 Aug 2017 22:34:03 +0000"  >&lt;p&gt;Hi &lt;a href=&quot;https://jira.whamcloud.com/secure/ViewProfile.jspa?name=simmonsja&quot; class=&quot;user-hover&quot; rel=&quot;simmonsja&quot;&gt;simmonsja&lt;/a&gt;,&lt;/p&gt;

&lt;p&gt;Does this answer your question(s)?&lt;/p&gt;

&lt;p&gt;Regards,&lt;/p&gt;

&lt;p&gt;Brad&lt;/p&gt;</comment>
                            <comment id="207053" author="simmonsja" created="Thu, 31 Aug 2017 14:07:40 +0000"  >&lt;p&gt;I need to talk to Andreas in detail about this.&lt;/p&gt;</comment>
                            <comment id="207798" author="simmonsja" created="Thu, 7 Sep 2017 17:52:01 +0000"  >&lt;p&gt;Both our clients and server back end are running lustre 2.8.1. Its just the ldiskfs format that hasn&apos;t been upgraded since our 2.5 days. Okay here is the debugfs output from our MDS server:&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;root@atlas1-mds1 ~&amp;#93;&lt;/span&gt;# dumpe2fs -h /dev/mapper/atlas1-mdt1&lt;br/&gt;
dumpe2fs 1.42.13.wc5 (15-Apr-2016)&lt;br/&gt;
Filesystem volume name:   atlas1-MDT0000&lt;br/&gt;
Last mounted on:          /&lt;br/&gt;
Filesystem UUID:          182b7f08-b0ff-4803-aa46-c110ac95acfe&lt;br/&gt;
Filesystem magic number:  0xEF53&lt;br/&gt;
Filesystem revision #:    1 (dynamic)&lt;br/&gt;
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery flex_bg ea_inode dirdata sparse_super large_file huge_file uninit_bg dir_nlink quota&lt;br/&gt;
Filesystem flags:         signed_directory_hash &lt;br/&gt;
Default mount options:    user_xattr&lt;br/&gt;
Filesystem state:         clean&lt;br/&gt;
Errors behavior:          Continue&lt;br/&gt;
Filesystem OS type:       Linux&lt;br/&gt;
Inode count:              1073741824&lt;br/&gt;
Block count:              536870912&lt;br/&gt;
Reserved block count:     26843545&lt;br/&gt;
Free blocks:              272442789&lt;br/&gt;
Free inodes:              682054233&lt;br/&gt;
First block:              0&lt;br/&gt;
Block size:               4096&lt;br/&gt;
Fragment size:            4096&lt;br/&gt;
Reserved GDT blocks:      1024&lt;br/&gt;
Blocks per group:         16384&lt;br/&gt;
Fragments per group:      16384&lt;br/&gt;
Inodes per group:         32768&lt;br/&gt;
Inode blocks per group:   4096&lt;br/&gt;
Flex block group size:    16&lt;br/&gt;
Filesystem created:       Tue Oct  1 11:02:25 2013&lt;br/&gt;
Last mount time:          Tue Aug 22 12:14:37 2017&lt;br/&gt;
Last write time:          Tue Aug 22 12:14:37 2017&lt;br/&gt;
Mount count:              4&lt;br/&gt;
Maximum mount count:      -1&lt;br/&gt;
Last checked:             Tue Jun 20 08:52:59 2017&lt;br/&gt;
Check interval:           0 (&amp;lt;none&amp;gt;)&lt;br/&gt;
Lifetime writes:          46 TB&lt;br/&gt;
Reserved blocks uid:      0 (user root)&lt;br/&gt;
Reserved blocks gid:      0 (group root)&lt;br/&gt;
First inode:              11&lt;br/&gt;
Inode size:               512&lt;br/&gt;
Required extra isize:     28&lt;br/&gt;
Desired extra isize:      28&lt;br/&gt;
Journal UUID:             33c503b6-30a3-481b-8ac6-121e2144bb79&lt;br/&gt;
Journal device:           0xfd06&lt;br/&gt;
Default directory hash:   half_md4&lt;br/&gt;
Directory Hash Seed:      bfef46fe-273d-43ea-95e3-d9ebcd11a516&lt;br/&gt;
Journal backup:           inode blocks&lt;br/&gt;
User quota inode:         3&lt;br/&gt;
Group quota inode:        4&lt;/p&gt;

&lt;p&gt;and here is the output from one of our OSS servers:&lt;/p&gt;

&lt;p&gt;&lt;span class=&quot;error&quot;&gt;&amp;#91;root@atlas-oss1a1 ~&amp;#93;&lt;/span&gt;# dumpe2fs -h /dev/mapper/atlas-ddn1a-l0 &lt;br/&gt;
dumpe2fs 1.42.13.wc5 (15-Apr-2016)&lt;br/&gt;
Filesystem volume name:   atlas1-OST0000&lt;br/&gt;
Last mounted on:          /&lt;br/&gt;
Filesystem UUID:          f28766dc-9235-45e4-9ddc-f502ad57276c&lt;br/&gt;
Filesystem magic number:  0xEF53&lt;br/&gt;
Filesystem revision #:    1 (dynamic)&lt;br/&gt;
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent mmp flex_bg sparse_super large_file huge_file uninit_bg dir_nlink quota&lt;br/&gt;
Filesystem flags:         signed_directory_hash &lt;br/&gt;
Default mount options:    user_xattr acl&lt;br/&gt;
Filesystem state:         clean&lt;br/&gt;
Errors behavior:          Continue&lt;br/&gt;
Filesystem OS type:       Linux&lt;br/&gt;
Inode count:              29343744&lt;br/&gt;
Block count:              3755999232&lt;br/&gt;
Reserved block count:     187799961&lt;br/&gt;
Free blocks:              1333048954&lt;br/&gt;
Free inodes:              28069821&lt;br/&gt;
First block:              0&lt;br/&gt;
Block size:               4096&lt;br/&gt;
Fragment size:            4096&lt;br/&gt;
Reserved GDT blocks:      127&lt;br/&gt;
Blocks per group:         32768&lt;br/&gt;
Fragments per group:      32768&lt;br/&gt;
Inodes per group:         256&lt;br/&gt;
Inode blocks per group:   16&lt;br/&gt;
Flex block group size:    256&lt;br/&gt;
Filesystem created:       Tue Oct  1 11:02:26 2013&lt;br/&gt;
Last mount time:          Tue Aug 22 12:14:42 2017&lt;br/&gt;
Last write time:          Tue Aug 22 12:14:42 2017&lt;br/&gt;
Mount count:              23&lt;br/&gt;
Maximum mount count:      -1&lt;br/&gt;
Last checked:             Sun Feb  7 16:31:09 2016&lt;br/&gt;
Check interval:           0 (&amp;lt;none&amp;gt;)&lt;br/&gt;
Lifetime writes:          210 TB&lt;br/&gt;
Reserved blocks uid:      0 (user root)&lt;br/&gt;
Reserved blocks gid:      0 (group root)&lt;br/&gt;
First inode:              11&lt;br/&gt;
Inode size:               256&lt;br/&gt;
Required extra isize:     28&lt;br/&gt;
Desired extra isize:      28&lt;br/&gt;
Journal inode:            8&lt;br/&gt;
Default directory hash:   half_md4&lt;br/&gt;
Directory Hash Seed:      c9240b0e-be05-4fb9-a604-69e902802452&lt;br/&gt;
Journal backup:           inode blocks&lt;br/&gt;
MMP block number:         5638&lt;br/&gt;
MMP update interval:      5&lt;br/&gt;
User quota inode:         3&lt;br/&gt;
Group quota inode:        4&lt;br/&gt;
Journal features:         journal_incompat_revoke&lt;br/&gt;
Journal size:             400M&lt;br/&gt;
Journal length:           102400&lt;br/&gt;
Journal sequence:         0x01fe13aa&lt;br/&gt;
Journal start:            33589&lt;/p&gt;</comment>
                            <comment id="207960" author="adilger" created="Fri, 8 Sep 2017 23:29:31 +0000"  >&lt;p&gt;If you are already running Lustre 2.8.x on the MDS/OSS then there isn&apos;t a huge amount to be done.  You already have the &lt;tt&gt;dirdata&lt;/tt&gt; feature (which has been available since 2.1) and &lt;tt&gt;flex_bg&lt;/tt&gt;, which are the major performance gains compared to upgraded 1.8-formatted MDT filesystems.  The above referenced issues were only relevant in case of a downgrade, but since you are already running 2.8, presumably without problems that would make you want to downgrade, I don&apos;t think they are relevant.&lt;/p&gt;

&lt;p&gt;The only other possible issue that would come up going forward is the size of the inodes on the MDT and OST.  With Lustre 2.10+ we have bumped the default MDT inode size to 1024 bytes (from 512) and the default OST inode size to 512 (from 256) to facilitate usage of PFL in the future.  If you are going to make PFL layouts the default on an ldiskfs MDT then you might consider to do a backup/restore (the inode size can only be changed at format time), but this is a non-issue for ZFS (which has dynamic dnode sizing as of 0.7.x).&lt;/p&gt;</comment>
                            <comment id="208764" author="simmonsja" created="Tue, 19 Sep 2017 16:57:31 +0000"  >&lt;p&gt;Yes are production system is running lustre 2.8 clients and lustre 2.8 servers. We have no plans with the current center wide file system to move to lustre 2.10. When the file system was created it was formated at a lustre 2.5 version. So we looking to see what needs to be abled to get to the 2.8 lustre support level. The big issue we have hit is when users create 20+ millions per directory which crashes are MDS server. I believe the large directory hash work in newer lustre versions fix this.&lt;/p&gt;</comment>
                            <comment id="208790" author="adilger" created="Tue, 19 Sep 2017 18:42:10 +0000"  >&lt;p&gt;James, we&apos;ve never supported more than ~10M files per directory with ldiskfs (&lt;a href=&quot;https://build.hpdd.intel.com/job/lustre-manual/lastSuccessfulBuild/artifact/lustre_manual.xhtml#settinguplustresystem.tab2&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://build.hpdd.intel.com/job/lustre-manual/lastSuccessfulBuild/artifact/lustre_manual.xhtml#settinguplustresystem.tab2&lt;/a&gt;), except with DNE2 directories striped over multiple MDTs (each with &amp;lt; 10M entries).  The per-directory limit depends on the length of the filenames being used. Hitting this limit definitely shouldn&apos;t crash the MDS, which should be filed as a separate ticket with stack traces, etc.&lt;/p&gt;

&lt;p&gt;The &lt;tt&gt;large_dir&lt;/tt&gt; feature hasn&apos;t been tested in production yet, as it has only landed in the development e2fsprogs release upstream, and the patches for e2fsprogs-wc need to be updated to include fixes made to those upstream patches.  This definitely isn&apos;t something included as part of 2.8.&lt;/p&gt;
</comment>
                            <comment id="209647" author="simmonsja" created="Tue, 26 Sep 2017 19:06:11 +0000"  >&lt;p&gt;So even tho ldiskfs has the code to support large_dir it is off by default and has never been really tested. You can&apos;t even set large_dir with the current ldiskfs version of e2fsprogs?&lt;/p&gt;</comment>
                            <comment id="209741" author="adilger" created="Wed, 27 Sep 2017 16:57:21 +0000"  >&lt;p&gt;Correct.  Until recently, there was no e2fsck support for the &lt;tt&gt;large_dir&lt;/tt&gt; feature, so it has not been safe to enable.&lt;/p&gt;</comment>
                            <comment id="223029" author="adilger" created="Sat, 10 Mar 2018 07:57:57 +0000"  >&lt;p&gt;Closing this issue, I don&apos;t think there is anything here to be done.&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="33072">LU-7410</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="39791">LU-8605</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|hzzh3b:</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>