ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Solaris NFS详解

Solaris NFS详解

原创 Linux操作系统 作者:279531451 时间:2009-09-14 11:18:16 0 删除 编辑
NFS                        6
            
目的
            
            完成这个模块后,你应当能够:
            
            ●  说明NFS服务器和NFS客户机的功能
               
            ●  生成可用于挂接的和不可用于挂接的资源
               
            ●  在一个NFS服务器上编辑/etc/dfs/dfstab文件允许资源自动共享
               
            ●  显示一个服务器的可用于挂接的资源
               
            ●  从另一个系统挂接资源
               
            ●  在一个NFS客户机上编辑/etc/vfstab文件来挂接资源
               
●  说明这些命令的功能:mountall,umountall,shareall,和
               unshareall
               
            ●  说明和配置NFS记录
               
附加资源
            
            附加资源 - 下面的参考提供这个模块讨论的课题的附加细节:
   ●  System Administration Guide, Volume I, Part Number 805-7228-10
               
●  System Administration Guide, Volume II, Part Number 805-7229-10
               
            ●  System Administration Guide, Volume III, Part Number 806-0916-10
               
NFS分布文件系统
            
Solaris操作环境支持远程文件系统资源共享并呈现给用户就象它们是本地的文件
和目录。
            
远程文件系统资源的共享通过分布文件系统(DFS)文件系统类型来管理。这种
文件系统类型提供通过网络挂接资源所要求的体系结构支持。
            
            NFS环境包含下面的组件:
            
●  NFS服务器 – 一个包含由网络上其它系统共享的文件资源的系统。
               
●  NFS客户机 – 一个挂接通过网络共享的文件资源的系统,并呈现这些文件资
               源就象在本地一样。
               
图6-1阐明一个NFS环境。


               
            图6-1  NFS分布文件系统
            
一个NFS的益处
            
一个NFS的益处包括:
            
●  集中的文件存取
               
文件被放在集中的位置。你可以作一个文件的拷贝由许多用户或系统同时存
取。这是home目录或公共数据文件的特别有用的特性。
               
●  公共软件读取
               
系统可以共享在一个集中位置的一个或多个软件包。这减少了单个系统的磁盘
空间需要。
               
●  容易使用
               
远程文件共享对用户和任何应用是透明的,因为这些资源看起来好象驻留在本
地系统。
               
NFS环境在异种环境下提供文件共享,潜在地包含许多不同的操作系统,包括
UNIX&,MS-DOS,和虚拟内存系统(VMS)。
            
            
注意 -  NFS使用远程过程调用(RPC)和外部数据表示(XDR)。XDR库例程
允许程序员以一个独立于机器的方式说明任意数据结构。
            
            
NFS分布文件系统组件
            
共享和挂接NFS文件资源所必需的DFS管理文件,命令,和进程在图6-2中说明,
包括一个NFS服务器和一个NFS客户机。
            
NFS后台进程
            
            NFS操作要求运行在NFS服务器和NFS客户机上的后台进程。
            
mountd后台进程
            
当一个NFS客户机发出一个NFS挂接请求时,挂接进程联系NFS服务器的挂接后台
进程, /usr/lib/nfs/mountd,来获得要挂接的文件资源的一个文件句柄
(指针)。

接着NFS客户机挂接进程将文件句柄(连同有关被挂接资源的其它信息)写到
/etc/mnttab文件中。
            
NFS服务器后台进程
            
当一个客户机上的一个进程试图存取远程文件资源时,NFS服务器上的NFS服务器
后台进程,/usr/lib/nfs/nfsd,获得这个请求(连同该资源的文件句柄)并
执行这个文件操作。然后它返回客户机上进程请求的任何数据。
            
服务器进程从/etc/init.d/nfs.server脚本启动。nfs.server脚本也定义
可被启动的nfsd线程的最大数量。
            
如果一个系统在它的/etc/dfs/dfstab文件中有项目,那么当你的系统进入运
行级3时这些服务器后台进程被启动。
            
客户机和服务器上的NFS后台进程
            
其它两个NFS后台进程,/usr/lib/nfs/statd和/usr/lib/nfs/lockd在
NFS服务器和客户机上都运行。当一个系统进入运行级2时,这些后台进程自动被
启动。
            
这两个后台进程在一起工作提供NFS内的锁定服务。如果服务器失效,客户机可
以快速地重新建立到过去使用的文件的连接。服务器有一个过去使用NFS的客户
机记录。它联系每个客户机以获得关于哪些文件过去被使用的信息来允许继续操
作。这两个后台进程都从/etc/init.d/nfs.client脚本被启动,并且典型地
不要求管理干预。
            
NFS文件句柄
            
文件句柄是识别服务器上一个唯一的文件或目录的客户机索引。文件句柄将文件
inode号,inode生成号,和磁盘设备号编码。
            
在一个客户机成功地完成一个NFS挂接请求后,服务器上的mountd后台进程在
/etc/rmtab文件中生成项目。/etc/rmtab文件包含一个NFS客户机远程挂接
的文件系统的列表。它也为每个远程挂接的文件系统包含一行项目;例如:
            
            hostname:fsname
            
            这些行的项目由mountd 命令在其被启动时从这个文件移除。
            
可以在这个文件里为失效的无法发送卸载命令的客户机积累陈旧的项目。移除这
些项目允许客户机重新挂接资源。
            
NFS服务器
            
            下面的命令和文件用于NFS服务器。
            
share命令
            
当mountd后台进程正在运行,用/usr/sbin/share命令使文件资源可用于远
程系统挂接。
            
            命令格式
            
share [ -F FSType ] [ -o options ] [ -d description ] pathname
            
            选项
            
            下面的选项可用于share命令:
            
            ●  -F fstype
               
               指定文件系统类型。这个选项通常不要求nfs作为缺省远程文件系统。
               
            
注意 - 如果你不使用-F fstypes选项,系统从/etc/dfs/fstypes文件的第
一行提取文件系统类型。
            
               
            ●  -o options
               
            控制一个客户机到一个NFS共享资源的存取。
               
            ●  -d description
               
               说明正在被共享的文件资源。这个信息在不加参数使用share命令时显示。
               
●  pathname
               
               指定被共享的资源。
               
            文件资源共享
            
            要从命令行共享一个文件资源,执行下面的:
            
# share -F nfs -o ro /usr/share/man
            
share命令把所有被共享文件资源的信息写入/etc/dfs/sharetab文件。这个
文件包含一个本地被共享资源的列表。
            
            如果没有参数被指定,share命令显示所有当前被共享的文件资源的一个列表。
            
# share
/usr/share/man ro
            
/etc/dfs/dfstab文件
            
/etc/dfs/dfstab文件为系统管理员提供一个自动共享本地文件系统的方式。
dfstab文件的每一行由一个share命令组成。
            
# cat /etc/dfs/dfstab
# Place share(1M) commands here for automatic execution
# on entering init state 3.
#
# Issue the command '/etc/init.d/nfs.server start' to run the NFS
# daemon processes and the share commands, after adding the very
# first entry to this file.
#
# share [-F fstype] [-o options] [-d ";"] ; [resource]
# e.g,
# share -F nfs -o rw=engineering -d “home dirs” /export/home2
#
            
            当如下情况时,/etc/dfs/dfstab文件的内容被执行:
            
            ●  系统进入运行级3。
               
            ●  超级用户运行shareall命令。NFS后台进程必须被运行。
               
●  超级用户运行/etc/init.d/nfs.server脚本(该脚本包含一个
               shareall命令)加start 参数。这个脚本启动NFS服务器后台进程。
               
            
注意 - 如果nfs.server脚本没有在/etc/dfs/dfstab文件中找到任何share
命令,它不运行NFS后台进程而退出。
            
NFS存取管理
            
缺省情况下,被挂接的NFS资源可以有基于标准Solaris文件许可的读写特权。存取
决策基于比较客户机用户和文件所有者的ID。
            
下面的share命令选项限制NFS客户机的读写能力并允许超级用户存取一个被挂
接的资源。
            
            ●  ro
               
通知客户机该服务器只接受读请求。

●  rw
               
               允许服务器接受来自客户机的读和写请求。
               
●  root= client
               
通知客户机指定系统的root用户可以在被共享的资源上执行超级用户特权的
请求。
               
●  ro= access-list
               
               允许来自指定存取列表的读请求。
               
●  rw= access-list
               
               允许来自指定存取列表的读写请求。
               
           ▼  access-list=client:client
               
               允许存取基于一个冒号分隔的一个或更多客户机的列表。
                  
               ▼  access-list=@network
                  
允许存取基于一个网络号(例如,@192.168.100)或网络名(例如,
@mynet.com)。这个网络必须在/etc/networks中定义。
                  
           ▼  access-list=.domain
               
               允许存取基于一个域名系统(DNS)域;这个点(.)识别它为一个DNS
               域。
               
           ▼  access-list=netgroup_name
                  
允许存取基于一个已配置的网络组(网络信息服务[NIS]或只是网络信息服
务增强[NIS+])。
                  
           ▼  anon= n
                  
设置n为未知用户的有效用户ID(EUID)。缺省情况下,未知用户被给与
EUID60001 UID_NOBODY。如果n被设为-1,存取被拒绝。
                  
你可以通过用逗号分隔每个选项来结合这些选项,构成复杂的存取限制。
            
            例子
            
# share -F nfs -o ro directory
            
            这个命令行限制对被挂接NFS资源的存取为只读存取。
            
# share -F nfs -o ro,rw=client1 directory
            
            这个命令行限制对被挂接NFS资源的存取为只读存取;然而,NFS服务器接受来自名为client1的客户机的读和写请求。
            
# share -F nfs -o root=client2 directory
            
            这个命令行允许名为client2的客户机上的root用户对被挂接的NFS资源有超级用户存取权限。
            
# share -F nfs -o anon=0 directory
            
            通过设置选项anon=0,用于存取被共享资源的EUID被设为正在存取被共享资源的用户的UID。
            
unshare命令
            
/usr/sbin/unshare命令使文件系统不可用于远程系统挂接。它读
/dfs/sharetab文件。
            
            命令格式
            
            unshare [ -F nfs ] pathname
            
            选项
            
            下面选项可以被用于unshare命令:
            
            ●  -F nfs
               
指定nfs为文件系统类型。因为NFS是缺省的远程文件系统,这个选项通常不
被要求。
               
● pathname
               
               指定被取消共享的文件资源的路径名。
               
下面例子使资源不可用于挂接:
            
            # unshare /usr/share/man
            
shareall和unshareall命令
            
用/usr/sbin/shareall和/usr/sbin/unshareall命令共享所有NFS资源和
取消所有NFS资源共享。
            
            Shareall命令
            
不加任何参数,shareall命令共享列在/etc/dfs/dfstab文件中的所有文件
资源。
            
            shareall [ -F nfs ]
            
            unshareall命令
            
不加任何参数,unshareall命令取消当前被共享的文件资源。它通过读
/etc/dfs/sharetab文件来做这些。
            
            unshareall [ -F nfs ]
            
配置NFS文件系统
            
            要设置NFS服务器,完成下面的步骤:
            
1.编辑/etc/dfs/dfstab文件,添加这些文件资源使其只要系统进入运行级3
               就自动被共享。
               
share -F nfs /usr/share/man
               
            2.通过调用下面的启动NFS服务器后台进程:
               
# /etc/init.d/nfs.server start
               
               这样共享/etc/dfs/dfstab文件的内容。
               
           
注意 - 你可以用dfshares命令验证可用的资源。
            
            
NFS信息的命令
            
用下面命令获得关于NFS资源的信息。
            
dfshares命令
            
            dfshares命令显示当前被共享的NFS资源。
            
            命令格式
            
            dfshares [ -F nfs ] [ host ]
            
            不加参数,dfshares命令显示本地服务器的被共享资源。
            
# dfshares
RESOURCE                 SERVER     ACCESS     TRANSPORT
host1:/usr/share/man   host1       -           -
            
            它也用于显示一个指定服务器名的被共享的资源。
            
# dfshares host2
RESOURCE                 SERVER     ACCESS     TRANSPORT
host2:/export           host2        -          -
            
dfmounts命令
            
            这个命令显示被挂接资源的信息。
            
            命令格式
            
            dfmounts [ -F nfs ] [ server ]
            
            不加参数,dfmounts命令显示被共享的资源和挂接本地服务器资源的客户机。
            
# dfmounts
RESOURCE             SERVER         PATHNAME           CLIENTS
-                      host1          /usr/share/man    host5,host9
            
            这个命令也用于显示一个指定服务器名的被挂接资源信息。
            
# dfmounts host2
RESOURCE             SERVER         PATHNAME           CLIENTS
-                      host2          /export            host5,host9
            
NFS客户机
            
            下面的命令和文件用于NFS客户机。
            
mount命令
            
            用/usr/sbin/mount命令连接一个本地或远程文件资源到文件系统层次。
            
            命令格式
            
mount [ -F nfs ] [ -o options ] server:pathname mount_point
            
            选项
            
            下面的选项可以被用于mount命令。
            
            ●  -F nfs
               
指定nfs为文件系统类型。这个选项不被要求因为nfs是缺省的远程文件系统
类型。
               
            ●  -o options
               
指定关于文件系统指定选项的一个逗号分隔的列表,比如rw,挂接文件资源为
读,写,以及ro挂接文件资源为只读。(缺省是rw)
               
            ●  server:pathname
               
               指定远程文件资源的服务器的名称和路径名;它们被一个冒号分隔(:)。
               
            ●  mount_point
               
               指定本地系统上挂接点的路径名(此路径必须存在)。
               
            存取一个远程文件资源
            
用mount命令来存取一个远程文件资源;例如:
            
# mount host1:/usr/share/man /usr/share/man
            
            要从一个逗号分隔的主机列表中的第一个可用主机挂接一个远程只读文件,执
            行下面的:
            
# mount -o ro host1,host2,host3:/usr/share/man /usr/share/man
            
            由于文件系统被共享为只读,如果多个主机被命名并且列表中的第一个服务器
            停机,越过故障特性使用列表中的备用服务器来存取文件。
            
/etc/vfstab文件
            
要在引导时有远程文件资源挂接,在客户机的/etc/vfstab文件中输入合适的项
目。例如:
            
#device      device     mount      FS       fsck      mount      mount
#to mount    to fsck    point     type     pass      at boot   options
#
host1:/usr/share/man  -   /usr/share/man    nfs    -   yes   soft,bg
            
            /etc/vfstab文件中的字段为:
            
            ●  device to mount
               
               远程文件资源的服务器名和路径名;它们被一个冒号(:)分隔。
               
            ●  device to fsck
               
NFS资源不是由客户机检查,因为文件系统不是由客户机所有。这个字段对
NFS资源总是破折号(-)。
               
            ●  mount point
               
               文件资源的缺省挂接点。
               
            ●  FS type
               
               对NFS资源用nfs。
               
            ●  fsck pass
               
NFS资源不从客户机检查,因为文件系统不由客户机所有。这个字段对NFS资
源总是破折号(-)。
               
            ●  mount at boot
               
yes或no,表明当系统进入运行级2或mountall命令被执行时,文件资源是
否应当被挂接。
               
            ●  mount options
               
               一个逗号分隔的挂接选项列表。
               
           ▼  rw|ro
                  
                   指定是否资源被挂接为读写或只读。缺省为读写。
                  
           ▼  bg|fg
                  
                   在一个NFS挂接期间,如果第一个挂接尝试失败,在后台或前台重试。缺
                   省是在前台重试。
                  
           ▼  soft|hard
                  
                   当重新传输数量到达在retrans=n选项中指定的数量,用soft选项挂接
                   的一个文件系统对请求返回一个错误然后停止尝试。以hard选项挂接的
                   文件系统显示一个警告消息并继续尝试请求。缺省是一个hard挂接。
                  
         
注意 - 尽管soft或bg不是缺省设置,结合这两个选项通常导致当NFS挂接问题出
现时客户机启动最快。
         
                  
               ▼  intr|nointr
                  
                   表明杀死一个被挂起进程的键盘中断,该进程等待被硬挂接的文件系统上
                   的回应。缺省是intr。
                  
           ▼  suid|nosuid
                  
                   表明是否允许setuid执行。缺省允许setuid执行。
                  
               ▼  timeo=n
                  
                   设置timeout为一秒的十分之n。缺省暂停时间是11,对用户数据报
                   (UDP)以一秒的十分之一(0.1)来,对传输控制协议(TCP)以一秒的十
                   分之600来衡量。
                  
               ▼  retry=n
                  
                   设置再尝试挂接操作的次数。缺省是10,000次。
                  
               ▼  retrans=n
                  
                   设置NFS重新传输次数为n。对UDP缺省为5。对面向连接的传输(例如
                   TCP),这个选项没有作用。
                  
           
注意 - 如果文件资源列在/etc/vfstab文件中,超级用户可以在命令行上指定
server:pathname或 mount_point,因为mount命令为了更多信息检查
/etc/vfstab文件。
            
            
建议的挂接选项
            
用bg选项挂接一个文件系统表明如果服务器的mountd不响应,系统重新挂接文
件系统的尝试在后台进行。这样防止重新挂接中断其它系统服务。
            
当文件系统被挂接,一个NFS请求等待一个响应的时间量由timeo域(一秒的十
分之几)指出。如果没有收到响应,那么timeo域的值加倍,重新尝试请求。
            
当重新传输时间到达retrans域的值,以soft选项挂接的文件系统返回一个错
误。以hard选项挂接的文件系统显示一个警告消息并继续再尝试。
            
            表6-1列出对一些普通被共享文件资源的建议挂接选项。
            
表6-1  挂接选项

NFS文件资源      读写/只读     系统启动      服务器崩溃     中断     安全

/usr                ro           fg            hard          nointr   suid
/export/home      rw           bg            hard          intr      nosuid
/opt/frame        ro            bg            soft            -       nosuid


一个只读目录
            
/usr文件系统包含操作系统二进制码。这些重要文件系统在前台被挂接,所以直
到挂接完成,引导过程才继续。
            
NFS客户机硬挂接这个目录。这意味着客户机继续重试挂接请求直到服务器响
应。
            
一个读写目录
            
/export/home目录是通常放置用户登录目录的地方。对所有读写(rw)文件系
统(例如,用户的主目录)建议一个硬挂接。
            
            nosuid选项提供附加网络安全,因为NFS资源上的setuid选项被忽略。
            
一个只读应用目录
            
不重要的应用通常在后台(bg)用soft挂接为只读(ro)。如果系统引导期间
服务器没有响应,系统继续引导。如果服务器崩溃,那么挂接超时。
            
umount命令
            
            用/usr/sbin/umount命令从文件系统层次断开一个本地的或远程的文件资源。
            
            命令格式
            
            umount server:pathname | mount_point
            
            这个命令行可以指定server:pathname或mount_point。
            
# umount /usr/share/man

mountall和umountall命令
            
用/usr/sbin/mountall和/usr/sbin/umountall命令挂接和卸载所有文件
资源。
            
mountall命令
            
不加任何参数,/usr/sbin/mountall命令挂接列在/etc/vfstab文件中
mount-at-boot值为yes的所有文件资源。

            要限制这个命令只对远程文件系统,用-r选项。
            
            命令格式
            
            mountall -r [ -F nfs ]
            
            # mountall -r
            
            选项
            
            下面的选项可以用于mountall命令:
            
            ●  -F nfs
               
指定nfs为文件系统类型。这个选项不被要求,因为nfs是缺省远程文件系统
类型。

umountall命令
            
不加任何选项,/usr/sbin/umountall命令卸载所有当前挂接的文件资源。要
限制这个命令只对远程文件资源,用-r选项。
            
            
注意 - root ( / ),/usr,/var,所有伪文件系统不被卸载。
            
            
            命令格式
            
            umountall -r [ -F nfs ]
            
            # umountall -r
            
            选项
            
            下面的选项可以用于umountall命令:
            
            ●  -F nfs
               
指定nfs文件系统类型。这个选项不被要求,因为nfs是缺省远程文件系统类
型。
               
NFS客户机设置
            
            要设置一个NFS客户机,完成下面的步骤:
            
            1.用/usr/sbin/dfshares命令显示一个服务器的可用资源。
               
# dfshares host1
RESOURCE                   SERVER          ACCES           TRANSPORT
host1:/usr/share/man     host1           -                 -
               
            2.用/usr/sbin/mount命令存取远程文件资源。
               
# mount host1:/usr/share/man /usr/share/man
               
客户机上的/usr/share/man目录是在本地系统文件层次内的挂接点。这个
目录应为空。
               
3.在决定对位于远程服务器上手册页的读取不再需要后,你可以用
               /usr/sbin/umount命令从客户机卸载远程文件资源。
               
# umount /usr/share/man
               
有时候,卸载一个NFS文件系统的尝试导致下面的错误消息:
            
nfs mount: /usr/share/man: is busy
            
这通常意味着一个用户或程序正在存取这个资源。
            
用/etc/vfstab文件挂接
            
编辑/etc/vfstab文件来为远程资源添加一个项目,只要系统进入运行级3,则
该远程资源自动被挂接。
            
host1:/usr/share/man - /usr/share/man nfs - yes ro,bg
            
NFS服务器记录
            
Solaris 8操作环境的一个新特性是NFS服务器记录。这个特性记录NFS对文件系统
的读写。后台进程,nfslogd,提供这个操作记录。
            
当NFS服务器记录被允许时,所有对文件系统的NFS操作由内核写入一个缓存文
件。这个数据包括一个时间戳,客户机IP地址,请求者的UID,被存取文件资源的
文件句柄,和所发生的操作的类型。
            
nfslogd后台进程将原始数据转换为保存在ASCII日志文件中的ASCII记录。在这
个转换过程中,IP地址被转换为主机名,UID被转换为登录名。
            
文件句柄到路径名的映射也由nfslogd处理。它跟踪在一个file-handle-to-
path映射表中的这些映射。
            
            对/etc/nfs/nfslog.conf文件中识别的每个标签存在一个映射表。
            
这些文件句柄也被转换成路径名。后台进程跟踪文件句柄并在一个分离的文件句
柄到路径名表中保存信息。用这种方法,路径不必在每次一个文件句柄被存取时
被重新识别。
            
            
注意 - 保持nfslogd后台进程运行是很重要的,因为如果nfslogd被关闭,就
没有对file_handle-to-path表中映射的变化的跟踪。
            
            
允许NFS服务器记录
            
            要允许nfs服务器记录,完成下面的步骤:
            
            1.成为超级用户。
               
            2.可选:改变文件系统配置设置:
               
在/etc/nfs/nfslog.conf中,或通过改变与global标签关联的数据编辑
对所有文件系统的缺省设置,或为指定文件系统添加新的标签。如果不需要作
这些改变,不要编辑这些文件。

3.要用NFS服务器记录为每个文件系统添加项目,编辑/etc/dfs/dfstab,在
               这个文件中为想要允许NFS服务器记录的文件系统添加项目。
               
要指定一个标签,你必须在/etc/nfs/nfslog.conf文件中用log=tag选
项输入被使用的标签。
               
使用log选项不指定一个标签使得缺省使用global标签。下面的例子使用缺
省设置global标签:
               
share -F nfs -o ro,log=global /export/ftp
               
            4.检查nfs服务正在服务器上运行。
               
               如果nfs后台进程没有运行,执行下面的命令重起NFS后台进程:
               
# /etc/init.d/nfs.server start
               
            5.如果NFS后台进程已经运行,执行一个命令共享文件系统。
               
在你向/etc/dfs/dfstab添加项目之后,文件系统可通过重新引导系统或使
用shareall命令被共享。
               
# shareall
               
如果NFS后台进程早些时被重起,你不必运行这个命令,因为启动脚本会运行
它。
               
            6.验证信息正确。
               
               运行share命令检查正确选项被列出:
               
# share
-        /export/share/man       r      ""
-        /usr/src        rw=eng     ""
-        /export/ftp      ro,log=global    ""
               
            7.启动NFS日志后台进程,nfslogd,如果它还没有运行。
               
# /usr/lib/nfs/nfslogd
               
如果你用nfs.server脚本重起NFS后台进程,那么这一步是不必要的。因为
如果/etc/nfs/nfslog.conf文件存在,这个脚本也启动这个后台进程。
               
/etc/nfs/nfslog.conf文件
            
这个文件详细说明路径,文件名,和nfslogd使用的记录类型。每个说明与一个
标签关联。
            
            启动NFS服务器记录要求你识别每一个文件系统的标签。全局标签说明缺省值。
            
            下面是一个初始nfslog.conf文件的例子:
            
# cat /etc/nfs/nfslog.conf
#ident "@(#)nfslog.conf 1.5 99/02/21 SMI"
#
.
.
# NFS server log configuration file.
#
; [ defaultdir=; ] \
[ log=; ] [ fhtable=; ] \
[ buffer=; ] [ logformat=basic|extended ]
#
global defaultdir=/var/nfs \
log=nfslog fhtable=fhtable buffer=nfslog_workbuffer
            
            按需使用下面每个标签的参数:
            
            ●  defaultdir=path
               
               指定记录文件的缺省目录名。
               
            ●  log=path/filename
               
               设置日志文件的路径和文件名。
               
            ●  fhtable=path/filename
               
               为file_handle-to-path数据库文件选择路径和文件名。
               
            ●  buffer=path/filename
               
               决定缓存文件的路径和文件名。
               
            ●  logformat=basic|extended
               
选择当创建用户可读的日志文件时被使用的格式。基本格式产生一个类似于某
些ftpd后台进程的日志文件。扩展格式给出一个更详细的观察。
               
对可以指定路径和文件名的参数,如果不指定路径,使用由defaultdir定义的
路径。你也可以用一个绝对路径越过defaultdir。
            
为使识别文件更容易,把文件放在分隔的目录里;例如,
            
# cat /etc/nfs/nfslog.conf
#ident "@(#)nfslog.conf 1.5 99/02/21 SMI"
#
.
.
# NFS server log configuration file.
#
global defaultdir=/var/nfs \
log=nfslog fhtable=fhtable buffer=nfslog_workbuffer
publicftp log=logs/nfslog fhtable=fh/fhtables buffer=buffers/workbuffer
            
你必须在启动NFS服务器记录之前,创建名为logs,fh,和buffers的目录。
            
在这个例子中,任何用log=publicftp被共享的文件系统使用下面的值:
            
            ●  缺省目录是/var/nfs。
               
            ●  日志文件被保存在/var/nfs/logs/nfslog*中。
               
            ●  file_handle-to-path数据库被保存在/var/nfs/fh/fhtables中。
               
            ●  缓存文件被保存在/var/nfs/buffers/workbuffer中。
               
/etc/default/nfslogd文件
            
一个NFS服务器上的NFS操作被记录,基于/etc/default/nfslogd中说明的
配置信息。
            
            这个文件说明当使用NFS服务器记录时使用的一些参数。这些参数包括:
            
            ●  MAX_LOGS_PRESERVE – 决定被保存的日志文件数量。缺省值是10。
               
●  MIN_PROCESSING_SIZE – 设置缓存文件进行处理和写入日志文件之前必
须达到的最小字节数。缺省值是524,288字节。添加这个数可以通过减少缓存
文件被处理的次数来改善性能。
               
               这个参数,和IDLE_TIME一起,决定多久缓存文件被处理。
               
●  IDLE_TIME – 设置在检查缓存文件中的更多信息之前nfslogd应该睡眠
(等待)的秒数。它也决定多久配置文件被检查。缺省值是300秒。添加这个
数可以通过减少检查次数来改善性能。
               
●  CYCLE_FREQUENCY – 决定在日志文件被循环之前必须经过的小时数。缺省
               值是24小时。用这个选项防止日志文件增长得太大。
               
●  UMASK – 指定nfslogd创建的日志文件的许可。缺省值是0137。
               
NFS命令,文件,和后台进程的摘要
            
服务器和客户机系统使用的主要命令和文件在表6-2中概述。
            
表 6-2   NFS命令,文件,和后台进程的摘要


NFS 服务器                    NFS 客户机

命令          share resource               mount server:directory \
                                mount-point
unshare resource             umount mount-point
shareall                       mountall -r
unshareall                    umountall -r
dfmounts                       dfshares server
/etc/init.d/nfs.server      /etc/init.d/nfs.client

文件          /etc/dfs/fstypes             /etc/dfs/fstypes
/etc/dfs/dfstab               /etc/vfstab
/etc/dfs/sharetab            /etc/mnttab
/etc/rmtab
/etc/nfs/nfslog.conf
/etc/default/nfslogd
/etc/nfs/nfslogtab

后台进程      /usr/lib/nfs/nfsd           /usr/lib/nfs/statd
/usr/lib/nfs/mountd         /usr/lib/nfs/lockd
/usr/lib/nfs/statd
/usr/lib/nfs/lockd
/usr/lib/nfs/nfslogd


处理NFS错误
            
你可以通过一个客户机上的控制台消息或表征发现大多数的NFS问题。
            
rpcbind失效错误
            
            错误消息
            
nfs mount: server1:: RPC: Rpcbind failure
RPC: Timed Out
nfs mount: retrying: /mntpoint
            
这个消息在引导过程中或是在响应一个显式挂接请求时显示在客户机上。它表明
一个使用服务器的问题。这个错误的发生可以由于支持客户机节点的hosts数据
库文件中结合了一个不正确的Internet地址和一个正确的主机或节点名。
            
这个错误也可以发生在任何时候支持客户机节点的hosts数据库文件正确地指定
服务器节点,但是服务器节点完全地过载,临时停止,或已经崩溃。
            
            解决方案
            
如果服务器节点可操作,判断是否关键的服务器资源用光(例如,内存,交换
区,或磁盘空间)。
            
            
注意 – 这个例子由临时关掉服务器接点产生,当时试图(通过命令行)使它为一
个客户机节点的挂接请求服务。
            
            
服务器不响应错误
            
            错误消息
            
NFS server server2 not responding, still trying
            
这个消息在引导过程中或是在响应一个显式挂接请求时显示在客户机上,它表明
已知的主机不可到达。
            
            解决方案
            
            完成下面的步骤:
            
1.用ping命令(ping server2)判断是否本地系统和服务器之间的网络不
               通。
               
            2.判断是否服务器(server2)不可用。
               
NFS客户机重新引导失败错误
            
            错误情况
            
NFS客户机重新引导失败,不产生一个错误消息。
            
只要一个系统管理员试图init 6或reboot重启一个NFS客户机节点就遇到这种
情况。客户机正确重新引导直到系统回显:
            
Setting default interface for multicast: add net 224.0.0.0: gateway:
client_node_name.
            
            客户机节点没有完成正确的启动序列且不产生任何错误消息。
            
这些表征和一个客户机用/etc/vfstab文件中的项目请求一个NFS挂接是一致
的,这个项目指定了到一个不在运行的NFS服务器的在前台的硬挂接。
            
            解决方案
            
            如果NFS可用却失败,完成下面的步骤:
            
            1.重设失败的客户机节点,并引导进入单用户模式。
               
            2.在单用户模式,编辑/etc/vfstab文件注释掉NFS挂接。
               
            3.按Control-D继续引导过程到缺省的运行级(通常3)。
               
4.用/etc/vfstab文件中的信息,判定是否所有NFS服务器可操作且正常运
               行。
               
5.在你判定哪个NFS服务器失败并已经解决任何显著的问题之后,移除
/etc/vfstab文件中的注释。
               
            
注意 – 一个向/etc/vfstab文件中的项目添加注释的替代方法是改变那些项目
去使用soft挂接和background活动选项。
            
            
停止的服务器错误
            
            错误消息
            
nfs mount: dbserver: NFS: Service not responding
nfs mount: retrying: /mntpoint
            
这个消息在引导过程中或是在响应一个显式挂接请求时显示在客户机上,指出一
个可到达的服务器没有运行nfsd服务器后台进程。
            
            解决方案
            
            完成下面的步骤:
            
1.在服务器上用who –r命令来看它是否在运行级3。如果不是,用init 3命令
               改变至运行级3。
               
            2.在服务器上用ps –e命令检查是否nfsd后台进程和NFS服务器进程正在运
行。如果没有,用/etc/ini

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7551038/viewspace-614598/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-09-01

  • 博文量
    100
  • 访问量
    154605