- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
网络文件系统协议
NFS
简介
●NFS是Sun发展的,对网络中的共享文件进行透明
远程访问的一种网络文件系统协议
●NFS协议是使用建立在外部数据描述(XDR)上的远
程过程调用(RPC)原语定义的。这使之具有
泛的适应性:可适用于不同的机器、操作系统、
网络体系和传输协议
●此协议的实现已经存在于从个人电脑到超级计算
机等不同种类的机器上
协议允许服务器分发远程访问优先级给一个受限
制的客户集。
●它执行了操作系统特定的功能,以允许把远程目
录树链接在本地的文件系统上。
1.1远程过程调用
●Sun的远程过程调用规范提供了一种面向过程
的远程服务接口。每一个服务器都提供了
个包含一组过程的“程序”。NFS就是一种这
样的程序。
主机地址、程序号和过程号的组合指定了一个
远程过程。NFS可以使用在多种底层的传输层
协议上,甚至可以使用在另一个远程过程调用
实现之上。
●为了便于讨论,我们假定NFS实现在Sun的RPC
2外部数据描述
●外部数据描述(XDR标准提供了一个在网
络上描述数据类型的公用方法。NFS协议规
范实际就是用RPC数据描述语言书写的。要
想获得更多的信息,请参见RFC1014XDR
外部数据描述标准。
1.3无状态服务器
●NFS协议应该尽可能无状态。也就是说,服务器
应该不必保持关于它的客户端的任何协议状态信
息。在失败事件发生时,无状态服务器比有状态
报务器有明显的优点
●在无状态服务器中,客户端仅仅需要重发请求直
到服务器响应;客户端甚至不需要知道服务器已
经崩溃或者是网络临时故障。而有状态服务器的
客户端要么需要检测服务器失败,并且在服务器
恢复的时候重建服务器状态,或使客户端操作失
败
●简化恢复的基本方法就是尽可能
的采取“幂等”操作(为了它们
有被重复的潜力)。这个协议各
种版本中,大多数操作(例如
Read和 Write)是幂等的;NFS
中也有一些操作不能幂等。对非
密等操作协议中均给与了明确挨
NFS协议定义
●随时间改变,服务器使用的协议也
可能改变。不同服务器使用的NFS版
本也可能不同。为此,RPC对每一个
RPG请求都提供了一个版本号。
●已经定义了NFS协议的三个版本。即
使在第三版中,也有少部分过时的
过程和参数,这将在以后的版本中
被删除。
2.1文件系统模型
●NFS假定文件系统是分层次的,除了最底层是文件
其它层次都是目录。在目录中的每一个条目(文件
目录,设备等)都有一个字符串名。不同的操作系统
可能在目录树的深度或者使用的名字上有所限制,就
象用不同的语义来描述“路径名”,它是在名字中把
所有组成部分(目录和文件名)串联起来
个“文件系统”就是在一个服务器上(通常是一个
磁盘或者物理分区)有一个指定的“根”的树
操作系统提供了“安装”操作使所有的文件系统岀现
在一棵单一的树上。而其它的操作系统保持着一个文
件系统“森林”。
●文件是由无解释字节组成的无结构流。
●第三版的NFS使用更普遍的文件系统模型。
NFS一次只查询路径名中的一个组成部分。
为什么不一次就得到整个路径名,返回一个
文件句柄呢?这里有一些不这样做的原因。
●例如,路径名需要在路径的组成部分之间有
分隔符,不同的操作系统可能使用不同的分
隔符。我们可以定义一种网络上标准的路径
表示法,但是,这样做,对于每一个路径名
在每一个终点上(网络节点)都必须进行语
法分析和转换
●在NFS协议中的所有过程都假定是同步的。当
个过程返回给客户端完成信息,则客户就可
以假定此操作已经完成,并且与请求相关的任
何数据都处于一个稳定的存储器上。
例如,客户端的WR|TE请求可能导致服务器更
新数据块、文件系统信息块(比如间接块)、
和文件属性信息(大小和修改时间)。
WRITE返回给客户端完成信息后,客户端就可
以假定这个写操作是可靠的。甚至在服务器崩
的情况下,它也可以恢复这些已经写的数据
这就是服务器无状态的一个非常重要的部分
任何请求,只要服务器没有返回完成信息,客
户端都必须保存这些请求,以便在服务器崩
溃的情况下再次发送这些请求。
文档评论(0)