Chinaunix首页 | 论坛 | 博客
  • 博客访问: 19891
  • 博文数量: 4
  • 博客积分: 220
  • 博客等级: 二等列兵
  • 技术积分: 50
  • 用 户 组: 普通用户
  • 注册时间: 2004-12-06 00:56
文章分类

全部博文(4)

文章存档

2004年(4)

我的朋友
最近访客

分类:

2004-12-06 01:04:36

NFS笔记

NFS,即网络文件系统,主要用UNIX系统之间的文件共享,NFSSUN微系统公司开发,它是基于RPC服务的。属于C/S模式,一个NFS SERVER同时也是一个NFS CLIENT

 

#####################################################################

 

一、NFS 的几个重要配置文件的作用,如下图:

 

 

###############################################################################

 

1、/etc/dfs/dfstab的内容

# 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

 

也就是说,你想要NFS server 共享什么必须先手工编辑这个表,在里面加入想要共享的文件目录的记录。比如想要共享 server1主机上的/data 的文件夹,就要写入如下内容:

 

share –F nfs -o ro /data”

-F”表示指定共享的文件类型为NFS,“-o”带参数 “ro”表示只读权限 “rw”表示读写权限。也可以直接对某台主机或某个用户指定权限,比如:

share -F   nfs -o   ro,rw=server2 /data”

这就表示 /data文件夹只对名为“server2”的主机提供读写权限,而对其他的网络上的计算机提供只读权限。

share -F nfs -o root=client2 /data

表示 对于/data 被名为client2的主机上的root用户挂接的时候该用户对/data具有root的访问权限。

 

##########################################################2、/etc/dfs/sharetab

这个表主要是对 share命令得到的结果作保存,换句话说该表显示了本地共享出来的的NFS资源,千万不要手工编辑这个表。

3、/etc/dfs/fstypes

这个表列出了本地的DFS(分布式文件系统)的类型,如果在提供一个NFS共享资源的时候不带 –F参数,则系统会默认把/etc/dfs/fstypes中第一个条目的DFS类型作为共享的文件类型。

一个默认的fstypes的内容是:

# cat /etc/dfs/fstypes

nfs NFS Utilities

autofs AUTOFS Utilities

cachefs CACHEFS Utilities

##########################################################4、/etc/dfs/rmtab

这个表中记录了本地的NFS资源被那些客户端成功的挂接。就是说当客户机的成功的完成了一个NFS挂接后,在server端的mountd进程则会自动向rmtab中加入记录,成功的umount的记录也会被记录在这个表中比如:

#cat /etc/dfs/rmtab

# The format of this file follows the syntax

# hostname:fsname

sys42:/export/sys44_data

#ys41:/usr/share/man

#ys43:/export/sys44_data

 

注意在前面加入了注释符的,表示client端已经成功的umount了NFS资源,在NFS SERVER重新启动以后这些加了#的条目会被系统启动的时候由mountd进程全部删除。

####################################################################

二、NFS的daemon

NFS进程默认只在系统运行至 level 3的时候才运行,其启动脚本是:/etc/rc3.d/S15nfs.server script

上面的表列出了NFS的所有进程:

1、         mountd进程检查读取/etc/dfs/sharetab文件,它为远程挂接客户端的mountd提供NFS资源的handle,并且由/etc/dfs/sharetab读取结果提供访问控制。

2、         nfsd进程收到客户端的NFS请求的NFS资源的handle并且回答客户的访问请求,它只能由root用户启动。

3、         statd和lockd进程

2个进程是一起工作的,statd总是和lockd进程一起工作,

提供如客户端或服务器端掉线,down机,reboot等对NFS资源的恢复和维护进程作用,比如服务器端要求reboot,那么server上的statd便和客户端的statd联系,客户端的statd便告知本机的lockd进程收回所有在server端的lock的访问进程。反过来客户端要求reboot,那么client上的statd便和server端的statd联系,server端的statd便告知本机的lockd进程清除所有在server端的有关于该client端的lock的访问进程。

4、         nfslogd进程

它存在于“/etc/default/nfslogd”

主要用于记录NFS的运转情况,NFS的kernel模块记录所有的NFS操作到一个buffer文件,而nfslogd daemon周期性的查阅这个buffer文件然后产生一个ASCII文件。

##########################################################

三、管理NFS的进程

启动:

# /etc/init.d/nfs.server start

/etc/rc3.d/S15nfs.server script

停止:

# /etc/init.d/nfs.server stop

The NFS server daemons are shut down when:

l The system enters run level 2 using the

/etc/rc2.d/K28nfs.server script

l The system enters run level 1 using the

/etc/rc1.d/K28nfs.server script

l The system enters run level S using the

/etc/rcS.d/K28nfs.server script

l The system enters run level 0 using the

/etc/rc0.d/K28nfs.server script

NFS的命令:

NFSserver实列:

共享 主机server1上的/data文件夹给名为study1的主机使其具有rw权限,对于其他用户给予ro的权限

a.首先编辑/etc/dfs/dfstab文件加入如下内容:

share -F  nfs -o ro,rw=study1  /data

b.执行shareall命令共享本机/etc/dfs/dfstab中记录的NFS资源:

 

c.执行/etc/init.d/nfs.server start命令启动NFS进程。

NFSclient:

Client只运行statd和lockd2个进程,其启动脚本为:

/etc/rc2.d/S73nfs.client script,需要注意的是,NFS的客户进程在level 2 的时候就启动了,也就是说在level 2 的时候虽然自己不能提供NFS服务但是却可以挂接其它机器的NFS资源。

/etc/init.d/nfs.client start

/etc/init.d/nfs.client stop

NFS客户端的命令:

umountall&mountall:

默认的情况下umount命令将卸下除了“/”分区以外的所有分区比如“/usr, /var, /var/adm, /var/run, /proc, and /dev/fd 等,

mountall命令将挂载所有在/etc/vfstab里面有条目的资源。如果2个命令都使用了“-r”选项,则表示只对远程的资源进行操作。

Mount options:

nfslogd:

它的配置文件位于:/etc/nfs/nfslogd.conf

内容:

# 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

public defaultdir=/var/nfs/public

log=nfslog fhtable=fhtable buffer=nfslog_workbuffer

 

 

注解:

 The default directory is the /var/nfs/public directory.

 The log is stored in the /var/nfs/public/nfslog file.

 The /var/nfs/public/fhtables file stores the

file-handle-to-pathdatabase.

 The /var/nfs/public/nfslog_workbuffer file stores the buffer.

 

初始化一个NFSLOG

&: share -F nfs -o ro,log /export/sys44_data

注意options中多了一个log的选项!

 

 

 

 

NFS Logging Parameters

/etc/default/nfslogd

四、Troubleshooting NFS Errors

共有9种错误:

The rpcbind failure error

 

&:nfs mount: server1:: RPC: Rpcbind failure

RPC: Timed Out

nfs mount: retrying: /mntpoint

 

 

服务器负荷过重,资源已接近临界状态,或者是hosts数据库中的数据有误比如错误的IP地址或者是错误的主机名,或者是server 端的hosts数据库停止工作。

 

 

 

 

The server not responding error 

&:  NFS server server2 not responding, still trying

主要原因可能是由于serverclient中有一个DOWN机造成。

 

 

 

The NFS client fails a reboot Error

 

Setting default interface for multicast: add net 224.0.0.0: gateway:

client_node_name.

 

 

这可能是由于client端在/etc/vfstab中使用了fg的挂载参数,首先STOP + A进入OK模式,将系统启动到 level 1 手工编辑/etc/vfstab文件将有关NFS远程资源的那一行用“#”注释掉,然后使系统运行至level 3 ,然后取消注释,重启动NFS进程。或者把vfstab中的options的fg改为bg, 然后正常启动至level 3。

 

The service not responding Error

 

nfs mount: dbserver: NFS: Service not responding

nfs mount: retrying: /mntpoint

 

应该是由于NFS进程没有运行,确定系统正运行在level-3 (who -r)

再检查NFS进程是否启动(ps –ef| grep nfs),如果没有,则运行“/etc/init.d/nfs.server start”

 

The program not registered Error

 

 

&:nfs mount: dbserver: RPC: Program not registered

nfs mount: retrying: /mntpoint

 

1、         确定系统在level-3运行,如果不是则执行“init 3”命令

2、         执行:pgrep –xl mountd 检查mountd是否运行,如果没有,首先运行 /etc/init.d/nfs.server stop

然后运行:/etc/init.d/nfs.server  start

3、         检查 /etc/dfs/dfstab 里面的条目是否有错。

 

The stale NFS file handle Error

&:stale NFS file handle

极大的可能是由于server上的NFS资源已经被移走,,最好的办法是重新挂载或卸载旧的NFS资源。

 

The unknown host Error

 

&:nfs mount: server1:: RPC: Unknown host

 

hosts数据库有问题,检查hosts数据库中的主机的node名是否被支持。

 

The mount point Error

&:mount: mount-point /DS9 does not exist

client端的挂载点不存在,或者path不正确或者拼写有错误。

 

The no such file Error

检查server端是否有该NFS资源,检查是否有拼写错误,检查/etc/vfstab。

阅读(1671) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-07-14 11:39:07

laji