Re: normalizing radosgw

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

 



I'm a big fan of /etc/*.d/ configs. Basically if the package maintained /etc/ceph.conf includes all files in /etc/ceph.d/ then I can break up the files however I'd like (mon, ods, mds, client, one per daemon, etc). Then when upgrading, I don't have to worry about the new packages trying to overwrite my conf file. If you have the include order be /var/lib/ceph/, /etc/ceph.conf, /etc/ceph.d/ then package maintainers can put in things so that it "just works" and can be easily overridden with /etc/ceph.d/.

Just my $0.02.

On Sat, Dec 6, 2014 at 11:39 AM, Sage Weil <sweil@xxxxxxxxxx> wrote:
Several things are different/annoying with radosgw than with other Ceph
daemons:

- binary/package are named 'radosgw' instead of 'ceph-rgw'.

This is cosmetic, but it also makes it fit less well into the
new /var/lib/ceph/* view of things.

- default log location is /var/log/radosgw/$cluster-$name.log instead of
/var/lib/ceph/$cluster-$rgw.$name.log (or similar).

- rgw_data default is /var/lib/ceph/radosgw instead of /var/lib/ceph/rgw

(not sure if 3 letters for consistency is better?)

- rgw usually authenticates as a client.something user, which means if you
do use more standard rgw log names, then you get
/var/log/ceph/client.something.$pid.$uniqueid.log.  There is a loose
convention that 'something' is 'rgw.hostname' (i.e., client.rgw.hostname).

- radosgw has it's own separate sysvinit script that enumerates daemons
from /etc/ceph/ceph.conf sections that start with client.radosgw.*

- radosgw upstart script is called radosgw (not ceph-rgw) and enumerates
daemons from /var/lib/ceph/radosgw/*

(totally different than sysvinit!)

- radosgw instances usually need some stuff in ceph.conf to make them
behave properly, which means they need a section in the shared
/etc/ceph/ceph.conf.  more work for admins or config management systems.

- on rpm-based systems we have a separate sysvinit script that is
slightly different (mostly because the username is different, apache
instead of www-data).

---

There is enough wrong here and little enough convention that my
proposal is to essentially start fresh:

- rename package ceph-rgw.  obsoletes/replaces radosgw.

- merge rgw start/stop into standard sysvinit script (just another
daemon type?).

- normalize upstart start/stop (just rename radosgw-* to ceph-rgw-*,
basically).

- make upstart use /var/lib/ceph/rgw instead of /var/lib/ceph/radosgw (do
this automagically on upgrade?  that will at least avoid the upgrade pain
for ubuntu users)

- create new systemd start/stop that are correct the first time
around.

- move log file to /var/log/ceph


The part I'm not sure about is how to handle config.  I would really like
the ability to put per-daemon config stuff in /var/lib/ceph/rgw/foo/conf
or config, but there is no 'include file' function in our ini-file parser
(or in other typical ini-file implementations that i can find) and I don't
like the idea the per-daemon config would completely supplant the
/etc/ceph/ one.

Basically, I'd like to get to a point where we can programatically deploy
an rgw without any wonky code that edits the ceph.conf.  Perhaps the way
to accomplish this is to have the admin create a generic client.rgw user
and generic [client.rgw] section in the global ceph.conf?

If there were an include file function, we could make the per-daemon
config file something like

 include /etc/ceph/$cluster.conf
 [client.rgw.hostname]
 rgw foo = bar
 rgw baz = blip

or whatever.

Thoughts?  Suggestions?

sage
_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux