跳过导航链接 | |
退出打印视图 | |
![]() |
在 Oracle Solaris 11.1 中管理网络文件系统 Oracle Solaris 11.1 Information Library (简体中文) |
要确定 NFS 服务出现故障的位置,需要遵照几个过程执行操作以隔离故障。请检查以下各项:
客户机是否可以访问服务器?
客户机是否可以访问服务器上的 NFS 服务?
NFS 服务是否正在服务器上运行?
在检查上述各项的过程中,您可能会注意到网络的其他部分未正常运行。例如,名称服务或物理网络硬件可能未正常运行。《Oracle Solaris Administration: Naming and Directory Services》包含了针对多个名称服务的调试过程。另外,在该过程中,您可能还会了解到问题不在客户端。例如,如果从工作区域的每个子网中至少获得了一个故障呼叫。在这种情况下,应该假定问题出在服务器上或服务器附近的网络硬件上。因此,应该在服务器而不是客户机上启动调试过程。
% /usr/sbin/ping bee bee is alive
如果此命令报告服务器处于活动状态,请以远程方式检查 NFS 服务器。请参见如何远程检查 NFS 服务器。
% /usr/bin/getent hosts bee 129.144.83.117 bee.eng.acme.com
如果从第二台客户机运行的命令失败,请参见如何验证服务器上的 NFS 服务。
如果该命令失败,请检查客户机上的网络软件配置,例如 /etc/netmasks 以及与 svc:/system/name-service/switch 服务关联的属性信息。
如果 rpcinfo 命令未显示 program 100003 version 4 ready and waiting,则服务器上未启用 NFS 版本 4。有关启用 NFS 版本 4 的信息,请参见表 2-3。
尝试将客户机移至第二个网络断开位置。
请注意,如果使用的是 NFS 版本 4 服务器,则不必同时支持 UDP 和 MOUNT 协议。
% rpcinfo -s bee|egrep 'nfs|mountd' 100003 3,2 tcp,udp,tcp6,upd6 nfs superuser 100005 3,2,1 ticots,ticotsord,tcp,tcp6,ticlts,udp,upd6 mountd superuser
如果尚未启动守护进程,请参见如何重新启动 NFS 服务。
在客户机上,键入以下命令以测试来自服务器的 UDP NFS 连接。
% /usr/bin/rpcinfo -u bee nfs program 100003 version 2 ready and waiting program 100003 version 3 ready and waiting
注 - NFS 版本 4 不支持 UDP。
如果服务器正在运行,则它将列出程序和版本号的列表。使用 -t 选项可以测试 TCP 连接。如果此命令失败,请前进至如何验证服务器上的 NFS 服务。
% /usr/bin/rpcinfo -u bee mountd program 100005 version 1 ready and waiting program 100005 version 2 ready and waiting program 100005 version 3 ready and waiting
如果服务器正在运行,则它将列出与 UDP 协议关联的程序和版本号的列表。使用 -t 选项可以测试 TCP 连接。如果任何尝试都失败,请前进至如何验证服务器上的 NFS 服务。
% cd /net/wasp
选择已知应该正常工作的 /net 或 /home 挂载点。如果此命令失败,请在客户机上以 root 身份键入以下内容以重新启动 autofs 服务:
# svcadm restart system/filesystem/autofs
% /usr/sbin/showmount -e bee /usr/src eng /export/share/man (everyone)
请检查服务器上的项和本地挂载项中是否有错误。另外,还要检查名称空间。在本实例中,如果第一台客户机不在 eng 网络组中,则该客户机不能挂载 /usr/src 文件系统。
请检查所有本地文件中所有包括挂载信息的项。此列表包括 /etc/vfstab 和所有的 /etc/auto_* 文件。
# ping lilac lilac is alive
# /usr/bin/rpcinfo -u localhost rpcbind program 100000 version 1 ready and waiting program 100000 version 2 ready and waiting program 100000 version 3 ready and waiting
# rpcinfo -u localhost nfs program 100003 version 2 ready and waiting program 100003 version 3 ready and waiting # ps -ef | grep nfsd root 101328 0 0 Jul 12 ? 303:25 nfsd_kproc root 101327 1 0 Jul 12 ? 2:54 /usr/lib/nfs/nfsd root 263149 131084 0 13:59:19 pts/17 0:00 grep nfsd
注 - NFS 版本 4 不支持 UDP。
如果服务器正在运行,则它将列出与 UDP 协议关联的程序和版本号的列表。另外,还应使用带有 -t 选项的 rpcinfo 来检查 TCP 连接。如果这些命令失败,请重新启动 NFS 服务。请参见如何重新启动 NFS 服务。
# /usr/bin/rpcinfo -u localhost mountd program 100005 version 1 ready and waiting program 100005 version 2 ready and waiting program 100005 version 3 ready and waiting # ps -ef | grep mountd root 145 1 0 Apr 07 ? 21:57 /usr/lib/autofs/automountd root 234 1 0 Apr 07 ? 0:04 /usr/lib/nfs/mountd root 3084 2462 1 09:30:20 pts/3 0:00 grep mountd
如果服务器正在运行,则它将列出与 UDP 协议关联的程序和版本号的列表。另外,还应使用带有 -t 选项的 rpcinfo 来检查 TCP 连接。如果这些命令失败,请重新启动 NFS 服务。请参见如何重新启动 NFS 服务。
运行带有 -m 选项的 nfsstat 命令可收集当前的 NFS 信息。当前服务器的名称会输出在 "currserver=" 之后。
% nfsstat -m /usr/local from bee,wasp:/export/share/local Flags: vers=3,proto=tcp,sec=sys,hard,intr,llock,link,synlink, acl,rsize=32768,wsize=32678,retrans=5 Failover: noresponse=0, failover=0, remap=0, currserver=bee
不会对无效选项发出警告。以下过程有助于确定在命令行上或通过 /etc/vfstab 提供的选项是否有效。
对于本示例,假定以下命令已运行:
# mount -F nfs -o ro,vers=2 bee:/export/share/local /mnt
% nfsstat -m /mnt from bee:/export/share/local Flags: vers=2,proto=tcp,sec=sys,hard,intr,dynamic,acl,rsize=8192,wsize=8192, retrans=5
bee 中的文件系统已挂载了版本设置为 2 的协议。不过,nfsstat 命令不会显示有关所有选项的信息。但是,使用 nfsstat 命令是验证选项的最准确的方法。
mount 命令不允许将无效选项添加到挂载表中。因此,请验证文件中列出的选项是否与命令行中列出的选项匹配。采用这种方式,即可检查 nfsstat 命令未报告的选项。
# grep bee /etc/mnttab bee:/export/share/local /mnt nfs ro,vers=2,dev=2b0005e 859934818