From 361c71c7321929898a9cc381b05f4cd65aba36f7 Mon Sep 17 00:00:00 2001 From: Adam King Date: Fri, 13 May 2022 12:53:09 -0400 Subject: [PATCH] cephadm: fix adoption of osds from custom name clusters Fixes: https://tracker.ceph.com/issues/55654 Signed-off-by: Adam King --- src/cephadm/cephadm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/cephadm/cephadm b/src/cephadm/cephadm index 5eb3f1e321a8b..b21015ae7ac26 100755 --- a/src/cephadm/cephadm +++ b/src/cephadm/cephadm @@ -3300,6 +3300,16 @@ def deploy_daemon_units( bind_mounts=get_container_binds(ctx, fsid, daemon_type, daemon_id), cname='ceph-%s-%s.%s-activate' % (fsid, daemon_type, daemon_id), ) + if 'cluster' in ctx and ctx.cluster: + # ctx.cluster is only set during adoption of a daemon from a cluster + # with a custom name (not "ceph"). The initial activate command the first + # time we start the new cephadm based systemd unit for this osd must account + # for this by mounting to the correct data dir in the container. Otherwise + # necessary files from the old data dir of the daemon won't be copied over + # to the new data dir on the host. After the first start (e.g. on any redeploys) + # this is no longer necessary as we will have these files in the data dir on the host + if data_dir in prestart.volume_mounts: + prestart.volume_mounts[data_dir] = f'/var/lib/ceph/osd/{ctx.cluster}-{daemon_id}' _write_container_cmd_to_bash(ctx, f, prestart, 'LVM OSDs use ceph-volume lvm activate') elif daemon_type == CephIscsi.daemon_type: f.write(' '.join(CephIscsi.configfs_mount_umount(data_dir, mount=True)) + '\n') -- 2.39.5