Feature #47490
openIntegration of dashboard with volume/nfs module
0%
Description
Currently, there are two ways to create exports with mgr/volume/nfs module and
dashboard. Both use the same code12 with modification to create exports.
Recently, there was a meeting3 to discuss integration of dashboard with
volume/nfs module. A number of todo items were identified.
Below provides a brief description of export creation workflow:
1) mgr/volume/nfs module [4]- It was introduced in octopus.
- It automates the pool and cluster creation with "ceph nfs cluster create" command.
- Currently using 'cephadm' as backend. In future 'rook' will also be supported.
- Default exports can be created with
'ceph nfs export create cephfs <fsname> <clusterid> <binding> [--readonly] [--path=/path/in/cephfs]'.
Otherwise `ceph nfs cluster config set <clusterid> -i <config_file>` command
can be used to create user defined exports. Even modify ganesha configuration. - RGW exports are not supported [5]. We need someone to help with it.
- Exports can be listed, fetched and deleted. But cannot be modified currently [6].
- Only NFSv4 is supported. It provides better cache management, parallelism,
compound operations, and lease based locks than previous versions.
- The pool and nfs cluster needs to be created explicitly.
- Also requires the
"ceph dashboard set-ganesha-clusters-rados-pool-namespace <pool_name>[/<namespace>]"
command to be used before exports can be created. And following options need to
be specified: cluster id, daemons, path, pseudo path, access type, squash,
security label, protocols [3, 4], transport [udp, tcp], cephfs user id, cephfs name. - It supports both cephfs and rgw exports.
- Exports can be modified, listed, fetched and deleted.
- Available from nautilus.
We would like to create a common code base for it and eventually go in a
direction where the dashboard may use the volumes/nfs plugin for configuring
NFS clusters.
These are the issues we identified in our meeting:
- Difference in user workflow between volume/nfs and dashboard.
- rgw exports need to be supported in volume/nfs module.
- Dashboard does not want to depend on the orchestrator in future for fetching
cluster pool and namespace. - Dashboard creates config object per daemon containing export object rados url.
- In cephadm all daemons within the cluster watch a single config object. This
config object contains rados url for export objects.
rados://$pool/$namespace/export-$i rados://$pool/$namespace/userconf-nfs.$svc (export config) (user defined config) +----------+ +----------+ +----------+ +---------+ | | | | | | | | | export-1 | | export-2 | | export-3 | | export | | | | | | | | | +----+-----+ +----+-----+ +-----+----+ +----+----+ ^ ^ ^ ^ | | | | +---------------+----------------+-----------------+ %url | | +--------+--------+ | | rados://$pool/$namespace/conf-nfs.$svc | conf+nfs.$svc | (common config) | | +--------+--------+ ^ | watch_url | +----------------------------------------------+ | | | | | | RADOS +----------------------------------------------------------------------------------+ | | | CONTAINER watch_url | watch_url | watch_url | | | | +--------+-------+ +--------+-------+ +-------+--------+ | | | | | | /etc/ganesha/ganesha.conf | nfs.$svc.a | | nfs.$svc.b | | nfs.$svc.c | (bootstrap config) | | | | | | +----------------+ +----------------+ +----------------+
[1] https://github.com/ceph/ceph/blob/master/src/pybind/mgr/volumes/fs/nfs.py
[2] https://github.com/ceph/ceph/blob/master/src/pybind/mgr/dashboard/services/ganesha.py
[3] https://pad.ceph.com/p/dashboard-nfs
[4] https://docs.ceph.com/docs/master/cephfs/fs-nfs-exports
[5] https://tracker.ceph.com/issues/47172
[6] https://tracker.ceph.com/issues/45746
[7] https://docs.ceph.com/docs/master/mgr/dashboard/#nfs-ganesha-management
Updated by Varsha Rao over 3 years ago
- Related to Bug #47172: mgr/nfs: Add support for RGW export added
Updated by Varsha Rao over 3 years ago
- Related to Feature #45746: mgr/nfs: Add interface to update export added
Updated by Varsha Rao over 3 years ago
- Related to Bug #47337: rook: 'ceph orch ls' fails added
Updated by Varsha Rao over 3 years ago
- Related to Bug #47387: rook: 'ceph orch ps' does not list daemons correctly added
Updated by Varsha Rao over 3 years ago
- Related to Bug #46492: mgr/dashboard: adapt NFS-Ganesha design change in Octopus (daemons -> services) added
Updated by Varsha Rao over 3 years ago
Exports and nfs clusters cannot be managed by dashboard and volumes/nfs interface at the same time. Xattrs can be used for identification.
Updated by Patrick Donnelly over 3 years ago
- Blocked by Feature #47587: pybind/mgr/nfs: add Rook support added
Updated by Patrick Donnelly over 3 years ago
- Related to deleted (Feature #45746: mgr/nfs: Add interface to update export)
Updated by Patrick Donnelly over 3 years ago
- Blocked by Feature #45746: mgr/nfs: Add interface to update export added
Updated by Patrick Donnelly over 3 years ago
- Related to deleted (Bug #47172: mgr/nfs: Add support for RGW export )
Updated by Patrick Donnelly over 3 years ago
- Blocked by Bug #47172: mgr/nfs: Add support for RGW export added
Updated by Patrick Donnelly over 3 years ago
- Related to deleted (Bug #47337: rook: 'ceph orch ls' fails)
Updated by Patrick Donnelly over 3 years ago
- Related to deleted (Bug #47387: rook: 'ceph orch ps' does not list daemons correctly)
Updated by Patrick Donnelly over 3 years ago
- Status changed from New to In Progress
- Assignee set to Varsha Rao
- Target version set to v16.0.0
- Source set to Development
Updated by Varsha Rao over 3 years ago
- Assignee changed from Varsha Rao to Yehuda Sadeh
- Target version deleted (
v16.0.0) - Source deleted (
Development)
Updated by Varsha Rao over 3 years ago
- Assignee changed from Yehuda Sadeh to Varsha Rao
- Target version set to v16.0.0
- Source set to Development
Updated by Varsha Rao over 3 years ago
Volume/nfs module doc: https://docs.ceph.com/docs/master/cephfs/fs-nfs-exports
Updated by Patrick Donnelly about 3 years ago
- Target version changed from v16.0.0 to v17.0.0
Updated by Alfonso Martínez about 3 years ago
- Related to Bug #49925: mgr/dashboard: adapt Dashboard to work with NFSv4 added
Updated by Varsha Rao almost 3 years ago
- Related to Cleanup #50080: mgr/nfs: move nfs code out of volumes plugin added
Updated by Varsha Rao almost 3 years ago
- Related to Feature #50449: mgr/nfs: Add unit tests for conf parser and others added
Updated by Varsha Rao almost 3 years ago
- Related to Cleanup #50450: mgr/nfs: Simplify the parsing of Ganesha Conf using existing pseudo-parsers added
Updated by Alfonso Martínez over 2 years ago
- Assignee changed from Varsha Rao to Sage Weil
- Pull request ID set to 47490
Updated by Ernesto Puerta over 2 years ago
- Precedes Feature #46493: mgr/dashboard: integrate Dashboard with mgr/nfs module interface added
Updated by Ernesto Puerta over 2 years ago
- Status changed from In Progress to Pending Backport
Updated by Ernesto Puerta over 2 years ago
Can we close this/mark it as duplicate of https://tracker.ceph.com/issues/46493 (where all pacific backporting will take place)? I don't have permissions to do so. Thanks!