有數據的存儲方式

文件存儲、塊存儲與對象存儲的異同【轉】

 
  分類: 技術博客
首先感謝原作者:http://limu713.blog.163.com/blog/static/15086904201222024847744/

塊存儲和文件存儲是我們比較熟悉的兩種主流的存儲類型,而對象存儲(Object-based Storage)是一種新的網絡存儲架構,基於對象存儲技術的設備就是對象存儲設備(Object-based Storage Device)簡稱OSD。

        首先,我們介紹這兩種傳統的存儲類型。通常來講,所有磁盤陣列都是基於Block塊的模式,而所有的NAS產品都是文件級存儲。

1、塊存儲

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

        1) DAS(Direct Attach STorage):是直接連接於主機服務器的一種儲存方式,每一臺主機服務器有獨立的儲存設備,每臺主機服務器的儲存設備無法互通,需要跨主機存取資料時,必須經過相對複雜的設定,若主機服務器分屬不同的操作系統,要存取彼此的資料,更是複雜,有些系統甚至不能存取。通常用在單一網絡環境下且數據交換量不大,性能要求不高的環境下,可以說是一種應用較爲早的技術實現。

        2)SAN(Storage Area Network):是一種用高速(光纖)網絡聯接專業主機服務器的一種儲存方式,此係統會位於主機羣的後端,它使用高速I/O 聯結方式, 如 SCSI, ESCON 及 Fibre- Channels。一般而言,SAN應用在對網絡速度要求高、對數據的可靠性和安全性要求高、對數據共享的性能要求高的應用環境中,特點是代價高,性能好。例如電信、銀行的大數據量關鍵應用。它採用SCSI 塊I/O的命令集,通過在磁盤或FC(Fiber Channel)級的數據訪問提供高性能的隨機I/O和數據吞吐率,它具有高帶寬、低延遲的優勢,在高性能計算中佔有一席之地,但是由於SAN系統的價格較高,且可擴展性較差,已不能滿足成千上萬個CPU規模的系統。

2、文件存儲

        通常,NAS產品都是文件級存儲。  NAS(Network Attached Storage):是一套網絡儲存設備,通常是直接連在網絡上並提供資料存取服務,一套 NAS 儲存設備就如同一個提供數據文件服務的系統,特點是性價比高。例如教育、政府、企業等數據存儲應用。

        它採用NFS或CIFS命令集訪問數據,以文件爲傳輸協議,通過TCP/IP實現網絡化存儲,可擴展性好、價格便宜、用戶易管理,如目前在集羣計算中應用較多的NFS文件系統,但由於NAS的協議開銷高、帶寬低、延遲大,不利於在高性能集羣中應用。

     下面,我們對DAS、NAS、SAN三種技術進行比較和分析:

表格 1 三種技術的比較

三種存儲類型比較-文件、塊、對象存儲 - 笨笨blog - 亮麗

三種存儲類型比較-文件、塊、對象存儲 - 笨笨blog - 亮麗

針對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等接口,支持對象存儲。


發佈了22 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章