NFS文件系统

NFS是sun公司提出的一种网络文件系统,提供对文件系统进行透明远程的访问。
它使用一种external data representation(XDR:XDR是SunSoft的开放网络计算环境的一种功能。XDR提供了一种与体系结构无关的表示数据,解决了数据字节排序的差异、数据字节大小、数据表示和数据对准的方式。在OSI模型中的表示层实现)。NFS是基于RPC(远程过程调用)来运行的。
当时NFS的设计目标有以下几个:
(1) 设备与操作系统的无关性
(2) 崩溃后简单恢复
(3) 透明访问,就像访问本地目录一样
(4) 在客户端保持unix语义
(5) 合理的性能,达到本地磁盘访问的80%的速度
NFS设计包含了协议,服务端,客户端3个部分。
NFS protocol
NFS 协议使用了Sun RPC机制。RPC是同步的,直到服务端完成调用并返回结果前,客户端这边都会一直阻塞等待。这也让RPC看起来就像是本地过程调用一样。
NFS协议是一种无状态协议,每一个过程调用的参数都包含了能完成这个调用的所有信息。服务端无需跟踪记录之前的请求。这让崩溃恢复变得简单,当服务端崩溃后,客户端会重发请求知道收到响应。服务端和客户端都有必要去检测崩溃,服务端需要检测客户端的崩溃以便丢弃之前保留的客户端状态,客户端也需要检测服务端的崩溃以便重建服务端的状态。
NFS使用UDP协议和IP协议,因为UDP是一种不可靠的传输协议,我们NFS因其自身无状态和请求是幂等的,客户端可以通过重试调用知道数据包被传输过去。
最常见的NFS过程参数是一个称为文件句柄的结构,它由服务器提供,并由客户端用来引用文件。文件句柄是不透明的,也就是说,客户端从不查看文件句柄的内容,但在对文件进行操作时使用它。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章