nfs参数及故障调试

  • ro                      只读访问
  • rw                      读写访问
  • sync                    所有数据在请求时写入共享
  • async                   NFS在写入数据前可以相应请求
  • secure                  NFS通过1024以下的安全TCP/IP端口发送
  • insecure                NFS通过1024以上的端口发送
  • wdelay                  如果多个用户要写入NFS目录,则归组写入(默认)
  • no_wdelay               如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
  • hide                    在NFS共享目录中不共享其子目录
  • no_hide                 共享NFS目录的子目录
  • subtree_check           如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
  • no_subtree_check        和上面相对,不检查父目录权限
  • all_squash              共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
  • no_all_squash           保留共享文件的UID和GID(默认)
  • root_squash             root用户的所有请求映射成如anonymous用户一样的权限(默认)
  • no_root_squas           root用户具有根目录的完全管理访问权限
  • anonuid=xxx             指定NFS服务器/etc/passwd文件中匿名用户的UID
  • anongid=xxx             指定NFS服务器/etc/passwd文件中匿名用户的GID


    1、/media目录
    共享/media目录,允许所有客户端访问该目录并只有只读权限。

  • /media                            *(ro)
    2、/nfs/public目录          
    共享/nfs/public目录,允许192.168.8.0/24和192.168.9.0/24网段的客户端访问,并且对此目录只有只读权限。

  • /nfs/public     192.168.8.0/24(ro) 192.168.9.0/24(ro)
    3、/nfs/team1、/nfs/team2、/nfs/team3目录
    共享/nfs/team1、/nfs/team2、/nfs/team3目录,并/nfs/team1只有team1.michael.com域成员可以访问并有读写权限,/nfs/team2、/nfs/team3目录同理哈~

  • /nfs/team1   *.team1.michael.com(rw)

  • /nfs/team1   *.team1.michael.com(rw)

  • /nfs/team1   *.team1.michael.com(rw)
    4、/nfs/works目录
    共享/nfs/works目录,192.168.8.0/24网段的客户端具有只读权限,并且将root用户映射成匿名用户。

  • /nfs/works   192.168.8.0/24(rw,root_squash)
    5、/nfs/test目录
    共享/nfs/test目录,所有人都具有读写权限,但当用户使用该共享目录时都将帐号映射成匿名用户,并且指定匿名用户的UID和GID都为65534。

  • /nfs/test    *(rw,all_squash,anonuid=65534,anngid=65534)
    6、/nfs/security目录
    共享/nfs/security目录,仅允许192.168.8.88客户端访问并具有读写权限。

  • /nfs/security      192.168.8.88(rw)

  • 注意:在发布共享目录的格式中除了共享目录是必跟参数外,其他参数都是可选的。并且共享目录与客户端之间及客户端与客户端之间需要使用空格符号,但是客户端与参数之间是不能有空格的-

  • cat /var/lib/nfs/etab

  •  

  • 配置nfs固定端口

  • vim /etc/sysconfig/nfs
    自定义以下端口,然而不能和其他端口冲突
    RQUOTAD_PORT=5001
    LOCKD_TCPPORT=5002
    LOCKD_UDPPORT=5002
    MOUNTD_PORT=5003
    STATD_PORT=500
    4

 

 在Red Hat Enterprise Linux 5.0服务器中,如果NFS出现了故障,可以从以下几个方面着手检查。

 

  1.1 故障排除思路

 

  (1)NFS客户机和服务器的负荷是否太高,服务器和客户端之间的网络是否正常。

 

  (2)/etc/exports文件的正确性。

 

  (3)必要时重新启动NFS或portmap服务。

 

  运行下列命令重新启动portmap和NFS:

 

  service portmap restart

 

  service nfs start

 

  (4)检查客户端中的mount命令或/etc/fstab的语法是否正确。

 

  (5)查看内核是否支持NFS和RPC服务。

 

  普通的内核应有的选项为CONFIG_NFS_FS=m、CONFIG_NFS_V3=y、CONFIG_ NFSD=m、CONFIG_NFSD_V3=y和CONFIG_SUNRPC=m。

 

  我们可以使用常见的网络连接和测试工具ping及tracerroute来测试网络连接及速度是否正常,网络连接正常是NFS作用的基础。rpcinfo命令用于显示系统的RPC信息,一般使用-p参数列出某台主机的RPC服务。用rpcinfo-p命令检查服务器时,应该能看到portmapper、status、mountd nfs和nlockmgr。用该命令检查客户端时,应该至少能看到portmapper服务。

 

  1.2 NFS错误信息

 

  NFS错误信息如下表所示。

 

 

  1.3 使用nfsstat命令查看NFS服务器状态

 

  nfsstat命令显示关于NFS和到内核的远程过程调用(RPC)接口的统计信息,也可以使用该命令重新初始化该信息。如果未给定标志,默认是nfsstat -csnr命令。使用该命令显示每条信息,但不能重新初始化任何信息。

 

  nfsstat命令的主要参数如下。

 

  (1)-b:显示NFS V4服务器的其他统计信息。

 

  (2)c:只显示客户机端的NFS和RPC信息,允许用户仅查看客户机数据的报告。nfsstat命令提供关于被客户机发送和拒绝的RPC和NFS调用数目的信息。

 

  要只显示客户机NFS或者RPC信息,将该参数与-n或者-r参数结合。

 

  (3)-d:显示与NFS V4授权相关的信息。

 

  (4)-g:显示RPCSEC_GSS信息。

 

  (5)-m:显示每个NFS文件系统的统计信息,该文件系统和服务器名称、地址、安装标志、当前读和写大小,以及重新传输计数

 

  (6)-n:为客户机和服务器显示NFS信息。要只显示NFS客户机或服务器信息,将该参数与-c和-s参数结合。

 

  (7)-r:显示RPC信息。

 

  (8)-s:显示服务器信息。

 

  (9)-t:显示与NFS标识映射子系统的转换请求相关的统计信息,要只显示NFS客户机或服务器信息,将-c和-s<br />选项结合。

 

  (10)-4:当与-c、-n、-s或-z参数组合使用时,将包含NFS V4客户机或服务器的信息,以及现有的NFS V2和V3数据<br />。

 

  (11)-z:重新初始化统计信息。该参数仅供root用户使用,并且在显示上面的标志后可以和那些标志中的任何一个组合到<br />统计信息的零特殊集合。

 

  要显示关于客户机发送和拒绝的RPC和NFS调用数目的信息,输入:

 

  nfsstat -c

 

  要显示和打印与客户机NFS调用相关的信息,输入如下命令:

 

  nfsstat -cn

 

  要显示和打印客户机和服务器的与RPC调用相关的信息,输入如下命令:

 

  nfsstat -r

 

  要显示关于服务器接收和拒绝的RPC和NFS调用数目的信息,输入如下命令:

 

  1.4 NFS典型故障排除步骤

 

  1.个别客户端无法从一个或多个服务器导入

 

  (1)在客户端中检查下列内容。

 

  验证在客户端中是否有该本地目录,如果不存在,使用mkdir创建。例如,如下命令:

 

  # mkdir /opt/adobe

 

  检查局域网电缆是否没有损坏并已连接上,所有的连接是否有效。

 

  /etc/hosts是否存在并且有"相关信息"。

 

  /etc/fstab是否存在并且有"相关信息",同时所有条目是否仍然指向服务器中的有效目录。

 

  /etc/resolv.conf是否存在并且有"相关信息"(仅适于DNS)。

 

  (2)在服务器中检查下列内容。

 

  客户端尝试挂接的目录是否已存在并在配置文件中列出。

 

  客户端是否具有挂接文件系统的权限。

 

  相关信息说明如下。

 

  /etc/hosts、/etc/fstab和/etc/resolv.conf中必须包含下列条目:

 

  - /etc/hosts:系统主机名和IP地址,例如:

 

  12.0.14.123 fredsys fredsys.mysite.myco.com

 

  类似以下的条目:

 

  127.0.0.1 localhost loopback #[no SMTP]

 

  - /etc/fstab:对于标准挂接,每个导入的文件系统对应一个条目。

 

  - /etc/resolv.conf(仅域名服务[DNS]需要使用):系统所在域的名称,例如:

 

  domain mysite.myco.com

 

  至少一个名称服务器,例如:

 

  nameserver 12.0.14.165

 

  2.所有客户端都无法从指定的服务器导入

 

  在服务器上执行下列步骤。

 

  (1)确保服务器已启动且正在运行,并且服务器和客户端之间的局域网连接有效(是否可以从服务器ping通连接客户端,并且反之也可)。

 

  (2)确保客户端要挂接的文件系统已在/etc/fstab中列出。

 

  (3)重新启动NFS服务器。

 

  如果这些补救方法都失败,而配置也正确(执行了上述所有测试),则服务器可能没有正确引导,应重新引导服务器。

 

  3.其他NFS常见故障排除

 

  (1)当mount NFS文件系统时,如果错误信息是"Permission denied",则表示NFS服务器不允许客户机挂接。一般可以用更改服务端上的/etc/exports文件来解决问题,使用exportfs-rv命令重新导出文件系统。

 

  (2)如果出现的错误是"Program not registed",则是NFS服务可能没有启动或者运行不正常,最常用的解决方法是重新启动NFS服务。

 

  (3)如果出现"RPC:Unable to receive",则可能是服务端没有启动portmap服务;如果已经启动,则可能是被防火墙所屏蔽。

 

  (4)挂载文件系统的时候,客户端没有任何反应,则可能为客户端没有启动portmap服务。

 

  (5)在NFS服务器中共享目录输出失败。

 

  如果使用图形化窗口对共享目录进行配置,设置后必须测试共享目录的输出,以验证配置是否正确,通常图形化窗口不会报告配置错误。

 

  使用"exportfs -v -a"命令检查/etc/exports文件中设置的共享目录是否能够正常输出,其中选项"-v"表示以冗余模式显示,即显示每一步的细节。

 

  (6)显示"设备正忙"无法卸载。

 

  在使用umount命令卸载远程NFS共享目录时,出现"设备正忙"等卸载失败消息。通常可能的原因是有一个进程仍然在使用这个目录,可以使用lsof命令来查看是否有进程正在使用该共享目录。

 

  (7)挂载失败。

 

  如果在挂载NFS共享目录时,客户端提示"RPC(Remote Procedure Call)failed",即远程过程调用失败消息,则很可能是因为服务器上带有约束性质的防火墙错误地阻止了NFS客户端挂载NFS共享,即防火墙封锁了NFS或者RPC端口。为了解决这个问题,可以使用iptable命令打开服务器上的111(RPC)和2049(NFS)端口,允许NFS客户端访问服务器。

 

  (8)NFS请求挂起。

 

  如果客户端正在执行写操作,而服务器无法响应或者在网络上变得不可访问,那么在默认情况下(使用hard选项进行挂载)客户端进程将挂起直到写操作完成。如果不中止写操作,进程就不能从请求中退出。为了避免NFS请求挂起,在网络状况不稳定情况下可以在挂载目录时指定soft选项以允许操作因超时而退出,或者指定intr选项以允许用户在命令行上通过按下Ctrl+C组合键退出挂起的操作。

 

  (9)NFS挂载在引导时挂起。

 

  如果在/etc/fstab文件中设置了自动挂载NFS,但在系统引导时NFS共享目录暂时不可用,那么默认情况下引导进程将进入等待状态,直到NFS目录变得可用为止。如果所需等待的NFS目录是系统必须的,那么这种等待可能还可以接受。然而在很多情况下,用户只想让系统把挂载请求放在后台并继续引导系统。可以把bg选项添加到/etc/fstab文件中,这样在首次挂载请求超时之后,挂载请求会转入后台,系统继续引导。当需要在前台挂载NFS共享目录时可以将fg选项添加到/etc/fstab文件的挂载选项中。

 

posted on 2009-08-11 17:03  晓风残梦  阅读(3201)  评论(0编辑  收藏  举报

导航