网络文件服务器(Network File System,简称NFS),是分布式计算系统的一个组成部分,可实现在异种网络上共享和装配远程文件系统。NFS由Sun公司开发,目前已经成为文件服务的一种标准(RFC1904,RFC1813)。其最大的功能就是可以通过网络,让不同操作系统的计算机可以共享数据,所以也可以将它看做是一个文件服务器。
NFS网络出现了故障,可以从以下几个方面着手检查:
(1) 检查NFS客户机和服务器的负荷是否太高,Server和Client之间的网络是否正常;
(2) 检查/etc/exports文件的正确性;
(3) 必要时重新启动NFS或portmap服务;
(4)运行下列命令重新启动portmap和NFS:
service portmap restart service nfs start
(5) 检查Client上的mount命令或/etc/fstab的语法是否正确;
(6) 查看内核是否支持NFS和RPC服务。
附加:★NFS常见故障排除
-------------------
1、The rpcbind failure error
故障现象:
nfs mount: server1:: RPC: Rpcbind failure
RPC: Timed Out
nfs mount: retrying: /mntpoint
原因:
第一,可能因为客户机的hosts文件中存在错误的ip地址、主机名或节点名组合;
第二,服务器因为过载而暂时停止服务。
2、The server not responding error
现象:
NFS server server2 not responding, still trying
原因:
第一,网络不通,用ping命令检测一下。
第二,服务器关机。
3、The NFS client fails a reboot error
现象:
启动客户机后停住了,不断显示如下提示信息:
Setting default interface for multicast: add net 224.0.0.0: gateway:
client_node_name.
原因:
在etc/vfstab的mount选项中使用了fg而又无法成功mount服务器上的资源,改成bg或将该行注释掉,直到服务器可用为止。
4、The service not responding error
现象:
nfs mount: dbserver: NFS: Service not responding
nfs mount: retrying: /mntpoint
原因:
第一,当前级别不是级别3,用who –r查看,用init切换。
第二,NFS Server守护进程不存在,用ps –ef | grep nfs检查,用/etc/init.d/nfs.server start启动。
5、The program not registered error
现象:
nfs mount: dbserver: RPC: Program not registered
nfs mount: retrying: /mntpoint
原因:
第一,当前级别不是级别3。
第二,mountd守护进程没有启动,用/etc/init.d/nfs.server脚本启动NFS守护进程。
第三,看/etc/dfs/dfstab中的条目是否正常。
6、The stale file handle error
现象:
stale NFS file handle
原因:
服务器上的共享资源移动位置了,在客户端使用umount和mount重新挂接就可以了。
7、The unknown host error
现象:
nfs mount: sserver1:: RPC: Unknown host
原因:
hosts文件中的内容不正确。
8、The mount point error
现象:
mount: mount-point /DS9 does not exist.
原因:
该挂接点在客户机上不存在,注意检查命令行或/etc/vfstab文件中相关条目的拼写。
9、The no such file error
现象:
No such file or directory.
原因:
该挂接点在服务器上不存在,注意检查命令行或/etc/vfstab文件中相关条目的拼写。
10、No route to host
错误现象:
[root@msa30 sysconfig]# mount 10.10.11.211:/opt/b2b-data/xmldb /b2b-web1/b2b-data/xmldb -t nfs -o rw
mount: mount to NFS server '10.10.11.211' failed: System Error: No route to host.
原因:
防火墙被打开,关闭防火墙。
11、Not owner
现象:
[root@msa30:/founder/shell]# mount -F nfs -o rw 10.10.2.3:/mnt/b2b/b2b-data/resinfo2 /data/b2b-data/resinfo2
nfs mount: mount: /data/b2b-data/resinfo2: Not owner
原因:
这是Solaris 10版本挂载较低版本nfs时报的错误。
解决:
需要用-o vers=3参数
示例:
[root@msa30:/founder/shell]# mount -F nfs -o vers=3 10.10.2.3:/mnt/b2b/b2b-data/resinfo2 /data/b2b-data/resinfo2
12、RPC: Program not registered & retrying
现象:
nfs mount: 10.10.2.3: : RPC: Program not registered
nfs mount: retrying: /data/b2b-data/resinfo2
原因:
没有启动NFS共享端服务。
解决:需要重新启动share端的NFS服务,
Linux:
mount: RPC: Program not registered
#service nfs restart
Solaris:
mount: RPC: Program not registered
#/etc/rc.d/init.d/nfs restart
13、can't contact portmapper: RPC: Remote system error - Connection refused
现象:
#exportfs -a
can't contact portmapper: RPC: Remote system error - Connection refused
原因:
出现这个错误信息是由于SEVER端的PORTMAP没有启动。
解决:
#service portmap start
#service pcmcia start
----------------------------------------------------------------------------
NFS故障解决:
1、NFSD没有启动起来
首先要确认 NFS 输出列表存在,否则 nfsd 不会启动。可用 exportfs 命令来检查,如果 exportfs 命令没有结果返回或返回不正确,则需要检查 /etc/exports 文件。
2、mountd 进程没有启动
mountd 进程是一个远程过程调用 (RPC) ,其作用是对客户端要求安装(mount)文件系统的申请作出响应。mountd进程通过查找 /etc/xtab文件来获知哪些文件系统可以被远程客户端使用。另外,通过mountd进程,用户可以知道目前有哪些文件系统已被远程文件系统装配,并得知远程客户端的列表。查看mountd是否正常启动起来可以使用命令rpcinfo进行查看,在正常情况下在输出的列表中应该象这样的行:
100005 1 udp 1039 mountd
100005 1 tcp 1113 mountd
100005 2 udp 1039 mountd
100005 2 tcp 1113 mountd
100005 3 udp 1039 mountd
100005 3 tcp 1113 mountd
如果没有起来的话可以检查是否安装了PORTMAP组件。
rpm -qa|grep portmap
3、fs type nfs no supported by kernel
kernel不支持nfs文件系统,重新编译一下KERNEL就可以解决。
4、cant contact portmapper: RPC: Remote system error - Connection refused
出现这个错误信息是由于SEVER端的PORTMAP没有启动。
5、mount clntudp_create: RPC: Program not registered
NFS没有启动起来,可以用showmout -e host命令来检查NFS SERVER是否正常启动起来。
6、mount: localhost:/home/test failed, reason given by server: Permission denied
这个提示是当client要mount nfs server时可能出现的提示,意思是说本机没有权限去mount nfs server上的目录。解决方法当然是去修改NFS SERVER咯。
7、被防火墙阻挡
这个原因很多人都忽视了,在有严格要求的网络环境中,我们一般会关闭linux上的所有端口,当需要使用哪个端口的时候才会去打开。而NFS默认是使用111端口,所以我们先要检测是否打开了这个端口,另外也要检查TCP_Wrappers的设定。