天天看點

幹到底--三種存儲類型比較-檔案、塊、對象存儲

<a href="http://limu713.blog.163.com/blog/static/15086904201222024847744/">http://limu713.blog.163.com/blog/static/15086904201222024847744/</a>

<a href="http://www.dostor.com/article/2012-12-27/7887715.shtml">http://www.dostor.com/article/2012-12-27/7887715.shtml</a>

  塊存儲和檔案存儲是我們比較熟悉的兩種主流的存儲類型,而對象存儲(object-based storage)是一種新的網絡存儲架構,基于對象存儲技術的裝置就是對象儲存設備(object-based storage device)簡稱osd。

        首先,我們介紹這兩種傳統的存儲類型。通常來講,所有磁盤陣列都是基于block塊的模式,而所有的nas産品都是檔案級存儲。

1、塊存儲

        以下列出的兩種存儲方式都是塊存儲類型:

2、檔案存儲

        通常,nas産品都是檔案級存儲。  nas(network attached storage):是一套網絡儲存裝置,通常是直接連在網絡上并提供資料存取服務,一套 nas 儲存裝置就如同一個提供資料檔案服務的系統,特點是成本效益高。例如教育、政府、企業等資料存儲應用。

        它采用nfs或cifs指令集通路資料,以檔案為傳輸協定,通過tcp/ip實作網絡化存儲,可擴充性好、價格便宜、使用者易管理,如目前在叢集計算中應用較多的nfs檔案系統,但由于nas的協定開銷高、帶寬低、延遲大,不利于在高性能叢集中應用。

     下面,我們對das、nas、san三種技術進行比較和分析:

表格 1 三種技術的比較

幹到底--三種存儲類型比較-檔案、塊、對象存儲
幹到底--三種存儲類型比較-檔案、塊、對象存儲

        針對linux叢集對存儲系統高性能和資料共享的需求,國際上已開始研究全新的存儲架構和新型檔案系統,希望能有效結合san和nas系統的優點,支援直接通路磁盤以提高性能,通過共享的檔案和中繼資料以簡化管理,目前對象存儲系統已成為linux叢集系統高性能存儲系統的研究熱點,如panasas公司的object base storage cluster system系統和cluster file systems公司的lustre等。下面将詳細介紹對象存儲系統。

3、對象存儲

        總體上來講,對象存儲同兼具san高速直接通路磁盤特點及nas的分布式共享特點。

        核心是将資料通路(資料讀或寫)和控制通路(中繼資料)分離,并且基于對象儲存設備(object-based storage device,osd)建構存儲系統,每個對象儲存設備具有一定的智能,能夠自動管理其上的資料分布。

        對象存儲結構組成部分(對象、對象儲存設備、中繼資料伺服器、對象存儲系統的用戶端):

        3.1、對象

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

       3.2、對象儲存設備

        對象儲存設備具有一定的智能,它有自己的cpu、記憶體、網絡和磁盤系統,osd同塊裝置的不同不在于存儲媒體,而在于兩者提供的通路接口。osd的主要功能包括資料存儲和安全通路。目前國際上通常采用刀片式結構實作對象儲存設備。osd提供三個主要功能:

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

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

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

         3.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不一緻引發的問題。

       3.4、對象存儲系統的用戶端client

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

 4、glusterfs 和對象存儲

       glusterfs是目前做得最好的分布式存儲系統系統之一,而且已經開始商業化運作。但是,目前glusterfs3.2.5版本還不支援對象存儲。如果要實作海量存儲,那麼glusterfs需要用對象存儲。值得高興的是,glusterfs最近宣布要支援對象存儲。它使用openstack的對象存儲系統swift的上層put、get等接口,支援對象存儲。