Fix the problem that the crush map is changed

When deploying ceph osd with kolla, each osd deployment will move the
host bucket to default in the crush map.

If we adjust the crush map, we have to re-adjust the crush map after
adding osd or fixing osd.
This commit fixes this problem.

Change-Id: Ifdc3a1fd5fe37da529b2aee9811b12f744cff3bf
Closes-bug: #1821681
(cherry picked from commit 3d4a7360a7)
This commit is contained in:
wangwei 2019-03-26 15:49:18 +09:00 committed by wangwei
parent f958a9d368
commit 8371ecb2ac

View File

@ -149,8 +149,12 @@ if [[ "${!KOLLA_BOOTSTRAP[@]}" ]]; then
# These commands only need to be run once per host but are safe to run # These commands only need to be run once per host but are safe to run
# repeatedly. This can be improved later or if any problems arise. # repeatedly. This can be improved later or if any problems arise.
ceph osd crush add-bucket "${HOSTNAME}${CEPH_ROOT_NAME:+-${CEPH_ROOT_NAME}}" host host_bucket_name="${HOSTNAME}${CEPH_ROOT_NAME:+-${CEPH_ROOT_NAME}}"
ceph osd crush move "${HOSTNAME}${CEPH_ROOT_NAME:+-${CEPH_ROOT_NAME}}" root=${CEPH_ROOT_NAME:-default} host_bucket_check=$(ceph osd tree | awk '/'"${host_bucket_name}"'/{print $0}' | wc -l)
if [[ "${host_bucket_check}" -eq 0 ]]; then
ceph osd crush add-bucket "${host_bucket_name}" host
ceph osd crush move "${host_bucket_name}" root=${CEPH_ROOT_NAME:-default}
fi
# Adding osd to crush map # Adding osd to crush map
ceph osd crush add "${OSD_ID}" "${OSD_INITIAL_WEIGHT}" host="${HOSTNAME}${CEPH_ROOT_NAME:+-${CEPH_ROOT_NAME}}" ceph osd crush add "${OSD_ID}" "${OSD_INITIAL_WEIGHT}" host="${HOSTNAME}${CEPH_ROOT_NAME:+-${CEPH_ROOT_NAME}}"