NetWare與UNIX的互聯方法與實現

才智咖 人氣:2.26W
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產品出現,它將在以資源共享為目的的網際互聯中發揮更大的作用。  

作者:曹勇