Bug 1486112

Summary: config parameters for rados url provider not recognized
Product: [Red Hat Storage] Red Hat Ceph Storage Reporter: Ram Raja <rraja>
Component: RGWAssignee: Matt Benjamin (redhat) <mbenjamin>
Status: CLOSED ERRATA QA Contact: ceph-qe-bugs <ceph-qe-bugs>
Severity: low Docs Contact:
Priority: low    
Version: 3.0CC: cbodley, ceph-eng-bugs, ceph-qe-bugs, kbader, kdreyer, mbenjamin, mhackett, owasserm, pdonnell, sweil, tbarron, tserlin, vakulkar
Target Milestone: rc   
Target Release: 3.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: RHEL: nfs-ganesha-2.5.2-12.el7cp Ubuntu: nfs-ganesha_2.5.2-12redhat1xenial Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-12-05 23:41:09 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
export1
none
ganesha.conf that uses a rados url to fetch one export block none

Description Ram Raja 2017-08-29 04:57:09 UTC
Description of problem:
Config parameters to let Ganesha fetch exports from RADOS objects using user specified ceph ID and ceph conf file location aren't recognized.

Version-Release number of selected component (if applicable):
V2.6-dev.5, and V2.6-dev.6

How reproducible:
Always

Steps to Reproduce:
Ganesha with CephFS backend
1. Create a RADOS object with an export block.
$ cat export.conf
EXPORT
{
        EXPORT_ID = 100;
        Path = /;
        Pseudo = /;
        Protocols = 4;
        Transports = TCP;
        FSAL {
              Name = Ceph;
        }
        CLIENT {
              Clients = 10.0.2.15;
              Access_Type = rw;
        }
}
$ sudo rados -p cephfs_data put ganesha export.conf

2. Setup ganesha.conf to read from RADOS object
$ cat /etc/ganesha/ganesha.conf
RADOS_URLS {
      ceph_conf = /etc/ceph/ceph.conf;
      userid = client.manila;
}
%url rados://cephfs_data/ganesha


3. Start ganesha server at DEBUG level, and look in the log file for RADOS_URLS config block being parsed

$ sudo /usr/bin/ganesha.nfsd -L /var/log/ganesha/ganesha.log -f /etc/ganesha/ganesha.conf -N NIV_DEBUG

$ cat /var/log/ganesha/ganehsa.log
<snip>

load_fsal :NFS STARTUP :DEBUG :Loading FSAL Ceph with /usr/lib64/ganesha/libfsalceph.so
init :FSAL :DEBUG :Ceph module registering.
init_config :FSAL :DEBUG :Ceph module setup.
create_export :FSAL :DEBUG :Ceph module export /.
fsal_cfg_commit :CONFIG :INFO :Readjusting MaxRead to FSAL, 67108864 -> 4194304
fsal_cfg_commit :CONFIG :INFO :Readjusting MaxWrite to FSAL, 67108864 -> 4194304
export_commit_common :CONFIG :INFO :Export 100 created at pseudo (/) with path (/) and tag ((null)) perms (options=02203002              ,     , -4-, ---, TCP, ----,               ,         ,                ,                )
export_commit_common :CONFIG :INFO :Export 100 has 1 defined clients
build_default_root :CONFIG :DEBUG :Pseudo root already exists
config_errs_to_log :CONFIG :WARN :Config File (/etc/ganesha/ganesha.conf:2): Unknown parameter (ceph_conf)
config_errs_to_log :CONFIG :WARN :Config File (/etc/ganesha/ganesha.conf:3): Unknown parameter (userid)
lower_my_caps :NFS STARTUP :EVENT :CAP_SYS_RESOURCE was successfully removed for proper quota management in FSAL

</snip>

Actual results:
Ganesha fetches export from RADOS URL using default ceph ID and ceph conf location. The 'ceph_conf' and 'userid' config parameters of RADOS_URLS block aren't recognized. See warning messages in the log.

Expected results:
Ganesha fetches export from RADOS url using ceph ID and ceph conf location specified in the RADOS_URLS config block.

Additional info:

Comment 1 Ram Raja 2017-08-29 05:12:14 UTC
Reading the code,
https://github.com/nfs-ganesha/nfs-ganesha/commit/f7a09d87851f64a68c2438fdc09372703bcbebec


In src/MainNFSD/nfs_main.c,
Ganesha connects to RADOS using default ceph user ID and ceph conf file location
before parsing RADOS_URL config block to get user defined values of ceph user ID and ceph conf file location.


[1] https://github.com/nfs-ganesha/nfs-ganesha/commit/f7a09d87851f64a68c2438fdc09372703bcbebec#diff-f9cb37576d584ed17eb0a3e78d366518R405

[2] https://github.com/nfs-ganesha/nfs-ganesha/commit/f7a09d87851f64a68c2438fdc09372703bcbebec#diff-f9cb37576d584ed17eb0a3e78d366518L446

Comment 2 Ram Raja 2017-08-29 06:27:20 UTC
Adding proper references...

In src/MainNFSD/nfs_main.c, Ganesha connects to RADOS using default ceph user ID and ceph conf file location [1] before parsing RADOS_URL config block to get user defined values of ceph user ID and ceph conf file location [2].

[1] https://github.com/nfs-ganesha/nfs-ganesha/commit/f7a09d87851f64a68c2438fdc09372703bcbebec#diff-f9cb37576d584ed17eb0a3e78d366518R405

[2] https://github.com/nfs-ganesha/nfs-ganesha/commit/f7a09d87851f64a68c2438fdc09372703bcbebec#diff-f9cb37576d584ed17eb0a3e78d366518L446

Comment 3 Frank Filz 2017-08-29 14:15:21 UTC
Need to add Matt Benjamin to this, not sure how to do so...

Comment 6 Matt Benjamin (redhat) 2017-09-22 14:42:25 UTC
Created attachment 1329617 [details]
export1

an export block to store in a rados object

Comment 7 Matt Benjamin (redhat) 2017-09-22 14:43:52 UTC
Created attachment 1329618 [details]
ganesha.conf that uses a rados url to fetch one export block

Comment 35 errata-xmlrpc 2017-12-05 23:41:09 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2017:3387