Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-1365

Implement ldiskfs LARGEDIR support for e2fsprogs

Details

    • 3
    • 10210

    Description

      This INCOMPAT_LARGEDIR feature allows larger directories to be created in ldiskfs, both with directory sizes over 2GB and and a maximum htree depth of 3 instead of the current limit of 2. These features are needed in order to exceed the current limit of approximately 10M entries in a single directory. The INCOMPAT_LARGEDIR feature was added to ldiskfs as part of the pdirops LU-50 coding, but was not part of that project. As there is currently no mke2fs, e2fsck, or tune2fs support for INCOMPAT_LARGEDIR, this feature is disabled by default when creating a new ldiskfs filesystem as it would otherwise make the filesystem unrecoverable in the case that e2fsck needs to be run on it.

      Tasks that need to be completed before INCOMPAT_LARGEDIR can be used:

      • add support for the INCOMPAT_LARGEDIR and "large_dir" features to mke2fs/tune2fs
      • add conf-sanity.sh test LARGEDIR and 3-level htree for local ldiskfs with 1kB blocksize up to 100k entries with 255-byte names (3-level exceeded at 48k entries). This might be done using a smaller number of hard-linked inodes (nlink_max = 65000), to avoid overhead of accessing and caching a large number of different inodes.
      • add parallel-scale.sh test LARGEDIR and >2GB directories with Lustre using 255-byte names and 10M entries (2GB exceeded at 4M entries, 4GB exceeded at 8M entries). This might be done using a smaller number of hard-linked inodes (nlink_max = 65000), to avoid overhead of accessing and caching a large number of different inodes.
      • e2fsck support for 3-level htree
      • e2fsck support for directories larger than 2GB (using i_size_hi consistently for S_IFDIR() inodes)
      • e2fsprogs regression test test for 3-level/2GB+ htree e2fsck, corruptions
      • e2fsprogs add LARGEDIR feature to "tests/f_random_corruption"
      • port the ext4-large-dir.patch with the INCOMPAT_LARGEDIR features (>2GB, 3-level htree) to the upstream kernel and submit to linux-ext4 list for review
      • submit e2fsprogs patches to linux-ext4 list for review
      • solicit testing of feature from community
      • some time after e2fsprogs is released and available for download, a patch is needed to enable large_dir on new filesystems with mkfs.lustre
      • updates to the user manual and release notes to describe how to enable the large_dir feature with tune2fs

      Attachments

        1. conf-san-125-4.txt.tar.gzip
          22 kB
        2. conf-sanity-124-125.tar.bz2
          16 kB
        3. image.png
          image.png
          64 kB
        4. image-2.png
          image-2.png
          11 kB

        Issue Links

          Activity

            [LU-1365] Implement ldiskfs LARGEDIR support for e2fsprogs

            Minh Diep (mdiep@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/36778
            Subject: LU-1365 utils: allow set block size for ldiskfs backend
            Project: fs/lustre-release
            Branch: b2_12
            Current Patch Set: 1
            Commit: d412d6c6e41446303a2244c46f9bfd3330926b45

            gerrit Gerrit Updater added a comment - Minh Diep (mdiep@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/36778 Subject: LU-1365 utils: allow set block size for ldiskfs backend Project: fs/lustre-release Branch: b2_12 Current Patch Set: 1 Commit: d412d6c6e41446303a2244c46f9bfd3330926b45
            pjones Peter Jones added a comment -

            We just consider RESOLVED to be the primary task is complete.

            pjones Peter Jones added a comment - We just consider RESOLVED to be the primary task is complete.

            Got it. How do you guys keep track of where it's and when this / tickets like this are ready to close?

            cfaber#1 Colin Faber [X] (Inactive) added a comment - Got it. How do you guys keep track of where it's and when this / tickets like this are ready to close?
            pjones Peter Jones added a comment -

            We usually leave tickets as RESOLVED rather than CLOSED because then the ticket can be updated when needed (if landed to maintenance branches, say) without the extra email generated by having to go through the states REOPEN then RESOLVED then CLOSED again.

            pjones Peter Jones added a comment - We usually leave tickets as RESOLVED rather than CLOSED because then the ticket can be updated when needed (if landed to maintenance branches, say) without the extra email generated by having to go through the states REOPEN then RESOLVED then CLOSED again.

            should this be closed?

            cfaber#1 Colin Faber [X] (Inactive) added a comment - should this be closed?
            pjones Peter Jones added a comment -

            Landed for 2.13

            pjones Peter Jones added a comment - Landed for 2.13

            Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/33756/
            Subject: LU-1365 tests: createmany outputs stat after 2 seconds
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: 46125b6d9627d006087dfcc727e2cff0954e78c8

            gerrit Gerrit Updater added a comment - Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/33756/ Subject: LU-1365 tests: createmany outputs stat after 2 seconds Project: fs/lustre-release Branch: master Current Patch Set: Commit: 46125b6d9627d006087dfcc727e2cff0954e78c8

            Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/22009/
            Subject: LU-1365 tests: LARGEDIR and 3-level htree for local ldiskfs
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: 8048e216c16fa403da6fa2a755df8f718ab3105d

            gerrit Gerrit Updater added a comment - Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/22009/ Subject: LU-1365 tests: LARGEDIR and 3-level htree for local ldiskfs Project: fs/lustre-release Branch: master Current Patch Set: Commit: 8048e216c16fa403da6fa2a755df8f718ab3105d

            Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/33757/
            Subject: LU-1365 utils: allow set block size for ldiskfs backend
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: 5f674667bfd1ab9a0e47d9f03f3e7eab37eb8e17

            gerrit Gerrit Updater added a comment - Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/33757/ Subject: LU-1365 utils: allow set block size for ldiskfs backend Project: fs/lustre-release Branch: master Current Patch Set: Commit: 5f674667bfd1ab9a0e47d9f03f3e7eab37eb8e17

            Test conf_sanity 125 successfully passed on my local environment. It's took 1,5 hours. Full logs are attached to this issue.
            Name creation rate didn't reduced dramatically. From 

             total: 60000 link in 119.82 seconds: 500.76 ops/second

            in first iteration. To

            total: 60000 link in 123.89 seconds: 484.31 ops/second 

            I belive previous performance drop could be because we sent full directory name to createmany utility and lookup require more time for large directory. This time createmany acts on the current directory.

            artem_blagodarenko Artem Blagodarenko (Inactive) added a comment - Test conf_sanity 125 successfully passed on my local environment. It's took 1,5 hours. Full logs are attached to this issue. Name creation rate didn't reduced dramatically. From  total: 60000 link in 119.82 seconds: 500.76 ops/second in first iteration. To total: 60000 link in 123.89 seconds: 484.31 ops/second I belive previous performance drop could be because we sent full directory name to createmany utility and lookup require more time for large directory. This time createmany acts on the current directory.

            Andreas Dilger (adilger@whamcloud.com) merged in patch https://review.whamcloud.com/33813/
            Subject: LU-1365 e2fsck: allow to check >2GB sized directory
            Project: tools/e2fsprogs
            Branch: master-lustre
            Current Patch Set:
            Commit: c5de396607efa2032bc32f7aa607b38d9e82dc6b

            gerrit Gerrit Updater added a comment - Andreas Dilger (adilger@whamcloud.com) merged in patch https://review.whamcloud.com/33813/ Subject: LU-1365 e2fsck: allow to check >2GB sized directory Project: tools/e2fsprogs Branch: master-lustre Current Patch Set: Commit: c5de396607efa2032bc32f7aa607b38d9e82dc6b

            People

              artem_blagodarenko Artem Blagodarenko (Inactive)
              adilger Andreas Dilger
              Votes:
              0 Vote for this issue
              Watchers:
              13 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: