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

Pool spill is activated just by changing threshold

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Critical
    • Lustre 2.16.0
    • Lustre 2.15.0
    • None
    • 3
    • 9223372036854775807

    Description

      I have an empty pool that consists on one OST:

      # lfs df -p scratch.pool1
      UUID                   1K-blocks        Used   Available Use% Mounted on
      scratch-MDT0000_UUID    17423180        3536    15848428   1% /lustre/scratch[MDT:0]
      scratch-MDT0001_UUID    17423180        2860    15849104   1% /lustre/scratch[MDT:1]
      scratch-MDT0002_UUID    27541652        3680    25055796   1% /lustre/scratch[MDT:2]
      scratch-MDT0003_UUID    27541652        3692    25055784   1% /lustre/scratch[MDT:3]
      scratch-OST0002_UUID    35055368        1672    33202304   1% /lustre/scratch[OST:2]
      
      filesystem_summary:     35055368        1672    33202304   1% /lustre/scratch
      

      On the MDSs, I set spill_threshold_pct to 6% and spilling is not active:

      # lctl set_param lod.scratch-MDT*-mdtlov.pool.pool1.spill_threshold_pct=6
      lod.scratch-MDT0000-mdtlov.pool.pool1.spill_threshold_pct=6
      lod.scratch-MDT0002-mdtlov.pool.pool1.spill_threshold_pct=6
      
      # lctl get_param lod.scratch-MDT*.pool.pool1.*
      lod.scratch-MDT0000-mdtlov.pool.pool1.spill_is_active=0
      lod.scratch-MDT0000-mdtlov.pool.pool1.spill_target=pool2
      lod.scratch-MDT0000-mdtlov.pool.pool1.spill_threshold_pct=6
      lod.scratch-MDT0002-mdtlov.pool.pool1.spill_is_active=0
      lod.scratch-MDT0002-mdtlov.pool.pool1.spill_target=pool2
      lod.scratch-MDT0002-mdtlov.pool.pool1.spill_threshold_pct=6
      

      I then change the spill_theshold_pct to 5% and spilling is activated. Note that no data was written to pool1 nor to the OST:

      # lctl set_param lod.scratch-MDT*-mdtlov.pool.pool1.spill_threshold_pct=5
      lod.scratch-MDT0000-mdtlov.pool.pool1.spill_threshold_pct=5
      lod.scratch-MDT0002-mdtlov.pool.pool1.spill_threshold_pct=5
      
      # lctl get_param lod.scratch-MDT*.pool.pool1.*
      lod.scratch-MDT0000-mdtlov.pool.pool1.spill_is_active=1
      lod.scratch-MDT0000-mdtlov.pool.pool1.spill_target=pool2
      lod.scratch-MDT0000-mdtlov.pool.pool1.spill_threshold_pct=5
      lod.scratch-MDT0002-mdtlov.pool.pool1.spill_is_active=1
      lod.scratch-MDT0002-mdtlov.pool.pool1.spill_target=pool2
      lod.scratch-MDT0002-mdtlov.pool.pool1.spill_threshold_pct=5
      

      Change the threshold back to 6% and spilling is not active again:

      # lctl set_param lod.scratch-MDT*-mdtlov.pool.pool1.spill_threshold_pct=6
      lod.scratch-MDT0000-mdtlov.pool.pool1.spill_threshold_pct=6
      lod.scratch-MDT0002-mdtlov.pool.pool1.spill_threshold_pct=6
      
      # lctl get_param lod.scratch-MDT*.pool.pool1.*
      lod.scratch-MDT0000-mdtlov.pool.pool1.spill_is_active=0
      lod.scratch-MDT0000-mdtlov.pool.pool1.spill_target=pool2
      lod.scratch-MDT0000-mdtlov.pool.pool1.spill_threshold_pct=6
      lod.scratch-MDT0002-mdtlov.pool.pool1.spill_is_active=0
      lod.scratch-MDT0002-mdtlov.pool.pool1.spill_target=pool2
      lod.scratch-MDT0002-mdtlov.pool.pool1.spill_threshold_pct=6
      

      With an empty OST pool, pool spilling should not be activated when the threshold is changed and the values are all above 1%.

      Attachments

        Issue Links

          Activity

            People

              bzzz Alex Zhuravlev
              jamesanunez James Nunez (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: