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

"lfs migrate" on DoM component clobbers LOV EA FID

    XMLWordPrintable

Details

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

    Description

      Running the following test breaks the FID stored in the LOV EA. I was hoping that this FID would remain constant over the life of the file in order to implement LU-7607 "Preserve inode number after MDT migration", but it seems that migrating a file with a DOM component somehow breaks the layout in the LOV EA:

      tests# lfs setstripe -E 1M -L mdt -E 1G -c 3 -E eof /mnt/testfs/tt
      tests# dd if=/dev/zero of=/mnt/testfs/tt bs=1M count=2
      tests# lfs path2fid /mnt/testfs/tt
      [0x200001b72:0x10c07:0x0]
      tests# lfs getstripe -v /mnt/testfs/tt
      components:
        - lcme_id:             1
          lcme_extent.e_start: 0
          lcme_extent.e_end:   1048576
          sub_layout:
            lmm_seq:           0x200001b72
            lmm_object_id:     0x10c07
            lmm_fid:           [0x200001b72:0x10c07:0x0]
            lmm_stripe_count:  0
            lmm_pattern:       mdt
        - lcme_id:             2
          lcme_extent.e_start: 1048576
          lcme_extent.e_end:   1073741824
          sub_layout:
            lmm_seq:           0x200001b72
            lmm_object_id:     0x10c07
            lmm_fid:           [0x200001b72:0x10c07:0x0]
        - lcme_id:             3
          lcme_extent.e_start: 1073741824
          lcme_extent.e_end:   EOF
          sub_layout:
            lmm_seq:           0x200001b72
            lmm_object_id:     0x10c07
            lmm_fid:           [0x200001b72:0x10c07:0x0]
      
      tests# lfs migrate -c 3 /mnt/testfs/tt
      tests# lfs getstripe -v /mnt/testfs/tt
      lmm_seq:           0
      lmm_object_id:     0x3000000000005
      lmm_fid:           [0x3000000000005:0x0:0x30000]
      

      As you can see, the FID is originally [0x200001b72:0x10c07:0x0] and that is also stored in the LOV EA (irrelevant lines cut out) for each component as lmm_fid:, which is good. If there is no DOM component, then "lfs migrate -m" will not change the FID stored in the layout. However, as can be seen with a DOM component, the lmm_fid: is messed up. It looks like it wasn't initialized in the target layout, and/or not copied over during layout swap.

      Attachments

        Issue Links

          Activity

            People

              tappro Mikhail Pershin
              adilger Andreas Dilger
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: