Update CephFS Native/NFS Ganesha drivers to use ceph-mgr

Registered by Victoria Martinez de la Cruz

We want the driver to use the ceph-mgr 'volumes' module to dynamically
provision shares, share-groups, snapshots, and control access to the
shares.

Currently, the driver uses the soon-to-be-deprecated ceph_volume_client python module to do this.

Ceph-mgr volume's module is the single source of truth for
managing CephFS exports from Ceph nautilus onwards (14.2.x).

The CephFS native driver would use the ceph CLI to talk to the Ceph
manager daemon. The ceph-mgr daemon would load the 'volumes' module.
The 'volumes' module would allow the native driver to manage FS
subvolumes (previously called 'volumes' in the ceph_volume_client)
across FS volumes (also called filesytems), and inherently support
features such as asynchronous purging of FS subvolumes.

The ceph-mgr volumes has implemented many of the interfaces needed by
the native driver. The following interfaces provided by
ceph_volume_client aren't implemented in ceph-mgr volumes module,
* authorize/deauthorize access to FS subvolume(manila share)
* fetch the list of auth IDs that have access to a FS subvolume
* evict clients
* get used bytes of a FS subvolume (manila share)
* fetch used and unused capacity of a FS volume (backend Ceph filesytem)
* fetch monitor addresses

Update 09/03/2021

We opted to use the Ceph Rados client instead of using the Ceph CLI
More details in https://etherpad.opendev.org/p/update-cephfs-drivers-collab-review

Blueprint information

Status:
Complete
Approver:
Goutham Pacha Ravi
Priority:
Medium
Drafter:
Victoria Martinez de la Cruz
Direction:
Approved
Assignee:
Victoria Martinez de la Cruz
Definition:
Approved
Series goal:
Accepted for wallaby
Implementation:
Implemented
Milestone target:
milestone icon wallaby-rc1
Started by
Goutham Pacha Ravi
Completed by
Goutham Pacha Ravi

Related branches

Sprints

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.