All of lore.kernel.org
 help / color / mirror / Atom feed
From: Owen Synge <osynge@suse.com>
To: Sage Weil <sweil@redhat.com>
Cc: ceph-devel@vger.kernel.org
Subject: Re: Fedora 22 systemd and ceph-deploy
Date: Tue, 04 Aug 2015 12:13:30 +0200	[thread overview]
Message-ID: <55C0904A.8010902@suse.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1508031205360.22099@cobra.newdream.net>

On 08/03/2015 09:07 PM, Sage Weil wrote:
> On Mon, 3 Aug 2015, Owen Synge wrote:
>> Dear all,
>>
>> My plan is to make a fedora22-systemd branch. I will leave fedora 20 as
>> sysvinit.
>>
>> Ok just done my first proper install of systemd ceph branch on fedora22.
>>
>> I can confirm most of the issues.
>>
>> I am giving up for the day, but so far applying SUSE/opensuse code to
>> Fedora ceph-deploy code in ceph-deploy has helped a lot.
>>
>>     cp /usr/lib/python2.7/site-packages/ceph_deploy/hosts/suse/mon/* \
>>       /usr/lib/python2.7/site-packages/ceph_deploy/hosts/fedora/mon/
>>
>> (Running on suse version patched release)
>>
>> It can now set up the mon daemons correctly its self.
>>
>> I will look into the udev rules, tomorrow morning, and remove some more
>> fedora hard coding to "sysvinit".

I made a mistake, just doing the copy is enough to deploy mon and osd's
I had made a typo to make me believe osd deployment was not.

I will check the rgw.

> There is a wip-systemd branch ceph-deploy that has enough ceph-deploy 
> changes for me to successfully do the deployment of mon, osd, mds, and 
> rgw.  

So can we merge the wip-systemd branch of ceph?

This would then allow us to fix ceph-detect-init.

This would also make it clearer to ceph-deploy developers what they need
to do.

> The main thing it doesn't do is figure out which version of Ceph
> you're installing to decide whether to do systemd (post-hammer) or 
> sysvinit (hammer and earlier).  That's going to be annoying, I'm afraid...

I have not looked at the  wip-systemd branch ceph-deploy, as I knew the
SUSE version supported systemd, and knew their is no SUSE magic in the
code as I wrote it, except supporting systemd.

In principle, I agree it is a nice to have release version of ceph,
changes in behaviour for ceph-deploy. I have great fears under the
existing code style that adding an extra dimension will cause an
explosion of branching code, in ceph-deploy which is in my opinion
already far too large in terms of LOC/functionality.

> I suspect what we really want to do is abstract out the systemd behavior 
> into something that the distros opt in to so that we aren't duplicating 
> code across the suse, centos, rhel, and fedora host types...

Adding command line options to override "default" behaviour (or having a
model as in MVC design pattern) might be a good way to start improving
ceph-deploy to this objective.

My opinion is better use of façade pattern to contain the explosion of
conditionals and duplication that this would cause if the code is using
current coding style, but moving toward MVC will also help.

These 2 patches go a long way to solve the issues of duplicating code
across the suse, centos, rhel, and fedora host types:

https://github.com/ceph/ceph-deploy/pull/317
https://github.com/ceph/ceph-deploy/pull/318

Pull request #317 is how I should like to see the new code base evolve.
Pull request #318 is within the current ceph-deploy code structure to
see variables derived on a per distribution way.

Combined these two patches show how I would move forward on ceph-deploy.

This sort of façade pattern seems to avoid code duplication, already
present all over the ceph-deploy code base.

For now I suspect it is far easier to back port the option to use
systemd to supported releases of hammer and earlier.

To delay progress of ceph on ceph-deploy, is in my opinion the wrong
thing to do, and I get the impression it is being maintained rather than
pushing ceph or its self forward.

Best regards

Owen
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2015-08-04 10:15 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-28 19:13 systemd status Sage Weil
2015-07-28 22:16 ` Travis Rhoden
2015-07-29 11:25   ` Alex Elsayed
2015-07-29 12:55     ` Sage Weil
2015-07-29 13:09       ` Wyllys Ingersoll
2015-07-29 14:08       ` Alex Elsayed
2015-07-29 14:19         ` Sage Weil
2015-07-29 14:30           ` Alex Elsayed
2015-07-29 14:53             ` Sage Weil
2015-07-29 15:17               ` Alex Elsayed
2015-07-29 16:50                 ` Vasiliy Angapov
2015-07-31 13:29                   ` Owen Synge
2015-07-30 12:45                 ` Sage Weil
2015-07-30 19:40                   ` Robert LeBlanc
2015-08-03  8:53         ` Owen Synge
2015-07-31  8:11 ` Owen Synge
2015-07-31 13:23 ` Owen Synge
2015-08-03 19:01 ` Fedora 22 systemd and ceph-deploy Owen Synge
2015-08-03 19:07   ` Sage Weil
2015-08-04 10:13     ` Owen Synge [this message]
2015-08-04 12:32       ` Fedora 22 systemd and rgw Owen Synge
2015-08-04 13:07         ` Sage Weil
2015-08-04 16:10           ` Owen Synge

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55C0904A.8010902@suse.com \
    --to=osynge@suse.com \
    --cc=ceph-devel@vger.kernel.org \
    --cc=sweil@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.