分散式檔案系統

相對於本機端的檔案系統而言,分散式檔案系統(英語:Distributed file system, DFS),或是網路檔案系統(英語:Network File System),是一種允許檔案透過網路在多台主機上分享的檔案系統,可讓多機器上的多使用者分享檔案和儲存空間。

在這樣的檔案系統中,客戶端並非直接存取底層的資料儲存區塊,而是透過網路,以特定的通訊協定和伺服器溝通。藉由通訊協定的設計,可以讓客戶端和伺服器端都能根據存取控制清單或是授權,來限制對於檔案系統的存取。

相對地,在一個分享的磁碟檔案系統中,所有節點對資料儲存區塊都有相同的存取權,在這樣的系統中,存取權限就必須由客戶端程式來控制。

分散式檔案系統可能包含的功能有:透通的資料複製英語replication (computer science)容錯。也就是說,即使系統中有一小部份的節點離線,整體來說系統仍然可以持續運作而不會有資料損失英語data loss

分散式檔案系統和分散式資料儲存的界線是模糊的,但一般來說,分散式檔案系統是被設計用在區域網路[1],比較強調的是傳統檔案系統概念的延伸,並透過軟體方法來達成容錯。而分散式資料儲存,則是泛指應用分散式運算技術的檔案和資料庫等提供資料儲存服務的系統。

歷史

第一個檔案伺服器在1970年代被發展出來。在1976年迪吉多公司設計出File Access Listener英語File Access Listener(FAL)做為第二代DECnet英語DECnet的一部分。這個系統實作了Data Access Protocol,是第一個被廣為使用的網路檔案系統。在1985年昇陽電腦建立了網路檔案系統(Network File System,NFS),這是第一個基於網際協議(Internet Protocol)而被廣泛使用的網路檔案系統。在相關技術的演進過程中,其他值得一提的網路檔案系統還有安德魯檔案系統(AFS)、Apple Filing Protocol(AFP)、NetWare核心協定(NCP)、和一般被稱為網路文件共享系統(CIFS)的伺服器訊息區塊(Server Message Block,SMB)等。

透通性

分散式檔案系統通常都內建有透通性,讓實際上是透過網路來存取檔案的動作,由程式與使用者看來,就像是存取本地的磁碟一般。伺服器與儲存裝置之間的架構多樣性與分離性,因此被隱藏了起來。而定位檔案在系統中的位置與資料傳輸的機制,就有賴網路檔案系統的設計了。

效能

一個普遍用來量測網路檔案系統效能的方式是:它需要用多少時間來完成服務請求?在傳統的系統中,完成請求所需要的時間包括了實際的硬碟存取時間,和一小部份的中央處理器處理時間。但在一個網路檔案系統中,由於分散式架構的關係,遠端存取動作會產生額外的經常性負擔英語Overhead,包括:把請求從客戶端送到伺服器端的時間、把回應從伺服器端傳回客戶端的時間、以及這兩個傳輸過程中用來執行網路傳輸協定的中央處理處時間。一個網路檔案系統的效能,可被視為是評估它透通性的一個維度,拿來與本地磁碟進行充分的對比。

同時更新檔案

當多個使用者或客戶端同時存取並更新同一個檔案的時候,並發控制即會成為一個議題。一個客戶端對於檔案的更新,應該不能干涉另一個客戶端對該檔案的存取與更新。並發控制或鎖定機制可以內建在檔案系統中,或是透過擴增協定來提供。

CAP定理

著名的CAP定理指出:在一個分散式資料儲存架構中,資料的一致性(Consistency)、可用性(Availability)、和網路分隔的容忍程度(Partition tolerance)只能取二來做最佳化,無法三者兼具。當代的分散式資料儲存服務均是各自針對服務的內容和性質來作取捨,很難說有哪一個是通用的最佳解。

參見

參考文件

  1. ^ Silberschatz, Galvin (1994). Operating System concepts, chapter 17 Distributed file systems. Addison-Wesley Publishing Company. ISBN 0-201-59292-4.

外部連結