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

delete FLR mirrors without volatile files

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • Lustre 2.15.0
    • None
    • 3
    • 9223372036854775807

    Description

      As noted on https://review.whamcloud.com/#/c/41906/2/src/lpurge.c@765:

      (suggestion) Rather than opening a volatile file just to delete the mirror, it might be useful to have some "magic" fd that just means "delete the mirror" that can be handled directly by the MDS? That would avoid at least 2 RPCs per split.

      Attachments

        Activity

          [LU-14521] delete FLR mirrors without volatile files
          pjones Peter Jones added a comment -

          Landed for 2.15

          pjones Peter Jones added a comment - Landed for 2.15

          Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/42116/
          Subject: LU-14521 flr: delete mirror without volatile file
          Project: fs/lustre-release
          Branch: master
          Current Patch Set:
          Commit: b2d73351e64677cb8ff650d92a8744634f73e0fd

          gerrit Gerrit Updater added a comment - Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/42116/ Subject: LU-14521 flr: delete mirror without volatile file Project: fs/lustre-release Branch: master Current Patch Set: Commit: b2d73351e64677cb8ff650d92a8744634f73e0fd

          Bobi Jam (bobijam@hotmail.com) uploaded a new patch: https://review.whamcloud.com/42116
          Subject: LU-14521 flr: delete mirror without volatile file
          Project: fs/lustre-release
          Branch: master
          Current Patch Set: 1
          Commit: 496231e86aa4b14c4709778589ba92026e67d26c

          gerrit Gerrit Updater added a comment - Bobi Jam (bobijam@hotmail.com) uploaded a new patch: https://review.whamcloud.com/42116 Subject: LU-14521 flr: delete mirror without volatile file Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 496231e86aa4b14c4709778589ba92026e67d26c

          No objection from me as long as we don't duplicate too much code.

          Looking at mdd_xattr_split() it looks like it will return -EPERM if you try to "split" the layout into the same FID as the source. One option would be to use this behavior to do the "delete the mirror directly" case, so that userspace can determine whether the server deleted the mirror (i.e. no error returned), or if it needs to do that itself via volatile file (i.e. -EPERM returned). On the minus side, if users specify the source file as the target file for the split they may be surprised at this behavior, but this could be checked in lfs rather than on the MDS?

          adilger Andreas Dilger added a comment - No objection from me as long as we don't duplicate too much code. Looking at mdd_xattr_split() it looks like it will return -EPERM if you try to "split" the layout into the same FID as the source. One option would be to use this behavior to do the "delete the mirror directly" case, so that userspace can determine whether the server deleted the mirror (i.e. no error returned), or if it needs to do that itself via volatile file (i.e. -EPERM returned). On the minus side, if users specify the source file as the target file for the split they may be surprised at this behavior, but this could be checked in lfs rather than on the MDS?
          jhammond John Hammond added a comment -

          Seems fine to me.

          bzzz, adilger any ideas or comments?

          jhammond John Hammond added a comment - Seems fine to me. bzzz , adilger any ideas or comments?
          bobijam Zhenyu Xu added a comment -

          My thought about mirror deleting is that we still use the mdd_xattr_split(), but in the case of mirror deleting, we'd create a new interface unto LOD layer, telling lod to delete all objects in the to-be-deleted mirror. Also we'd take care of mirror-deleting case in mdt_close_handle_layouts(), we don't need to create the temporary file object in the mirror-deleting case.

          bobijam Zhenyu Xu added a comment - My thought about mirror deleting is that we still use the mdd_xattr_split(), but in the case of mirror deleting, we'd create a new interface unto LOD layer, telling lod to delete all objects in the to-be-deleted mirror. Also we'd take care of mirror-deleting case in mdt_close_handle_layouts(), we don't need to create the temporary file object in the mirror-deleting case.
          jhammond John Hammond added a comment -

          bobijam could you look at this? We want a way to do lfs mirror split d without a volatile file. Can the -component-del code be adapeted? It would be good to have a mini-design before we implement.

          jhammond John Hammond added a comment - bobijam could you look at this? We want a way to do lfs mirror split d without a volatile file. Can the -component-del code be adapeted? It would be good to have a mini-design before we implement.

          People

            bobijam Zhenyu Xu
            jhammond John Hammond
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: