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

fix "lctl set_param -P" to allow deprecation of "lctl conf_param"

Details

    • Improvement
    • Resolution: Fixed
    • Critical
    • Lustre 2.13.0
    • Lustre 2.9.0
    • 9223372036854775807

    Description

      The lctl set_param -P functionality was landed via LU-3155 for 2.5.0 and deprecates lctl conf_param usage. There is a deprecation message printed in jt_lcfg_mgsparam() since 2.7.53 that conf_param is obsolete and set_param should be used instead.

      The test scripts need to be changed over to use "lctl set_param -P" exclusively, both to quiet the deprecation warning, as well as verify that the "lctl set_param -P" functionality is working correctly.

      For now, I'm going to bump the deprecation warning to 2.8.53 to give us time to make this change in the 2.9 release cycle since there isn't enough time to do it for 2.8.0 anymore.

      Attachments

        Issue Links

          Activity

            [LU-7004] fix "lctl set_param -P" to allow deprecation of "lctl conf_param"

            James Simmons (uja.ornl@yahoo.com) uploaded a new patch: https://review.whamcloud.com/32784
            Subject: LU-7004 obd: handle fsname-MDT0000-**MDT0000 for obdname2fsname
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: 29b45b5dd7c87dbf4b6168ca07d8bbd0acbafe84

            gerrit Gerrit Updater added a comment - James Simmons (uja.ornl@yahoo.com) uploaded a new patch: https://review.whamcloud.com/32784 Subject: LU-7004 obd: handle fsname-MDT0000-** MDT0000 for obdname2fsname Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 29b45b5dd7c87dbf4b6168ca07d8bbd0acbafe84

            looks like this work is coming to completion

            simmonsja James A Simmons added a comment - looks like this work is coming to completion

            So the good news is that I found lctl conf_param lustre-OST*.failover.node=10.0.0.1@tcp can be done with set_param P with already existing code. The command to do it is lctl set_param -P osc.lustre-OST*.import=connection=10.0.0.1@tcp. So its just a matter of updating the test in this case. Only sptlrpc is not functional.

            simmonsja James A Simmons added a comment - So the good news is that I found lctl conf_param lustre-OST*.failover.node=10.0.0.1@tcp can be done with set_param P with already existing code. The command to do it is lctl set_param -P osc.lustre-OST *.import=connection=10.0.0.1@tcp. So its just a matter of updating the test in this case. Only sptlrpc is not functional.

            Oleg Drokin (oleg.drokin@intel.com) merged in patch https://review.whamcloud.com/31081/
            Subject: LU-7004 quota: make lctl set_param -P functional for quota
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: 6d9df3b2c0d54b16d00b6e419c7bb958e6b54844

            gerrit Gerrit Updater added a comment - Oleg Drokin (oleg.drokin@intel.com) merged in patch https://review.whamcloud.com/31081/ Subject: LU-7004 quota: make lctl set_param -P functional for quota Project: fs/lustre-release Branch: master Current Patch Set: Commit: 6d9df3b2c0d54b16d00b6e419c7bb958e6b54844

            John L. Hammond (john.hammond@intel.com) merged in patch https://review.whamcloud.com/31207/
            Subject: LU-7004 obd: make LCFG_SET_PARAM functional
            Project: fs/lustre-release
            Branch: b2_10
            Current Patch Set:
            Commit: d7f9f2130c5d8c74004f36aa68938df57778a6b1

            gerrit Gerrit Updater added a comment - John L. Hammond (john.hammond@intel.com) merged in patch https://review.whamcloud.com/31207/ Subject: LU-7004 obd: make LCFG_SET_PARAM functional Project: fs/lustre-release Branch: b2_10 Current Patch Set: Commit: d7f9f2130c5d8c74004f36aa68938df57778a6b1

            Minh Diep (minh.diep@intel.com) uploaded a new patch: https://review.whamcloud.com/31207
            Subject: LU-7004 obd: make LCFG_SET_PARAM functional
            Project: fs/lustre-release
            Branch: b2_10
            Current Patch Set: 1
            Commit: 14d209c516d710585d4c492bfdfa6d2eb1add25d

            gerrit Gerrit Updater added a comment - Minh Diep (minh.diep@intel.com) uploaded a new patch: https://review.whamcloud.com/31207 Subject: LU-7004 obd: make LCFG_SET_PARAM functional Project: fs/lustre-release Branch: b2_10 Current Patch Set: 1 Commit: 14d209c516d710585d4c492bfdfa6d2eb1add25d

            James Simmons (uja.ornl@yahoo.com) uploaded a new patch: https://review.whamcloud.com/31081
            Subject: LU-7004 quota: make lctl set_param -P functional for quota
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: e68d0a91625c64dd66dc2f7395cf7dd102dba57b

            gerrit Gerrit Updater added a comment - James Simmons (uja.ornl@yahoo.com) uploaded a new patch: https://review.whamcloud.com/31081 Subject: LU-7004 quota: make lctl set_param -P functional for quota Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: e68d0a91625c64dd66dc2f7395cf7dd102dba57b

            Oleg Drokin (oleg.drokin@intel.com) merged in patch https://review.whamcloud.com/28590/
            Subject: LU-7004 obd: make LCFG_SET_PARAM functional
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: dfe60d0b98a1a888ca4ffce14788938c192b1520

            gerrit Gerrit Updater added a comment - Oleg Drokin (oleg.drokin@intel.com) merged in patch https://review.whamcloud.com/28590/ Subject: LU-7004 obd: make LCFG_SET_PARAM functional Project: fs/lustre-release Branch: master Current Patch Set: Commit: dfe60d0b98a1a888ca4ffce14788938c192b1520

            I also got this working. Only one test fails with lctl set_param -P which I tracked down to the problem that the lcfg changes are only being transmitted to the clients. So trying to deactivate an OST/MDT only appears to happen on the client and the servers don't see the same change. It appears the choice of where to send the lcfg info is done in the mgc layer. Does anyone know the exact method of how this done?

            simmonsja James A Simmons added a comment - I also got this working. Only one test fails with lctl set_param -P which I tracked down to the problem that the lcfg changes are only being transmitted to the clients. So trying to deactivate an OST/MDT only appears to happen on the client and the servers don't see the same change. It appears the choice of where to send the lcfg info is done in the mgc layer. Does anyone know the exact method of how this done?

            James Simmons (uja.ornl@yahoo.com) uploaded a new patch: https://review.whamcloud.com/30087
            Subject: LU-7004 tests: move from lctl conf_param to lctl set_param -P
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: 57e99d4dd495dd0e69daee9dc52931c33fa45395

            gerrit Gerrit Updater added a comment - James Simmons (uja.ornl@yahoo.com) uploaded a new patch: https://review.whamcloud.com/30087 Subject: LU-7004 tests: move from lctl conf_param to lctl set_param -P Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: 57e99d4dd495dd0e69daee9dc52931c33fa45395
            simmonsja James A Simmons added a comment - - edited

            We have 4 classes of parameters.

            Class one are the global values i.e PARAM_TIMEOUT, PARAM_JOBID_VAR. The patch for this ticket adds support for this class for set_param -P.

            The second class are the ones settable at mount or initial format i.e PARAM_MGSNODE, PARAM_NETWORK. Those should never be changed with set_param -P so they are filtered out. The patch for this ticket adds that filtering. Currently you can stomp on those values with set_param -P

            The 3rd class is your typical obd proc mapping. This somewhat worked for set_param -P.

            Lastly we have your "virtual" devices. Some of these that were virtual can now be mapped to real proc/sysfs entries. The two for this case are PARAM_ACTIVATE and PARAM_ID_UPCALL. Its PARAM_FAILNODE and PARAM_SRPC that are currently virtual. I have managed to allow setting the failnode node using set_param -P but it doesn't transmit the change to the client for some reason. As for PARAM_SRPC I have no idea what the goal was there. In lustre_param.h it list srpc.flavor as a proc entry but it doesn't exist. Anyways I will have to cover that in LU-7183.

            simmonsja James A Simmons added a comment - - edited We have 4 classes of parameters. Class one are the global values i.e PARAM_TIMEOUT, PARAM_JOBID_VAR. The patch for this ticket adds support for this class for set_param -P. The second class are the ones settable at mount or initial format i.e PARAM_MGSNODE, PARAM_NETWORK. Those should never be changed with set_param -P so they are filtered out. The patch for this ticket adds that filtering. Currently you can stomp on those values with set_param -P The 3rd class is your typical obd proc mapping. This somewhat worked for set_param -P. Lastly we have your "virtual" devices. Some of these that were virtual can now be mapped to real proc/sysfs entries. The two for this case are PARAM_ACTIVATE and PARAM_ID_UPCALL. Its PARAM_FAILNODE and PARAM_SRPC that are currently virtual. I have managed to allow setting the failnode node using set_param -P but it doesn't transmit the change to the client for some reason. As for PARAM_SRPC I have no idea what the goal was there. In lustre_param.h it list srpc.flavor as a proc entry but it doesn't exist. Anyways I will have to cover that in LU-7183 .

            People

              simmonsja James A Simmons
              adilger Andreas Dilger
              Votes:
              0 Vote for this issue
              Watchers:
              15 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: