什麼是對象存儲?OSD架構及原理

什麼是對象存儲(OSD)?

存儲局域網(SAN)和網絡附加存儲(NAS)是我們比較熟悉的兩種主流網絡存儲架構,而對象存儲(Object-based Storage)是一種新的網絡存儲架構,基於對象存儲技術的設備就是對象存儲設備(Object-based Storage Device)簡稱OSD。

 

對象存儲的發展歷史:

1999年成立的全球網絡存儲工業協會(SNIA)的對象存儲設備(Object Storage Device)工作組發佈了ANSI的X3T10標準。

 

對象存儲的優點:

總體上來講,對象存儲同兼具SAN高速直接訪問磁盤特點及NAS的分佈式共享特點。

 

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的協議開銷高、帶寬低、延遲大,不利於在高性能集羣中應用。

 

對象存儲結構

核心是將數據通路(數據讀或寫)和控制通路(元數據)分離,並且基於對象存儲設備(Object-based Storage Device,OSD)構建存儲系統,每個對象存儲設備具有一定的智能,能夠自動管理其上的數據分佈。

對象存儲結構組成部分(對象、對象存儲設備、元數據服務器、對象存儲系統的客戶端):

 

對象存儲架構
對象存儲架構

1、對象

 

對象是系統中數據存儲的基本單位,一個對象實際上就是文件的數據和一組屬性信息(Meta Data)的組合,這些屬性信息可以定義基於文件的RAID參數、數據分佈和服務質量等,而傳統的存儲系統中用文件或塊作爲基本的存儲單位,在塊存儲系統中還需要始終追蹤系統中每個塊的屬性,對象通過與存儲系統通信維護自己的屬性。在存儲設備中,所有對象都有一個對象標識,通過對象標識OSD命令訪問該對象。通常有多種類型的對象,存儲設備上的根對象標識存儲設備和該設備的各種屬性,組對象是存儲設備上共享資源管理策略的對象集合等。

 

對象的層次關係理解
對象的層次關係理解(圖片來源SNIA)

Figure 3: Image showing that object contains data, OID, metadata, and attributes.

對象的組成(圖形來源Oracle)

 

2、對象存儲設備

 

對象存儲設備具有一定的智能,它有自己的CPU、內存、網絡和磁盤系統,OSD同塊設備的不同不在於存儲介質,而在於兩者提供的訪問接口。OSD的主要功能包括數據存儲和安全訪問。目前國際上通常採用刀片式結構實現對象存儲設備。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文件系統接口,允許應用程序像執行標準的文件系統操作一樣。

 

對象存儲文件系統的關鍵技術

 

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。


轉自:http://www.huawei.com/ecommunity/bbs/10175529.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章