230 likes | 425 Views
Operating System Principles 作業系統原理 CHAPTER 15 分散式檔案系統. 著者 ABRAHAM SILBERSCHATZ Yale University PETER BAER GALVIN Corporate Technologies GREG GAGNE Westminster College 譯者 駱詩軒 駱詩富 鄧俊修 投影片編撰 鄧有光. CHAPTER 15 分散式檔案系統 Distributed File System. 15.1 背景 15.2 命名與透明性 15.3 遠程檔案存取
E N D
Operating System Principles作業系統原理CHAPTER 15 分散式檔案系統 著者 ABRAHAM SILBERSCHATZ Yale University PETER BAER GALVIN Corporate Technologies GREG GAGNE Westminster College 譯者 駱詩軒 駱詩富 鄧俊修 投影片編撰 鄧有光
CHAPTER 15 分散式檔案系統 Distributed File System 15.1 背景 15.2 命名與透明性 15.3 遠程檔案存取 15.4 具備狀態對不具狀態之服務 15.5 範例研究:AFS
15.1 背景 (Back Ground) • 分散式檔案系統 (Distributed File system, DFS)為典型分時式檔案系統模型之分散式製作,在典型之檔案系統中,多位使用者共用檔案及儲存裝置資源。而DFS之目的是在檔案實際上散佈於一個分散式系統的各個不同的站之間時,支援與典型相同種類之共用方式。 • 服務(service)是指在一個以上的機器上執行之軟體實體並且對先前未知之用戶提供某一特殊種類的功能。 • 伺服器(server)是指在單一機器上執行之服務軟體。 • 用戶 • (client)是指使用形成用戶介面(client interface)的一組運作來呼叫某項服務的一個行程。 • 有時候,為了達成實際上機器間的交互作用,便定義了一組低階之介面,而必要時,此介面便稱為機器間介面(intermachine interface)。 • 在DFS檔案系統中,用戶、伺服器及儲存裝置均散佈於分散式系統之各機器間。
理想情況下,DFS應被用戶視為一個傳統之集中式檔案系統。其伺服器及儲存裝置之多重性及分散性應該做成透明的。亦即DFS之用戶介面對局部及遠程檔應一視同仁。理想情況下,DFS應被用戶視為一個傳統之集中式檔案系統。其伺服器及儲存裝置之多重性及分散性應該做成透明的。亦即DFS之用戶介面對局部及遠程檔應一視同仁。 • DFS最重要的性能量測指的是滿足各種服務要求所需之時間。在傳統系統中,包括磁碟存取時間及少許 CPU處理時間。不過在 DFS中,由於分散式結構,包括將要求傳送給伺服器所需時間以及越過網路將回應傳回給用戶所需時間。 • DFS管理一組散佈的儲存裝置是DFS最主要顯著的特色。由DFS管理之整體儲存空間是由相異的、遠程的、且小型的儲存空間所組成。通常在這些儲存空間及檔案組織間皆有聯繫。我們使用元件單元 (component unit)來表示最小集合之檔案,該檔案可儲存於單一機器上,而與其它單元無關。所有屬於相同元件單元之檔案必須存在於相同位置內。
15.2 命名與透明性(naming and Transparency) • 命名是邏輯與實質物體間之對映。例如,使用者所處理的是由檔案名稱所代表之理輯資料物體,而系統則是直接操作儲存於磁軌上的實質資料區段。使用者通常以一個文字名稱來參用一個檔案。該文字名稱對映至一個低階的數值識別字,而識別字再對映至磁碟區段。此種多層次之對映提供使用者一種檔案抽象化概念,而將檔案實際上如何及在何處儲存之細節均隱藏起來。 • 在透明的DFS中,一個新的特色加入該抽象概念中:將檔案存在網路中何處之細節隱藏起來。在傳統之檔案系統中,命名對映之範圍是在磁碟中之位址。在DFS中,該範圍加入了檔案儲存在那個特定機器之磁碟上的資料。將此觀念更進一步推廣,導致檔案複製 (file replication)的可能性。給定一個檔案名稱,封映便會回應一組該檔案複製之所在,而在此抽象觀念之下,複製檔案之存在及其所在位置均被隱藏起來。
15.2.1 命名結構 • 在 DFS關於命名對映,有兩個概念需要分清楚: • 地點透明性 (location transparency):檔案之命名不應洩漏該檔案實質儲存地點。 • 地點獨立性 (location independence):當檔案實質儲存地點改變時,該檔案之名稱 並不需要改變。
區分地點獨立性及靜態地點透明性: • 地點獨立性所展示的,將資料與地點分離,檔案名稱應代表檔案最重要之特性(例如其內容),而非代表其地點。地點獨立 性之檔案可被視為邏輯性資料容器,該容器並未附屬於某一特定之儲存地點。若僅支援靜態透明性,則檔案名稱仍然表示一個特定及隱藏的實質磁碟區段的 集合。 • 靜態地點透明性提供使用者一個便利之方式去共用資料。使用者藉著以地點透明之方式共用遠程的檔案,就如同該檔案是局部性的。然而,共用儲存空間是很累贅的,因為邏輯名稱仍靜態地附屬於實質儲存裝置。地點獨立將之提升為共用磁碟本身空間,以及共用資料物體。當檔案具移動性時,系統整體的儲存空間就像是單一之虛擬資源。此種觀點之一項好處是能平衡系統間磁碟之使用率。 • 地點獨立性將命名階層性與儲存裝置階層性及電腦間結構性分離。機器以類似於命名結構之方式組成。如此可能會不必要地限制了系統之架構並且與其它考慮相衝突。負責根目錄之伺服器即為此結構之一個範例,該結構被命名階層性所控制並且違反了非集中式之原則。
15.2.2 命名之方法 • 在DFS中命名之方法主要有三種。 • 在最簡單的方法中,檔案以其主機名稱及局部機器名稱之組合來命名,可保證在整體系統中具有獨一無二之名稱。例如在Ibis中檔案即獨一無二地以 host: local-name,的名稱形式來區分,其local name,為如同UNIX路徑。此命名法既非地點透明的,亦非地點獨立的。然而,對局部的及遠程的檔案可使用相同的檔案運作。 • 第二種方法,是由Sun的Network File System, NFS;NFS是 ONC+的檔案系統部份,而ONC+則是許多UNIX廠商所提供的網路套裝軟體。NFS提供將遠程目錄附屬於局部目錄之下的方法,因此提供目錄樹一致的外觀。 • 第三種方法可達成元件檔案系統之完全整合。一個單獨之全體性命名結構擴張至系統中所有的檔案。理想狀況下,組合之檔案系統結構應該與傳統之檔案系統具有相同形式。不過,在實際上有很多特殊的檔案 (例如UNIX的裝置檔案及機器特定的二進位式檔案)使這項目標難以達成。
15.2.3 實作技巧 • 透明的命名實作需要提供檔案名稱至其對應地點的對映。要保持這項對映易於處理,便需要將檔案集合聚集成為元件單元,並以元件單元為基礎來提供此項對映。此聚集動作亦為管理目的之一UNIX式之系統使用階層式的目錄樹來提供名稱至地點之對映,並且將檔案遞迴地聚集成目錄。 • 為了提升重要的對映資訊之便利性,我們可以使用一些像是複製 (replication)或是局部快取 (local caching)之方法。前面我們已注意到地點獨立意味著對映隨時間而改變;因此無法達到複製對映並且能簡單一致地更新其資訊。一個解決此種障礙的技術是引進低階的地拈獨立檔案識別字 (location-independent- file identifiers)。
15.3 遠程檔案存取 • 考慮一個使用者要求存取遠程檔案。假設存取該檔案的伺服器是用命名方法所指定,則傳遞的資料必須真正地發生。完成此傳遞的一種方法是經由遠程服務機制 (remote-service mechanism),存取的要求被送到伺服器,伺服機器執行此存取動作,然後再把結果傳回給使用者。製作遠程服務時最常見的一種方法是遠程程序呼叫(remote procedure call, RPC)
15.3.1 基本快取方法 • 快取之觀念很簡單。若存取要求所需之資料尚未放入快取記憶體中,便從伺服器中取出一份該資料送至使用者。使用者便在快取記憶體內之備份上進行存取。此構想是將最近所存取之磁碟區段保存在快取記憶體中,使得對相同資訊之重複存取可就地處理而不用增加網路交通負荷。替換法則(比方說LRU)可用來使快取記憶體容量固定在一範圍之內。 • 當修改快取記憶體內之複製檔案時,其改變應當反應至主檔中以保持相關之一致性語意,此問題便是快取一致性問題(cache--consistency problem) • DFS之快取記憶體亦可被稱為網路虛擬記憶體 (network virtual memory):因其方法與需求分頁的虛擬記憶體類似,除了其備份儲存體為遠程伺服器而非磁碟這點不同之外,別無相異。
15.3.2 快取位置 • 快取式資料應該被儲存在哪裏呢?在磁碟上或在主記憶體內?磁碟快取記憶體有一項較主記憶體快取為佳的優點-可靠性。若將快取資料放在消逝性/揮發性記憶體內,則資料的更動可能會因意外狀況而遺失,若將之儲存於磁碟內便不會有此問題。但在另一方面,主記憶體之快取其有下述優點: • 主記憶體之快取可達到無磁碟工作站的境界。 • 資料可快速從主記憶體內取得。 • 目前科技之趨勢是朝向大型及廉價的記憶體發展,所達成之性能的提升預料會遠超過於磁碟快取的優點。 • 伺服器快取 (加速磁碟I/O所用之方法)必位於主記憶體中,而不論使用者快取位於何處;藉著在使用者機器上亦使用主記憶體快取,我們可以建立為伺 服器及使用者共同所採用之單一快取機構。
15.3.3 快取更新之策略 • 最簡單的策略便是一旦資料放入快取記憶體後,便將之伴隨寫入磁碟之內。伴隨寫入的策略 (write-through policy)為其可靠性。當用戶系統損毀時,僅有少數資訊漏失掉。不過,此項策略要求每次做寫入動作時均需等到資訊送至伺服器後才算完成,因而導致性能大減。故具伴隨寫入之快取相當於使用遠程服務的寫入動作以及其正利用到快取的讀取動作。 • 另一項寫入之策略是延遲寫入策略 (delayed-write policy)又稱寫回快取 (write-back caching)對主檔的更新動作,亦即對快取記憶體進行寫入之後,在一段時間之後才將之寫回伺服器。此策略與伴隨寫入相較之下,有兩個優點。 • 第一,因為是對快取記憶體進行寫入,故動作完成之速度相當快。 • 第二,資料在寫回伺服器之前,資料可能再度被改寫,如此一來先前的寫入動作便不必被寫回伺服器了。不幸的是,延遲寫入方式引起了可靠性的問題,因為只要使用者機器損毀時,未寫入的資料便會遺失。
對於擁有cachefs的NFS而言,寫入時同時寫入到區域磁碟的快取區域和伺服器,以確保所有的拷貝內容一致。所以擁有cacheES的NFFS在讀取要求時,如果擊中cachefs的快取區時,其性能比標準的NFS改進許多,但是如果沒有擊中快取區時,讀取或寫入要求的性能就降低了。就如同快取記憶體,有較高的快取擊中率以獲得較好的性能是很重要的。對於擁有cachefs的NFS而言,寫入時同時寫入到區域磁碟的快取區域和伺服器,以確保所有的拷貝內容一致。所以擁有cacheES的NFFS在讀取要求時,如果擊中cachefs的快取區時,其性能比標準的NFS改進許多,但是如果沒有擊中快取區時,讀取或寫入要求的性能就降低了。就如同快取記憶體,有較高的快取擊中率以獲得較好的性能是很重要的。
15.3.4 一致性 • 用戶發起方式 (client-initiated approach):由用戶發起一項時效性的檢驗,由用戶與伺服器連結來檢查局部之資料是否與主檔一致。檢查時效性之頻率為此方式中最關鍵之處,它對一致性的語意其有決定性的因素。 • 伺服器發起方式(server-initiated approach):伺服器記錄每個用戶所快取檔案之全部或部份內容。當伺服器偵測到有潛伏的不一致性因素發生時,必須立即反應。當一個檔案由兩個處於相互抵觸模式之不同用戶所快取時,便發生了不一致性的潛伏危機。
15.3.5 快取與遠程服務之比較 • 當使用快取時,局部的快取記憶體可以有效地處理大量的遠程存取。利用檔案 存取分佈圖中的局部性 (locality),更是快取吸引人之處。因此,大部份的遠程存取速度就如同局部存取一樣快。再者,伺服器偶甫才會去接觸到,而不用每次存取都找上伺服器,因此伺服器負載與網路交通負荷均降低了,規模性之潛力亦得以提升。相對而言,當使用遠程服務方法時,每項遠程存取均透過網 路來處理,明顯地造成網路交通擁擠,伺服器負荷增加,以及性能降低。 • 轉移大塊資料 (有如用快取服務)全部網路負擔比轉移特定要求 (如遠程服務方法)序列回應來得低。再者,如果已知要求常常是較大、連續分段的資料,而非隨機的磁碟區段,伺服器上磁碟存取常式便可以以更好的最佳化方式完成。
快取之主要缺點為快取一致性問題。若存取分佈圖標示出很少進行寫入動作, 則快取的性能便非常優越。不過當經常進行寫入動作時,用來克服一致性問題 的機構均會對性能、網路交通及伺服器負載造成浪費。 • 要從快取得到好處,就必須在具備局部的磁碟或大量主記憶體的機器上執行程式。而在無磁碟、記憶體容量少的機器進行遠程存取,應該使用遠程服務方法來完成。 • 在快取方法中,資料一次大量地在伺服器與用戶間傳送,而非針對一個檔案運作的特別需要來傳送,因此低階的機器間介面與高階的使用者介面相異極大。相反地,遠程服務方法不過是將局部檔案系統延伸至網路間,因而機器間之介面與局部使用者檔案系統介面相似。
15.4 具備狀態對不具狀態之服務 • (stateful/stateless file service) • 具備狀態檔案伺服器(stateful file service) 從其磁碟中擷取一些關於檔案之資訊,將之儲存於其記憶體中,並交給用戶一個關聯的識別名稱,該名稱對用戶及開啟檔案而言均是獨有的一項具備狀態服務之特徵為於一個會議期間,用戶與伺服器間之關聯性質。在關閉檔案時或藉由廢置空間回收 (garbage-collection)機構,伺服器便可再取回用戶不再使用之主記憶體空間。在具備狀態服務之方法中,開於用戶之資訊保存在伺服器的主記憶體中,此方式即為容錯之主要重點所在。AFS是一個具備狀態的檔案服務。 • 不具狀態檔案伺服器 (stateless file service)藉著提出獨立的要求來避免此項狀態資訊。亦即在每項要求中指定檔案及完整地指明所要求檔案中之位置。伺服器並不需要在主記憶體中保存一個已開啟檔案的表格,但通常為提高效率均會如此做。再者,並不需要藉著用啟及向摩運作來建立或終止一項連接,因為每項檔案運作均獨立完成且非會議之一部份,故開啟或關閉運作完全是多餘的。由讀取及寫入動作來取代遠程訊息 (或取代快取記憶體之查尋)。用戶最後的關閉動作也僅屬於局部之運作。NFS是一個不具備狀態的檔案服務。 • 具備狀態服務優於不具備狀態服務為性能之提升。
15.5 範例研究: Andrew File Sytem • AFS是一種在 Carnegie Mellon大學開始發展之分散式電腦環境。AFS構成在該環境的用戶間資訊共用機構。Transarc公司接手AFS的發展,然後被 IBM收購。IBM因此生產了一些AFS的商用成品。接下來AFS被選擇做為工業聯盟的DFS,其產品就叫做transarc DFS: Transarc DFS是OSF機構所製定之分散計算環境 (DCE)的一部份。 • 它擁有一致的命名空間,與位置無開的檔案分享,保持快取一致性的客戶端快取,和經由Kerberos的安全驗證。它也包含複製格式的伺服器端快取,如果來源伺服器無法取得時就自動切換到複製區以獲得高取得率。 • AFS最大的特色之一即為規模性 (scalability)。AFS系統的目標是擴張到5,000個工作站以上。
15.5.1 總論 • AFS會區別用戶機器(工作站)與專屬之伺服器機器(server machines)之差別。原先伺服器和客戶只在4.2BSD的UNIX上執行,但是AFS已經移植到許多作業系統上。伺服器和用戶均以LANS或 WANS互相連接。 • 用戶移動性(client mobility) • 安全性(security) • 保護(Protection) • 異質性 (heterogeneity)
15.5.2 共用命名空間 • AFS'之共用命名空間是由稱為卷冊 (volume)之組成單元所構成。AFS'之卷冊是很小之組成單元。附屬於單一用戶之檔案。很少有卷冊是居於單一磁碟分割之內的,它們可能會變大(達到額定空間)亦可能縮小。藉由一類似於UNIX架設機構之機構而聚在一起。
15.5.3 檔案運作和一致性語意 • 在AFS中基本的架構,原則是從伺服器之整個檔案的快取。因此,一個用戶之工作站與Vice伺服器只有在檔案開啟與關閉時交互作用,而且此作用亦非時常必要的。沒有任何遠程之交互作用是由讀取或寫入檔案引起的(和遠程服務方法大不相同)。此主要之差別對性能及檔案運作語意均有深遠之影響。 • AFS實作會議語意, 僅有之例外情況是檔案運作而非基本之讀寫基本運作(例如在目錄層次之保護改星),在運作完成後可立即在網路各處看到。雖然有回收機制,仍然存在一小部份之快取驗證交通負荷,通常用來取代由於機器或網路錯誤所造成的回收損失。當重新啟動一個工作站時Venus會懷疑所有快取之檔案及目錄,而對第一次使用之每個項目產生一個快取驗證要求。
15.5.4 製 作 • 藉著一組常用之系統呼叫,用戶行程便得以與UNIX核心做出介面。核心稍做修改便可偵測出對Vice檔案在相關連作中之參用並且將要求送至工作站上用戶層次之Venus行程。 • AFS是一個有豐富特性的DFS,它有位置獨立和位置透明的特性。它也加入一致性的語法。快取和複製則被用來改進其性能。