對象存儲系統組成
對象(Object)
包含了檔案數據以及相關的屬性信息,可以進行自我管理
OSD (Object-based Storage Device)
一個智慧型設備,是Object的集合
檔案系統
檔案系統運行在客戶端上,將應用程式的檔案系統請求傳輸到MDS和OSD上
元數據伺服器(Metadata Server,MDS)
系統提供元數據、Cache一致性等服務
網路連線
1. 對象(Object)
對象存儲的基本單元。每個Object是數據和數據屬性集的綜合體。數據屬性可以根據套用的需求進行設定,包括數據分布、服務質量等。在傳統的存儲中,塊設備要記錄每個存儲數據塊在設備上的位置。Object維護自己的屬性,從而簡化了存儲系統的管理任務,增加了靈活性。Object的大小可以不同,可以包含整個數據結構,如檔案、資料庫表項等。
2、OSD(Object-based Storage Device)
每個OSD都是一個智慧型設備,具有自己的存儲介質、處理器、記憶體以及網路系統等,負責管理本地的Object,是對象存儲系統的核心。OSD同塊設備的不同不在於存儲介質,而在於兩者提供的訪問接口。
OSD的主要功能
數據存儲和安全訪問
OSD使用Object對所保存的數據進行管理。它將數據存放到磁碟的磁軌和扇區,將若干磁軌和扇區組合起來構成Object,並且通過此Object向外界提供對數據的訪問。每個Object同傳統的檔案相似,使用同檔案類似的訪問接口,包括Open、Read、Write等。但是兩者並不相同,每個Object可能包括若干個檔案,也可能是某個檔案的一部分,且是獨立於作業系統的。除了具體的用戶數據外,OSD還記錄了每個Object的屬性信息,主要是物理視圖信息。將這些信息放到OSD上,大大減輕了元數據伺服器的負擔,增強了整個存儲系統的並行訪問性能和可擴展性。
3、檔案系統
檔案系統對用戶的檔案操作進行解釋,並在元數據伺服器和OSD間通信,完成所請求的操作。
現有的套用對數據的訪問大部分都是通過POSIX檔案方式進行的,對象存儲系統提供給用戶的也是標準的POSIX檔案訪問接口。
接口具有和通用檔案系統相同的訪問方式,同時為了提高性能,也具有對數據的Cache功能和檔案的條帶功能。
同時,檔案系統必須維護不同客戶端上Cache的一致性,保證檔案系統的數據一致
檔案系統讀訪問實例:
客戶端套用發出讀請求;
檔案系統向元數據伺服器傳送請求,獲取要讀取的數據所在的OSD;
然後直接向每個OSD傳送數據讀取請求;
OSD得到請求以後,判斷要讀取的Object,並根據此Object要求的認證方式,對客戶端進行認證,如果此客戶端得到授權,則將Object的數據返回給客戶端;
檔案系統收到OSD返回的數據以後,讀操作完成。
4.元數據伺服器 (Metadata Server)
為客戶端提供元數據,主要是檔案的邏輯視圖,包括檔案與目錄的組織關係、每個檔案所對應的OSD等。
在傳統的檔案系統中,元數據由本機或者檔案伺服器負責維護,每次對數據塊的操作都要獲取元數據。
在對象存儲系統中,由於每次操作只有一次對元數據的訪問,具體的數據傳輸都由OSD和客戶端通過直接連線進行,大大減少了元數據的操作,降低了元數據伺服器的負擔,從而為系統的擴展提供了可能性。
特點
客戶端採用Cache來快取數據
當多個客戶端同時訪問某些數據時,MDS提供分布的鎖機制來確保Cache的一致性。
5. 網路連線
為客戶端提供認證
為了增強系統的安全性,MDS為客戶端提供認證方式。OSD將依據MDS的認證來決定是否為客戶端提供服務。
網路連線是對象存儲系統的重要組成部分。它將客戶端、MDS和OSD連線起來,構成了一個完整的系統。
與傳統存儲的比較
有大量的基於塊和基於檔案的存儲系統可供選擇,一個明顯的問題是,我們為什麼需要另外一種存儲技術呢?塊和檔案都是成熟且經過驗證的,所以也許看起來好像他們可以增強以滿足日益增長的分散式雲計算生態系統的需求。
基於塊的存儲系統,磁碟塊通過底層存儲協定訪問,像SCSI命令,開銷很小而且沒有其它額外的抽象層。這是訪問磁碟數據最快的方式,所有高級別的任務,像多用戶訪問、共享、鎖定和安全通常由作業系統負責。換句話講,基於塊的存儲關心所有底層的問題,但其它事情都要依靠高層的應用程式實現。所有的對象存儲擁有基於塊存儲的節點,利用對象存儲軟體集合提供所有其它的功能。
基於塊的存儲系統是對象存儲系統的補充,而基於檔案的存儲系統一般被認為是直接的競爭者。橫向擴展的NAS系統的關鍵屬性就是擴展性,對象存儲也是這樣,通過增加節點實現水平擴展。但由於NAS系統是基於分層檔案結構的有限的命名空間,它們對於有著接近無限擴展能力的、具有扁平結構的純對象存儲來講,所受的約束更多,對象存儲僅受到對象ID的位數限制。儘管限制多多,但橫向擴展的NAS系統仍然具備對象存儲的諸多特性,而其欠缺的功能,像對於表症狀態轉移(REST)協定的支持,廠商們正在快速的完善中,這樣他們就可以把橫向擴展的NAS系統劃歸到對象存儲的類別中了。
特性
對象存儲系統,可以在一個持久穩固且高度可用的系統中存儲任意的對象,且獨立於虛擬機實例之外。套用和用戶可以在對象存儲中使用簡單的API訪問數據;這些通常都基於表屬性狀態轉移(REST)架構,但是也有面向程式語言的界面。
對象存儲提供了數據上受限操作的訪問控制。數據管理員可以在bucket層級上(類似於目錄)或者對象層級上(類似目錄中的檔案)套用訪問控制。存儲對象的授權/認證通過雲提供商的身份認證管理系統或者你的目錄服務來管理。通過後者,可能有一個本地的目錄,同基於雲的目錄服務同步,鞏固所有的訪問控制角色和進入單一註冊庫的特權。