You are not logged in.

#1 2009-10-19 10:13:04

jcci
Member
From: China / Germany
Registered: 2007-06-10
Posts: 185

NFS4 IDMAPD Possible Bug

Generally NFS4 works very well, but when restarting the server the id mapping fuction does not work, means: all rights are just replaced by the user "nobody". Form the daemon side the start sequence is rpcbind, nfs-common nfs-server. Actually I just need to restart the nfs-common service which starts idmapd and the mapping works fine again. Of course I can add an additional line in the rclocal which is executed after rc.conf, but this would be a rather dirty hack.
Hope this information is helpful.

nfs-common.conf

# Parameters to be passed to nfs-common (nfs clients & server) init script.
#

# If you do not set values for the NEED_ options, they will be attempted
# autodetected; this should be sufficient for most people. Valid alternatives
# for the NEED_ options are "yes" and "no".

# Do you want to start the statd daemon? It is not needed for NFSv4.
NEED_STATD=yes

# Options to pass to rpc.statd.
# See rpc.statd(8) for more details.
# N.B. statd normally runs on both client and server, and run-time
# options should be specified accordingly. Specifically, the Arch
# NFS init scripts require the --no-notify flag on the server,
# but not on the client e.g.
# STATD_OPTS="--no-notify -p 32765 -o 32766" -> server
# STATD_OPTS="-p 32765 -o 32766" -> client
STATD_OPTS=

# Options to pass to sm-notify
# e.g. SMNOTIFY_OPTS="-p 32764"
SMNOTIFY_OPTS=""

# Do you want to start the idmapd daemon? It is only needed for NFSv4.
NEED_IDMAPD=yes

# Options to pass to rpc.idmapd.
# See rpc.idmapd(8) for more details.
IDMAPD_OPTS=

# Do you want to start the gssd daemon? It is required for Kerberos mounts.
NEED_GSSD=no

# Options to pass to rpc.gssd.
# See rpc.gssd(8) for more details.
GSSD_OPTS=

# Where to mount rpc_pipefs filesystem; the default is "/var/lib/nfs/rpc_pipefs".
PIPEFS_MOUNTPOINT=

# Options used to mount rpc_pipefs filesystem; the default is "defaults".
PIPEFS_MOUNTOPTS=

nfs-server.conf is just default.

Offline

#2 2009-11-13 14:58:39

numasan
Member
Registered: 2009-11-13
Posts: 26

Re: NFS4 IDMAPD Possible Bug

I don't have anything to contribute unfortunately, just want to confirm this.

I'm running NIS so tried to start ypbind before nfs-common (through rc.conf) but it doesn't matter.

DAEMONS=(syslog-ng network rpcbind ypbind nfs-common nfs-server netfs crond sshd ntpd dbus hal)

Only a restart of nfs-common will start idmapd.

Mounting the NFSv4 export on a client (before restarting nfs-common) spawns this message on the server:

nfsd: nfsv4 idmapping failing: has idmapd not been started?

After the rpc.idmapd daemon is started correctly no message appears when clients mounts the export.

Here's the two only settings I changed in /etc/conf.d/nfs-common:

# Do you want to start the statd daemon? It is not needed for NFSv4.
NEED_STATD=no
# Do you want to start the idmapd daemon? It is only needed for NFSv4.
NEED_IDMAPD=yes

(Tried with and without quotes btw: ="no"/=no)
Even if I don't want STATD, it is starting up during boot anyway:

rpc.statd[2998]: Version 1.1.6 Starting

I want to convert the network to NFSv4 so testing this on Arch (test-server) and Fedora (client). Haven't tried NFSv4 server on another distro so don't know if the behaviour is the same..

Offline

Board footer

Powered by FluxBB