[CentOS] CentOS 7.1 NFS Client Issues - rpc.statd / rpcbind

Mon Aug 31 01:39:41 UTC 2015
Mark Selby <mselby at unseelie.name>

I have seen some talk about this but have not seen any answers. I know 
this is a problem on CentOS 7.1 and I also think it is a problem on 
CentOS 7.0.

Basically if I have an NFS client only config - meaning that the 
nfs-server.service is not enabled then I have to wait 60 seconds after 
boot for the 1st NFSV3 mount to succeed.

What I can surmise is the following. I attempt to perform a NFS mount a 
newly booted machine and systemd via listening sockets

(1) starts rpc.statd (fails)
(2) starts rpcbind
(3) rpc.statd timesout after 60 seconds and then starts sucessfully
(3) performs the nfs mount

I see that rpc.statd is attempted to start at the time that I perform 
the mount request - it just takes 60 seconds to start. I think this is 
because it tries to start before rpcbind is really stated and then waits 
a full 60 seconds before retying. It then succeeds because rpcbind is 
really started

I can fix the delay by running 'systemctl start rpcbind' after I reboot 
which causes rpcbind to start and not just be socket activated.

I see in the systemd manifest for rpc-statd that it does require rpcbind 
but I think systemd is trying to start rpc.statd before rpcbind which 
makes sense that this would not work.

If I enable nfs-server.service then rpcbind does really get started but 
I loathe to start this on all clients

Anyone have any ideas how to get rpcbind started before rpc.statd in a 
NFS client only config

root /root 103# systemd-analyze blame
        1min 87ms rpc-statd.service

root at ls2 /root 79# systemctl list-units | grep rpc
rpcbind.socket loaded active listening RPCbind Server Activation Socket

Aug 30 18:17:14 ls2.tokenrain.name systemd: Starting NFS status monitor 
for NFSv2/3 locking....
Aug 30 18:17:14 ls2.tokenrain.name rpc.statd[1938]: Version 1.3.0 starting
Aug 30 18:17:14 ls2.tokenrain.name rpc.statd[1938]: Flags: TI-RPC
Aug 30 18:17:14 ls2.tokenrain.name systemd: Starting RPC bind service...
Aug 30 18:17:14 ls2.tokenrain.name systemd: Started RPC bind service.
Aug 30 18:18:14 ls2.tokenrain.name systemd: Started NFS status monitor 
for NFSv2/3 locking..

USER       PID  PPID %CPU %MEM    VSZ   RSS TT       STAT START     TIME 
COMMAND
root      1935  1924  0.0  0.0 115212  1436 ?        S 18:17 00:00:00 
/bin/bash -p /usr/sbin/start-statd
root      1936  1935  0.0  0.0 132520  1196 ?        S 18:17 00:00:00 
systemctl start rpc-statd.service
root      1937     1  0.0  0.0  44288  1676 ?        Ss 18:17 00:00:00 
/usr/sbin/rpc.statd --no-notify
root      1938  1937  0.0  0.0  44484  1340 ?        Ss 18:17 00:00:00 
/usr/sbin/rpc.statd --no-notify

USER       PID  PPID %CPU %MEM    VSZ   RSS TT       STAT START     TIME 
COMMAND
rpcuser   1938     1  0.0  0.0  44484  1600 ?        Ss 18:17 00:00:00 
/usr/sbin/rpc.statd --no-notify