Anything you add or modify in /etc/glusterd/nfs/nfs-server.vol gets removed when /etc/init.d/glusterd restart happens. Unless we provide a way inside of Glsuter to specify options for the NFS server or to add non-Gluster directories to NFS export then we should not overwrite changes made to /etc/glusterd/nfs/nfs-server.vol
Generally, the feature requests all nfs options to be supported through the CLI.
*** Bug 2239 has been marked as a duplicate of this bug. ***
Will this bug be moved to 3.1.3 since 3.1.2 is out already and this issue is unresolved?
Kaushik, will the patch be available for 3.1.3?
PATCH: http://patches.gluster.com/patch/6315 in master (CLI : NFS persistent local/global options.)
Gaurav, Need to know about the expected behaviour of these options for verfiying this bug, also need to know whether all of them are global or local, + {"nfs.enable-ino32", "nfs/server", "nfs.enable-ino32", NULL, GLOBAL_DOC}, + {"nfs.export-dirs", "nfs/server", "nfs3.export-dirs", NULL, GLOBAL_DOC}, + {"nfs.export-volumes", "nfs/server", "nfs3.export-volumes", NULL, GLOBAL_DOC}, + {"nfs.addr-namelookup", "nfs/server", "rpc-auth.addr.namelookup", NULL, GLOBAL_DOC}, + {"nfs.dynamic-volumes", "nfs/server", "nfs.dynamic-volumes", NULL, GLOBAL_DOC}, + {"nfs.register-with-portmap", "nfs/server", "rpc.register-with-portmap", NULL, GLOBAL_DOC}, + {"nfs.port", "nfs/server", "nfs.port", NULL, GLOBAL_DOC}, + + {"nfs.rpc-auth-unix", "nfs/server", "!nfs.rpc-auth-auth-unix", NULL, DOC}, + {"nfs.rpc-auth-null", "nfs/server", "!nfs.rpc-auth-auth-null", NULL, DOC}, + {"nfs.rpc-auth-allow", "nfs/server", "!nfs.rpc-auth.addr.allow", NULL, DOC}, + {"nfs.rpc-auth-reject", "nfs/server", "!nfs.rpc-auth.addr.reject", NULL, DOC}, + {"nfs.ports-insecure", "nfs/server", "!nfs.auth.ports.insecure", NULL, DOC}, + + {"nfs.trusted-sync", "nfs/server", "!nfs-trusted-sync", NULL, DOC}, + {"nfs.trusted-write", "nfs/server", "!nfs-trusted-write", NULL, DOC}, + {"nfs.volume-access", "nfs/server", "!nfs-volume-access", NULL, DOC}, + {"nfs.export-dir", "nfs/server", "!nfs-export-dir", NULL, DOC}
Options with type GLOBAL_DOC are global options and options with type DOC are local options. You can set these options using normal volume set command. For global options expected behaviour is, it should set that option for all the volumes irrespective of volume name in volume set command. You can check volume info after volume set to verify.
Saurabh, see xlators/nfs/server/src/nfs.c. The options are documented at the end of the file. If the text there is not clear, ask me and I'll take you through it. (In reply to comment #6) > Gaurav, > > > Need to know about the expected behaviour of these options for verfiying > this bug, also need to know whether all of them are global or local, > > > + {"nfs.enable-ino32", "nfs/server", > "nfs.enable-ino32", NULL, GLOBAL_DOC}, > + {"nfs.export-dirs", "nfs/server", > "nfs3.export-dirs", NULL, GLOBAL_DOC}, > + {"nfs.export-volumes", "nfs/server", > "nfs3.export-volumes", NULL, GLOBAL_DOC}, > + {"nfs.addr-namelookup", "nfs/server", > "rpc-auth.addr.namelookup", NULL, GLOBAL_DOC}, > + {"nfs.dynamic-volumes", "nfs/server", > "nfs.dynamic-volumes", NULL, GLOBAL_DOC}, > + {"nfs.register-with-portmap", "nfs/server", > "rpc.register-with-portmap", NULL, GLOBAL_DOC}, > + {"nfs.port", "nfs/server", > "nfs.port", NULL, GLOBAL_DOC}, > + > + {"nfs.rpc-auth-unix", "nfs/server", > "!nfs.rpc-auth-auth-unix", NULL, DOC}, > + {"nfs.rpc-auth-null", "nfs/server", > "!nfs.rpc-auth-auth-null", NULL, DOC}, > + {"nfs.rpc-auth-allow", "nfs/server", > "!nfs.rpc-auth.addr.allow", NULL, DOC}, > + {"nfs.rpc-auth-reject", "nfs/server", > "!nfs.rpc-auth.addr.reject", NULL, DOC}, > + {"nfs.ports-insecure", "nfs/server", > "!nfs.auth.ports.insecure", NULL, DOC}, > + > + {"nfs.trusted-sync", "nfs/server", > "!nfs-trusted-sync", NULL, DOC}, > + {"nfs.trusted-write", "nfs/server", > "!nfs-trusted-write", NULL, DOC}, > + {"nfs.volume-access", "nfs/server", > "!nfs-volume-access", NULL, DOC}, > + {"nfs.export-dir", "nfs/server", > "!nfs-export-dir", NULL, DOC}
Gaurav, disabling the option is not working, Logs are here gluster> volume info Volume Name: dist1 Type: Distribute Status: Started Number of Bricks: 4 Transport-type: tcp Bricks: Brick1: 10.1.12.109:/mnt/dist1 Brick2: 10.1.12.110:/mnt/dist2 Brick3: 10.1.12.109:/mnt/add-dist1 Brick4: 10.1.12.110:/mnt/add-dist2 Options Reconfigured: nfs.enable-ino32: enable Volume Name: srj-dist Type: Distribute Status: Started Number of Bricks: 2 Transport-type: tcp Bricks: Brick1: 10.1.12.109:/mnt/srj-dist1 Brick2: 10.1.12.110:/mnt/srj-dist2 Options Reconfigured: nfs.enable-ino32: enable gluster> gluster> volume set dist1 nfs.enable-ino32 disable operation failed gluster> volume set dist1 nfs.enable-ino32 off operation failed gluster> volume set dist1 nfs.enable-ino32 0 operation failed gluster> volume reset dis1 operation failed gluster> volume reset dist1 operation failed gluster>
There seems to be some problem with glusterd, as no volume command was working except volume info. Things are fine after glusterd restart. Saurabh you can file a seperate bug for it if you can reproduce it.
Gaurav, I tried to provide a string value to the options that are looking for boolean values, and the string value gets set, here is the result, gluster> volume set dist1 nfs.register-with-portmap something Set volume successful gluster> volume set dist1 nfs.dynamic-volumes something Set volume successful gluster> gluster> volume info Volume Name: srj-dist Type: Distribute Status: Started Number of Bricks: 2 Transport-type: tcp Bricks: Brick1: 10.1.12.109:/mnt/srj-dist1 Brick2: 10.1.12.110:/mnt/srj-dist2 Options Reconfigured: nfs.register-with-portmap: something nfs.dynamic-volumes: something nfs.addr-namelookup: off nfs.export-volumes: enable Volume Name: dist1 Type: Distribute Status: Started Number of Bricks: 4 Transport-type: tcp Bricks: Brick1: 10.1.12.109:/mnt/dist1 Brick2: 10.1.12.110:/mnt/dist2 Brick3: 10.1.12.109:/mnt/add-dist1 Brick4: 10.1.12.110:/mnt/add-dist2 Options Reconfigured: nfs.register-with-portmap: something nfs.dynamic-volumes: something nfs.addr-namelookup: off nfs.export-volumes: enable gluster> Hence I am marking this bug as re-opened, if you see that the values provided are fine then move the status accordingly
Hi Saurabh, Validation of newly added options will work only with BUG-2120 patch, so we need to wait for that patch.
Added the following information "Bug 2064: Fixed the issue of NFS options being removed in /etc/glusterd/nfs/nfs-server.vol upon restarting glusterd." in Issues Resolved... section of 3.1.3 Release Notes.
PATCH: http://patches.gluster.com/patch/6561 in master (CLI : Validate options farmework.)
verified, by enabling some nfs option and restarted the /etc/init.d/glusterd, the nfs-server.vol was still displaying the option set earlier.