Details
-
Bug
-
Resolution: Fixed
-
Critical
-
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%.