Linux的叢集系統的檔案系統介紹

來源:互聯網
上載者:User

 

本篇將為您講述叢集系統檔案系統,主要包括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比其它網路檔案系統優越的地方就是它允許使用本地檔案系統,這樣就減少了進程和檔案伺服器之間的通訊開銷。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.