]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
ceph-disk: enable --runtime ceph-osd systemd units 12241/head
authorLoic Dachary <ldachary@redhat.com>
Wed, 30 Nov 2016 23:28:32 +0000 (00:28 +0100)
committerLoic Dachary <ldachary@redhat.com>
Thu, 1 Dec 2016 16:05:33 +0000 (17:05 +0100)
commit539385b143feee3905dceaf7a8faaced42f2d3c6
tree964de4869a8b57fd334b842ab10c8da3ce7ef749
parentb3887379d6dde3b5a44f2e84cf917f4f0a0cb120
ceph-disk: enable --runtime ceph-osd systemd units

If ceph-osd@.service is enabled for a given device (say /dev/sdb1 for
osd.3) the ceph-osd@3.service will race with ceph-disk@dev-sdb1.service
at boot time.

Enabling ceph-osd@3.service is not necessary at boot time because

   ceph-disk@dev-sdb1.service

calls

   ceph-disk activate /dev/sdb1

which calls

   systemctl start ceph-osd@3

The systemctl enable/disable ceph-osd@.service called by ceph-disk
activate is changed to add the --runtime option so that ceph-osd units
are lost after a reboot. They are recreated when ceph-disk activate is
called at boot time so that:

   systemctl stop ceph

knows which ceph-osd@.service to stop when a script or sysadmin wants
to stop all ceph services.

Before enabling ceph-osd@.service (that happens at every boot time),
make sure the permanent enablement in /etc/systemd is removed so that
only the one added by systemctl enable --runtime in /run/systemd
remains. This is useful to upgrade an existing cluster without creating
a situation that is even worse than before because ceph-disk@.service
races against two ceph-osd@.service (one in /etc/systemd and one in
/run/systemd).

Fixes: http://tracker.ceph.com/issues/17889
Signed-off-by: Loic Dachary <loic@dachary.org>
src/ceph-disk/ceph_disk/main.py