Re: mon config update

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

 



On Mon, 8 Jan 2018, Piotr Dałek wrote:
> Wouldn't mind having a "changeable in runtime" column in these outputs. I know
> it's semi-reliable, but it's still better than experimenting or searching for
> it in code (which may be difficult for non-devs).

Several parts of this.

1. 'config help'

$ bin/ceph config help debug_osd
debug_osd - Debug level for osd
  (std::string, advanced)
  Default: 1/5
  Can update at runtime: true

(also in the JSON dump).

2. 'config dump' and 'config get' have a new "RW" column (suggestions for 
a better short column name are welcome!):

$ bin/ceph config get osd.0
WHO    MASK LEVEL     OPTION                    VALUE  RW
osd         advanced  debug_bdev                20/20  Y
osd         advanced  debug_bluefs              20/20  Y
osd         advanced  debug_bluestore           30/30  Y
osd         advanced  debug_filestore           20/20  Y
osd         advanced  debug_journal             20/20  Y
osd         advanced  debug_ms                  1/1    Y
global      advanced  mon_pg_warn_min_per_osd   3      Y
osd         advanced  osd_copyfrom_max_chunk    524288 Y
global      advanced  osd_crush_chooseleaf_type 0      Y
osd         developer osd_debug_misdirected_ops true   Y
osd         developer osd_debug_op_order        true   Y
osd.0       advanced  osd_objectstore           foo

3. We obviously need to improve the is_safe() implementation to make this 
more accurate.  My current plan is add annotations for if the option can 
update at runtime, only takes effect at startup, at daemon creation time, 
or cluster creation time.  In most cases the guess is right, so hopefully 
not too many annotations will be needed.

4. The 'config show' now indicates if a setting the mon tried to set
failed to take effect:

$ bin/ceph config show osd.0
NAME                      VALUE     SOURCE  OVERRIDES IGNORES
...
osd_journal_size          100       file
osd_objectstore           bluestore file              mon
osd_pool_default_min_size 1         mon
osd_pool_default_size     1         mon
...

The IGNORES column is meant to make sense next to SOURCE and OVERRIDES.
For example, mon_data source is mon, overrides nothing, but ignores 'mon'.
In reality, the only value IGNORES will currently ever have is 'mon',
since trying to do e.g. 'ceph daemon ... config set ...' will error out
without setting anything so you never get into a conflicting state. In
principle we could eventually show soenthing else here if there is a
setting that is forced based on on-disk state (e.g., osd_objectstore) that
might conflict with a setting that only works at daemon creation time.
In reality we just ignore setting in that case; I'm not sure if it would
make sense to show it here (or would it?).

sage

[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