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:
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
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
Need to add Matt Benjamin to this, not sure how to do so...
Created attachment 1329617 [details] export1 an export block to store in a rados object
Created attachment 1329618 [details] ganesha.conf that uses a rados url to fetch one export block
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