Chinaunix首页 | 论坛 | 博客
  • 博客访问: 936465
  • 博文数量: 192
  • 博客积分: 3070
  • 博客等级: 中校
  • 技术积分: 1861
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-27 23:44
个人简介

Start Linux Leave Linux a while Back to Linux

文章分类

全部博文(192)

文章存档

2023年(18)

2022年(11)

2021年(8)

2020年(14)

2019年(7)

2018年(13)

2017年(16)

2016年(4)

2012年(2)

2011年(13)

2010年(26)

2009年(13)

2008年(27)

2007年(20)

我的朋友

分类: LINUX

2008-02-23 13:51:15

s3c2440与redhat9.0 构建共享的NFS.
 
一:服务器端的设定(以LINUX为例)
 服务器端的设定都是在/etc/exports这个文件中进行设定的,设定格式如下:
 欲分享出去的目录 主机名称1或者IP1(参数1,参数2) 主机名称2或者IP2(参数3,参数4)
 上面这个格式表示,同一个目录分享给两个不同的主机,但提供给这两台主机的权限和参数是不同的,所以分别设定两个主机得到的权限。
 
 可以设定的参数主要有以下这些:
 rw:可读写的权限;
 ro:只读的权限;
 no_root_squash:登入到NFS主机的用户如果是ROOT用户,他就拥有ROOT的权限,此参数很不安全,建议不要使用。
 root_squash:在登入 NFS 主?C使用分享之目?的使用者如果是 root ?r,那????使用者的?嘞?⒈?嚎s成?槟涿?褂谜撸?ǔK??UID ? GID 都???成 nobody 那??身份;
 all_squash:不管登陆NFS主机的用户是什么都会被重新设定为nobody。
 anonuid:将登入NFS主机的用户都设定成指定的user id,此ID必须存在于/etc/passwd中。
 anongid:同 anonuid ,但是?成 group ID 就是了!
 sync:资料同步写入存储器中。
 async:资料会先暂时存放在内存中,不会直接写入硬盘。
 insecure 允许从这台机器过来的非授权访问。
 
 例如可以编辑/etc/exports为:
 /tmp     *(rw,no_root_squash)
 /home/public 192.168.0.*(rw)   *(ro)
 /home/test  192.168.0.100(rw)
 /home/linux  *.the9.com(rw,all_squash,anonuid=40,anongid=40)
 设定好后可以使用以下命令启动NFS:
 /etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默认启动的)
 /etc/rc.d/init.d/nfs start
 有的机器重启之后可能这两个服务程序不再起作用,又要手工再次启动.
 
 exportfs命令:
 如果我们在启动了NFS之后又修改了/etc/exports,是不是还要重新启动nfs呢?这个时候我们就可以用exportfs命令来使改动立刻生效,该命令格式如下:
 exportfs [-aruv]
 -a :全部mount或者unmount /etc/exports中的内容
 -r :重新mount /etc/exports中分享出来的目录
 -u :umount 目录
 -v :在 export 的?r候,将详细的信息输出到屏幕上。

 具体例子:
 [root @test root]# exportfs -rv <==全部重新 export 一次!
 exporting 192.168.0.100:/home/test
 exporting 192.168.0.*:/home/public
 exporting *.the9.com:/home/linux
 exporting *:/home/public
 exporting *:/tmp
 reexporting 192.168.0.100:/home/test to kernel
 
 exportfs -au <==全部都卸载了。
 
 
 
 客户段的操作:
 1、showmout命令对于NFS的操作和查错有很大的帮助,所以我们先来看一下showmount的用法
 showmout
 -a :这个参数是一般在NFS SERVER上使用,是用来显示已经mount上本机nfs目录的cline机器。
 -e :显示指定的NFS SERVER上export出来的目录。
 例如:
 showmount -e 192.168.0.30
 Export list for localhost:
 /tmp *
 /home/linux *.linux.org
 /home/public (everyone)
 /home/test 192.168.0.100
 2、mount nfs目录的方法:
 mount -t nfs hostname(orIP):/directory /mount/point
 具体例子:
 Linux: mount -t nfs 192.168.0.1:/tmp /mnt/nfs
        mount -t nfs -o nolock 192.168.0.1:/tmp /mnt/nfs 
 Solaris:mount -F nfs 192.168.0.1:/tmp /mnt/nfs
 BSD: mount 192.168.0.1:/tmp /mnt/nfs
 
 3、mount nfs的其它可选参数:
 HARD mount和SOFT MOUNT:
 HARD: NFS CLIENT会不断的尝试与SERVER的连接(在后台,不会给出任何提示信息,在LINUX下有的版本仍然会给出一些提示),直到MOUNT上。
 SOFT:会在前台尝试与SERVER的连接,是默认的连接方式。当收到错误信息后终止mount尝试,并给出相关信息。
 例如:mount -F nfs -o hard 192.168.0.10:/nfs /nfs
 对于到底是使用hard还是soft的问题,这主要取决于你访问什么信息有关。例如你是想通过NFS来运行X PROGRAM的话,你绝对不会希望由于一些意外的情况(如网络速度一下子变的很慢,插拔了一下网卡插头等)而使系统输出大量的错误信息,如果此时你用的是HARD方式的话,系统就会等待,直到能够重新与NFS SERVER建立连接传输信息。另外如果是非关键数据的话也可以使用SOFT方式,如FTP数据等,这样在远程机器暂时连接不上或关闭时就不会挂起你的会话过程。
 
 rsize和wsize:
 文件传输尺寸设定:V3没有限定传输尺寸,V2最多只能设定为8k,可以使用-rsize and -wsize 来进行设定。这两个参数的设定对于NFS的执行效能有较大的影响
 bg:在执行mount时如果无法顺利mount上时,系统会将mount的操作转移到后台并继续尝试mount,直到mount成功为止。(通常在设定/etc/fstab文件时都应该使用bg,以避免可能的mount不上而影响启动速度)
 fg:和bg正好相反,是默认的参数
 nfsvers=n:设定要使用的NFS版本,默认是使用2,这个选项的设定还要取决于server端是否支持NFS VER 3
 mountport:设定mount的端口
 port:根据server端export出的端口设定,例如如果server使用5555端口输出NFS,那客户端就需要使用这个参数进行同样的设定
 timeo=n:设置超时时间,当数据传输遇到问题时,会根据这个参数尝试进行重新传输。默认值是7/10妙(0.7秒)。如果网络连接不是很稳定的话就要加大这个数值,并且推荐使用HARD MOUNT方式,同时最好也加上INTR参数,这样你就可以终止任何挂起的文件访问。
 intr 允许通知中断一个NFS调用。当服务器没有应答需要放弃的时候有用处。
 udp:使用udp作为nfs的传输协议(NFS V2只支持UDP)
 tcp:使用tcp作为nfs的传输协议
 namlen=n:设定远程服务器所允许的最长文件名。这个值的默认是255
 acregmin=n:设定最小的在文件更新之前cache时间,默认是3
 acregmax=n:设定最大的在文件更新之前cache时间,默认是60
 acdirmin=n:设定最小的在目录更新之前cache时间,默认是30
 acdirmax=n:设定最大的在目录更新之前cache时间,默认是60
 actimeo=n:将acregmin、acregmax、acdirmin、acdirmax设定为同一个数值,默认是没有启用。
 retry=n:设定当网络传输出现故障的时候,尝试重新连接多少时间后不再尝试。默认的数值是10000 minutes
 noac:关闭cache机制。
 同时使用多个参数的方法:mount -t nfs -o timeo=3,udp,hard 192.168.0.30:/tmp /nfs
 请注意,NFS客户机和服务器的选项并不一定完全相同,而且有的时候会有冲突。比如说服务器以只读的方式导出,客户端却以可写的方式mount,虽然可以成功mount上,但尝试写入的时候就会发生错误。一般服务器和客户端配置冲突的时候,会以服务器的配置为准。
 
 
 4、/etc/fstab的设定方法
 /etc/fstab的格式如下:
 fs_spec   fs_file  fs_type   fs_options  fs_dump fs_pass 
 fs_spec:该字段定义希望加载的文件系统所在的设备或远程文件系统,对于nfs这个参数一般设置为这样:192.168.0.1:/NFS
 fs_file:本地的挂载点
 fs_type:对于NFS来说这个字段只要设置成nfs就可以了
 fs_options:挂载的参数,可以使用的参数可以参考上面的mount参数。
 fs_dump - 该选项被"dump"命令使用来检查一个文件系统应该以多快频率进行转储,若不需要转储就设置该字段为0
 fs_pass - 该字段被fsck命令用来决定在启动时需要被扫描的文件系统的顺序,根文件系统"/"对应该字段的值应该为1,其他文件系统应该为2。若该文件系统无需在启动时扫描则设置该字段为0 。
 
 5、与NFS有关的一些命令介绍
 nfsstat:
 查看NFS的运行状态,对于调整NFS的运行有很大帮助
 rpcinfo:
 查看rpc执行信息,可以用于检测rpc运行情况的工具。
阅读(1257) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~