NFS服务器故障与问题诊断(1)


NFS问题确定
与其它网络服务一样,使用网络文件系统NFS服务器可能出现问题。对这些问题的故障诊断涉及理解跟踪 NFS 问题的策略、识别 NFS 相关的错误消息和选择适当的解决方案。当跟踪到一个NFS服务器问题时,请首先孤立三个主要故障点以确定其中是哪一个不工作:服务器、客户机或网络本身。

识别硬安装和软安装文件问题

当网络或服务器有问题时,访问硬安装远程文件的程序与访问软安装远程文件的程序所出现的故障不同。

如果一台服务器未能响应一个硬安装请求,NFS 会显示消息:

NFS服务器主机名未响应,仍在尝试

因为客户机会反复尝试安装请求直到成功,所以硬安装远程文件系统导致程序挂起直到服务器响应。执行硬安装时请使用 mount 命令的 -bg 标志,这样如果服务器不响应,客户机就会在后台重试安装。

如果服务器未响应一个软安装请求,NFS 会显示消息:

连接超时

当一段时间的尝试没有成功后软安装远程文件系统返回一个错误。不幸的是在文件系统操作中很多程序不检查返回情况,因此在访问软安装文件时您不会看到该错误消息。然而,该 NFS 错误消息在控制台上显示。

获取 NFS 守护程序的当前状态

可以立即分别或全部获取 NFS 守护程序的当前状态。要分别获取 NFS 守护程序的当前状态,请运行:

lssrc -s Daemon

其中 Daemon 是由 SRC 控制的任何一个守护程序。例如,要获取 rpc.lockd 守护程序的当前状态,请运行:

lssrc -s rpc.lockd

要立即获取所有 NFS 守护程序的当前状态,请运行:

lssrc -a

识别NFS故障核对表

如果一台客户机当前有NFS故障,请执行以下操作:

1. 验证网络连接是否正确。
2. 按照 获取 NFS 守护程序的当前状态 中的指示信息,验证客户机中是否运行了 inetd , portmap 和 biod 守护程序。
3. 验证正在安装的文件系统是否存在有效的安装点。
4. 在客户机 shell 提示符下运行以下命令以验证服务器是否已启动并运行:

/usr/bin/rpcinfo -p server_name
如果服务器已启动,会显示程序、版本、协议和端口号的清单,类似以下内容:

program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100005 1 udp 1025 mountd
100001 1 udp 1030 rstatd
100001 2 udp 1030 rstatd
100001 3 udp 1030 rstatd
100002 1 udp 1036 rusersd
100002 2 udp 1036 rusersd
100008 1 udp 1040 walld
100012 1 udp 1043 sprayd
100005 1 tcp 694 mountd
100003 2 udp 2049 nfs
100024 1 udp 713 status
100024 1 tcp 715 status
100021 1 tcp 716 nlockmgr
100021 1 udp 718 nlockmgr
100021 3 tcp 721 nlockmgr
100021 3 udp 723 nlockmgr
100020 1 udp 726 llockmgr
100020 1 tcp 728 llockmgr
100021 2 tcp 731 nlockmgr

如果没有返回类似的响应,请在服务器控制台上登录服务器并按 获取NFS守护程序的当前状态 中的指示信息检查 inetd 守护程序的状态。

5. 验证 mountd 、 portmap 和 nfsd 守护程序正在NFS服务器上运行,请在客户机 shell 提示符下输入以下命令:
6. /usr/bin/rpcinfo -u server_name mount
7. /usr/bin/rpcinfo -u server_name portmap
/usr/bin/rpcinfo -u server_name nfs
如果守护程序在服务器运行,会返回以下响应:

program 100005 version 1 ready and waiting
program 100000 version 2 ready and waiting
program 100003 version 2 ready and waiting

程序号分别与命令对应,如前例中所示。如果没有返回类似的响应,请在服务器控制台上登录服务器并按照 获取 NFS 守护程序的当前状态 中的指示信息检查守护程序的状态。

8. 验证服务器中上的 /etc/exports 文件是否列出客户机要安装的文件系统名称以及该文件系统是否已导出。输入以下命令进行操作:
showmount -e server_name
该命令列出了由 server_name 当前导出的所有文件系统。

异步写错误
当应用程序在 NFS 安装文件系统中写数据到一个文件时,写操作由 biod 守护程序调度为异步处理。如果在数据实际写入磁盘的同时在 NFS 服务器上出现错误,该错误会返回 NFS 客户机,且 biod 守护程序在 NFS 数据结构内部保存错误。然后在下一次该应用程序调用 fsync 或 close 函数时,存储的错误返回该应用程序。作为此类错误的结果,写错误在程序关闭文件前不会通知给该应用程序。此事件的一个典型示例是当服务器上的文件系统已满时,导致客户机尝试的写失败。


相关内容