Bug 1486112 - config parameters for rados url provider not recognized
Summary: config parameters for rados url provider not recognized
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Ceph Storage
Classification: Red Hat Storage
Component: RGW
Version: 3.0
Hardware: Unspecified
OS: Unspecified
low
low
Target Milestone: rc
: 3.0
Assignee: Matt Benjamin (redhat)
QA Contact: ceph-qe-bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-08-29 04:57 UTC by Ram Raja
Modified: 2017-12-05 23:41 UTC (History)
13 users (show)

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:
Clone Of:
Environment:
Last Closed: 2017-12-05 23:41:09 UTC
Embargoed:


Attachments (Terms of Use)
export1 (643 bytes, text/plain)
2017-09-22 14:42 UTC, Matt Benjamin (redhat)
no flags Details
ganesha.conf that uses a rados url to fetch one export block (1.37 KB, text/plain)
2017-09-22 14:43 UTC, Matt Benjamin (redhat)
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Gerrithub.io 383133 0 None None None 2017-10-19 19:40:12 UTC
Gerrithub.io 383500 0 None None None 2017-10-23 19:40:17 UTC
Gerrithub.io 383657 0 None None None 2017-10-26 20:07:02 UTC
Red Hat Product Errata RHBA-2017:3387 0 normal SHIPPED_LIVE Red Hat Ceph Storage 3.0 bug fix and enhancement update 2017-12-06 03:03:45 UTC

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


Note You need to log in before you can comment on or make changes to this bug.