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

FLR allows overlapping "write preferred" segments

    XMLWordPrintable

Details

    • Bug
    • Resolution: Not a Bug
    • Major
    • None
    • None
    • None
    • 3
    • 9223372036854775807

    Description

      Close examination of sanity-flr test 0h shows something troubling.

      Simply run the test to completion, but add an error statement so the file is retained.  Here's what the getstripe output on the file looks like after 0h (again, with no modification):

      [root@cent7c01 lustre]# lfs getstripe f0h.sanity-flr 
      f0h.sanity-flr
       lcm_layout_gen: 9
       lcm_mirror_count: 3
       lcm_entry_count: 4
       lcme_id: 65537
       lcme_mirror_id: 1
       lcme_flags: init
       lcme_extent.e_start: 0
       lcme_extent.e_end: 1048576
       lmm_stripe_count: 1
       lmm_stripe_size: 1048576
       lmm_pattern: raid0
       lmm_layout_gen: 0
       lmm_stripe_offset: 0
       lmm_objects:
       - 0: { l_ost_idx: 0, l_fid: [0x100000000:0x10:0x0] }
      lcme_id: 65538
       lcme_mirror_id: 1
       lcme_flags: init,prefer
       lcme_extent.e_start: 1048576
       lcme_extent.e_end: EOF
       lmm_stripe_count: 1
       lmm_stripe_size: 1048576
       lmm_pattern: raid0
       lmm_layout_gen: 0
       lmm_stripe_offset: 0
       lmm_objects:
       - 0: { l_ost_idx: 0, l_fid: [0x100000000:0x11:0x0] }
      lcme_id: 131075
       lcme_mirror_id: 2
       lcme_flags: init,prefer
       lcme_extent.e_start: 0
       lcme_extent.e_end: EOF
       lmm_stripe_count: 1
       lmm_stripe_size: 1048576
       lmm_pattern: raid0
       lmm_layout_gen: 0
       lmm_stripe_offset: 1
       lmm_objects:
       - 0: { l_ost_idx: 1, l_fid: [0x100010000:0x10:0x0] }
      lcme_id: 196612
       lcme_mirror_id: 3
       lcme_flags: init
       lcme_extent.e_start: 0
       lcme_extent.e_end: EOF
       lmm_stripe_count: 1
       lmm_stripe_size: 1048576
       lmm_pattern: raid0
       lmm_layout_gen: 0
       lmm_stripe_offset: 1
       lmm_objects:
       - 0: { l_ost_idx: 1, l_fid: [0x100010000:0x11:0x0] } 

      The key part is these two components, the second and third in the list above:

          lcme_id:             65538
          lcme_mirror_id:      1
          lcme_flags:          init,prefer
          lcme_extent.e_start: 1048576
          lcme_extent.e_end:   EOF
            lmm_stripe_count:  1
            lmm_stripe_size:   1048576
            lmm_pattern:       raid0
            lmm_layout_gen:    0
            lmm_stripe_offset: 0
            lmm_objects:
            - 0: { l_ost_idx: 0, l_fid: [0x100000000:0x11:0x0] }    lcme_id:             131075
          lcme_mirror_id:      2
          lcme_flags:          init,prefer
          lcme_extent.e_start: 0
          lcme_extent.e_end:   EOF
            lmm_stripe_count:  1
            lmm_stripe_size:   1048576
            lmm_pattern:       raid0
            lmm_layout_gen:    0
            lmm_stripe_offset: 1
            lmm_objects:
            - 0: { l_ost_idx: 1, l_fid: [0x100010000:0x10:0x0] } 

       

      The first component is in mirror 1, and runs from 1 MiB to EOF, and is preferred for write.  The second component is in mirror 2 and runs from 0 to EOF...  and is preferred for write.

      This seems to be inherently conflicted.  I would think the tools should prevent setting overlapping "prefer" flags...?

      Attachments

        Issue Links

          Activity

            People

              wc-triage WC Triage
              paf Patrick Farrell
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: