天天看點

Linux 對象存儲檔案系統的研究

随着高性能計算由傳統的主機方式向網絡化叢集演變,傳統的基于主機的存儲架構已逐漸向網絡化存儲發展,計算和存儲分離的趨勢越來越明顯。針對 SAN 和 NAS 的不足,國際上已開展針對 Linux 叢集的新型檔案系統――對象存儲檔案系統的研究,本文重點論述了存儲對象檔案系統的架構、技術特點,并針對Lustre 對象存儲檔案系統進行了初步測試,結果表明對象存儲檔案系統在可擴充性、性能、易用性等方面都有顯著提高,随着網絡化存儲技術的不斷成熟,對象存儲檔案系統将成為重要的發展方向。

一、引言

高性能計算已由傳統的主機方式逐漸向叢集方式演變,如TOP500中,1998年隻有2台系統是叢集方式,而到2003年已有208台為叢集系統。随着高性能計算體系結構的發展變化,傳統的基于主機的存儲架構已成為新的瓶頸,不能滿足叢集系統的需求。叢集的存儲系統必須有效解決兩個主要問題:(1)提供共享通路資料,便于叢集應用程式的編寫和存儲的負載均衡;(2)提供高性能的存儲,在I/O級和資料吞吐率方面能滿足成百上千台規模的Linux叢集伺服器聚合通路的需求。目前,網絡化存儲已成為解決叢集系統高性能存儲的有效技術途徑。

國際上主要有兩類網絡化存儲架構,它們是通過指令集來區分的。第一類是SAN(Storage Area Network)結構,它采用SCSI 塊I/O的指令集,通過在磁盤或FC(Fiber Channel)級的資料通路提供高性能的随機I/O和資料吞吐率,它具有高帶寬、低延遲的優勢,在高性能計算中占有一席之地,如SGI的CXFS檔案系統就是基于SAN實作高性能檔案存儲的,但是由于SAN系統的價格較高,且可擴充性較差,已不能滿足成千上萬個CPU規模的系統。第二類是NAS(Network Attached Storage)結構,它采用NFS或CIFS指令集通路資料,以檔案為傳輸協定,通過TCP/IP實作網絡化存儲,可擴充性好、價格便宜、使用者易管理,如目前在叢集計算中應用較多的NFS檔案系統,但由于NAS的協定開銷高、帶寬低、延遲大,不利于在高性能叢集中應用。

針對Linux叢集對存儲系統高性能和資料共享的需求,國外已開始研究全新的存儲架構和新型檔案系統,希望能有效結合SAN和NAS系統的優點,支援直接通路磁盤以提高性能,通過共享的檔案和中繼資料以簡化管理,目前對象存儲檔案系統已成為Linux叢集系統高性能檔案系統的研究熱點,如Cluster File Systems公司的Lustre、Panasas公司的ActiveScale檔案系統等。Lustre檔案系統采用基于對象存儲技術,它來源于卡耐基梅隆大學的Coda項目研究工作,2003年12月釋出了Lustre 1.0版,預計在2005年将釋出2.0版。Lustre在美國能源部(U.S.Department of Energy:DOE)、Lawrence Livermore 國家實驗室,Los Alamos國家實驗室,Sandia 國家實驗室,Pacific Northwest國家實驗室的高性能計算系統中已得到了初步的應用,IBM正在研制的Blue Gene系統也将采用Lustre檔案系統實作其高性能存儲。ActiveScale檔案系統技術來源于卡耐基梅隆大學的Dr. Garth Gibson,最早是由DARPA支援的NASD(Network Attached Secure Disks)項目,目前已是業界比較有影響力的對象存儲檔案系統,榮獲了ComputerWorld 2004年創新技術獎。

回頁首

二、對象存儲檔案系統

2.1 對象存儲檔案系統架構

對象存儲檔案系統的核心是将資料通路(資料讀或寫)和控制通路(中繼資料)分離,并且基于對象儲存設備(Object-based Storage Device,OSD)建構存儲系統,每個對象儲存設備具有一定的智能,能夠自動管理其上的資料分布,對象存儲檔案系統通常有以下幾部分組成。

1、對象

對象是系統中資料存儲的基本機關,一個對象實際上就是檔案的資料和一組屬性的組合,這些屬性可以定義基于檔案的RAID參數、資料分布和服務品質等,而傳統的存儲系統中用檔案或塊作為基本的存儲機關,在塊存儲系統中還需要始終追蹤系統中每個塊的屬性,對象通過與存儲系統通信維護自己的屬性。在儲存設備中,所有對象都有一個對象辨別,通過對象辨別OSD指令通路該對象。通常有多種類型的對象,儲存設備上的根對象辨別儲存設備和該裝置的各種屬性,組對象是儲存設備上共享資源管理政策的對象集合等。

2、對象儲存設備

對象儲存設備具有一定的智能,它有自己的CPU、記憶體、網絡和磁盤系統,目前國際上通常采用刀片式結構實作對象儲存設備。OSD提供三個主要功能:

(1) 資料存儲。OSD管理對象資料,并将它們放置在标準的磁盤系統上,OSD不提供塊接口通路方式,Client請求資料時用對象ID、偏移進行資料讀寫。

(2) 智能分布。OSD用其自身的CPU和記憶體優化資料分布,并支援資料的預取。由于OSD可以智能地支援對象的預取,進而可以優化磁盤的性能。

(3) 每個對象中繼資料的管理。OSD管理存儲在其上對象的中繼資料,該中繼資料與傳統的inode中繼資料相似,通常包括對象的資料塊和對象的長度。而在傳統的NAS系統中,這些中繼資料是由檔案伺服器維護的,對象存儲架構将系統中主要的中繼資料管理工作由OSD來完成,降低了Client的開銷。

3、中繼資料伺服器(Metadata Server,MDS)

MDS控制Client與OSD對象的互動,主要提供以下幾個功能:

(1) 對象存儲通路。MDS構造、管理描述每個檔案分布的視圖,允許Client直接通路對象。MDS為Client提供通路該檔案所含對象的能力,OSD在接收到每個請求時将先驗證該能力,然後才可以通路。

(2) 檔案和目錄通路管理。MDS在存儲系統上建構一個檔案結構,包括限額控制、目錄和檔案的建立和删除、通路控制等。

(3) Client Cache一緻性。為了提高Client性能,在對象存儲檔案系統設計時通常支援Client方的Cache。由于引入Client方的Cache,帶來了Cache一緻性問題,MDS支援基于Client的檔案Cache,當Cache的檔案發生改變時,将通知Client重新整理Cache,進而防止Cache不一緻引發的問題。

4、對象存儲檔案系統的Client

為了有效支援Client支援通路OSD上的對象,需要在計算結點實作對象存儲檔案系統的Client,通常提供POSIX檔案系統接口,允許應用程式像執行标準的檔案系統操作一樣。

2.2 對象存儲檔案系統的關鍵技術

1、分布中繼資料 傳統的存儲結構中繼資料伺服器通常提供兩個主要功能。(1)為計算結點提供一個存儲資料的邏輯視圖(Virtual File System,VFS層),檔案名清單及目錄結構。(2)組織實體存儲媒體的資料分布(inode層)。對象存儲結構将存儲資料的邏輯視圖與實體視圖分開,并将負載分布,避免中繼資料伺服器引起的瓶頸(如NAS系統)。中繼資料的VFS部分通常是中繼資料伺服器的10%的負載,剩下的90%工作(inode部分)是在存儲媒體塊的資料實體分布上完成的。在對象存儲結構,inode工作分布到每個智能化的OSD,每個OSD負責管理資料分布和檢索,這樣90%的中繼資料管理工作分布到智能的儲存設備,進而提高了系統中繼資料管理的性能。另外,分布的中繼資料管理,在增加更多的OSD到系統中時,可以同時增加中繼資料的性能和系統存儲容量。

2、并發資料通路 對象存儲體系結構定義了一個新的、更加智能化的磁盤接口OSD。OSD是與網絡連接配接的裝置,它自身包含存儲媒體,如磁盤或錄音帶,并具有足夠的智能可以管理本地存儲的資料。計算結點直接與OSD通信,通路它存儲的資料,由于OSD具有智能,是以不需要檔案伺服器的介入。如果将檔案系統的資料分布在多個OSD上,則聚合I/O速率和資料吞吐率将線性增長,對絕大多數Linux叢集應用來說,持續的I/O聚合帶寬和吞吐率對較多數目的計算結點是非常重要的。對象存儲結構提供的性能是目前其它存儲結構難以達到的,如ActiveScale對象存儲檔案系統的帶寬可以達到10GB/s。

2.3 Lustre對象存儲檔案系統

Lustre對象存儲檔案系統就是由用戶端(client)、存儲伺服器(OST,Object Storage Target)和中繼資料伺服器(MDS)三個主要部分組成。Lustre的用戶端運作Lustre檔案系統,它和OST進行檔案資料I/O的互動,和MDS進行命名空間操作的互動。為了提高Lustre檔案系統的性能,通常Client、OST和MDS是分離,當然這些子系統也可以運作在同一個系統中。其三個主要部分如圖1所示.

圖1 Lustre檔案系統的組成

Linux 對象存儲檔案系統的研究

Lustre是一個透明的全局檔案系統,用戶端可以透明地通路叢集檔案系統中的資料,而無需知道這些資料的實際存儲位置。用戶端通過網絡讀取伺服器上的資料,存儲伺服器負責實際檔案系統的讀寫操作以及儲存設備的連接配接,中繼資料伺服器負責檔案系統目錄結構、檔案權限和檔案的擴充屬性以及維護整個檔案系統的資料一緻性和響應用戶端的請求。 Lustre把檔案當作由中繼資料伺服器定位的對象,中繼資料伺服器指導實際的檔案I/O請求到存儲伺服器,存儲伺服器管理在基于對象的磁盤組上的實體存儲。由于采用中繼資料和存儲資料相分離的技術,可以充分分離計算和存儲資源,使得用戶端計算機可以專注于使用者和應用程式的請求;存儲伺服器和中繼資料伺服器專注于讀、傳輸和寫資料。存儲伺服器端的資料備份和存儲配置以及存儲伺服器擴充等操作不會影響到用戶端,存儲伺服器和中繼資料伺服器均不會成為性能瓶頸。

Lustre的全局命名空間為檔案系統的所有用戶端提供了一個有效的全局唯一的目錄樹,并将資料條塊化,再把資料配置設定到各個存儲伺服器上,提供了比傳統SAN的"塊共享"更為靈活的共享通路方式。全局目錄樹消除了在用戶端的配置資訊,并且在配置資訊更新時仍然保持有效。

回頁首

三、測試和結論

1、Lustre iozone測試

針對對象存儲檔案系統,我們對Lustre檔案系統作了初步測試,具體配置如下: 

3台雙至強系統:CPU:1.7GHz,記憶體:1GB,千兆位以太網 

Lustre檔案系統:lustre-1.0.2 

Linux版本:RedHat 8 

測試程式:iozone 

測試結果如下:

塊寫(MB/s/thread) 單線程 兩個線程
Lustre 1個OST 2個OST 1個OST 2個OST
21.7 50 12.8 24.8
NFS 12 5.8

從以上的測試表明,單一OST的寫帶寬比NFS好,2個OST的擴充性很好,顯示strip的效果,兩個線程的聚合帶寬基本等于飽和帶寬,但lustre客戶方的CPU使用率非常高(90%以上),測試系統的規模(三個節點)受限,是以沒有向上擴充OST和client數量。另外,lustre的cache對檔案寫的性能提升比NFS好。通過bonnie++初步測試了lustre的中繼資料處理能力,和NFS比,檔案建立速度相對快一些,readdir速度慢。

2、lustre小規模測試資料

(檔案寫測試,機關KB/s):

硬體:Dual Xeon1.7,GigE, SCSI Ultra160 軟體:RedHat8,iozone

圖2 2個OST / 1個MDS

Linux 對象存儲檔案系統的研究

圖3 1個OST/1個MDS

Linux 對象存儲檔案系統的研究

圖4 NFS測試

Linux 對象存儲檔案系統的研究

從初步的測試看,lustre的性能和可擴充性都不錯。與傳統的檔案系統相比,對象存儲檔案系統具有以下優勢:

(1)性能。對象存儲體系結構沒有其它共享存儲系統中的中繼資料管理器瓶頸。NAS系統使用一個集中的檔案伺服器作為中繼資料管理器,一些SAN檔案系統則采用集中的鎖管理器,最後中繼資料管理将成為一個瓶頸。對象存儲體系結構類似于SAN,每個結點都可以直接通路它的儲存設備。對象存儲體系結構對SAN的改進是沒有RAID控制器的瓶頸問題,當計算結點的規模增大時,該優勢将非常明顯,所有結點的總吞吐率最後将受限于存儲系統的規模和網絡的性能。存儲對象結點發送資料到OSD,OSD自動優化資料的分布,這樣減少了計算結點的負擔,并允許向多個OSD并行讀寫,最大化單個Client的吞吐率。

(2)可擴充性。将負載分布到多個智能的OSD,并用網絡和軟體将它們有機結合起來,消除了可擴充問題。一個對象存儲系統有記憶體、處理器、磁盤系統等,允許它們增加其存儲處理能力而與系統其它部分無關。如果對象存儲系統沒有足夠的存儲處理能力,可以增加OSD,確定線性增加性能。

(3)OSD分擔主要的中繼資料服務任務。中繼資料管理能力通常是共享存儲系統的瓶頸,所有計算結點和存儲結點都需要通路它。在對象存儲結構中,中繼資料服務有兩部分組成:inode中繼資料,管理媒體上的存儲塊分布;檔案中繼資料,管理檔案系統的檔案層次結構和目錄。對象存儲結構增加了中繼資料通路的可擴充,OSD負責自己的inode中繼資料,增加一個OSD可以增加磁盤容量,并可以增加中繼資料管理資源。而傳統的NAS伺服器增加更多的磁盤,則性能将更慢。對象存儲系統在容量擴充時,確定持續的吞吐率。

(4)易管理。智能化的分布對象存儲結構可以簡化存儲管理任務,可以簡化資料優化分布的任務。例如,新增存儲容量可以自動合并到存儲系統中,因為OSD可以接受來自計算結點發出的對象請求。系統管理者不需要建立LUN,不需要重新調整分區,不需要重新平衡邏輯卷,不需要更新檔案伺服器等。RAID塊可自動擴充到新的對象,充分利用新增的OSD。

(5)安全。傳統的存儲系統通常依賴于Client的身份認證和私有的網絡確定系統安全。對象存儲結構在每個級别都提供安全功能,主要包括儲存設備的身份認證,計算結點的身份認證,計算結點指令的身份認證,所有指令的完整性檢查,基于IPSec的私有資料和指令等。這些安全級别可以確定使用者使用更高效、更易獲得的網絡,如以太網等。 目前panasas已經推出了商業化的對象存儲全局檔案系統ActiveScale,對象存儲正在被重視,Lustre也已經在(ALC、MCR)或将(RedStorm)在多個大規模叢集上應用,因而對象存儲檔案系統将成為未來叢集存儲的重要發展方向。

回頁首

四、緻謝

本文的測試工作得到了并行檔案系統研究小組的大力支援,特别是周恩強、董勇、林松濤、陳四建為本文提供了詳實的資料,特此表示感謝。

參考資料

  • Garth Gibson, "Scaling File Service Up and Out", USENIX FAST 2004
  • "Object Storage Architecture", Panasas White Paper
  • Peter J. Braam, "The Lustre Storage Architecture", Cluster File System, 2004
  • David Nagle, Denis Serenyi, Abbie Matthews, "The Panasas ActiveScale Storage Cluster-Delivering Scalable High Bandwidth Storage", SC2004
  • Philip Schwan, "Lustre: Building a File System for 1,000-node Clusters", OLS 2003
  • http://www.panasas.com 
  • http://www.clusterfs.com 

繼續閱讀