1、第8章 网络文件系统NFS,8.1 NFS基本原理 8.2 配置NFS服务器 8.3 配置NFS客户 8.4 NFS的性能、安全和故障排除 习题,8.1 NFS基本原理,8.1.1 什么是NFS(Network File System)在Windows主机之间可以通过共享文件夹来实现存储远程主机上的文件,而在Linux系统间通过网络文件系统(NFS)可以实现类似的功能。然而NFS和Windows的共享还是有差别的,它和Windows 2000 Server的分布式文件系统更为类似。我们先来看一个例子:Linux主机A有一个目录/test,我们可以先把它导出(类似把它共享出来),然后我们在Lin
2、ux主机B上把A:/test安装(挂接)到安装点/mnt/nfs下,这个挂接和挂接本地磁盘一样。,这样在主机B上的用户就可以使用/mnt/nfs下的文件,而实际上用户使用的是主机A上的目录/test。也就是说,用户可以以访问本地文件的方式访问远程主机上的文件。NFS由SUN公司开发,它最终被IETF所接受,纳入RFC成为一种文件服务标准,是分布式计算机系统的一个组成部分。网络文件系统有以下优点:,(1) 被所有用户访问的数据可以存放在一台中央的主机上,其他不同主机上的用户可以通过NFS访问同一中央主机上的数据;(2) 客户访问远程主机上的文件是透明的,和访问本地主机上的文件是一样的;(3) 远
3、程主机上文件的物理位置发生变化(如从一台主机移动到另一主机上)也不会影响客户访问方式的变化。,8.1.2 NFS的工作原理NFS是基于客户/服务器模式的。NFS服务器是输出一组文件的计算机,而客户是访问文件的计算机。客户和服务器通过远程过程调用(RPC,Remote Procedure Call)通信,当客户主机上的应用程序访问远程文件时,客户主机内核向远程服务器发送一个请求,客户进程被阻塞,等待服务器应答,而服务器一直处于等待状态,如果接收到客户请求,就处理请求并将结果返回客户机。NFS服务器上的目录如果可被远程用户访问,就称为“导出”(export);客户主机访问服务器导出目录的过程称为“
4、安装”(mount),有时也称“挂接”或“导入”。NFS由许多组件共同协作完成,如图8-1所示。,图8-1 NFS组件,XDR(外部数据表示):在异构机器组成的网络上交换数据。RPC协议:负责定义客户机和服务器之间的信息格式,NFS请求是以RPC包的形式发送的。locked:RPC锁监控程序,实现NFS锁管理器(NLM,NFS Lock Manager)协议,NLM协议支持多个客户通过NFS一致性地锁定文件。,rpciod:NFS I/O监控程序。 knfsd:是NFS系统的核心,监听远程主机的RPC请求、根据NFS协议进行解释,它用RPC将响应返回客户机,并与NFS服务器上运行的其他组件通信
5、如rpciod、rpc.locked和rpc.statd。 statd:NFS状态监控程序,利用网络状态监视协议(NSM)维护NFS锁的状态。 portmap:将RPC程序号与运行服务的实际端口相对应。,mountd:处理客户机的mount请求。 rquotad:提供NFS系统中用户的配额信息。 由于NFS有明确的服务器和客户角色之分,因此NFS的配置包括两个部分:NFS服务器的配置和NFS客户机的配置。,8.2 配置NFS服务器,NFS服务器的配置步骤如下:(1) 安装NFS软件包。(2) 在/etc/exports文件中配置NFS服务器上要导出的文件系统或目录。(3) 启动NFS服务。 (
6、4) 导出/etc/exports中配置的文件系统或目录。,8.2.1 安装NFS要使用NFS服务器或安装NFS服务软件包,可以用红旗3.0版的CD-ROM中的目录/Redflag/RPMS下的软件包“nfs-utils-0.3.1-8.i386.rpm”。安装之前请用以下命令检查该软件包是否已经安装:root redflag /root#rpm qa | grep nfs-utilsnfs-utils-0.3.1-8以上命令表明软件包已经安装,如果没有安装则用以下命令安装软件包(当然要先把CD-ROM mount上)。,root redflag /root#mount /dev/cdrom
7、root redflag /root#cd /mnt/cdrom/RedFlag/RPMS root redflag /root#rpm -ivh nfs-utils-0.3.1-8.i386.rpm,8.2.2 配置导出文件:/etc/exports/etc/exports文件是用来告诉Linux系统哪些文件系统或目录将为NFS客户导出,这个文件是一个文本文件,通常由管理员编辑。文件中以“#”号开头的行被忽略,长行可以用“”分解为多行。语法如下:dir_name host1(opt1,opt2,) host2(opt1,opt2,) host3(opt2,),【实例8.1】/home (ro
8、)/test *(rw)在/etc/exports文件中的每个项目以目录名开始,目录名dir_name就是要导出给NFS客户使用的目录,目录可以是某一文件系统的根,也可以不是文件系统的根。目录名之后可以列出多个或零个用空格分隔开的导出指定项。每个导出指定项由两个可选部分组成:主机指定部分(host)和导出选项部分(opt),这两个部分都是可选的。,如果只列出主机指定部分而没有列出导出选项部分,则导出选项缺省为“ro”只读,即NFS客户只能读取这个目录的文件而不能写入目录中的文件。如果只指定导出选项而没有指定主机,则主机缺省为所有主机。如果目录后没有指定任何导出项,则以只读选项导出目录给所有主机
9、,相当于*(ro)。,主机部分非常灵活,可以指定单个主机,也可以指定多个主机。描述主机的方法有四种。(1) 单个主机:可以列出短名、完全限定名或IP地址,如: linux2或或192.168.0.1(2) 主机网络:指定特定一个子网或几个子网上的主机,用address/netmask语法指定,如:192.168.0.0/255.255.255.0表明导出文件系统或目录给192.168.0.0子网上的所有主机使用。,(3) 通配符主机:可以使用“?”、“*”对主机名进行匹配,如:“*”可以匹配域中的所有主机。但是要注意的是通配符不匹配主机名中的“.”,因此“*”不匹配。,(4) 网组:可以列出N
10、FS网组映射中定义的整组主机,网组以“”开头,例如:linuxgrp。导出选项列表用“.”分隔开,选项之间也不能包含空格。表8-1列出了导出选项的含义,导出选项分为性能选项和安全选项两种类型。,表8-1 NFS导出选项,【实例8.2】/home (ro)将使得主机上的用户对/home目录有只读权限。【实例8.3】/test *(rw)将使得域上的主机上的用户对/test目录有读写权限。,导出目录时将面临一个问题:NFS服务器用户和NFS客户机上用户的映射。假如在NFS服务器上导出/test目录,该目录由NFS服务器上的用户user1和user2拥有,则NFS客户机上要有同样的用户user1和u
11、ser2才能使用导出的目录。另外,我们可能不希望客户机上的root用户拥有NFS服务器上的root用户对/test目录的权限。这时我们可以使用导出选项控制NFS客户机和NFS服务器的用户映射,从而达到控制权限的目的。“root_squash”选项(root用户挤压)是默认选项,该选项的作用是将客户机上的root用户映射到NFS服务器上的nobody用户,这时NFS客户机上的root用户对NFS服务器上导出的目录的权限只具有服务器上nobody用户的权限。,【实例8.4】/test (anonuid=500,anongid=600)本例中客户机上的root用户映射到服务器上UID=500的用户,
12、同时组GID=600,意味着客户机上的root用户具有服务器上UID=500的用户和GID=600的组的权限。“all_squash”和“no_all_squash”选项的含义和“root_squash”、“no_root_squash”选项的含义类似。只不过“all_squash”是将客户机上的所有用户映射到服务器上的nobody用户,如果要映射成服务器上的其他用户,同样要使用anonuid和anongid选项。“no_all_squash”是缺省选项,意味着缺省时客户机上的用户要和服务器上的用户一一对应,才能访问目录。,【实例8.5】 /test (all_squash,anonuid=4
13、00,anongid=700) 本例中把客户机上的所有用户(含root用户)映射到服务器上UID=400的用户,GID=700的组。,8.2.3 激活NFSNFS服务的启动和停止是通过/etc/rc.d/init.d目录下的脚本nfs来实现的,执行该脚本必须用root用户登录。【实例8.6】/etc/rc.d/init.d/nfs startStarting NFS services: OK Starting NFS quotas: OK Starting NFS mountd: OK Starting NFS daemon: OK ,【实例8.7】 /etc/rc.d/init.d/nfs
14、stop Shutting down NFS mountd: OK Shutting down NFS daemon: OK Shutting down NFS services: OK Shutting down NFS quotas: OK 【提示】 也可以用service nfs start来启动NFS服务。 如果想让Linux系统在启动时同时也启动NFS服务,可以使用ntsysv命令,如图8-2所示。找到NFS服务,用空格键在NFS处做标记“*”,确认“Ok”即可。,【实例8.8】 root redflag /root#ntsysv(见图8-2)。,图8-2 NFS的自动启动,【实例8
15、.9】 root redflag /root#rpcinfo p program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 100024 1 udp 32768 status 100024 1 tcp 32768 status 100011 1 udp 635 rquotad 100011 2 udp 635 rquotad 100005 1 udp 32775 mountd,100005 1 tcp 32773 mountd 100005 2 udp 32775 mountd 100005
16、2 tcp 32773 mountd 100005 3 udp 32775 mountd 100005 3 tcp 32773 mountd 100003 2 udp 2049 nfs 100003 3 udp 2049 nfs 100021 1 udp 32776 nlockmgr 100021 3 udp 32776 nlockmgr 100021 4 udp 32776 nlockmgr,8.2.4 导出目录:exportfsNFS服务启动时会自动导出/etc/exportfs文件中设定的文件系统或目录,但是如果在NFS服务启动后修改了exports文件,要使用exportfs命令导出目
17、录。exportfs命令的用法如下: /usr/sbin/exportfs -avi -o options, client:/path /usr/sbin/exportfs -r -v /usr/sbin/exportfs -av -u client:/path /usr/sbin/exportfs -v,参数选项: -a:对所有的目录操作。 -o options:指定目录导出时的选项,选项的定义和exports文件的定义相同。 -i:忽略/etc/exports文件列出的信息,取命令行中指定的导出选项。 -r:再次导出所有的目录,用于重新初始化NFS服务器内部的导出清单。 -u:从NFS服务
18、器中删除导出的目录。 -v:显示exportfs命令执行时的信息。,【实例8.10】 root redflag /root#cat /etc/exports /home *(ro) /test *(rw) root redflag /root#exportfs -av exporting *:/test exporting *:/home 导出所有目录。,【实例8.11】root redflag /root#exportfs -rv重新导出所有目录,如果在/etc/exports文件中增加或删除了某项,可以使用该命令。这是用得最多的例子。,【实例8.12】root redflag /root#
19、exportfs -v -i -o rw,no_root_squash *:/test2 exporting *:/test把NFS服务器上的/test2目录导出给“*”客户机使用,导出权限为“rw,no_root_squash”。我们使用“-i”选项让exportfs命令忽略/etc/exports文件。这通常用于临时将一个目录导出,而不将其加入到/etc/exports文件中。,【实例8.13】 root redflag /root#exportfs -vu *:/test unexporting *:/test unexporting *:/test 取消/test目录的导出。 【实例8
20、.14】 root redflag /root#exportfs /home * /test *,8.3 配 置 NFS 客 户,Linux下的NFS客户配置非常容易,不需要加载任何新的或附加的软件。惟一的要求是内核必须编译为支持NFS的功能或作为可装入模块。缺省情况下,红旗Linux 3.0将NFS作为可装入模块,在需要时自动装入。也可以使用命令insmod nfs手工装入模块,装入后可使用lsmod命令检查。,【实例8.15】 root redflag /root#lsmod Module Size Used by Not tainted nfsd 77216 0 (autoclean)
21、nfs 86716 0 lockd 57280 0 nfsd nfs sunrpc 77076 0 nfsd nfs lockd 8139too 20128 1 (autoclean) usb-uhci 25636 0 (unused) usbcore 65184 1 usb-uhci,如果输出中有“nfs”项(注意:不是“nfsd”项),则说明“nfs”已经作为可装入模块加载了。 root redflag /root#cat /proc/filesystems nodev rootfs nodev bdev nodev proc nodev sockfs nodev tmpfs,nodev
22、shm nodev pipefsext2iso9660reiserfs nodev devpts nodev usbdevfs nodev nfs 输出中也应该有“nfs”项。,NFS软件包(nfs-utils-0.3.1-8.i386.rpm,我们前面已经介绍过它,它是NFS服务器软件包)带有一个称为showmount的程序,该程序能够给出NFS服务器导出的目录信息。showmount命令的格式如下: showmount 参数选项 NFS服务器主机名/IP地址 参数选项:-e:显示NFS服务器上导出的目录。,【实例8.16】 root redflag /root#showmount -e 1
23、92.168.0.15 Export list for 192.168.0.15: /test * /home *显示NFS服务器192.168.0.15导出的目录,当然我们也可以在NFS服务器上执行不带任何参数的exportfs命令来查看导出的NFS目录,结果是一样的。,如果已经知道了从NFS服务器上导出的目录信息,就可以使用我们在文件系统这一章中已经介绍过的mount命令手工安装(挂接)NFS服务器上的目录了。挂接NFS目录时,mount命令有几个小的变化:文件系统的类型指定为“nfs”、分区为远程NFS服务器上的导出目录和有一些挂接选项。例如: mount -t nfs -o optio
24、ns nfsserver:/dir dir_mountpoint,【实例8.17】root redflag /root#mount -t nfs -o rw :/test /mnt/nfs把NFS服务器上导出的目录/test挂接在本机的/mnt/nfs目录下,权限为读写。NFS客户机安装NFS分区(目录)时的选项很多,除了以前介绍mount命令时介绍的所有文件系统都具有的一般选项外,还有一些只适用于NFS分区的选项。,挂接NFS分区(目录)时,可以混合使用一般选项和NFS分区特有的选项。常用的NFS特有的选项见表8-2,其余的选项参见man nfs命令的输出。,表8-2 NFS客户特有的挂接选
25、项,使用后台挂接时,如果第一次挂接失败(例如NFS服务器宕机),挂接进程就会在后台处理,直到成功为止。采用“bg”选项可以避免NFS服务器宕机而使客户机Linux系统悬挂在mount命令上。特别是在/etc/fstab文件中自动挂接NFS分区时,最好采用“bg”选项,否则可能导致Linux系统无法启动。,如果服务器A在/etc/fstab挂接了服务器B的NFS分区,同时服务器B也在/etc/fstab挂接了服务器A的NFS分区,这时出现了“交叉挂接”,两台主机既是做为服务器为对方服务,也同时是对方的客户。交叉挂接会带来一个问题:服务器A必须等到服务器B完成引导才能正常引导,而服务器B也必须等到
26、服务器A完成引导才能正常引导,从而陷入一个死循环。这种情况下应确保在两台主机的/etc/fstab文件中将NFS分区用“bg”选项来挂接。,NFS客户机挂接NFS分区时,缺省采用“硬”挂接(即采用“hard”选项),即它们会无休止地尝试连接NFS服务器直到连接上为止。这种做法并不总是最好的,在需要对整个系统进行关机时可能会引起故障。如果NFS服务器关机比NFS客户机关机早,客户机的关机操作会无法正常进行。这种情况下可以采用“软”挂接(即采用“soft”选项),NFS客户机在重试一定次数(用retrans=N参数设定重试次数)后会终止连接。但是数据操作执行完成之前不得把控制权交给应用程序时(如电
27、子邮件目录),就不要使用“软”挂接选项。,当NFS客户机上某个进程进行系统调用时,内核就会接过动作,在内核处理系统调用的时间里,原来的进程对自己是没有控制权的。如果内核的存取操作出现问题,该进程就必须继续等待,直到内核调用返回为止,进程自己是不能放弃操作并退出运行的。“intr”选项给挂接加上一个可中断的标志,允许等待NFS操作的进程放弃操作并退出。缺省时不使用“intr”选项。在NFS客户机上挂接NFS服务器上的NFS分区同样可以在/etc/fstab文件中配置,使得客户机的Linux系统启动时自动挂接服务器上的NFS分区。,【实例8.18】在/etc/fstab中添加::/test /mn
28、t/nfs nfs rw,bg,intr,soft 0 0 自动把NFS服务器上的导出目录/test挂接在/mnt/nfs目录下,挂接选项是:“rw”,“bg”,“intr”,“soft”。,8.4 NFS的性能、安全和故障排除,8.4.1 NFS的性能NFS通过网络访问远程文件,因此速度比访问本地磁盘慢。由于NFS有客户机和服务器两个部分,NFS的性能也就和双方的参数配置都有关。,1. NFS服务器的性能选项首先要强调的是NFS性能和Linux内核有很大的关系,调整内核也可改善NFS服务器的性能,特别是把NFS编译到内核,而不是作为模块装入。有关内核的编译请参见有关Linux内核的资料,我们
29、这里主要介绍导出选项对NFS服务器性能的影响。,NFS客户机上的用户执行write系统调用时,它希望系统调用顺利返回时数据已经写入到NFS服务器上的磁盘,这样可以保证数据的可靠性。如果write系统调用后NFS服务器崩溃,则已经写入到磁盘的数据还是安全的,这种方式称为同步写入。同步写入会降低性能,因为用户进程必须等待系统调用的返回。与之相反的另一种方法是NFS服务器并不立即把数据写到磁盘而是放在缓冲区,然后立即返回调用,这就是异步写入。NFS服务器上的Linux系统在调用完成后的一段时间(5秒左右)内把数据写入磁盘,如果在这段时间里NFS服务器崩溃,将会导致数据的丢失。“nfs”导出选项“sy
30、nc”是同步写入,“async”是异步写入,缺省是“async”。,NFS服务器还有另一个特性和可靠性、性能有关。Linux使用基于页的虚拟内存,它可以把同一物理数据页的几个小的写入集合起来一次性写入,以减少写操作的次数。“wdelay”选项允许Linux系统延迟写入,把几次写入操作集合起来。“nowdelay”选项则不允许Linux系统延迟写入,不允许集合操作。写入延迟可以提高性能,但同样也增加数据丢失的可能性,如果NFS服务器在把集合起来的数据写入到磁盘之前崩溃,则所有这些数据全部丢失。“wdelay”选项是缺省值。,2. NFS客户机的性能选项NFS客户机上的NFS性能是由挂接NFS文件
31、系统时(mount或/etc/fstab)采用的选项控制的。NFS客户机也有类似的“sync”和“async”选项(它们不是NFS特有的选项),注意它们不是用来控制NFS服务器的性能。NFS客户机缓冲用户进程写入的数据时,是将这些数据保留在NFS客户机的缓冲区中,即这个数据不从网络立即传送给NFS服务器。“async”是缺省值。,NFS客户机按固定最大长度的单元从网络上读取和写入数据,这分别是“rsize”和“wsize”选项指定的值。读取和写入长度越大,NFS系统的性能越好。但是NFS建立在RPC上,而RPC使用XDR,XDR又使用IP网络组件。大的NFS传输单元会被分解成多个小组,通常是1
32、500字节左右(在以太网上)。如果使用NFS和UDP,当NFS传输单元中有一分组丢失时,即使其他分组安全到达,也会导致NFS重发整个单元,这样就增加了网络的负担。,如果线路的情况不好,可能出现反复重发,加剧恶化网络的通信状况。因此需要平衡网络的性能和NFS的性能,如果网络快而稳定,“rsize”和“wsize”的值可以加大,高达32 KB;如果网络慢而不稳定(如拨号网络),“rsize”和“wsize”的值可降至1 KB、2 KB。,8.4.2 NFS的安全1. NFS服务器的安全保护NFS服务器是NFS服务安全的最重要部分,保护方 式主要有两种:RPC访问安全和目录的导出权限。Linux的T
33、CP Wrapper根据两个配置文件确定谁能访问哪些服务,这两个文件是/etc/hosts.allow和/etc/hosts.deny。这两个文件很相似,格式如下: 服务1,服务2,:主机名1,主机名2,,TCP Wrapper程序在用户访问主机的服务时,按以下的顺序进行操作:(1) 如果客户机的主机名或IP地址匹配/etc/hosts.allow列出的服务名,则客户的访问被允许; (2) 如果客户机的主机名或IP地址匹配/etc/hosts.deny列出的服务名,则客户的访问被拒绝;(3) 如果客户机的主机名或IP地址在两个文件均不匹配,则客户的访问被允许。,【实例8.19】 root re
34、dflag /root#cat /etc/hosts.deny ALL:ALL root redflag /root#cat /etc/hosts.allow portmap:192.168.0. lockd:192.168.0. nfsd:192.168.0. mountd,rquotad:192.168.0. stad:192.168.0.,以上例子除了开放NFS相关的服务给192.168.0.*的主机外,关闭了其他所有的服务(包括了Web、FTP、DNS等服务)。这里采用的是先关闭所有的服务再一一开放允许的服务,安全性较好,如果要开放某一服务可以在/etc/hosts.allow加入相应
35、的命令行。NFS服务器的配置文件/etc/exports中有许多选项是用于控制安全性,我们已经介绍了“root_squash”、“no_root_squash”、“all_squash”、“no_all_squash”、“anonuid”和“anongid”,这里补充其他的安全选项。,NFS服务器缺省要求NFS客户主机用1024以下的端口来发送请求,这些端口称为安全端口,root用户使用这些端口,非root用户可能使用1024以上的端口(不安全端口)发出请求。因此可能需要用“insecure”选项使得NFS客户可以使用NFS服务,特别是非Linux系统的NFS客户。,NFS服务器导出某一目录时
36、,这一目录下可能还挂接着 其他文件系统。为了在NFS客户机上能够使用这两个目录,通常会在NFS服务器上的/etc/exports文件分别有两个目录的导出指定项,然后在NFS客户机上分别挂接,如果只挂接上一级目录,下一级目录会被隐藏。“hide”选项和“nohide”选项可以控制导出目录时其他文件系统是否一起导出。“hide”选项是缺省值,即不显示被导出目录下挂接的其他文件系统,避免出现死循环。,【实例8.20】/test目录下有一目录/test/win2000,它是Windows 2000文件系统的挂接点,如果我们导出目录时采用:/test *(ro)/test/win2000 *(ro)在N
37、FS客户机上只挂接/test,这时无法在/test目录下看到/test/win2000目录的内容。我们可以使用“nohide”选项导出:/test *(ro)/test/win2000 *(ro,nohide),在NFS客户机上只挂接/test,这时在/test目录下就可以看到/test/win2000目录的内容了。“subtree_check”选项用于控制NFS服务器证明文件句柄确实属于所导出的文件系统,防止客户机创建伪NFS文件句柄。假设Linux NFS服务器有一个文件系统安装在/test,其下有目录/test/proj。我们将/test/proj用“subtree_check”选项导出
38、,每次NFS客户机向NFS服务器发送NFS操作时,服务器保证收到的文件句柄属于/test/proj目录或其子目录。,如果客户主机伪造NFS文件句柄(该句柄实际上是指向/test/doc/hetong1.doc)后发送请求给服务器,NFS服务器会检查句柄并拒绝服务。“subtree_check”选项是缺省值,“no_subtree_check”选项可以关掉子树检查。如果导出整个文件系统,可以采用“no_subtree_check”选项加速对文件系统的访问,因为文件系统不会有其他的部分被访问的危险。,2. NFS客户机的安全性在NFS客户机挂接NFS分区时,“rw”和“ro”选项可以控制NFS文件
39、系统的访问权限。缺省时,NFS客户机挂接分区时采用“rw”,而NFS服务器导出目录时缺省采用的是“ro”。因此如果所有的选项保持缺省值,则NFS服务器不让写入导出卷,当NFS客户机想写入导出卷时会出现错误。当然如果NFS服务器上以“rw”选项导出目录,NFS客户机以“ro”选项挂接NFS分区,最终NFS客户机上的用户也只具有读的权限。,8.4.3 NFS故障排除1. IP地址的问题在NFS服务器上的/etc/exports文件配置导出目录时,主机指定如果采用主机名的方法,要保证NFS客户机的IP地址和主机名符合,否则会遭到拒绝。NFS服务器获得连接到自己的客户机IP地址后,试图解析为完全授权域
40、名FQDN,但是如果在/etc/exports文件里列出的机名不完整, NFS服务器将拒绝服务。如,服务器认为是,可在/etc/exports文件里列出的是linux2,这时就要检查/etc/hosts文件和DNS的设置。,在NFS客户机挂接NFS目录时,如果使用主机名而不是使用IP地址来指定NFS客户机,同样要确保客户机能够正确解析主机名的IP地址。如果不能正确解析,就要检查/etc/hosts文件和DNS的配置。,2. 故障排除常用命令NFS是基于RPC调用的,因此rcpinfo命令常常用于确定RPC服务的信息。我们前面已经介绍了“rcpinfo p”命令,注意这一命令是NFS服务器上执行
41、的,在客户机也可以使用rpcinfo命令确定远程NFS服务器的RPC服务信息。,【实例8.21】 在客户机上执行以下命令以确定远程NFS服务器的RPC服务信息: root redflag /root#rpcinfo -u 192.168.0.15 portmap program 100000 version 2 ready and waiting root redflag /root#rpcinfo -u 192.168.0.15 mountd program 100005 version 1 ready and waiting,program 100005 version 2 ready a
42、nd waiting program 100005 version 3 ready and waiting root redflag /root#rpcinfo -u 192.168.0.15 nfs program 100003 version 2 ready and waiting program 100003 version 3 ready and waiting,nfsstat命令可以显示nfs统计信息,命令格式如下: nfsstat 参数选项 参数选项: -c:显示客户机上的NFS操作。 -s:显示服务器上的状态。,3. 诊断步骤诊断NFS故障的一般步骤如下:(1) 检查NFS客户机
43、和NFS服务器之间的通信是否正常(用ping命令)。(2) 检查NFS服务器上的NFS服务是否在运行,必要时用“/etc/rc.d/init.d/nfs restart”命令重新启动。(3) 验证NFS服务器的/etc/exports文件语法是否正确,包括导出权限。,(4) 检查客户端的NFS文件系统服务是否正常,必要时用“/etc/rc.d/init.d/netfs restart”命令重新启动。(5) 验证/etc/fstab文件中的配置是否正确。,习 题,1. 启动NFS服务的命令是 或 。2. 在/etc/exports文件中有一行:/home请解析其作用。3. 在NFS客户端加载NFS有两种方法,分别是 和 。,