Andrew檔案系統

Andrew檔案系統(AFS)一個分散式網路檔案系統,其能夠使來自任何通過這個國家的 AFS 機器能夠在檔案一經在本地存儲就能訪問。 AFS 一個穩定的單元,其每個單元代表檔案空間中一個獨立的管理部分。單元連線在一起組成了一個在根 /afs 目錄下的一個龐大的 UNIX 檔案系統。

簡介

Andrew是由美國卡耐基-梅隆(Carnegie Mellon)大學和IBM公司聯合開發的一種分散式計算環境。 它的主要功能是用於管理分布在網路不同節點上的檔案,其能夠使來自任何通過這個國家的AFS機器能夠在檔案一經在本地存儲就能訪問。AFS是專為在大的分散式環境中提供可靠檔案服務而設計的。該系統創建了便於管理的帶有基於網孔結構的分散式環境。網孔是由特定機構管理的自治區域內檔案伺服器和客戶系統的集合。它通常代表某一組織的計算資源。用戶可以容易地與網孔內的其他用戶共享信息。根據其他網孔管理機構授予的訪問權,用戶還可以與這些單元格中的用戶共享信息。

特點

Andrew檔案系統的目標是要支持至少7000個工作站(Carnegie Mellon的學生、教員和職工每人一個),同時為用戶、應用程式和系統管理提供一種合適的已分享檔案系統。AFS 是一個穩定的單元,其每個單元代表檔案空間中一個獨立的管理部分。單元連線在一起組成了一個在根/afs 目錄下的一個龐大的 UNIX 檔案系統。與普通檔案系統相比,AFS的主要特點在於三個方面:分散式、跨平台、高安全性。
所謂分散式檔案系統,主要有兩方面的含義:其一、就是說AFS是一種採用分散式結構的檔案系統,與傳統的集中式的檔案系統相比,AFS的各個組件能夠分布在網路中的不同機器上,並通過一定的機制協同工作。它並不是簡單地C/S(客戶端/伺服器)結構,也並不象C/S結構的客戶端那樣僅為伺服器端提供接口,所有的功能都集中在伺服器端。AFS的各個組件都能夠獨立的完成某種功能,同時這些組件在一定的機制協調下,又形成一個完整的系統;分散式檔案系統的第二層含義是:AFS是一種能夠管理分散式檔案數據的檔案系統,它不但可以把分布在不同網路節點上的存儲資源組織成一個虛擬的存儲空間,而且能夠提供跨平台的檔案管理功能。
AFS的跨平台管理功能夠使用戶方便、高效地共享分布在區域網路或廣域網中的檔案。用戶並不需要考慮檔案保存在什麼地方,也不用考慮檔案保存在哪種作業系統上,AFS提供給用戶的只是一個完全透明的、永遠唯一的邏輯路徑,通過這個邏輯路徑,用戶就象面對一個檔案目錄一樣,這個目錄下的內容無論是在什麼地方訪問,都絕對的一致。因此,AFS的這種功能往往被用於用戶的home目錄,以使得用戶的home目錄唯一、而且避免了數據的不一致性。
AFS是一種高安全性的檔案系統。它通過鑒權資料庫與ACL的配合為用戶提供更高的安全性。用戶使用AFS,首先需要驗證身份,只有合法的AFS用戶才能夠訪問相應的CELL(一個CELL就相當於一個AFS獨立結構,該CELL具有AFS檔案系統的全部功能);其次,用戶還需要在保護資料庫中讀取相應的ACL列表,以確定他是否有權力讀寫某一個檔案。因此,AFS提供了更高於傳統UNIX系統的安全性能。
AFS的目錄結構是全球統一的。根據規定,AFS的前兩級目錄必須由“/afs/cellname”組成,其中,cellname可替換為不同單位的Cell名稱。我們已經定義了唯一的cell名:ihep. ac. cn,並建立了唯一的前兩級目錄:/afs/ihep. ac. cn/。因此,無論用戶從什麼地方去訪問/afs/ihep. ac. cn下的檔案,就等於連線到高能所的網路上,並訪問了高能所內部的資源。

AFS運行模式

.AFS採用C/S(Client/Server)的工作模式,Client傳送請求到Server提取檔案,Server Machine提供檔案給請求的Client。
當Client Machine上的某個Porcess第一次需要某個檔案資料時,Client Machine上的一個名叫Cache Manager的Process,便會負責找出存放有該檔案的Server(他會從CellServ配置檔案中找到 VLDB伺服器,在經由VLDB找到相應檔案存放的Server),使用RPC通信協定來取回檔案存儲於自己的Cache中,之後就可以直接讀寫於Cache中的資料了,這期間Cache Manager會適時的和Server Machine通信來更新資料,有了Cache Manager的幫助使得網路的負荷減輕,因為當我們讀寫一個在其他機器上的資料時,不再需要每次都經由網路去讀取,而由Cache Manage判斷在Cache的資料是否和Server Machine上所存的相同,若相同,就直接使用Cache上的資料,如此一來 節省了部分讀取檔案時所需要的傳送,更減少了原本Server上的磁碟I/O負荷。

NFS和AFS的區別

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

相關詞條

相關搜尋

熱門詞條

聯絡我們