Ceph mon IP addresses in export_location is never re-validated
Description
===========
The Manila driver for CephFS computes the share export locations when started. Export locations contain the IP address(es) of the Ceph monitors, which are retrieved via a Ceph rados "mon dump" command and the path to be mounted (`{mon ip addr:port}[,{mon ip addr:port}]:{path to be mounted}`). The IP addresses of the monitors are never re-validated. If Ceph monitors IP addresses change, the export location will contain a list of stale IP addresses, making clients unable to connect to the Ceph monitors and to mount the shared filesystem.
Possible solutions and/or mitigations include:
- Support an alias to Ceph monitors instead of enumerating their IP addresses
- Re-evaluate periodically the list of Ceph monitors and update the export locations
- Provide an API to trigger the re-evaluation of export locations without the need of restarting the Manila controller
Steps to reproduce
==================
* Configure one CephFS cluster to be used with Manila for the provisioning of the shared file system
* Use an alias in `ceph.conf` to reach the mons of the Ceph cluster
* Start the Manila controller
* Replace one existing mons with another one (e.g., due to HW failure) that has a different IP address
* Update the alias members to remove the old mon and add the new one
Expected result
===============
Export locations managed by Manila follow the alias update.
Actual result
=============
The export locations contain stale IP addresses, which are not replaced by the new alias members.
Further comments
================
- It would be convenient to have a callable API to trigger the re-evaluation of the export location without the need of restarting the Manila service
- This bug for Manila shares and CephFS matches this other bug (https://bugs.launchpad.net/nova/+bug/1452641) for Cinder volumes and Ceph RBD.
Additional comments at https:/ /meetings. opendev. org/meetings/ manila/ 2022/manila. 2022-12- 01-15.00. log.html