Project

General

Profile

Actions

Feature #47490

open

Integration of dashboard with volume/nfs module

Added by Varsha Rao over 3 years ago. Updated over 1 year ago.

Status:
Pending Backport
Priority:
Normal
Assignee:
Category:
-
Target version:
% Done:

0%

Source:
Development
Tags:
backport_processed
Backport:
Reviewed:
Affected Versions:
Component(FS):
mgr/nfs
Labels (FS):
NFS-cluster
Pull request ID:

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.
2) Dashboard7
  • 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


Subtasks 1 (1 open0 closed)

Bug #48706: mgr/nfs: Does not detect exports created by dashboardNewVarsha Rao

Actions

Related issues 9 (3 open6 closed)

Related to Dashboard - Bug #46492: mgr/dashboard: adapt NFS-Ganesha design change in Octopus (daemons -> services)ResolvedKiefer Chang

Actions
Related to Dashboard - Bug #49925: mgr/dashboard: adapt Dashboard to work with NFSv4ResolvedAlfonso Martínez

Actions
Related to CephFS - Cleanup #50080: mgr/nfs: move nfs code out of volumes pluginResolvedVarsha Rao

Actions
Related to CephFS - Feature #50449: mgr/nfs: Add unit tests for conf parser and othersFix Under ReviewSage Weil

Actions
Related to CephFS - Cleanup #50450: mgr/nfs: Simplify the parsing of Ganesha Conf using existing pseudo-parsersNewVarsha Rao

Actions
Blocked by CephFS - Feature #47587: pybind/mgr/nfs: add Rook supportIn ProgressVarsha Rao

Actions
Blocked by CephFS - Feature #45746: mgr/nfs: Add interface to update exportResolvedVarsha Rao

Actions
Blocked by CephFS - Bug #47172: mgr/nfs: Add support for RGW export ResolvedSage Weil

Actions
Precedes Dashboard - Feature #46493: mgr/dashboard: integrate Dashboard with mgr/nfs module interfaceResolvedAlfonso Martínez

Actions
Actions #1

Updated by Varsha Rao over 3 years ago

  • Related to Bug #47172: mgr/nfs: Add support for RGW export added
Actions #2

Updated by Varsha Rao over 3 years ago

  • Related to Feature #45746: mgr/nfs: Add interface to update export added
Actions #3

Updated by Varsha Rao over 3 years ago

  • Related to Bug #47337: rook: 'ceph orch ls' fails added
Actions #4

Updated by Varsha Rao over 3 years ago

  • Related to Bug #47387: rook: 'ceph orch ps' does not list daemons correctly added
Actions #5

Updated by Varsha Rao over 3 years ago

  • Related to Bug #46492: mgr/dashboard: adapt NFS-Ganesha design change in Octopus (daemons -> services) added
Actions #6

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.

Actions #7

Updated by Patrick Donnelly over 3 years ago

Actions #8

Updated by Patrick Donnelly over 3 years ago

  • Related to deleted (Feature #45746: mgr/nfs: Add interface to update export)
Actions #9

Updated by Patrick Donnelly over 3 years ago

  • Blocked by Feature #45746: mgr/nfs: Add interface to update export added
Actions #10

Updated by Patrick Donnelly over 3 years ago

  • Related to deleted (Bug #47172: mgr/nfs: Add support for RGW export )
Actions #11

Updated by Patrick Donnelly over 3 years ago

  • Blocked by Bug #47172: mgr/nfs: Add support for RGW export added
Actions #12

Updated by Patrick Donnelly over 3 years ago

  • Related to deleted (Bug #47337: rook: 'ceph orch ls' fails)
Actions #13

Updated by Patrick Donnelly over 3 years ago

  • Related to deleted (Bug #47387: rook: 'ceph orch ps' does not list daemons correctly)
Actions #14

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
Actions #15

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)
Actions #16

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
Actions #18

Updated by Patrick Donnelly about 3 years ago

  • Target version changed from v16.0.0 to v17.0.0
Actions #19

Updated by Alfonso Martínez about 3 years ago

  • Related to Bug #49925: mgr/dashboard: adapt Dashboard to work with NFSv4 added
Actions #20

Updated by Varsha Rao almost 3 years ago

  • Related to Cleanup #50080: mgr/nfs: move nfs code out of volumes plugin added
Actions #21

Updated by Varsha Rao almost 3 years ago

  • Related to Feature #50449: mgr/nfs: Add unit tests for conf parser and others added
Actions #22

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
Actions #23

Updated by Alfonso Martínez over 2 years ago

  • Assignee changed from Varsha Rao to Sage Weil
  • Pull request ID set to 47490
Actions #24

Updated by Ernesto Puerta over 2 years ago

  • Precedes Feature #46493: mgr/dashboard: integrate Dashboard with mgr/nfs module interface added
Actions #25

Updated by Alfonso Martínez over 2 years ago

  • Pull request ID deleted (47490)
Actions #26

Updated by Ernesto Puerta over 2 years ago

  • Pull request ID set to 42526
Actions #27

Updated by Ernesto Puerta over 2 years ago

  • Status changed from In Progress to Pending Backport
Actions #28

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!

Actions #29

Updated by Backport Bot over 1 year ago

  • Tags set to backport_processed
Actions

Also available in: Atom PDF