Re: prefered behavior for injecting untracked args

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jun 28, 2016 at 9:41 AM, Willem Jan Withagen <wjw@xxxxxxxxxxx> wrote:
> On 28-6-2016 17:38, Sage Weil wrote:
>> On Tue, 28 Jun 2016, Xiaoxi Chen wrote:
>>> Hi,
>>>
>>>    In jewel , when handling "inject-args" command, monitor will report
>>> "unchangeable" for those non-tracking args, nevertheless, the config
>>> is still updated. as "ceph daemon config show " will give out the new
>>> value.
>>>
>>>      It looks to me like if the configuration is not dynamically
>>> changeable, we may better NOT to update the config? as the config set
>>> by injectargs is not persist to disk , so before reboot the daemon,
>>> config will not take effect, after reboot the daemon, config will
>>> lost...it doesnt work(i.e make the config change) anyway.
>>>
>>>     We notice this because we had an accident on our network switch so
>>> lots of the OSD down and out, and we would intent to speed up the
>>> recovery, then we inject "osd_recovery_max_active= 10" and got
>>> "unchangeable", but in admin socket we can see this configuration so
>>> we assume it is working but actually not. My point is the non-tracking
>>> args showing in admin socket config dump is really misleading, other
>>> guys will never know whether the args in config dump is make effect if
>>> they don't know how this is set, via admin socket or via configuration
>>> files.
>>>
>>>     Kefu and I had some discussion on the original PR and would like to
>>> here more opinions, See pr for more background:
>>> https://github.com/ceph/ceph/pull/7085.
>>
>> We desperately need to overhaul the way that config options are described
>> and updated.  Right now we are cheating by letting any integer option be
>> changed, regardless of whether an observer is defined, and no string
>> options to be changed without an observer.  (This is the minimum necessary
>> to make config updates thread safe.)
>>
>> I think we need to extend the config_opts.h definitions of config options
>> to include things like accepted values (for enums), and annotations
>> indicating whether online updates are possible.  This *could* be implied
>> by the presence of observers, but in practice most of the options are used
>> directly out of g_conf and don't have observers defined...that would be
>> a bigger changes. Just setting a flag in the config options would be a
>> start.
>>
>> We've discussed this a few times in the past and there is probably an
>> etherpad sitting around somewhere from an old CDS...
>>
>> As to your specific question(s),
>>
>> 1- injectargs is never going to persis anything.  but we're looking at the
>> ability to define config options for the cluster via the mon, that that
>> would be persisted.
>>
>> 2- making message you see accurate would be good.
>>
>> 3- we may want to revise the observer framework a bit so that a set option
>> can be rejected.  Right now the internal interface doesn't allow this.
>
> If we are going to change the framework for option definition.
> Would it be possible that there is a field to be used during doc
> generation so that it is possible to start autoextracting the
> functionality of said option.
> Just let all the descriptions be empty of the moment, test will be
> inserted over due time.

Yeah, this comes up every time we discuss enhancing options handling.
Generally alongside labeling options as user-settable or
developer-only (and locked down in some way).
-Greg
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux