分布式文件系統
分布式文件系統(Distributed File System)是指文件系統管理的物理存儲資源不一定直接連接在本地節點上,而是通過計算機網絡與節點相連。分布式文件系統的設計基于客戶機/服務器模式。一個典型的網絡可能包括多個供多用戶訪問的服務器。另外,對等特性允許一些系統扮演客戶機和服務器的雙重角色。例如,用戶可以“發表”一個允許其他客戶機訪問的目錄,一旦被訪問,這個目錄對客戶機來說就象使用本地驅動器一樣,下面是三個基本的分布式文件系統。
網絡文件系統
(NFS) 最早由Sun微系統公司作為TCP/IP網上的文件共享系統開發。Sun公司估計現在大約有超過310萬個系統在運行NFS,大到大型計算機、小至PC機,其中至少有80%的系統是非Sun平臺。
Andrew文件系統
(AFS) 結構與NFS相似,由卡內基·梅隆大學信息技術中心(ITC)開發、現由前ITC職員組成的Transarc公司負責開發和銷售。AFS較NFS有所增強。
分布式文件系統
(DFS) 是AFS的一個版本,作為開放軟件基金會(OSF)的分布式計算環境(DCE)中的文件系統部分。
如果文件的訪問僅限于一個用戶,那么分布式文件系統就很容易實現。可惜的是,在許多網絡環境中這種限制是不現實的,必須采取并發控制來實現文件的多用戶訪問,表現為如下幾個形式:
只讀共享 任何客戶機只能訪問文件,而不能修改它,這實現起來很簡單。
受控寫操作 采用這種方法,可有多個用戶打開一個文件,但只有一個用戶進行寫修改。而該用戶所作的修改并不一定出現在其它已打開此文件的用戶的屏幕上。
并發寫操作 這種方法允許多個用戶同時讀寫一個文件。但這需要操作系統作大量的監控工作以防止文件重寫,并保證用戶能夠看到最新信息。這種方法即使實現得很好,許多環境中的處理要求和網絡通信量也可能使它變得不可接受。
NFS和AFS的區別
NFS和AFS的區別在于對并發寫操作的處理方法上。當一個客戶機向服務器請求一個文件(或數據庫記錄),文件被放在客戶工作站的高速緩存中,若另一個用戶也請求同一文件,則它也會被放入那個客戶工作站的高速緩存中。當兩個客戶都對文件進行修改時,從技術上而言就存在著該文件的三個版本(每個客戶機一個,再加上服務器上的一個)。有兩種方法可以在這些版本之間保持同步:
無狀態系統 在這個系統中,服務器并不保存其客戶機正在緩存的文件的信息。因此,客戶機必須協同服務器定期檢查是否有其他客戶改變了自己正在緩存的文件。這種方法在大的環境中會產生額外的LAN通信開銷,但對小型LAN來說,這是一種令人滿意的方法。NFS就是個無狀態系統。
回呼(Callback)系統 在這種方法中,服務器記錄它的那些客戶機的所作所為,并保留它們正在緩存的文件信息。服務器在一個客戶機改變了一個文件時使用一種叫回叫應答(ca11backpromise)的技術通知其它客戶機。這種方法減少了大量網絡通信。AFS(及OSFDCE的DFS)就是回叫系統。客戶機改變文件時,持有這些文件拷貝的其它客戶機就被回叫并通知這些改變。
無狀態操作在運行性能上有其長處,但AFS通過保證不會被回叫應答充斥也達到了這一點。方法是在一定時間后取消回叫。客戶機檢查回叫應答中的時間期限以保證回叫應答是當前有效的。回叫應答的另一個有趣的特征是向用戶保證了文件的當前有效性。換句話說,若一個被緩存的文件有一個回叫應答,則客戶機就認為文件是當前有效的,除非服務器呼叫指出服務器上的該文件已改變了。
Network File System
(NFS)網絡文件系統
NFS是個分布式的客戶機/服務器文件系統。NFS的實質在于用戶間計算機的共享。用戶可以聯結到共享計算機并象訪問本地硬盤一樣訪問共享計算機上的文件。管理員可以建立遠程系統上文件的訪問,以至于用戶感覺不到他們是在訪問遠程文件。
NFS是個到處可用和廣泛實現的開放式系統。
NFS最初的設計目標
允許用戶象訪問本地文件一樣訪問其他系統上的文件。提供對無盤工作站的支持以降低網絡開銷。
簡化應用程序對遠程文件的訪問使得不需要因訪問這些文件而調用特殊的過程。
使用一次一個服務請求以使系統能從已崩潰的服務器或工作站上恢復。
采用安全措施保護文件免遭偷竊與破壞。
使NFS協議可移植和簡單,以便它們能在許多不同計算機上實現,包括低檔的PC機。
大型計算機、小型計算機和文件服務器運行NFS時,都為多個用戶提供了一個文件存儲區。工作站只需要運行TCP/IP協議來訪問這些系統和位于NFS存儲區內的文件。工作站上的NFS通常由TCP/IP軟件支持。對DOS用戶,一個遠程NFS文件存儲區看起來是另一個磁盤驅動器盤符。對Macintosh用戶,遠程NFS文件存儲區就是一個圖標。
NFS的客戶機和服務器部分的功能
服務器目錄共享 服務器廣播或通知正在共享的目錄,一個共享目錄通常叫做出版或出口目錄。有關共享目錄和誰可訪問它們的信息放在一個文件中,由操作系統啟動時讀取。
客戶機訪問 在共享目錄上建立一種鏈接和訪問文件的過程叫做裝聯(mounting),用戶將網絡用作一條通信鏈路來訪問遠程文件系統。
NFS的一個重要組成是虛擬文件系統(VFS),它是應用程序與低層文件系統間的接口。
VFS提供的一些操作
- close文件關閉操作
- create 文件生成操作
- fsync將改變保存到文件中
- getattr 取文件屬性
- link 用另一個名字訪問一個文件
- lookup 讀目錄項
- mkdir建立新目錄
- open 文件打開操作
- rdwr 文件讀寫操作
- remove 刪除一個文件
- rename 文件改名
- rmdir刪除一目錄
- setattr 設置文件屬性
Andrew File System(AFS)Andrew文件系統(AFS)
AFS是專門為在大型分布式環境中提供可靠的文件服務而設計的。它通過基于單元的結構生成一種可管理的分布式環境。一個單元是某個獨立區域中文件服務器和客戶機系統的集合,這個獨立區域由特定的機構管理。通常代表一個組織的計算資源。用戶可以和同一單元中其他用戶方便地共享信息,他們也可以和其他單元內的用戶共享信息,這取決于那些單元中的機構所授予的訪問權限。
AFS服務器運行進程
文件服務器進程 這個進程響應客戶工作站對文件服務的請求,維護目錄結構,監控文件和目錄狀態信息,檢查用戶的訪問。
基本監察(BOS)服務器進程 這個進程運行于有BOS設定的服務器。它監控和管理運行其他服務的進程并可自動重啟服務器進程,而不需人工幫助。
卷宗服務器進程 此進程處理與卷宗有關的文件系統操作,如卷宗生成、移動、復制、備份和恢復。
卷宗定位服務器進程 該進程提供了對文件卷宗的位置透明性。即使卷宗被移動了,用戶也能訪問它而不需要知道卷宗移動了。
鑒別服務器進程 此進程通過授權和相互鑒別提供網絡安全性。用一個“鑒別服務器”維護一個存有口令和加密密鑰的鑒別數據庫,此系統是基于Kerberos的。
保護服務器進程 此進程基于一個保護數據庫中的訪問信息,使用戶和組獲得對文件服務的訪問權。
更新服務器進程 此進程將AFS的更新和任何配置文件傳播到所有AFS服務器。
AFS還配有一套用于差錯處理,系統備份和AFS分布式文件系統管理的實用工具程序。例如,SCOUT定期探查和收集AFS文件服務器的信息。信息在給定格式的屏幕上提供給管理員。設置多種閾值向管理者報告一些將發生的問題,如磁盤空間將用完等。另一個工具是USS,可創建基于帶有字段常量模板的用戶帳戶。Ubik提供數據庫復制和同步服務。一個復制的數據庫是一個其信息放于多個位置的系統以便于本地用戶更方便地訪問這些數據信息。同步機制保證所有數據庫的信息是一致的。