异型网络之间的互联是当今计算机网络技术发展的热点问题之一 。随着计算机技术的深入发展与网络的不断普及,异型机与异型网络的互相连接、互相共享资源已经成为人们需要迫切解决的问题了 。现在广泛流行的网络操作系统netware与同样为人们所喜爱的Unix系统之间的互联问题正是在这种背景下提出来的 。由于novell公司已经成功地使netware支持tcp/ip协议,而unix的联网正是建立在tcp/ip 协议之上的,所以一些基于tcp/ip协议的应用层协议,就自然成为解决netware与unix互联问题的较好方法了 。网络文件系统(nfs)正是这些协议中,应用较广、技术较为成熟的协议之一,而且现在市场上已经推出了几十种nfs产品 。
它们被广泛地应用于netware与unix的互联之中 。本文将通过对nfs的概念和实现方法的讨论,来说明netware与unix之间是如何通过nfs实现互联的 。
一、网络文件系统概述
sun microsystems公司是以其高品质的工作站而享誉计算机界的 。其工作站现已广泛地应用于多种领域,如CAD、仿真、图形处理等 。sun工作站采用的是开放式的系统结构,它们大都是基于unix操作系统之上的,并且支持tcp/ip协议作为其网络的体系结构 。也正是由于对tcp/ip协议的支持,使得sun工作站可以很方便地在ethernet上,基于tcp/ip进行通讯 。
同时,又由于tcp/ip协议在网际互联上的优越性能,使得sun工作站与其它异种机之间的通讯实现起来较为方便和容易 。
为了实现网络上的文件服务,sun公司提出了网络文件系统(network file system, nfs)的概念 。它提供了异种机、异种操作系统之间的透明在线(on-line)共享文件的手段 。nfs允许用本地操作系统的i/o调用方式访问远地文件,并且这与文件存放的物理位置和使用何种操作系统无关 。
从用户的角度看,nfs是不可见的 。用户可以运行一独占的程序并且可以对独享文件进行i/o操作,而这时用户并不清楚它们是本地的还是远程的程序或文件 。
使用nfs的好处很多 。nfs允许多台机器使用同一个数据文件,所以文件的数据对网络上的各机器来说都是可存取的 。而且nfs可以通过将大的文件存储在一台机器上而由大家来共享的方式,使存储的费用明显的降低 。尤其是在数据库应用系统中,你可以把数据文件可靠、统一地集中在一起,既可共享使用又可以进行方便的统一管理 。
nfs目前已经得到开放系统组织的承认,成为今天的分布式文件系统的工业标准 。nfs不仅能够支持sun工作站之间的连接,而且能够支持来自主要计算机厂家的产品 。尤其是大多数Unix操作系统,诸如sco unix,都提供了支持nfs协议的软件,以实现unix与其它操作系统之间的通讯 。
二、从网络的体系结构来说明nfs的实现
nfs在一个操作系统中的具体形式如图1 。当一个应用程序运行时,它可以通过系统调用打开一个文件,并对其进行存取访问 。这时的文件存取系统可以接收用户的各种请求,并且能够自动判断将该请求发往何处,即是本地文件系统还是nfs客户服务部分 。这种判断是根据被请求的文件是在本地存储介质上还是在远程的计算机上而做出的 。当一个被请求文件在远地时,nfs客户服务软件利用nfs协议与远地机器上适当的nfs服务器取得联系,并且进行相应的请求操作 。在远地服务器对请求做出回答后,客户服务软件获得结果,将它传送给应用程序 。
从程序员的角度来看,nfs协议本身并没有提供什么特别的调用过程 。一旦管理员将nfs设置完成后,程序员就可以对远地和本地的文件进行同样的存取操作,它们之间并无明显的差别 。
对于nfs,设计者并没有将它设计成为解决所有文件传输的综合性协议,而是将nfs的实现分成三个相对独立的部分:nfs协议本身、远程过程调用 (remote procedure call, rpc)机制和外部数据表示(external data representation, xdr) 。如果将它们与iso/osi的推荐标准相对照的话,可以看出rpc对应于会话层,xdr对应于表示层,而nfs协议本身则对应于应用层,见图 2 。从这个体系结构可以看出,真正的nfs服务是建立在外部数据表示xdr和远程过程调用rpc所提供的服务功能之上 。
推荐阅读
- Unix系统下Find命令的三个高级应用
- unix中利用Find命令备份根文件系统
- Unix系统中LVM硬盘管理的好帮手
- Unix文件安全检查利器- Tripwire
- 深度解析Unix中inode块与超级块
- unix口令文件介绍
- 九合板雨伞与普通伞区别 九合板雨伞与普通伞区别在哪
- simp server for unix 配置教程
- 标准化您的 UNIX 命令行工具
- UNIX 高手的10 个习惯