All of lore.kernel.org
 help / color / mirror / Atom feed
* config on mons
@ 2017-11-10 15:30 Sage Weil
  2017-11-13  0:27 ` Patrick Donnelly
                   ` (4 more replies)
  0 siblings, 5 replies; 26+ messages in thread
From: Sage Weil @ 2017-11-10 15:30 UTC (permalink / raw)
  To: ceph-devel

I've started on this long-discussed feature!  I haven't gotten too far but 
you can see what's there so far at

	https://github.com/ceph/ceph/pull/18856

The first thing perhaps is to finalize what flexibility we want to 
support.  I've a quick summary at

	http://pad.ceph.com/p/config

Namely,

 config/option = value               # like [global]
 config/$type/option = value         # like [mon]
 config/$type.$id/option = value     # like [mon.a]

There are two new things:

 config/.../class:$classname/option = value

For OSDs, this matches the device_class.  So you can do something like

 config/osd/class:ssd/bluestore_cache_size = 10485760  # 10gb, woohoo!

You can also match the crush location:

 config/.../$crushtype:$crushvalue/option = value

e.g.,

 config/osd/rack:foo/debug_osd = 10    # hunting some issue

This obviously makes sense for OSDs.  We can also make it makes sense for 
non-OSDs since everybody (clients and daemons) has a concept of 
crush_location that is a set of key/value pairs like "host=foo rack=bar" 
which match the CRUSH hierarchy.  In this case, my plan is to make the 
initial mon authentication step include the hostname of the host you're 
connecting from and then extract the rest of the location by lookup 
up the host in the CRUSH map.

The precedence for these is described here:

	https://github.com/ceph/ceph/pull/18856/commits/5abbd0c9e279022f185787238d21eabbbe28e336#diff-344645b5339d494e1839ff1fcaa5cb7dR15


Lots of other thorny issues to consider.  For example:

- What about monitor configs?  If they store their config paxos, and you 
set an option that breaks paxos, how can you change/fix it?  For the 
moment I'm just ignoring the mons.

- What about ceph.conf?  My thought here is to mark which options are 
legal for bootstrap (i.e., used during the initial connection to mon to 
authenticate and fetch config), and warn on anything other than that in 
ceph.conf.  But what about after you connect?  Do these options get reset 
to default?

- Bootstrapping/upgrade: So far my best idea is to make the client share 
it's config with the mon on startup, and the first time a given daemon 
connects the mon will use that to populate it's config database.  
Thereafter it will be ignored.

- OSD startup: lots of stuff happens before we authenticate.  I think 
there will be a new initial step to fetch config, then do all that work, 
then start up for real.  And a new option to bypass mon configuration 
to avoid that (and for old school folks who don't want centralized 
configs... e.g. mon_config = false and everything works as before).

Feedback welcome!
sage

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2017-12-01 17:53 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-10 15:30 config on mons Sage Weil
2017-11-13  0:27 ` Patrick Donnelly
2017-11-13  1:43 ` Yehuda Sadeh-Weinraub
2017-11-13  9:57   ` John Spray
2017-11-13 16:29     ` Yehuda Sadeh-Weinraub
2017-11-13  4:30 ` Christian Wuerdig
2017-11-13 10:00   ` John Spray
2017-11-13 16:45     ` Mark Nelson
2017-11-13 18:20       ` Kyle Bader
2017-11-13 18:40         ` John Spray
2017-11-14 10:18           ` Piotr Dałek
2017-11-14 11:36             ` John Spray
2017-11-14 13:58               ` Piotr Dałek
2017-11-14 16:24                 ` Sage Weil
2017-11-14 14:33               ` Mark Nelson
2017-11-14 16:37                 ` Kyle Bader
2017-11-14 18:01                   ` Alfredo Deza
2017-11-14 13:48             ` Mark Nelson
2017-11-13 13:23 ` John Spray
2017-11-14 22:21 ` Sage Weil
2017-11-14 23:45   ` John Spray
2017-11-15 13:32     ` Sage Weil
2017-11-15 17:16       ` Lars Marowsky-Bree
2017-11-15 21:26         ` Sage Weil
2017-11-30 22:31           ` Gregory Farnum
2017-12-01 17:53             ` Sage Weil

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.