分散式文件系統

通過計算機網路與節點相連的系統

分散式文件系統(Distributed File System)是指文件系統管理的物理存儲資源不一定直接連接在本地節點上,而是通過計算機網路與節點相連。分散式文件系統的設計基於客戶機/伺服器模式。一個典型的網路可能包括多個供多用戶訪問的伺服器。另外,對等特性允許一些系統扮演客戶機和伺服器的雙重角色。例如,用戶可以“發表”一個允許其他客戶機訪問的目錄,一旦被訪問,這個目錄對客戶機來說就像使用本地驅動器一樣,下面是三個基本的分散式文件系統。

內容簡介


DistributedFileSystems(分散式文件系統)分散式文件系統的設計基於客戶機/伺服器模式。一個典型的網路可能包括多個供多用戶訪問的伺服器。另外,對等特性允許一些系統扮演客戶機和伺服器的雙重角色。例如,用戶可以“發表”一個允許其他客戶機訪問的目錄,一旦被訪問,這個目錄對客戶機來說就像使用本地驅動器一樣。
分散式文件系統
分散式文件系統

分類介紹


網路文件系統
(NFS) 最早由Sun微系統公司作為TCP/IP網上的文件共享系統開發。Sun公司估計現在大約有超過310萬個系統在運行NFS,大到大型計算機、小至PC機,其中至少有80%的系統是非Sun平台。
Andrew文件系統
(AFS) 結構與NFS相似,由卡內基·梅隆大學信息技術中心(ITC)開發、現由前ITC職員組成的Transarc公司負責開發和銷售。AFS較NFS有所增強。
分散式文件系統
(DFS) 是AFS的一個版本,作為開放軟體基金會(OSF)的分散式計算環境(DCE)中的文件系統部分。
如果文件的訪問僅限於一個用戶,那麼分散式文件系統就很容易實現。可惜的是,在許多網路環境中這種限制是不現實的,必須採取併發控制來實現文件的多用戶訪問,表現為如下幾個形式:
只讀共享 任何客戶機只能訪問文件,而不能修改它,這實現起來很簡單。
受控寫操作 採用這種方法,可有多個用戶打開一個文件,但只有一個用戶進行寫修改。而該用戶所作的修改並不一定出現在其它已打開此文件的用戶的屏幕上。
併發寫操作 這種方法允許多個用戶同時讀寫一個文件。但這需要操作系統作大量的監控工作以防止文件重寫,並保證用戶能夠看到最新信息。這種方法即使實現得很好,許多環境中的處理要求和網路通信量也可能使它變得不可接受。

區別介紹


NFS和AFS的區別在於對併發寫操作的處理方法上。當一個客戶機向伺服器請求一個文件(或資料庫記錄),文件被放在客戶工作站的高速緩存中,若另一個用戶也請求同一文件,則它也會被放入那個客戶工作站的高速緩存中。當兩個客戶都對文件進行修改時,從技術上而言就存在著該文件的三個版本(每個客戶機一個,再加上伺服器上的一個)。有兩種方法可以在這些版本之間保持同步:
無狀態系統 在這個系統中,伺服器並不保存其客戶機正在緩存的文件的信息。因此,客戶機必須協同伺服器定期檢查是否有其他客戶改變了自己正在緩存的文件。這種方法在大的環境中會產生額外的LAN通信開銷,但對小型LAN來說,這是一種令人滿意的方法。NFS就是個無狀態系統。
回呼(Callback)系統 在這種方法中,伺服器記錄它的那些客戶機的所作所為,並保留它們正在緩存的文件信息。伺服器在一個客戶機改變了一個文件時使用一種叫回叫應答(ca11backpromise)的技術通知其它客戶機。這種方法減少了大量網路通信。AFS(及OSFDCE的DFS)就是回叫系統。客戶機改變文件時,持有這些文件拷貝的其它客戶機就被回叫並通知這些改變。無狀態操作在運行性能上有其長處,但AFS通過保證不會被回叫應答充斥也達到了這一點。方法是在一定時間后取消回叫。客戶機檢查回叫應答中的時間期限以保證回叫應答是當前有效的。回叫應答的另一個有趣的特徵是向用戶保證了文件的當前有效性。換句話說,若一個被緩存的文件有一個回叫應答,則客戶機就認為文件是當前有效的,除非伺服器呼叫指出伺服器上的該文件已改變了。

網路系統


(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是專門為在大型分散式環境中提供可靠的文件服務而設計的。它通過基於單元的結構生成一種可管理的分散式環境。一個單元是某個獨立區域中文件伺服器和客戶機系統的集合,這個獨立區域由特定的機構管理。通常代表一個組織的計算資源。用戶可以和同一單元中其他用戶方便地共享信息,他們也可以和其他單元內的用戶共享信息,這取決於那些單元中的機構所授予的訪問許可權。

運行進程


文件伺服器進程 這個進程響應客戶工作站對文件服務的請求,維護目錄結構,監控文件和目錄狀態信息,檢查用戶的訪問。基本監察(BOS)伺服器進程 這個進程運行於有BOS設定的伺服器。它監控和管理運行其他服務的進程並可自動重啟伺服器進程,而不需人工幫助。卷宗伺服器進程 此進程處理與卷宗有關的文件系統操作,如卷宗生成、移動、複製、備份和恢復。卷宗定位伺服器進程 該進程提供了對文件卷宗的位置透明性。即使卷宗被移動了,用戶也能訪問它而不需要知道卷宗移動了。鑒別伺服器進程 此進程通過授權和相互鑒別提供網路安全性。用一個“鑒別伺服器”維護一個存有口令和加密密鑰的鑒別資料庫,此系統是基於Kerberos的。保護伺服器進程 此進程基於一個保護資料庫中的訪問信息,使用戶和組獲得對文件服務的訪問權。更新伺服器進程 此進程將AFS的更新和任何配置文件傳播到所有AFS伺服器。 AFS還配有一套用於差錯處理,系統備份和AFS分散式文件系統管理的實用工具程序。例如,SCOUT定期探查和收集AFS文件伺服器的信息。信息在給定格式的屏幕上提供給管理員。設置多種閾值向管理者報告一些將發生的問題,如磁碟空間將用完等。另一個工具是USS,可創建基於帶有欄位常量模板的用戶帳戶。Ubik提供資料庫複製和同步服務。一個複製的資料庫是一個其信息放於多個位置的系統以便於本地用戶更方便地訪問這些數據信息。同步機制保證所有資料庫的信息是一致的

系統架構


分散式文件系統的設計基於客戶機/伺服器模式。一個典型的網路可能包括多個供多用戶訪問的伺服器。另外,對等特性允許一些系統扮演客戶機和伺服器的雙重角色。例如,用戶可以“發表”一個允許其他客戶機訪問的目錄,一旦被訪問,這個目錄對客戶機來說就象使用本地驅動器一樣,下面是三個基本的分散式文件系統。
網路文件系統(NFS) 最早由Sun微系統公司作為TCP/IP網上的文件共享系統開發。Sun公司估計現在大約有超過310萬個系統在運行NFS,大到大型計算機、小至PC機,其中至少有80%的系統是非Sun平台。
Andrew文件系統(AFS) 結構與NFS相似,由卡內基·梅隆大學信息技術中心(ITC)開發、現由前ITC職員組成的Transarc公司負責開發和銷售。AFS較NFS有所增強。分散式文件系統(DFS) 是AFS的一個版本,作為開放軟體基金會(OSF)的分散式計算環境(DCE)中的文件系統部分。

訪問方法


在大多數環境中,共享資源駐留在多台伺服器上的各個共享文件夾中。要訪問資源,用戶或程序必須將驅動器映射到共享資源的伺服器,或指定共享資源的通用命名約定 (UNC) 路徑。例如:
\\伺服器名\共享名
\\伺服器名\共享名\路徑\文件名
通過 DFS(分散式文件系統),一台伺服器上的某個共享點能夠作為駐留在其他伺服器上的共享資源的宿主。DFS 以透明方式鏈接文件伺服器和共享文件夾,然後將其映射到單個層次結構,以便可以從一個位置對其進行訪問,而實際上數據卻分佈在不同的位置。用戶不必再轉至網路上的多個位置以查找所需的信息,而只需連接到:
\\DfsServer\Dfsroot
用戶在訪問此共享中的文件夾時將被重定向到包含共享資源的網路位置。這樣,用戶只需知道 DFS 根目錄共享即可訪問整個企業的共享資源。
DFS拓撲從 DFS 樹的根目錄開始。位於邏輯層次結構頂部的 DFS 根目錄映射到一個物理共享。DFS 鏈接將域名系統 (DNS) 名稱映射到目標共享文件夾或目標 DFS 根目錄的 UNC 名稱。當 DFS 客戶端訪問 DFS 共享文件夾時,DFS 伺服器將 DNS 名稱映射到 UNC 名稱並將引用返回給該客戶端,以使它能夠找到共享文件夾。將 DNS 名稱映射到 UNC 名稱使數據的物理位置對用戶是透明的,這樣用戶便無須記住存儲文件夾的伺服器。當 DFS 客戶端請求 DFS 共享的引用時,DFS 伺服器將使用分區情況表 (PKT) 將 DFS 客戶端定向到物理共享。對於基於域的 DFS,PKT 存儲在 Active Directory 中;對於獨立的 DFS,PKT 存儲在註冊表中。在網路環境中,PKT 維護有關 DFS 拓撲的所有信息,包括其到基礎物理共享的映射。DFS 伺服器將 DFS 客戶端定向到與請求的 DFS 鏈接相對應的副本共享列表后,DFS 客戶端使用 Active Directory 站點拓撲連接到同一站點中的一個副本,如果該站點中沒有提供副本,則連接到該站點以外的一個副本。