Project

General

Profile

Actions

Bug #46327

closed

cephadm: nfs daemons share the same config object

Added by Kiefer Chang almost 4 years ago. Updated over 3 years ago.

Status:
Won't Fix
Priority:
Normal
Assignee:
-
Category:
cephadm/nfs
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
octopus
Regression:
Yes
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

If we create a NFS service with multiple instances, those instance share the same rados object as the configuration source.

E.g.

# cat /tmp/nfs.yml
service_type: nfs
service_id: sesdev_nfs_deployment
placement:
    hosts:
        - 'mgr0'
        - 'osd0'
spec:
    pool: rbd
    namespace: nfs

# ceph orch apply -i /tmp/nfs.yml
Scheduled nfs.sesdev_nfs_deployment update...

# rados ls -p rbd --all
2020-07-02T07:48:22.637+0000 7fecad052b80 -1 WARNING: all dangerous and experimental features are enabled.
2020-07-02T07:48:22.637+0000 7fecad052b80 -1 WARNING: all dangerous and experimental features are enabled.
2020-07-02T07:48:22.637+0000 7fecad052b80 -1 WARNING: all dangerous and experimental features are enabled.
nfs    grace
nfs    rec-0000000000000003:nfs.sesdev_nfs_deployment.mgr0
nfs    rec-0000000000000003:nfs.sesdev_nfs_deployment.osd0
nfs    conf-nfs.sesdev_nfs_deployment             <--- this object is shared by all daemons

# podman exec ceph-a83a8c75-ee83-4ada-8881-fc01bdca496b-nfs.sesdev_nfs_deployment.osd0 cat /etc/ganesha/ganesha.conf
<...>
RADOS_URLS {
        UserId = "nfs.sesdev_nfs_deployment.osd0";
        watch_url = "rados://rbd/nfs/conf-nfs.sesdev_nfs_deployment";
}

# podman exec ceph-a83a8c75-ee83-4ada-8881-fc01bdca496b-nfs.sesdev_nfs_deployment.mgr0 cat /etc/ganesha/ganesha.conf
<...>
RADOS_URLS {
        UserId = "nfs.sesdev_nfs_deployment.mgr0";
        watch_url = "rados://rbd/nfs/conf-nfs.sesdev_nfs_deployment";
}

Each daemon should have its own configuration object. Otherwise, all daemons are going to share the same exports.

The Dashboard determines daemon instances by enumerating `conf-xxx` objects. If there is only one config, the user can only choose it (but all daemons share the same config actually).


Files

daemons.png (30.7 KB) daemons.png Kiefer Chang, 07/02/2020 08:00 AM

Related issues 2 (0 open2 closed)

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

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

Actions
Actions

Also available in: Atom PDF