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

Paul Browne pfb29.cam at gmail.com
Fri Sep 15 10:43:42 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 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 to communicate the share group ID and Ceph admins to set the correct
file layout policy. Putting the path prefix in the backend 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...

Thanks in advance for any advice,
Paul Browne
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.openstack.org/pipermail/openstack-discuss/attachments/20230915/4d90c22a/attachment.htm>


More information about the openstack-discuss mailing list