NetWare与UNIX的互联方法与实现
作者:佚名; 更新时间:2014-12-05
异型网络之间的互联是当今计算机网络技术发展的热点问题之一。随着计算机技术的深入发展与网络的不断普及,异型机与异型网络的互相连接、互相共享资源已经成为人们需要迫切解决的问题了。现在广泛流行的网络操作系统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的实现
@@t8s08900.gif;图1@@
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所提供的服务功能之上。
@@t8s08901.gif;图2@@
在网络环境中,rpc为运行在不同机器、不同操作系统上的程序(过程)相互调用、传递参数及回送结果等提供一种规范的方法。rpc为实现网络上的客户/服务器模式提供了支持。比如,一个程序员可以把他的程序分解成为客户、服务器两部分,在客户方面,程序员设计了一些过程,如remote,并将rpc码插入到这些过程之中;而服务器方面,应用rpc的其他功能,实现了一些处理该种调用的过程。当一个运行中的客户程序发出远程调用时,rpc软件自动对变元的值进行收集,并打成数据包(message)发往远地服务器,启动调用过程,最后返回结果。整个调用过程如同调用本地过程一样。prc实际上是iso rm会话层协议的具体实现,该机制将下层协议的细节掩盖了起来,使程序员抛开通信协议的具体过程,就可以设计出分布式程序。
xdr是数据描述和编码的一种标准,是表示层的具体实现。它提供了在不同体系结构的计算机之间进行数据传输时,数据表示的规范方法。比如,对于32-bit的整数表示方法来说,各种机器并不相同,有的将整数的主要字节放在高位地址部分,有的则刚好相反,所以在网络上要使数据在这两种整数表示法的机器之间进行传送,就必须进行适当的转换,否则数值在传输后会发生变化。xdr就提供了这种转换功能。xdr采用的是iso推荐的抽象语言法表示记法1,即asn.1,作为内部数据传送的标准语法表示。相互通信的两方xdr进行本地语法表示与asn.1之间的转换与逆转换。
rpc和xdr提供的这种网络服务为构造nfs这样的分布式数据处理系统奠定了基础。由此可见,由nfs协议本身、rpc和xdr三者相结合,在tcp/ip或udp/ip之上,实现了nfs概念的全部。它们互为基础、互相配合,实现了基于nfs的异种设备、异种操作系统之间的透明在线共享文件的访问功能。
三、举例说明nfs的工作过程
为了详细直观地说明nfs的工作过程,我们以sun工作站上的unix操作系统为例,来说明nfs的具体工作过程,包括什么是文件阶层(hierachies)、如何理解服务器和客户、服务器如何使其它机器共享其文件以及如何对远程机器上的文件阶层进行访问等。
1.文件阶层
当通过某安装点(mount point),从一个本地硬盘来安装一个文件系统时,可以将整个文件系统安装上并从它的根(root)来启动。例如,有两个文件系统root和usr,在不同的硬盘分区中。现在可以将usr文件系统安装到root文件系统的/usr目录上,并通过/usr目录对usr分区进行访问。
与上述原理相似,也可以将不同机器上的某个文件系统安装到本地硬盘上,甚至可以将另外一台机器上的文件系统中的某个目录安装到本地,而不必将整个文件系统都安装过来,如图3。
@@t8s08902.gif;图3@@
2.服务器与客户的概念
一个文件服务器是一台用于共享的机器,其它机器可以用它安装(mount)文件系统。一个客户机是一台至少从一个文件服务器继承了一个文件阶层的机器。任何机器(除非没有硬盘)都可以同时既作为nfs服务器,又作为nfs客户机来使用。
3.服务器与输出(exporting)
在一台unix工作站上,exportfs系统程序、rpc.mountd以及nfsd守候进程(deamon)一同来控制nfs。一旦nfs文件服务器将文件阶层进行输出(export)后,此服务器上的相应目录可由其它的机器来访问。文件服务器上的/etc/exporfs文件列出了这些可用的目录、可以访问它们的客户、以及存取权限。当你启动exportfs程序时,/etc/rc.1oca1就会自动激活exportfs程序。该程序检查/etc/exportfs文件并通知服务器内核有关所输出的每个文件阶层的特权。在服务器启动后,还可以利用export命令将一个文件阶层分解成输出和非输出部分,或者改变一个已经输出的文件阶层的特权。
4.客户与安装(mounting)
客户对文件服务器
它们被广泛地应用于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的实现
@@t8s08900.gif;图1@@
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所提供的服务功能之上。
@@t8s08901.gif;图2@@
在网络环境中,rpc为运行在不同机器、不同操作系统上的程序(过程)相互调用、传递参数及回送结果等提供一种规范的方法。rpc为实现网络上的客户/服务器模式提供了支持。比如,一个程序员可以把他的程序分解成为客户、服务器两部分,在客户方面,程序员设计了一些过程,如remote,并将rpc码插入到这些过程之中;而服务器方面,应用rpc的其他功能,实现了一些处理该种调用的过程。当一个运行中的客户程序发出远程调用时,rpc软件自动对变元的值进行收集,并打成数据包(message)发往远地服务器,启动调用过程,最后返回结果。整个调用过程如同调用本地过程一样。prc实际上是iso rm会话层协议的具体实现,该机制将下层协议的细节掩盖了起来,使程序员抛开通信协议的具体过程,就可以设计出分布式程序。
xdr是数据描述和编码的一种标准,是表示层的具体实现。它提供了在不同体系结构的计算机之间进行数据传输时,数据表示的规范方法。比如,对于32-bit的整数表示方法来说,各种机器并不相同,有的将整数的主要字节放在高位地址部分,有的则刚好相反,所以在网络上要使数据在这两种整数表示法的机器之间进行传送,就必须进行适当的转换,否则数值在传输后会发生变化。xdr就提供了这种转换功能。xdr采用的是iso推荐的抽象语言法表示记法1,即asn.1,作为内部数据传送的标准语法表示。相互通信的两方xdr进行本地语法表示与asn.1之间的转换与逆转换。
rpc和xdr提供的这种网络服务为构造nfs这样的分布式数据处理系统奠定了基础。由此可见,由nfs协议本身、rpc和xdr三者相结合,在tcp/ip或udp/ip之上,实现了nfs概念的全部。它们互为基础、互相配合,实现了基于nfs的异种设备、异种操作系统之间的透明在线共享文件的访问功能。
三、举例说明nfs的工作过程
为了详细直观地说明nfs的工作过程,我们以sun工作站上的unix操作系统为例,来说明nfs的具体工作过程,包括什么是文件阶层(hierachies)、如何理解服务器和客户、服务器如何使其它机器共享其文件以及如何对远程机器上的文件阶层进行访问等。
1.文件阶层
当通过某安装点(mount point),从一个本地硬盘来安装一个文件系统时,可以将整个文件系统安装上并从它的根(root)来启动。例如,有两个文件系统root和usr,在不同的硬盘分区中。现在可以将usr文件系统安装到root文件系统的/usr目录上,并通过/usr目录对usr分区进行访问。
与上述原理相似,也可以将不同机器上的某个文件系统安装到本地硬盘上,甚至可以将另外一台机器上的文件系统中的某个目录安装到本地,而不必将整个文件系统都安装过来,如图3。
@@t8s08902.gif;图3@@
2.服务器与客户的概念
一个文件服务器是一台用于共享的机器,其它机器可以用它安装(mount)文件系统。一个客户机是一台至少从一个文件服务器继承了一个文件阶层的机器。任何机器(除非没有硬盘)都可以同时既作为nfs服务器,又作为nfs客户机来使用。
3.服务器与输出(exporting)
在一台unix工作站上,exportfs系统程序、rpc.mountd以及nfsd守候进程(deamon)一同来控制nfs。一旦nfs文件服务器将文件阶层进行输出(export)后,此服务器上的相应目录可由其它的机器来访问。文件服务器上的/etc/exporfs文件列出了这些可用的目录、可以访问它们的客户、以及存取权限。当你启动exportfs程序时,/etc/rc.1oca1就会自动激活exportfs程序。该程序检查/etc/exportfs文件并通知服务器内核有关所输出的每个文件阶层的特权。在服务器启动后,还可以利用export命令将一个文件阶层分解成输出和非输出部分,或者改变一个已经输出的文件阶层的特权。
4.客户与安装(mounting)
客户对文件服务器
热门论文