[pve-devel] [PATCH manager] fix ceph.service for Ceph Jewel >= 10.2.6

Fabian Grünbichler f.gruenbichler at proxmox.com
Thu Mar 9 10:34:57 CET 2017


having our ceph.service pulled in by ceph.target does not
work anymore, because "systemctl start ceph.target" hangs
forever on ceph-common upgrades. multi-user.target seems to
work as well, and we are ordered after pve-cluster anyway.

only replace the old ceph.service if it is an exact match.

Signed-off-by: Fabian Grünbichler <f.gruenbichler at proxmox.com>
---
Tested using 10.2.5 -> 10.2.6 upgrade, subsequent reboots also work as expected.

Unfortunately this update needs to happen before upgrading the Ceph packages, or
the hanging upgrade needs to be manually interrupted by killing the hanging
systemctl process.

 bin/init.d/ceph.service |  2 +-
 debian/postinst         | 11 +++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/bin/init.d/ceph.service b/bin/init.d/ceph.service
index 623becd..450856e 100644
--- a/bin/init.d/ceph.service
+++ b/bin/init.d/ceph.service
@@ -8,4 +8,4 @@ ExecStart=/usr/sbin/ceph-disk --log-stdout activate-all
 Type=oneshot
 
 [Install]
-WantedBy=ceph.target
+WantedBy=multi-user.target
diff --git a/debian/postinst b/debian/postinst
index 13fda4c..a3dd583 100755
--- a/debian/postinst
+++ b/debian/postinst
@@ -79,6 +79,17 @@ EOF
     # disable fancy init messages (bad with bootlogd)
     test -f /etc/lsb-base-logging.sh || echo "FANCYTTY=0" >/etc/lsb-base-logging.sh
 
+    if [ -f /etc/systemd/system/ceph.service ]; then
+	md5=$(md5sum /etc/systemd/system/ceph.service)
+	if [[ "$md5" == "21b2e7a7c4ffcf92ad0ec2c905e88e5b  /etc/systemd/system/ceph.service" ]]; then
+	    echo "Updating PVE ceph.service to correct install target.."
+	    cp /usr/share/doc/pve-manager/examples/ceph.service /etc/systemd/system/ceph.service
+	    systemctl --system daemon-reload >/dev/null || true
+	    systemctl --system disable ceph.service
+	    systemctl --system enable ceph.service
+	    echo " done"
+	fi
+    fi
 
     systemctl --system daemon-reload >/dev/null || true
 
-- 
2.1.4





More information about the pve-devel mailing list