重新启动后,NFS客户端不会启动服务器

编辑:

总结这个问题,这是NFS服务器改变IP地址和NFS客户端没有拿起新地址的问题。 我可以通过tcpdump看到客户端仍然尝试联系2049端口上的旧IP地址。

我们在/etc/fstab有几个NFS挂载点。 如您所见,这是NFS v3。

 storage-1:/data/medias/media /var/www/myproject/data/media nfs rsize=32768,wsize=32768,hard,intr,actimeo=300,nfsvers=3,async,noatime,sec=sys 0 0 storage-1:/data/medias/secure /var/www/myproject/web/secure nfs rsize=32768,wsize=32768,hard,intr,actimeo=300,nfsvers=3,async,noatime,sec=sys 0 0 storage-1:/data/tobeprocessed /var/www/myproject/data/tobeprocessed nfs rsize=32768,wsize=32768,hard,intr,actimeo=300,nfsvers=3,async,noatime,sec=sys 0 0 storage-1:/data/ftp /var/ftp nfs rsize=32768,wsize=32768,hard,intr,actimeo=300,nfsvers=3,async,noatime,sec=sys 0 0 

当我们重新启动服务器时,我们必须卸载并重新装入每个端点,否则客户端将无法访问NFS服务器。 重新启动后,我尝试了5分钟,然后卸载和重新安装。

重新启动NFS服务器后,一个简单的ls /var/www/myproject/data/media会使控制台挂起。

我还可以在/var/log/syslog看到以下消息:

 Sep 16 11:24:36 encoder-1 kernel: [69688.160102] nfs: server storage-1 not responding, still trying Sep 16 11:30:15 encoder-1 kernel: [70027.744042] nfs: server storage-1 not responding, still trying 

当我umount ,然后mount客户端上的一个nfs目录,然后我可以访问它。 但是我不能访问别人,除非我也下载并mount它们。

我有谁知道这个可能的解决scheme,我都耳熟能详。 请注意, rpcinfo显示客户端能够联系服务器,如下所示。

有一个NFS服务器,4个NFS客户端共有12个挂载点。

来自客户端的rpcinfo -p storage-1的结果:

 [0]root@encoder-1:/var/log # rpcinfo -p storage-1 program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 52115 status 100024 1 tcp 57907 status 100003 2 tcp 2049 nfs 100003 3 tcp 2049 nfs 100003 4 tcp 2049 nfs 100227 2 tcp 2049 100227 3 tcp 2049 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100003 4 udp 2049 nfs 100227 2 udp 2049 100227 3 udp 2049 100021 1 udp 59603 nlockmgr 100021 3 udp 59603 nlockmgr 100021 4 udp 59603 nlockmgr 100021 1 tcp 47716 nlockmgr 100021 3 tcp 47716 nlockmgr 100021 4 tcp 47716 nlockmgr 100005 1 udp 892 mountd 100005 1 tcp 892 mountd 100005 2 udp 892 mountd 100005 2 tcp 892 mountd 100005 3 udp 892 mountd 100005 3 tcp 892 mountd 

如下所述启用NFSdebugging跟踪时,会得到以下日志消息:

 Sep 17 05:35:00 encoder-1 kernel: [135112.160230] nfs: server storage-1 not responding, still trying Sep 17 05:53:47 encoder-1 kernel: [136240.018538] NFS: nfs_lookup_revalidate(///) is valid Sep 17 05:53:47 encoder-1 kernel: [136240.018538] NFS: revalidating (0:12/5242881) Sep 17 05:53:47 encoder-1 kernel: [136240.018538] NFS call getattr 

我认为这可能是解决主机名的问题。 我注意到,即使parsing看起来工作正常,否则在系统和networkingNFS挂载过程似乎偶尔有一个问题。 我会更改主机名到实际的IP地址,并尝试out.Lets说FQDN是storage-1.example.org,它会parsing为192.0.2.11然后:

 192.0.2.11:/data/medias/media /var/www/myproject/data/media nfs bg,rsize=32768,wsize=32768,hard,intr,actimeo=300,nfsvers=3,async,noatime,sec=sys 0 0 

即使这不能解决问题我个人发现使用IP地址,而不是主机名或FQDN是可取的。 但是我明白,你可能不知道为什么你不这样做。

注意 :我添加了bg选项,这将会挂载进程,以防挂载需要更长的时间,以加速引导。 如果你愿意,这取决于你。 我想我会提到它,因为当有一些NFS挂载点,每个花费更长的时间(或超时)来挂载启动时间可能很容易变成一个多小时。