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

Add permanent TBF rules

    XMLWordPrintable

Details

    • New Feature
    • Resolution: Unresolved
    • Minor
    • None
    • None
    • 3
    • 9223372036854775807

    Description

      Nowadays, this is not possible to add several permanents TBF rules via "lctl set_param -P".
      The MGS will erase the old value of a parameter in the llog "CONFIG/params".

      For example if we want 2 add the following rules:

      # lctl set_param -P ost.OSS.ost_io.nrs_policies="tbf jobid"
      # lctl set_param -P ost.OSS.ost_io.nrs_tbf_rule="start login jobid={*login*} rate=5000"
      # lctl set_param -P ost.OSS.ost_io.nrs_tbf_rule="start rbh jobid={*rbh*} rate=100000"
      # lctl get_param ost.OSS.ost_io.nrs_tbf_rule
      ost.OSS.ost_io.nrs_tbf_rule=
      regular_requests:
      CPT 0:
      rbh {*rbh*} 100000, ref 0
      login {*login*} 5000, ref 0
      ...
      # lctl llog_print params | grep tbf
      - { index: 14, event: set_param, device: general, parameter: ost.OSS.ost_io.nrs_policies, value: tbf jobid }
      - { index: 20, event: set_param, device: general, parameter: ost.OSS.ost_io.nrs_tbf_rule, value: start rbh jobid={*rbh*} rate=100000 }
      

      Only the last one is set in the llog config.

      So, if we unmount/remount the OST:

      # lctl get_param ost.OSS.ost_io.nrs_tbf_rule
      ost.OSS.ost_io.nrs_tbf_rule=
      regular_requests:
      CPT 0:
      rbh {*rbh*} 100000, ref 0
      default {*} 10000, ref 0
      

      For now, at the CEA, we use udev rules to automatically set permanent tbf rules. But this is not really clean (hard sleep to wait for lustre startup etc...).

      I see several way to fix that issue:

      • The simplest way would be to add "--append" option to "set_param -P". This would advise the MGS to not remove the old entries. But this will not be easy for admin to maintain those entries: if he want to remove one rule at startup, he has to resent all the rules. Then, to overcome that issue, we could extend "lctl set_param -P -d" to match value too.
      • We can also add a special cases to handle "set_param -P" for "nrs_tbf_rules". And we can manage this like for OST pools.
      • We can also make all TBF rules permanent and add specific ldiskfs files to store those rules for each target (iam files ?). But this seems complex.

      Attachments

        Issue Links

          Activity

            People

              eaujames Etienne Aujames
              eaujames Etienne Aujames
              Votes:
              0 Vote for this issue
              Watchers:
              9 Start watching this issue

              Dates

                Created:
                Updated: