Use -L with chown and set crush map tunables when upgrading Ceph

Previously the chown command wasn't traversing symlinks, causing
the new ownership to not be set for some needed files.

This change also ensures the crush map tunables are set to the 'default'
profile after the upgrade.

Finally redirects the output of a pidof to /dev/null to avoid spurious
logging.

Change-Id: Id4865ffff207edfc727d729f9cc04e6e81ad19d8
This commit is contained in:
Giulio Fidente 2016-09-28 15:05:14 +02:00
parent 22decf4276
commit 059307718f
2 changed files with 8 additions and 4 deletions

View File

@ -5,7 +5,7 @@ set -o pipefail
echo INFO: starting $(basename "$0") echo INFO: starting $(basename "$0")
# Exit if not running # Exit if not running
if ! pidof ceph-mon; then if ! pidof ceph-mon &> /dev/null; then
echo INFO: ceph-mon is not running, skipping echo INFO: ceph-mon is not running, skipping
exit 0 exit 0
fi fi
@ -54,7 +54,7 @@ if [[ "$UPDATED_VERSION" =~ ^0\.94.* ]]; then
elif [[ "$UPDATED_VERSION" =~ ^10\.2.* ]]; then elif [[ "$UPDATED_VERSION" =~ ^10\.2.* ]]; then
# RPM could own some of these but we can't take risks on the pre-existing files # RPM could own some of these but we can't take risks on the pre-existing files
for d in /var/lib/ceph/mon /var/log/ceph /var/run/ceph /etc/ceph; do for d in /var/lib/ceph/mon /var/log/ceph /var/run/ceph /etc/ceph; do
chown -R ceph:ceph $d || echo WARNING: chown of $d failed chown -L -R ceph:ceph $d || echo WARNING: chown of $d failed
done done
# Replay udev events with newer rules # Replay udev events with newer rules
@ -71,6 +71,10 @@ elif [[ "$UPDATED_VERSION" =~ ^10\.2.* ]]; then
sleep 10; sleep 10;
done" done"
# if tunables become legacy, cluster status will be HEALTH_WARN causing
# upgrade to fail on following node
ceph osd crush tunables default
echo INFO: Ceph was upgraded to Jewel echo INFO: Ceph was upgraded to Jewel
else else
echo ERROR: Ceph was upgraded to an unknown release, daemon is stopped, need manual intervention echo ERROR: Ceph was upgraded to an unknown release, daemon is stopped, need manual intervention

View File

@ -18,7 +18,7 @@ set -eu
echo INFO: starting $(basename "$0") echo INFO: starting $(basename "$0")
# Exit if not running # Exit if not running
if ! pidof ceph-osd; then if ! pidof ceph-osd &> /dev/null; then
echo INFO: ceph-osd is not running, skipping echo INFO: ceph-osd is not running, skipping
exit 0 exit 0
fi fi
@ -63,7 +63,7 @@ if [[ "$UPDATED_VERSION" =~ ^0\.94.* ]]; then
elif [[ "$UPDATED_VERSION" =~ ^10\.2.* ]]; then elif [[ "$UPDATED_VERSION" =~ ^10\.2.* ]]; then
# RPM could own some of these but we can't take risks on the pre-existing files # RPM could own some of these but we can't take risks on the pre-existing files
for d in /var/lib/ceph/osd /var/log/ceph /var/run/ceph /etc/ceph; do for d in /var/lib/ceph/osd /var/log/ceph /var/run/ceph /etc/ceph; do
chown -R ceph:ceph $d || echo WARNING: chown of $d failed chown -L -R ceph:ceph $d || echo WARNING: chown of $d failed
done done
# Replay udev events with newer rules # Replay udev events with newer rules