當前位置:學問君>學習教育>畢業論文>

NetWare與UNIX的互聯方法與實現

學問君 人氣:2.28W
NetWare與UNIX的互聯方法與實現
異型網絡之間的互聯是當今計算機網絡技術發展的熱點問題之一。隨着計算機技術的深入發展與網絡的不斷普及,異型機與異型網絡的互相連接、互相共享資源已經成爲人們需要迫切解決的問題了。現在廣泛流行的網絡操作系統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)
客戶對檔案服務器上的export目錄進行存取是透過mounting來進行的。客戶在安裝目錄時,不是複製該目錄,而是透過一系列的遠程調用來實現mounting進程,它使用戶可以對服務器硬盤上的相應目錄進行透明存取。執行在檔案服務器上的RPC以一定的格式接受資訊,即XDR格式。由rpc.mountd守候進程來處理這些資訊並允許或禁止對一個檔案階層進行安裝。一旦客戶將遠程目錄安裝後,客戶即可以使用“CD目錄名”命令進入相應的目錄下進行操作了,就如同操作本地硬盤一樣。客戶對有export資訊的檔案服務器進行定位,並在它與服務器之間建立連接,此連接進程稱爲binding, NFS的裝訂是發生在NFS安裝的時候。客戶在自舉時可以對一目錄進行安裝,也可以用mount命令來顯式地安裝,或者透過自動安裝器(Automounter)來進行。/etc/fstab檔案中列出了在客戶啓動時安裝的所有檔案階層。由此可見,NFS的工作是由NFS服務器和NFS客戶進程共同實現的。只有在NFS服務器上規定了輸出的目錄或者檔案系統,在NFS的客戶機上才能對其進行繼承,並透過對這些目錄或者
檔案系統的安裝來實現客戶對服務器的透明訪問。
四、NetWare與UNIX工作站之間透過NFS互聯的實現 自從SUN公司實現了NFS以後,它實際上已經成爲UNIX產品的分佈式檔案系統。市場上有衆多的NFS產品出現,這裏將以當今最流行的兩種操作系統UNIX、DOS之間透過NFS進行透明訪問爲例,來看一看NFS在互聯中的具體實現。
我們這裏所要介紹的產品是NetWare NFS、NetWare NFS Gateway和PC-NFS。前兩者是由Novell網絡公司推出的,後者則是Sun MicroSystems公司的產品。由於這兩個公司看待UNIX與DOS互聯問題的角度和出發點不同,因此它們所實現的產品也就有很大的區別了。NetWare NFS和NetWare NFS Gateway是Novell公司從自己的NetWare網絡操作系統出發,基於DOS的考慮所研製、開發出來的。它提供給UNIX工作站透明訪問NetWare服務器的機制以及由DOS工作站透過NetWare服務器來共享UNIX資源的手段。而PC-NFS則是SUN公司從UNIX工作站
的觀點出發,提供給MS-DOS或MS-Windows用戶的、用以實現UNIX的NFS客戶方的軟件,使PC機用戶共享UNIX的資源。
1.NetWare NFS
NetWare NFS是將UNIX系統透明地集成到NetWare 3.11環境之上。它可以使得NetWare服務器具有NFS服務器的功能。一旦安裝了NetWare NFS之後,享有NFS客戶服務的UNIX工作站就可以與NetWare上的DOS工作站一起共享服務器上的檔案資源。它提供有NFS、FTP等可裝載模組(NLM)爲UNIX客戶提供服務。NetWare NFS同時也在NetWare和UNIX之間提供雙向的打印網關以及與X/Window應用相交互,允許X客戶從遠程來管理NetWare服務器。其協議的體系結構如圖4。
@@T8S08903.GIF;圖4@@
NetWare NFS與其他UNIX系統一樣,需要使用TCP/IP作爲基本的支撐協議,並籍此完成NFS上的各種功能。它的特點是:
(1)使UNIX用戶訪問NetWare
利用NetWare NFS,UNIX客戶可以訪問並從NetWare服務器上安裝(mount)檔案系統,就如同它從一個典型的NFS服務器上所做的一樣。這使得UNIX用戶可以在保留了自身的操作系統優勢的同時,使用NetWare上的檔案。
(2)將NetWare環境與UNIX環境集成
NetWare NFS將網絡檔案系統的概念引入到NetWare的聯網環境中來,使得UNIX工作站可以與其它的NetWare客戶系統,例如,Macintosh、DOS、Windows以及OS/2共享檔案。FTP服務可以使TCP/IP客戶系統利用FTP協議從/向NetWare服務器傳送檔案。它提供了完整的打印集成:UNIX用戶可以利用NetWare打印機進行打印,而NetWare用戶也可以在TCP/IP網絡上可以訪問的打印機上進行打印。它同時使NetWare v 3.11成爲一個功能強大的UNIX工作組中NFS服務器。對於用戶輸入的操作命令,可以有很短的響應時間和較高的吞吐率。
(3)提供用X/Window來管理服務器
NetWare NFS提供XCONSOLE應用程序來使X/Window系統的用戶以及VT100/220終端用戶從遠程來管理NetWare v 3.11服務器。比如,可以從一個VT100/220終端或一個UNIX工作站執行X/Window,對NetWare服務器進行遠程配置和排除NetWare服務器的錯誤。
利用NetWare NFS,UNIX用戶在保持其原有系統的功能之外,還獲得了NetWare服務器優化技術所帶來的好處,如磁盤的高吞吐量、容錯技術及其安全措施等。另外,NetWare NFS還帶來了改進的工作組(Work group)的執行效率、資源共享和高效率的網絡管理。
總之,NetWare NFS提供給UNIX工作組以高性能的NFS服務器,同時NetWare操作系統又帶給UNIX用戶以良好的時間與空間的響應,從而極大地提高了系統的性能價格比。
are NFS Gateway
NetWare NFS Gateway所提供的功能與NetWare NFS相反,它是一個基於服務器連接的、使NetWare用戶可以訪問UNIX的方案。該產品可以讓DOS和Windows用戶方便地對UNIX上的檔案系統進行訪問,就象透明訪問NetWare服務器一樣。
Novell公司研製、開發NetWare NFS Gateway的目的,就是要給NetWare用戶一種訪問UNIX檔案的選擇。那些已經習慣於NetWare環境的PC機用戶們,可以使用這種網關來共享本地或者遠程UNIX系統上的'檔案。對於這些共享檔案的使用,就象操縱DOS或Windows的檔案一樣。透過NetWare NFS Gateway還可以使PC用戶共享UNIX上價格昂貴的海量存儲資源,如CD-ROM等。
NetWare NFS Gateway的安裝與集中的管理都是由服務器來完成的。TCP/IP主機地址、UNIX/NetWare記帳資訊都是在服務器上由域名字系統(Domain Name System, DNS)和網絡資訊服務(NIS)統一管理起來的。這種集中管理的好處在於可以使網絡管理員從服務器上安裝和管理系統,以及獲得正確的IP位址。也正是由於NFS的檔案存取是透過NetWare服務器來完成的,網絡用戶們因此可以得到NetWare保密機制的支援。
另外,NetWare NFS Gateway還提供了XCONSOLE應用程序,允許X/Window系統的用戶以及VT 100/220終端用戶遠程管理NetWare v 3.11服務器。
Novell公司的這兩種NFS產品,在基於NetWare網絡操作系統的基礎之上,分別從兩個方面解決了NetWare與UNIX之間的檔案共享、打印共享以及透明訪問等方面的問題。爲局域網與廣域網的互聯提供了一種可行的解決方案。
-NFS
透過使用PC-NFS,UNIX工作站的硬盤可以被當作爲PC機上的附加硬盤來使用。PC-NFS提供了TCP/IP的全部實現,包括FTP、Telnet和其它實用程序,同時還包括將DOS請求重定向至UNIX的能力。
PC-NFS可以支援以太網、令牌環、串行通信等通訊方式的連接。對於以太網的連接方式,可以把它安裝在其默認的一些網絡適配卡上,如3com的EtherLink系列的網卡、PC NIC及NI5010等。它同時還支援NDIS及ODI技術,這樣就使得PC-NFS對大多數的流行網卡都可以提供支援。而且,正是由於有了對ODI技術的支援,使得PC-NFS可以同時支援TCP/IP網絡和NetWare網絡,從而成爲連接這兩種當今廣泛使用的網絡的紐帶。
在安裝了PC-NFS之後,系統透過批檔案來使用Net Use命令,並以邏輯號,如(D:、E:)將UNIX的硬盤映射到PC機的本地上。PC-NFS還負責完成DOS與UNIX的文字格式轉換,以及在MS-DOS檔案名和NFS檔案名之間作出操作處理。
UNIX主機上的NFS和PC機上的PC-NFS提供了較強的聯網環境,PC從中可以利用UNIX工作站上的大容量存儲設備,並能在UNIX與DOS的應用程序之間共享數據資源。
當然,在使用PC-NFS時也有一些不足。比如,該軟件爲保證各機器之間的相容性而限制了它們之間的吞吐量,這就使得它的速度不及NetWare快,另外,當一個配有PC-NFS的PC機與非NFS服務器使用TCP/IP軟件進行通訊時,還有可能缺乏靈活性;裝配一個PC-NFS軟件可能會佔去PC機80-90K的內存空間,這對於空間狹小的PC機來說有時會成爲十分棘手的問題(在PC-NFS v 5.0中對該問題進行了改進,可以將PC-NFS的駐留程序裝入高端內存中)。
但是,PC-NFS所帶來的好處將遠遠超過這些不足,它實現了DOS用戶使用UNIX工作站的優良性能;同時還使得UNIX用戶能共享擁有豐富軟件資源的DOS系統。這樣,在一定程度上滿足了雙方用戶的要求。這種將PC機集成到使用NFS的UNIX主機上的作法,使人們在系統的性能與機器設備的價格之間找到了平衡。
在衆多的網絡系統中將重要的桌面計算機系統:DOS和UNIX連接在一起,共享數據與打印,相互協調地工作,這已成爲人們迫切需要解決的問題。UNIX上基上TCP/IP協議的NFS技術爲我們解決這個問題提供了一個可行的辦法。相信隨着UNIX與TCP/IP技術的不斷髮展,NFS技術也會不斷地得到完善,將會有更好的NFS產品出現,它將在以資源共享爲目的的網際互聯中發揮更大的作用。  

作者:曹勇