歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

Linux的集群系統的文件系統介紹

本篇將為您講述集群系統文件系統,主要包括Coda,Global,xFS,MOSIX文件系統。集群計算的發展需要發展並升級文件系統,此文件系統不僅能夠對多個文件提供並行的訪問,而且能在對同一文件進行訪問的進程間提供cache一致性。大多數傳統的網絡文件系統如NFS、AFS、Coda對於並行處理而言是遠遠不夠的,因為它們都依賴中心文件服務器。但是,隨著越來越多的客戶的加入,服務器的cpu很快就成為了性能的瓶頸。為了解決這個問題,處理能力更強的服務器已經被制造了出來,而且文件系統的設計者們也試圖將更多的工作交給客戶來完成,但是即使是這樣,服務器的速度仍然是文件系統可升級性的瓶頸。新一代的文件系統如Global File System(GFS) 、XFS和 Frangipani 比較適合於集群系統。因為這些系統都在集群系統中的機器上分配存儲器、cache 和控制權,並且提供了並行文件訪問和cache一致性的解決方法。1. Coda文件系統Coda文件系統(Coda File System)適用於分布式網絡環境。它是在1987年在卡耐基梅隆大學以AFS2為原型開發出來的。Linux Virtual Server就采用了Coda文件系統。Coda提供了以下適用於網絡文件系統的特性。為移動的客戶提供了斷開操作。 它是一種自由軟件。 通過客戶訪問的持續緩存提供了高可用性。 服務器復制功能。 提供了認證的安全模型、加密和訪問控制。 部分網絡失效後能夠繼續工作。 具有網絡帶寬適應性。 較好的可擴展性。 即使在網絡失效時也為共享定義了良好的語法。 AFS和Coda文件系統都將所有的文件放於同一個目錄下,如AFS 是/afs,Coda是 /coda,這意味著所有的客戶都可以使用相同的配置,所有的用戶看到的是相同的文件樹。對於大的安裝而言這是非常重要的。對於NFS文件系統而言,客戶需要服務器的最新列表而在Coda中只需要找到根目錄/coda。當在客戶端敲入"cat /coda/tmp/foo"這樣的請求時,cat將調用系統調用向核心請求服務,核心首先找到對應的文件索引節點並返回與該文件相關的文件句柄。索引節點包含文件的一些相關信息,文件句柄用於打開文件。系統調用首先進入核心的虛擬文件系統(VFS),然後它將請求傳送給核心中的Coda文件系統模塊進行處理。Coda文件系統模塊包含著從VFS來的最近的一些請求,然後它將此請求交給Coda緩沖管理器venus進行處理。Venus通過察看硬盤緩沖區、向服務器發請求等方式來定位文件的所在地。如果在硬盤緩沖區中沒有找到匹配的文件,則通過遠程系統調用向服務器發請求,並且將取到的文件放在 cache中,這時,這個文件就是一個普通的文件了,因此可以通過本地文件系統對該文件進行讀寫的操作。如果在硬盤緩沖區找到了此文件,則可以直接使用這個文件。當對此文件進行了一定的修改並且關閉了以後,venus將把新文件傳送給服務器從而來更新服務器上的文件。其它的操作如修改文件系統,創建新目錄,刪除文件,去除符號鏈接等都可以傳送給服務器。但是由於網絡有時會出現問題,因此如何保證文件的連續性是一個非常重要的問題。當venus意識到服務器不可用時,它就將客戶端對文件的更新存儲在修改日志中,當服務器重新可用時,便根據修改日志對服務器上的相應的文件進行更新。2. Global 文件系統Global 文件系統(Global File System, GFS)允許多個Linux機器通過網絡共享存儲設備。每一台機器都可以將網絡共享磁盤看作是本地磁盤,而且GFS自己也以本地文件系統的形式出現。如果某台機器對某個文件執行了些操作,則後來訪問此文件的機器就會讀到寫以後的結果。GFS文件系統的使用示意圖如圖1所示。: 3. xFS文件系統xFS試圖通過將服務器的功能如保持cache的一致性、定位數據和處理磁盤請求分布在各個客戶上來提供對文件系統數據的低延遲、高帶寬的訪問。為了保持cache一致性,xFS采用了如下的方法。它將客戶方的所有的內存空間看為一個大的cache,這樣就減少了客戶方的數據緩存,利用了閒置機器的內存,這種合作型的緩存可以通過減少到達磁盤的請求量來降低讀延遲。為了將定位數據的功能分布到每個客戶端,xFS讓每個客戶都必須對文件的一個子集對應的請求進行處理。文件數據在多個客戶端加以分類從而提供更高的帶寬,這些分類數據包括一些奇偶信息,通過這些信息可以在機器失效時恢復分類的數據報。這種方法可以保證沒有任何節點會產生單點失效的情況。4. MOSIX文件系統MOSIX集群使用了自己的文件系統MFS文件系統。MFS將集群中的所有文件系統和目錄都看作是一個文件系統,而且它提供了對所有節點上的所有文件系統的統一訪問,它還通過只提供一個cache保證了cache的一致性。MFS包含了許多位於不同節點上的文件子樹,因此它就允許對多個文件進行並行操作和cache一致性。在MOSIX集群中進行進程遷移時,如果此進程主要占用的是CPU資源,則遷移此進程對於提供系統性能是非常有效的,但是如果此進程需要進行大量的I/O操作,則遷移進程非常不利。這是因為每個I/O操作都需要與該進程原來所處的節點進行通訊。因此MFS增加了對DFSA(Direct File System Acess)的支持。DFSA的目的就是讓那些需要進行大量I/O操作的進程遷移到遠端節點上,該遠端節點擁有大多數I/O操作將會涉及到的文件,因此大多數的I/O操作都能在遠端節點上完成,而且在遠端節點上可以通過本地訪問來訪問數據。如果一個系統調用是節點無關的,此系統調用就會在遠端節點上執行,否則就在本地執行。MFS比其它網絡文件系統優越的地方就是它允許使用本地文件系統,這樣就減少了進程和文件服務器之間的通訊開銷。




Copyright © Linux教程網 All Rights Reserved