Set ceph osd max object name and namespace len on upgrade when on ext4

As per [1] we need to lower osd max object name and namespace len when
upgrading from Hammer and the OSD is backed by ext4.

These could also be given via ExtraConfig but on upgrade we only run
puppet apply after this script is executed, so the values won't be
effective unless the daemon is restarted. Yet we do not want puppet
to restart the daemon because we can't bring all OSDs down
unconditionally or guests will die.

1. http://tracker.ceph.com/issues/16187

Co-Authored-By: Michele Baldessari <michele@acksyn.org>
Co-Authored-By: Dimitri Savineau <dsavinea@redhat.com>
Change-Id: I7fec4e2426bdacd5f364adbebd42ab23dcfa523a
Closes-Bug: 1628874
This commit is contained in:
Giulio Fidente 2016-09-29 13:52:32 +02:00
parent 059307718f
commit 27e1d105fb

View File

@ -69,6 +69,16 @@ elif [[ "$UPDATED_VERSION" =~ ^10\.2.* ]]; then
# Replay udev events with newer rules
udevadm trigger && udevadm settle
# If on ext4, we need to enforce lower values for name and namespace len
# or ceph-osd will refuse to start, see: http://tracker.ceph.com/issues/16187
for OSD_ID in $OSD_IDS; do
OSD_FS=$(findmnt -n -o FSTYPE -T /var/lib/ceph/osd/ceph-${OSD_ID})
if [ ${OSD_FS} = ext4 ]; then
crudini --set /etc/ceph/ceph.conf global osd_max_object_name_len 256
crudini --set /etc/ceph/ceph.conf global osd_max_object_namespace_len 64
fi
done
# Enable systemd unit
systemctl enable ceph-osd.target
for OSD_ID in $OSD_IDS; do