Re: config on mons

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

 



On Wed, 15 Nov 2017, Lars Marowsky-Bree wrote:
> On 2017-11-15T13:32:55, Sage Weil <sage@xxxxxxxxxxxx> wrote:
> > > > 1- a default value (compiled in)
> > > > 2- a value from the mon
> > > > 3- a value from ceph.conf
> > > > 4- a value set via command line, 'ceph tell', 'ceph daemon ... config set
> > > > ...', etc.
> 
> I'm opposed to 3 and 4.
> 
> I *can* see the need to override a value on a per-host or on a
> per-daemon instance basis (including combinations thereof, e.g., all
> OSDs on node X). (Back when, we also expected these to be way more
> frequently needed; to this day, I can count on my fingers the times I
> needed per-host overrides, I think; really the only use case where this
> happens more often are debug flags.)
> 
> But if you want any sort of consistency, those modify the settings in
> the respective map on the MON, and the daemon *then* gets that one from
> the single authoritative source of truth.

The problem is this makes the system more fragile, and with a 
complex distributed, and the types of things I've needed to diagnose and 
debug in the past, I am very nervous about taking away the ability to 
force a config value locally (e.g., via 'ceph daemon ...', when it is 
having trouble pulling config from the mon for whatever reason).

...

As far as broad principles go, I think we are mostly in alignment: (1) we 
want centrally managed config, (2) managed by the mons, for (3) a 
simplified user experience, and (4) an easy upgrade path to get there.  
I think the implementation required to get that is roughly what I 
described, and although it sounds complicated, none of the key pieces can 
really be taken away.

1. Daemons report running config to mgr.  We need some form of this no 
matter what for the upgrade/transition.  Beyond that, I think it's still 
important in order to tell whether the "single source of truth" is 
something that even can be true: (1) some options cannot be changed at 
runtime and require a restart, (2) some options may have illegal/invalid 
values, (3) the set of allowed options may change build to build, so 
something that used to valid may not be anymore or may not be if the 
daemon is newer or older than the mon.

2. Local overrides are possible.  This can/should be rare and reserved 
for extraordinary circumstances, but I don't feel comfortable removing 
this.  In a complex there are many things that could prevent the daemon 
from speaking to the mon to get an updated config.

3. ceph.conf is allowed in at least some cases.  This is more or less a 
given on the mon in order to handle bootstraping and to resolve bad 
changes to the mon config (that, say, break paxos itself).  There are also 
still cases where initial options are needed to fetch the rest of the 
config from the mon.  And during the transition period it is required.

I think the real question is whether, post-nautilus, we continue to 
encourage or allow ceph.conf for daemons.  I think this is a decision that 
amounts to turning it off in certain circumstances to force users into a 
better world, but it's not something we can do away with to simplify the 
world today.  We can still ignore this possibility from the GUI, perhaps, 
but I think we're better off lumping it together with #2 and doing 
something extremely simple like, say, putting a (!) icon next to options 
that the daemon isn't respecting (because they have overridden it, or need 
to restart, or it is not valid, or whatever else).

I can't see a way to change 1-3 above without a very different approach 
(like, using something external to the mons).  Am I missing something?

sage
--
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