Skip to content

Instantly share code, notes, and snippets.

@gnuoy
Created March 25, 2020 14:25
Show Gist options
  • Save gnuoy/a848f9843213a0c132b33f14d169ca27 to your computer and use it in GitHub Desktop.
Save gnuoy/a848f9843213a0c132b33f14d169ca27 to your computer and use it in GitHub Desktop.
Requesting OSD settings
A ceph client may require that ceph is configured with particular settings. In
the case of the ceph iscsi gateway the osd timeout value needs to be lowered
for detecting down OSDs to reduce the possibility of initiator timeouts. To
facilitate this the existing ceph-client and osd relations could be extended
to pass on the request from a client.
1) The client charm sets a new 'osd-settings' option. The value is a json
encoded dictionary of settings e.g.
{"osd-settings": {"osd heartbeat grace": 20, "osd heartbeat interval": 5}}
2) The ceph-mon charm looks for this setting across all clients. Any
contradictions and it goes into a blocked state.
3) ceph-mon passes the consolidated requests to the ceph-osd charm via
the mon/osd relation.
4) If an update is needed the ceph-osd charm does an online update of these
settings and also renders a new ceph.conf with the settings in. Note that
the ceph-osd charm grows osd-heartbeat-grace and osd-heartbeat-interval
settings. These default to unset but if they are set then they override any
values sent down the relation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment