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

deprecate use of OST FID SEQ 0 for MDT0000

Details

    • 9223372036854775807

    Description

      Since Lustre 2.4.0 and DNE1, it has been possible to create OST objects using a different FID SEQ range for each MDT, to avoid contention during MDT object precreation.

      Objects that are created by MDT0000 are put into FID SEQ 0 (O/0/d*) on all OSTs and have a filename that is the decimal FID OID in ASCII. However, SEQ=0 objects are remapped to IDIF FID SEQ (0x100000000 | (ost_idx << 16)) so that they are unique across all OSTs.

      Objects that are created by other MDTs (or MDT0000 after 2^48 objects are created in SEQ 0) use a unique SEQ in the FID_SEQ_NORMAL range (> 0x200000400), and use a filename that is the hexadecimal FID OID in ASCII.

      For compatibility with pre-DNE MDTs and OSTs, the use of SEQ=0 by MDT0000 was kept until now, but there has not been a reason to keep this compatibility for new filesystems. It would be better to have MDT0000 assigned a "regular" FID SEQ range at startup, so that the SEQ=0 compatibility can eventually be removed. That would ensure OST objects have "proper and unique" FIDs, and avoid the complexity of mapping between the old SEQ=0 48-bit OID values and the IDIF FIDs.

      Older filesystems using SEQ=0 would eventually delete old objects in this range and/or could be forced to migrate to using new objects to clean up the remaining usage, if necessary.

      Attachments

        1. serial.txt
          778 kB
        2. stdout.txt
          484 kB

        Issue Links

          Activity

            [LU-14692] deprecate use of OST FID SEQ 0 for MDT0000

            "Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/c/fs/lustre-release/+/49720/
            Subject: LU-14692 tests: restore sanity/312 to always_except
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: 8767d2e44110fc19e624e963d5ebc788409339d3

            gerrit Gerrit Updater added a comment - "Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/c/fs/lustre-release/+/49720/ Subject: LU-14692 tests: restore sanity/312 to always_except Project: fs/lustre-release Branch: master Current Patch Set: Commit: 8767d2e44110fc19e624e963d5ebc788409339d3

            "Li Dongyang <dongyangli@ddn.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/49754
            Subject: LU-14692 tests: allow FID_SEQ_NORMAL for MDT0000
            Project: fs/lustre-release
            Branch: b2_15
            Current Patch Set: 1
            Commit: 6b69a998e14917656556e62c6a4e4f33f80e2b4b

            gerrit Gerrit Updater added a comment - "Li Dongyang <dongyangli@ddn.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/49754 Subject: LU-14692 tests: allow FID_SEQ_NORMAL for MDT0000 Project: fs/lustre-release Branch: b2_15 Current Patch Set: 1 Commit: 6b69a998e14917656556e62c6a4e4f33f80e2b4b

            Alex, the "allow FID_SEQ_NORMAL for MDT0000" patch removes "always_except LU-9054 312", but I'm not sure why, since it doesn't look related to the FID SEQ at all. It should be added back.

            adilger Andreas Dilger added a comment - Alex, the " allow FID_SEQ_NORMAL for MDT0000 " patch removes " always_except LU-9054 312 ", but I'm not sure why, since it doesn't look related to the FID SEQ at all. It should be added back.

            "Andreas Dilger <adilger@whamcloud.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/49720
            Subject: LU-14692 tests: restore sanity/312 to always_except
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: 73b154bd53f36da8907701077f2182c933364c62

            gerrit Gerrit Updater added a comment - "Andreas Dilger <adilger@whamcloud.com>" uploaded a new patch: https://review.whamcloud.com/c/fs/lustre-release/+/49720 Subject: LU-14692 tests: restore sanity/312 to always_except Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 73b154bd53f36da8907701077f2182c933364c62

            with this patch landed 100% of my local tests fail:

            == sanity test 312: make sure ZFS adjusts its block size by write pattern ========================================================== 05:05:02 (1674191102)
            1+0 records in
            1+0 records out
            4096 bytes (4.1 kB, 4.0 KiB) copied, 0.0159779 s, 256 kB/s
            1+0 records in
            1+0 records out
            16384 bytes (16 kB, 16 KiB) copied, 0.0165552 s, 990 kB/s
            1+0 records in
            1+0 records out
            65536 bytes (66 kB, 64 KiB) copied, 0.0225513 s, 2.9 MB/s
            1+0 records in
            1+0 records out
            262144 bytes (262 kB, 256 KiB) copied, 0.0189756 s, 13.8 MB/s
            1+0 records in
            1+0 records out
            1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.0227387 s, 46.1 MB/s
            1+0 records in
            1+0 records out
            4096 bytes (4.1 kB, 4.0 KiB) copied, 0.0551142 s, 74.3 kB/s
            1+0 records in
            1+0 records out
            4096 bytes (4.1 kB, 4.0 KiB) copied, 0.029839 s, 137 kB/s
             sanity test_312: @@@@@@ FAIL: blksz error, actual 4096,  expected: 2 * 1 * 4096 
              Trace dump:
              = ./../tests/test-framework.sh:6549:error()
              = sanity.sh:24840:test_312()
              = ./../tests/test-framework.sh:6887:run_one()
              = ./../tests/test-framework.sh:6937:run_one_logged()
              = ./../tests/test-framework.sh:6773:run_test()
              = sanity.sh:24863:main()
            
            bzzz Alex Zhuravlev added a comment - with this patch landed 100% of my local tests fail: == sanity test 312: make sure ZFS adjusts its block size by write pattern ========================================================== 05:05:02 (1674191102) 1+0 records in 1+0 records out 4096 bytes (4.1 kB, 4.0 KiB) copied, 0.0159779 s, 256 kB/s 1+0 records in 1+0 records out 16384 bytes (16 kB, 16 KiB) copied, 0.0165552 s, 990 kB/s 1+0 records in 1+0 records out 65536 bytes (66 kB, 64 KiB) copied, 0.0225513 s, 2.9 MB/s 1+0 records in 1+0 records out 262144 bytes (262 kB, 256 KiB) copied, 0.0189756 s, 13.8 MB/s 1+0 records in 1+0 records out 1048576 bytes (1.0 MB, 1.0 MiB) copied, 0.0227387 s, 46.1 MB/s 1+0 records in 1+0 records out 4096 bytes (4.1 kB, 4.0 KiB) copied, 0.0551142 s, 74.3 kB/s 1+0 records in 1+0 records out 4096 bytes (4.1 kB, 4.0 KiB) copied, 0.029839 s, 137 kB/s sanity test_312: @@@@@@ FAIL: blksz error, actual 4096, expected: 2 * 1 * 4096 Trace dump: = ./../tests/test-framework.sh:6549:error() = sanity.sh:24840:test_312() = ./../tests/test-framework.sh:6887:run_one() = ./../tests/test-framework.sh:6937:run_one_logged() = ./../tests/test-framework.sh:6773:run_test() = sanity.sh:24863:main()

            "Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/c/fs/lustre-release/+/46293/
            Subject: LU-14692 tests: allow FID_SEQ_NORMAL for MDT0000
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: eaae4655567b16260237764dadb7ab57df8b0edd

            gerrit Gerrit Updater added a comment - "Oleg Drokin <green@whamcloud.com>" merged in patch https://review.whamcloud.com/c/fs/lustre-release/+/46293/ Subject: LU-14692 tests: allow FID_SEQ_NORMAL for MDT0000 Project: fs/lustre-release Branch: master Current Patch Set: Commit: eaae4655567b16260237764dadb7ab57df8b0edd

            "Li Dongyang <dongyangli@ddn.com>" uploaded a new patch: https://review.whamcloud.com/46293
            Subject: LU-14692 tests: allow FID_SEQ_NORMAL for MDT0000
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: fd4b785de75608c0652500625e82e3668f8a9495

            gerrit Gerrit Updater added a comment - "Li Dongyang <dongyangli@ddn.com>" uploaded a new patch: https://review.whamcloud.com/46293 Subject: LU-14692 tests: allow FID_SEQ_NORMAL for MDT0000 Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: fd4b785de75608c0652500625e82e3668f8a9495

            "Li Dongyang <dongyangli@ddn.com>" uploaded a new patch: https://review.whamcloud.com/45822
            Subject: LU-14692 osp: deprecate IDIF sequence for MDT0000
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: ee4af1e009ed7535d271e118040a83e57674cfbf

            gerrit Gerrit Updater added a comment - "Li Dongyang <dongyangli@ddn.com>" uploaded a new patch: https://review.whamcloud.com/45822 Subject: LU-14692 osp: deprecate IDIF sequence for MDT0000 Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: ee4af1e009ed7535d271e118040a83e57674cfbf
            adilger Andreas Dilger added a comment - - edited

            This is somewhat related to implementing LU-11912, which would also speed up the use of a new SEQ range for MDT0000. However, that patch doesn't avoid the initial usage of SEQ=0 on a new filesystem (which is what this ticket is about), but only accelerate the move away from SEQ=0 after a few million files have been created in the filesystem.

            adilger Andreas Dilger added a comment - - edited This is somewhat related to implementing LU-11912 , which would also speed up the use of a new SEQ range for MDT0000. However, that patch doesn't avoid the initial usage of SEQ=0 on a new filesystem (which is what this ticket is about), but only accelerate the move away from SEQ=0 after a few million files have been created in the filesystem.

            People

              dongyang Dongyang Li
              adilger Andreas Dilger
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: