[manila] - Enforcing CephFS pool data placement via backend config. options deprecated?

Paul Browne pfb29 at cam.ac.uk
Fri Sep 15 10:54:12 UTC 2023


Hello to the list,

In OpenStack releases prior to Wallaby, in CephFS native driver Manila backend config there existed a configuration directive cephfs_volume_path_prefix<https://docs.openstack.org/manila/wallaby/configuration/shared-file-systems/samples/manila.conf.htm> ;

# DEPRECATED: The prefix of the cephfs volume path. (string value)
# This option is deprecated for removal since Wallaby.
# Its value may be silently ignored in the future.
# Reason: This option is not used starting with the Nautilus release
# of Ceph.
#cephfs_volume_path_prefix = /volumes

This volume path prefix was usable (and very useful) to set different prefixes in different backends, pointing to different pools in the same backend Ceph cluster e.g. pools backed by storage devices of different characteristics/technology or Ceph CRUSH rule, etc

The pool selection would be done in CephFS via the use of file layout fattributes<https://docs.ceph.com/en/quincy/cephfs/file-layouts/>, file layout inheritance ensuring that data created in prefix child sub-directories ends up in the correct Ceph pool.

e.g. two backends using the same Ceph cluster but two different path prefixes hitting different Ceph pools

[cephfsnative1]
driver_handles_share_servers = False
share_backend_name = CEPHFS1
share_driver = manila.share.drivers.cephfs.driver.CephFSDriver
cephfs_conf_path = /etc/ceph/ceph.conf
cephfs_auth_id = manila
cephfs_cluster_name = ceph
cephfs_volume_path_prefix = /volumes-staging
cephfs_volume_mode = 777
cephfs_enable_snapshots = False

[cephfsnative1_ec]
driver_handles_share_servers = False
share_backend_name = CEPHFS1_EC
share_driver = manila.share.drivers.cephfs.driver.CephFSDriver
cephfs_conf_path = /etc/ceph/ceph.conf
cephfs_auth_id = manila
cephfs_cluster_name = ceph
cephfs_volume_path_prefix = /volumes-ec-staging
cephfs_volume_mode = 777
cephfs_enable_snapshots = False

However, since Wallaby this config directive looks to have been deprecated and the default of using a path prefix of only /volumes is possible. Trying to use any other prefix in backend configs is ignored.

Would anyone on the list know why this option was deprecated in Manila code, or was this forced on Manila by upstream Ceph as of Nautilus? Is there a way to get back to an equivalent functionality?

Currently using only a default path of /volumes means we have lost all flexibility in defining Manila CephFS share data placement using the native CephFS driver.

Possibly using share group types+share groups and some pre-created paths in the root CephFS could get to something like equivalency?

But these paths would need to correspond to the share group UUID, which will only be known after the share group has been created.

So not all that flexible a path, since it requires an interaction between users/tenant to communicate the share group ID and Ceph admins to set the correct file layout policy. Putting the path prefix in the backend+share-type removed all of that in a nicely transparent way.

Having just prototyped this, it will work for setting a desired file layout on a pre-defined share group UUID path in the root CephFS, though it's not really ideal or sustainable to be able to do this for dynamically created share groups by users or automation, which could exist in large numbers...

Thanks in advance for any advice,
Paul Browne



*******************
Paul Browne
Research Computing Platforms
University Information Services
Roger Needham Building
JJ Thompson Avenue
University of Cambridge
Cambridge
United Kingdom
E-Mail: pfb29 at cam.ac.uk<mailto:pfb29 at cam.ac.uk>
Tel: 0044-1223-746548
*******************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.openstack.org/pipermail/openstack-discuss/attachments/20230915/4963f448/attachment-0001.htm>


More information about the openstack-discuss mailing list