Feature #53562
opencephadm doesn't support osd crush_location_hook
0%
Description
crush_location_hook is a path to an executable that is executed in order to update the current OSD's crush location. Executed like so:
$crush_location_hook --cluster {cluster-name} --id {ID} --type {daemon-type}
and prints out the current crush locations.
Workarounds:
- For a per-host based location, we have: https://docs.ceph.com/en/latest/cephadm/host-management/#setting-the-initial-crush-location-of-host which should cover a lot of use cases.
- Build a new container image locally and add the crush_location_hook executable to it. Then set the config option to the file path within the container
Updated by Sebastian Wagner over 2 years ago
- Related to Feature #48247: cephadm: RGW rgw_ldap_secret added
Updated by Wyllys Ingersoll over 1 year ago
Is anyone looking into this issue?
We have a non-orchestrated cluster with a complicated crush map where we rely on a custom crush_location_hook to put things in the right place in the event that the host reboots or an OSD has to be restarted. We really want to migrate to an orchestrated cluster but this one issue is a roadblock for now.
One workaround is to put the crush hook in a common location such as /etc/ceph, but then set the 'crush_location_hook' path in the config db to prefix with "/rootfs", ex:
ceph config set osd crush_location_hook /rootfs/etc/ceph/crushhook.sh
This seems to work since the containers running the osds have access to the hosts root through the /rootfs path internally.
Worst case, this should be clearly documented somewhere.