linux的nfs服务,Linux系统NFS服务

一、NFS介绍

NFS server可以看作是一个FILE SERVER,它可以让你的PC通过网络将远端得NFS SERVER共享出来的档案MOUNT到自己的系统中,在CLIENT看来使用NFS的远端文件就象是在使用本地文件一样。

NFS协议从诞生到现在为止,已经有多个版本,如NFS V2(rfc1094),NFS V3(rfc1813)(最新的版本是V4(rfc3010)。

1.NFS的工作原理

启动NFS文件服务器时,/etc/rc.local会自动启动exportfs程序,指定可以导出的文件或目录,而所能挂载的也只能是其所指定的目录。

NFS是基于XDR/RPC协议的。XDR(eXternal Data Representation,即外部数据表示法)提供一种方法,把数据从一种格式转换成另一种标准数据格式表示法,确保在不同的计算机、操作系统及程序语言中,所有数据代表的意义都是相同的。

RPC(Remote Procedure Call,远程程序调用)请求远程计算机给予服务。客户机通过网络传送RPC到远程计算机,请求服务。

NFS运用RPC传送数据的方法有以下几步:

(1)客户送出信息,请求服务。

(2)客户占位程序把客户送出的参数转换成XDR标准格式,并用系统调用把信息送到网络上。

(3)信息经过网络送达远程主机系统。

(4)远程主机将接受到的信息传给服务器占位程序。

(5)把XDR形式的数据,转换成符合主机端的格式,取出客户发出的服务请求参数,送给服务器。

(6)服务器给客户发送服务的逆向传送过程。

2.服务进程的作用

服务进程是系统在启动计算机后自动运行的程序,包括对网络的连接、网络协议的加载、图形桌面的显示、文件系统的加载等,Linux系统中常见的进程包括以下几种。

" nfsd

根据客户端对文件系统的需求,启动文件系统请求服务进程,响应客户的请求,而一般文件系统请求服务进程的数目是8,这也是在rc.local中写nfsd 8 &的原因。

" biod

此进程是在NFS客户端上用的,用来启动异步块I/O服务进程来建立Buffer Cache,处理在客户机上的读写。

" mountd

这是个RPC服务器。启动rpc.mountd服务进程后,mountd会读取/etc/xtab查看哪一台客户机正在挂载哪一个文件系统,并回应客户机所要挂载的路径。

" inetd Internet services服务进程

当系统启动时,rc.local会启动inetd读取inetd.conf配置文件,读取网络上所有服务器的地址,链接启动inetd.conf中所有的服务器。当客户机请求服务时,inetd就会启动相关的服务进程,如user使用telnet时,inetd启动telnetd配合user telnet的需求,其余像ftp、finger、rlogin等应用程序,inetd也都会启动相对应的服务程序ftpd、fingerd、rloingd等。

" portmap服务程序

主要功能是将TCP/IP通信协议的端口数字转换成RPC程序数字,因为这样客户端才能进行RPC调用。一般RPC服务器是被inet启动的,所以portmap必须在inetd之前启动,否则无法进行RPC调用。

二、各NFS协议版本的主要区别

V3相对V2的主要区别:

1、文件尺寸

V2最大只支持32BIT的文件大小(4G),而NFS V3新增加了支持64BIT文件大小的技术。

2、文件传输尺寸

V3没有限定传输尺寸,V2最多只能设定为8k,可以使用-rsize and -wsize 来进行设定。

3、完整的信息返回

V3增加和完善了许多错误和成功信息的返回,对于服务器的设置和管理能带来很大好处。

4、增加了对TCP传输协议的支持

V2只提供了对UDP协议的支持,在一些高要求的网络环境中有很大限制,V3增加了对TCP协议的支持

*5、异步写入特性

6、改进了SERVER的mount性能

7、有更好的I/O WRITES 性能。

9、更强网络运行效能,使得网络运作更为有效。

10、更强的灾难恢复功能。

异步写入特性(v3新增加)介绍:

NFS V3 能否使用异步写入,这是可选择的一种特性。NFS V3客户端发发送一个异步写入请求到服务器,在给客户端答复之前服务器并不是必须要将数据写入到存储器中(稳定的)。服务器能确定何时去写入数据或者将多个写入请求聚合到一起并加以处理,然后写入。客户端能保持一个数据的copy以防万一服务器不能完整的将数据写入。当客户端希望释放这个copy的时候,它会向服务器通过这个操作过程,以确保每个操作步骤的完整。异步写入能够使服务器去确定最好的同步数据的策略。使数据能尽可能的同步的提交何到达。与V2比较来看,这样的机制能更好的实现数据缓冲和更多的平行(平衡)。而NFS V2的SERVER在将数据写入存储器之前不能再相应任何的写入请求。

V4相对V3的改进:

1:改进了INTERNET上的存取和执行效能

2:在协议中增强了安全方面的特性

3:增强的跨平台特性

三、CLIENT和SERVER的具体操作和设置

在讲NFS SERVER的运作之前先来看一些与NFS SERVER有关的东西:

RPC(Remote Procedure Call)

NFS 本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协议勇士用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER.所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC是负责负责信息的传输。

NFS需要启动的DAEMONS

pc.nfsd:主要复杂登陆权限检测等。

rpc.mountd:负责NFS的档案系统,当CLIENT端通过rpc.nfsd登陆SERVER后,对clinet存取server的文件进行一系列的管理

NFS SERVER在REDHAT LINUX平台下一共需要两个套件:nfs-utils和PORTMAP

nfs-utils:提供rpc.nfsd 及 rpc.mountd这两个NFS DAEMONS的套件

portmap: NFS其实可以被看作是一个RPC SERVER PROGRAM,而要启动一个RPC SERVER PROGRAM,都要做好PORT的对应工作,而且这样的任务就是由PORTMAP来完成的。通俗的说PortMap就是用来做PORT的mapping的。

一:服务器端的设定(以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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值