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

lfs mirror extend does not take file layout into account

    XMLWordPrintable

Details

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

    Description

      Running "lfs mirror extend" on an existing file doesn't use the existing layout for the new file, nor the default filesystem layout on the root directory. Instead it seems to always create a plain layout using the filesystem default stripe_count and stripe_size. For example, the lcme_mirror_id: 1 components were initially created from the filesystem default layout, and the lcme_mirror_id: 2 component was created with "lfs mirror extend -N1" (default stripe_count=4):

      /mnt/testfs/pfl0.2
        lcm_mirror_count:  2
        lcm_entry_count:   4
          lcme_mirror_id:      1
          lcme_flags:          init
          lcme_extent.e_start: 0
          lcme_extent.e_end:   134217728
            lmm_stripe_count:  1
            lmm_stripe_size:   1048576
            lmm_pool:          ddn_ssd
            lmm_objects:
            - 0: { l_ost_idx: 1, l_fid: [0x100010000:0x12a:0x0] }
                             
          lcme_mirror_id:      1
          lcme_flags:          init
          lcme_extent.e_start: 134217728
          lcme_extent.e_end:   4294967296
            lmm_stripe_count:  2
            lmm_stripe_size:   1048576
            lmm_pool:          ddn_ssd
            lmm_objects:
            - 0: { l_ost_idx: 0, l_fid: [0x100000000:0x109:0x0] }
            - 1: { l_ost_idx: 1, l_fid: [0x100010000:0x12b:0x0] }
              
          lcme_mirror_id:      1
          lcme_flags:          0
          lcme_extent.e_start: 4294967296
          lcme_extent.e_end:   EOF
            lmm_stripe_count:  -1
            lmm_stripe_size:   1048576
            lmm_pool:          ddn_hdd
      
          lcme_mirror_id:      2
          lcme_flags:          init
          lcme_extent.e_start: 0
          lcme_extent.e_end:   EOF
            lmm_stripe_count:  4
            lmm_stripe_size:   1048576
            lmm_pool:          ddn_hdd
            lmm_objects:
            - 0: { l_ost_idx: 1, l_fid: [0x100010000:0x12c:0x0] }
            - 1: { l_ost_idx: 3, l_fid: [0x100030000:0xc8:0x0] }
            - 2: { l_ost_idx: 2, l_fid: [0x100020000:0x88:0x0] }
            - 3: { l_ost_idx: 0, l_fid: [0x100000000:0x10a:0x0] }
      

      At a minimum, "lfs mirror extend -N file" should use the stripe_count from the last initialized component, since it is 99% likely that the file will never be modified after it is first written and closed. It would be even better to copy the stripe_size as well, but not the pool.

      Attachments

        Activity

          People

            emoly.liu Emoly Liu
            adilger Andreas Dilger
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: