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

Pool spill is activated just by changing threshold

XMLWordPrintable

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

      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%.

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

              Created:
              Updated:
              Resolved: