您好,欢迎访问三七文档
1分散式系統分散式檔案系統2大綱•系統設計–檔案服務介面–目錄服務介面–命名通透–檔案共享•系統實作–檔案與目錄結構–服務形式3大綱•快取–快取機制–快取一致性•檔案複製–基本概念–複製方法•摘要4系統設計•分散式檔案系統的重點就是將各部電腦的儲存裝置整合在一起•分散式檔案系統架構中有兩個重要的概念–檔案服務(fileservice)–檔案伺服器(fileserver)•分散式檔案系統必須讓使用者感覺上是在使用傳統的集中式檔案系統•典型的分散式檔案系統服務可以分為兩部份–檔案服務–目錄服務5檔案系統•檔案系統的工作就是如何快速找出一個檔案的實際位置,以維護整個檔案目錄的架構。•檔案會有一些附加屬性:檔案的擁有者、檔案大小、建檔日期與取用權限等。•有些檔案服務能夠讓使用者可以自己更改或新增。•分散式檔案系統中保護檔案的作法與集中式檔案系統相同。都是使用存取控制清單(AccessControlList,ACL),每一個檔案都有一份清單,記錄所有可以使用檔此檔案的使用者。6•檔案是否可以被修改對於檔案系統設計的困難度影響也很大。修改檔案時必須備份以防止意外發生。•有些分散式檔案系統只提供建立新檔和讀取檔案兩種操作,設計上也比較簡單,通常也很容易支援檔案快取和檔案複製。7檔案服務介面•分散式檔案系統是使用存取控制清單來記錄所有可以使用此檔案的使用者•檔案服務可分為上兩類–傳/下載模式,系統只提供讀取檔案和寫入檔案–遠端存取模式,伺服端提供大量的檔案操作功能8上傳/下載模式示意圖檔案檔案當客戶端確定寫入檔案時,檔案才回傳給伺服端檔案傳到客戶端客戶端伺服端所有修改動作皆在客戶端完成9遠端存取模式示意圖檔案伺服端客戶端修改檔案是藉由大量的操作訊息通知伺服端,由伺服端代為完成10目錄服務介面•目錄服務介面主要是提供建立與刪除目錄、檔案命名與改名、檔案搬移等功能•集中式檔案系統中的目錄介面可在目錄下建立子目錄而形成樹狀結構•在分散式環境下檔案很可能分散在不同電腦上,所以分散式檔案系統的目錄結構又更為複雜11集中式檔案系統示意圖ABCDE伺服器12分散式檔案系統示意圖ABCDE12110伺服器A伺服器B計數器13目錄服務介面•是否要讓所有客戶端都看到相同的目錄結構是設計分散式目錄服務時一個重要議題•基本上有兩種做法–一種做法是讓客戶端看到相同的目錄結構–另一種做法是讓客戶端看到不同的目錄結構14分散式目錄服務示意圖檔案伺服器1客戶端1客戶端1(c)顯示不同的目錄結構ABCDEFGABCDEFGABCDEFGABCDEFGABCD客戶端2客戶端2EFG檔案伺服器2(a)兩部檔案伺服器(b)顯示相同的目錄結構根目錄根目錄根目錄根目錄15命名•命名是邏輯與實質物體間之對映•使用者所處理的是由檔案名稱所代表之理輯資料物體,而系統則是直接操作儲存於磁軌上的實質資料區段。•使用者通常以一個文字名稱來使用一個檔案。該文字名稱對映至一個低階的數值識別字,而識別字再對映至磁碟區段。此種多層次之對映提供使用者一種檔案抽象化概念,而將檔案實際上如何及在何處儲存之細節均隱藏起來。16命名通透性•命名通透性就是檔案的命名(包含路徑)是否會影響檔案系統的設計•分散式檔案系統中設計目錄結構有以下二種考量–位置通透性•檔案路徑並不會顯示出檔案伺服器的實際位置•檔案之命名不應洩漏該檔案實質儲存地點–位置獨立性•當檔案實際所在位置搬移時,不必更改檔案路徑也可以使用原本的檔案•當檔案實質儲存地點改變時,該檔案之名稱並不需要改變17命名通透性•在分散式檔案系統中實作檔案和目錄命名有三種常用的方法–掛載遠端檔案系統到本地端檔案目錄結構中NFS:NetworkFileSystem–電腦名稱加上路徑名稱:“/server/user/file1”,也就是「電腦名稱/路徑名稱」–系統將所有資源整合起來,使用統一的目錄結構,讓所有電腦看到的會是相同的目錄結構18檔案存取與保護•預防磁碟實體上的資料損毀–最常見的方法就是定期地備份整個檔案系統中的資料。•檔案存取權限的管制–對於檔案,讀取、寫入以及執行等使用權限的設定。19檔案存取•最常使用的檔案存取方法有下列三種:–循序存取•利用檔案指標從頭開始往後移動,便可循序讀取整個檔案內容。檔案結尾(endoffile)讀或寫檔案開頭(beginoffile)檔案指標(filepointer)20檔案存取(續)•檔案存取的方法–隨機存取•檔案由多個大小固定的區塊所組成,可直接將檔案指標移動到某個特定的區塊,並一次讀取整個區塊。區塊區塊區塊區塊區塊檔案指標檔案開頭檔案結尾21檔案存取(續)•檔案存取的方法–索引存取•針對檔案事先做好的索引結構來進行讀取。姓名指標王二李四張三編號性別年齡2476男1222存取權限•檔案系統會加以管制的幾種檔案存取權限:–讀取(Read)–寫入(Write)–執行(Execute)–擴展(Append)–刪除(Delete)–表列(List)•將一個檔案可能會進行的存取權限分門別類之後,便可以針對各個不同的存取作控管。23存取群組•減少存取的方式–讀取(Read)–修改(Write)–執行(Execute)•將使用者分類,同一類使用者擁有相同的存取權限。如Unix系列的作業系統分為:–擁有者(Owner)–群組(Group)–其他(Other)24存取群組(續)•檔案的存取控制列表索引檔案名稱檔案擁有者所屬團體其他使用者其他資訊檔案指標0view.gifRWXR-…1test.exeRWXRWR…2config.binRWXRWXRWX………n25檔案共享•集中式檔案系統中允許檔案共享,但需要能預防讀寫發生問題。並且利用檔案指標來達成•分散式檔案系統只要客戶端沒有檔案快取的機制、並且將檔案的操作都集中到同一部伺服器中處理,就可模擬成集中式檔案系統的操作方式•當檔案被多個客戶端同時進行修改時,檔案伺服器可以用資源的互斥機制作同步的控管,每一次只能有一個客戶端將修改的資料寫入磁碟。因此會導致延遲。26檔案共享•在分散式檔案系統中,對於檔案共享問題所提出的幾種解決方法–UNIX語意–Session語意(交談語意)–Immutable語意–不可分割交易27UNIX語意•UNIX系統中所採用的策略•檔案存取直接對應到磁碟實體儲存位置上–其他使用者可立即從實體區塊中看到修改後的結果•當共享檔案被某個使用者修改時,檔案系統設計上是以資源(Resource)的互斥(MutualExclusion)作為實際上的應用•檔案系統每次都只會有一個使用者將修改的資料寫入實體磁碟區•競爭情形下會導致延遲及不可預期的結果28Session語意(交談語意)•當共享檔案被某個使用者修改時,結果不會立即反應給其他的使用者,只有當該使用者將檔案關閉並重新開啟(完成一個Session後)才會反映該修改的結果•檔案存取對應到暫時的映像(image)–其他使用者不可立即從實體區塊中看到修改後的結果•問題–先將檔案資料回存的使用者可能會失去其所修改的結果(遭後者覆蓋)–沒對共享之檔案修改做任何保護動作29Immutable語意•檔案在被建立者宣告為共享後,任何使用者皆不可修改其中的內容•檔案的名稱亦不可被重複使用•這種語意在分散式系統中比較自然•分散式系統的檔案共享基本上就是只允許唯讀•但是允許檔案取代功能30•當有兩個客戶端同時要取代同一個檔案時•當一個客戶端要取代檔案,而這個檔案正被其他客戶端讀取–警告讀取的客戶端–乾脆不理,讓客戶端從快取中讀取直到問題發生為止31不可分割交易•該筆交易中不能被相關交易中斷•當客戶端要操作檔案時,會先已開始交易的訊息通知伺服器要利用不可分割交易的功能•接著是對檔案的一些讀取與寫入的操作。–完全執行完畢–完全不曾執行過32集中式檔案系統示意圖ABCdedefg行程1.寫入f2.寫入g3.讀取defg原始的檔案33分散式檔案系統示意圖defgA2.寫入defg客戶端1de檔案伺服器deB客戶端21.讀取de3.讀取de34系統實作•在實作分散式檔案系統時,必需考慮以下的問題–檔案目錄架構–服務形式–快取–檔案取代–檔案一致性35目錄結構•分割可分為–主要分割•存有作業系統及相關系統檔案供電腦啟動–延伸分割•可再細分為數個邏輯分割,主要是用來儲存使用者的檔案。•每個磁碟的分割都有裝置目錄或卷表–用來記錄此分割中的所有目錄及檔案資訊。36單層目錄•在一個分割中,使用者可以建立多個目錄,在每個目錄中也可以放置多個檔案,這樣利用目錄結構來儲存檔案,稱為單層目錄。分割bindevsbinbootetc檔案檔案檔案檔案檔案37雙層目錄•單層目錄結構未考慮到多使用者共用的檔案系統,故採用雙層目錄。分割/根目錄KevinTom檔案Frankbindevbindevbindev使用者目錄檔案檔案檔案檔案檔案38樹狀目錄•雙層目錄結構可視為簡單的樹狀結構,但缺乏使用上的彈性。•大多數的作業系統都是以樹狀目錄結構的檔案系統為基礎。•目錄中還可以再建立子目錄,子目錄與檔案也可以並存於同一個目錄中。•系統實作時需注意到:–檔案與目錄的區分,因為檔案與子目錄可以同時存在於同一個目錄之下。39樹狀目錄(續)分割/根目錄binhomebootetcMikeJasonDocssnmp檔案檔案檔案檔案檔案40非循環圖狀目錄•共用目錄–可以任意存在於檔案系統中。•利用符號鏈結(symboliclink)連結到共用目錄。•保護機制–當一個使用者讀取某個檔案時,必須將該檔案鎖定(Lock)。•必須定期搜尋檔案系統中的無效符號鏈結,然後將其刪除並回收磁碟空間。41非循環圖形目錄(續)分割/根目錄boothomeetcMikeJasonDocsutility檔案檔案檔案42一般圖狀目錄•最大問題–檔案搜尋時,必須判斷該目錄是否已經被搜尋過,以避免無窮迴圈。分割/根目錄binhomeetcMikeJasonutility檔案檔案檔案43目錄存取指令•在某些檔案系統中,目錄也是被當成一般檔案來處理,只是會另外加上一個可供分辨的特殊字元。•存取指令–搜尋–新增檔案–刪除檔案–更改檔名44目錄與檔案路徑•若所要存取的檔案不在同一層目錄中,就必須加上目錄路徑的參數。•目錄路徑可分為兩種–絕對路徑•從磁碟的分割代號(或根目錄)開始。–相對路徑•以現行目錄作為參考位置對所要指定目錄的相對位置。45目錄存取保護•為了安全性的考量–針對不同的使用者或是群組作存取權限上的控管。•目錄的存取保護實作上的問題–必須考慮是否也實作在其子目錄中。–若父目錄與子目錄設定不同,要如何取捨。46檔案系統掛載•一個檔案系統必須經過安裝才能開始運作。•作業系統中給予檔案系統一個名稱,以及連結上此檔案系統的掛載點(mountingpoint)。•透過之前所給予的掛載點,便可以讀取到其中的目錄結構。•掛載的檔案系統甚至可以是網路上其他電腦中的檔案系統。47檔案與目錄結構•解決檔案與目錄結構的有兩種做法–將檔案服務和目錄服務整合在一起,由單一個伺服器作檔案及目錄服務,所有使用者都與這個伺服器溝通–檔案服務與目錄服務分開在不同的伺服器,當有檔案操作的要求時,先跟提供目錄服務的伺服器查詢,再利用這個編號資料跟檔案伺服器溝通48檔案與目錄結構•系統如果是使用目錄服務與檔案服務分開的做法,系統可以有二種做法查詢的方式–反覆查詢的方式–主動查詢的方式•系統採用快取的機制,把最近查詢的檔案資訊儲存在快取中,之後如有對相同檔案的操作,即可馬上回應檔案資訊49反覆查詢方式示意圖客戶端/A//B//C/目錄伺服器查詢/A/B/C/g.txt回應/B/C/回應檔案資訊50主動查詢方式示意圖客戶端/A//B//C/目錄伺服器查詢/C/g.txt回應檔案資訊查詢/B/C/g.txt查詢/A/B/C/g.txt51服務形式•檔案服務可分為兩類–具備狀態服務–不具狀態服務52具備狀態服務•具備狀態檔案伺服器(statefulfileservice)從其磁碟中擷取一些關於檔案之資訊,將之儲存於其記憶體中,並交給用戶一個關聯的識別名稱,該名稱對
本文标题:分散式档案系统
链接地址:https://www.777doc.com/doc-872127 .html