[LU-3155] Permanent parameters with lctl set_param -P Created: 11/Apr/13  Updated: 13/Aug/15  Resolved: 11/Sep/13

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: Lustre 2.5.0
Fix Version/s: Lustre 2.5.0

Type: Improvement Priority: Minor
Reporter: Artem Blagodarenko (Inactive) Assignee: Emoly Liu
Resolution: Fixed Votes: 0
Labels: patch

Issue Links:
Duplicate
is duplicated by LU-2629 set_param and conf_param have differe... Resolved
Related
is related to LU-3798 replay-single test_86: configuration ... Resolved
is related to LUDOC-166 Document new "lctl set_param -P" option Resolved
is related to LU-7004 fix "lctl set_param -P" to allow depr... Resolved
Sub-Tasks:
Key
Summary
Type
Status
Assignee
LU-3788 add "lctl set_param -P" to lctl.8 man... Technical task Resolved Andreas Dilger  
LU-3789 Add deprecation warning for "lctl con... Technical task Resolved WC Triage  
Rank (Obsolete): 7649

 Comments   
Comment by Artem Blagodarenko (Inactive) [ 11/Apr/13 ]

Sorry, next information should be in issue's description.

With this patch permanent and temporary formats are identical:
Temporary:

set_param obdfilter.*.client_cache_seconds=15

Permanent:

set_param -P obdfilter.*.client_cache_seconds=15

1. Permanent parameter is added to single special param log called "params". Same format is using. Command "param2", target "general"
2. Params log updates get pulled by all the clients and servers. Separate ldlm lock is used for that.
3. MGC executes via upcall-type mechanism to userspace a local lctl set_param string=value
4. The protocol can be extended for supporting another upcalls, not only lctl

The command's format is next

#01 (224)marker   2 (flags=0x01, v2.3.63.0) general         'osc.*.max_dirty_mb' Wed Apr 10 23:32:13 2013-
#02 (112)param2 0:general  1:osc.*.max_dirty_mb=64  2:lctl  
#03 (224)marker   2 (flags=0x02, v2.3.63.0) general         'osc.*.max_dirty_mb' Wed Apr 10 23:32:13 2013-

Benefits of using set_param -P instead of conf_param:
1. Identical format for permanent and temporary commands
2. wildcarding in strings
3. no unimplemented paths (e.g. ptlrpc services)
4. simpler implementation

Comment by Artem Blagodarenko (Inactive) [ 11/Apr/13 ]

Please, change topic to "Permanent parameters with lctl set_param -P". Thanks.

Comment by Artem Blagodarenko (Inactive) [ 11/Apr/13 ]

The patch is here: http://review.whamcloud.com/6025

Comment by Artem Blagodarenko (Inactive) [ 11/Apr/13 ]

Xyratex MRP-272

Comment by Peter Jones [ 22/Apr/13 ]

Emoly

Could you please look after this one?

Thanks

Peter

Comment by Emoly Liu [ 23/Apr/13 ]

OK.

Comment by Nathan Rutman [ 08/May/13 ]

Originally LU-2629

Comment by Nathan Rutman [ 08/May/13 ]

Looking for some input from Intel architects.

Alex Lyashkov see a scalability problem. This implementation shares a single llog over all targets and clients. Alex advizes splitting the configuration file into dedicated client and server versions. This save rpc's if only servers or clients are configured.
Nathan Rutman believes that scalability is virtually the same as current conf_param code - items that affect the client llog will dominate the worst-case scenario anyhow. I.e. the difference between updating all clients, and all clients plus all servers, is minor. And the increased complexity of a) determining what items need to go into each log, and b) the additional code required is not worth the slight RPC savings.

Comment by Andreas Dilger [ 08/May/13 ]

I haven't looked at the patch in detail yet, so my comments are only generalities.

While I'm never fond of extra overhead imposed on e.g. the servers for something that should mostly impacts the client, I don't think this is a critical performance issue. The MGC llog processing on the OSS and MDS will be asynchronous, so will not affect server functionality, and the number of servers is small compared to the number of clients, so the load on the MGS should not be affected in any serious manner.

I think Nathan brought up the critical issue which might force a single log for all tunables - the MGS has no way to know whether e.g. ldlm.namespaces.*.lru_size is a parameter for a client or a server. Any number of similar ambiguities exist that mean the parameters need to be stored in a single configuration llog. It is up to the administrator to specify any wildcards in a manner so that they apply only to the client or server, if appropriate. The nodes that process the parameters should ignore ones that do not apply locally.

Comment by Nathan Rutman [ 25/Jun/13 ]

Can we get this landed please? I really would like to see a simpler and more robust configuration, and we don't want to diverge our branch from mainstream too far.

Comment by Emoly Liu [ 25/Jun/13 ]

The patch that Artem pushed is always hitting some test failures. After the patch passes the test and review, it will be landed.

Comment by Artem Blagodarenko (Inactive) [ 04/Jul/13 ]

Test always fails on test_132 of sanity with message 'som is still disabled'.
As I understand som is enabled on MGS and checked on MDS (this servers are on different hosts) and I can't find code that offer check this setting on MDS. Should this scheme works?

Indeed, this test works on other branches. I can't understand why and how my patch blokes this.

Comment by Artem Blagodarenko (Inactive) [ 08/Jul/13 ]

Bug is fixed. Waiting for testing results.

Comment by Andreas Dilger [ 10/Jul/13 ]

I filed LUDOC-166 for tracking the required documentation update for this feature.

Comment by Andreas Dilger [ 10/Jul/13 ]

It would be useful to have two additional patches for this change:

  • add deprecation warnings for "conf_param" usage for a future release (e.g. LUSTRE_VERSION_CODE > OBD_OCD_VERSION(2, 7, 53, 0)) and disable the code entirely in some future release (e.g. > 3.0.53)
  • remove the use of "lctl conf_param" from test scripts around 2.7.53 (want to keep these for a while for interop testing)
Comment by Emoly Liu [ 13/Aug/13 ]

patch http://review.whamcloud.com/6025 landed for 2.5

Comment by Andreas Dilger [ 20/Aug/13 ]

I noticed that the original patch is also missing an update to the lustre/doc/lctl.8 man page.

Comment by Artem Blagodarenko (Inactive) [ 26/Aug/13 ]

Warnings and man page
http://review.whamcloud.com/7452
http://review.whamcloud.com/#/c/7436/

Comment by Bob Glossman (Inactive) [ 04/Sep/13 ]

Artem, Please take a look at LU-3798 and comment.

Comment by Artem Blagodarenko (Inactive) [ 05/Sep/13 ]

>Artem, Please take a look at LU-3798 and comment.
Thanks. Done.

Comment by Emoly Liu [ 11/Sep/13 ]

Warnings and man page change landed for 2.5

Generated at Sat Feb 10 01:31:27 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.