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

            Oleg Drokin (green@whamcloud.com) merged in 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:
            Commit: c89aa6edccab2d20d44e52af1e5a16e8d9d39fe9

            gerrit Gerrit Updater added a comment - Oleg Drokin (green@whamcloud.com) merged in 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: Commit: c89aa6edccab2d20d44e52af1e5a16e8d9d39fe9

            Minh Diep (mdiep@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/36779
            Subject: LU-1365 tests: LARGEDIR and 3-level htree for local ldiskfs
            Project: fs/lustre-release
            Branch: b2_12
            Current Patch Set: 1
            Commit: 76bec4f7fdd0ec1f85863f13b5cff248d5676fc3

            gerrit Gerrit Updater added a comment - Minh Diep (mdiep@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/36779 Subject: LU-1365 tests: LARGEDIR and 3-level htree for local ldiskfs Project: fs/lustre-release Branch: b2_12 Current Patch Set: 1 Commit: 76bec4f7fdd0ec1f85863f13b5cff248d5676fc3

            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

            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: