对象存储概述
前言
今天碰巧看到一篇介紹對象存儲概念的博客,感覺內容通俗易懂。現在做個簡單的筆記,其中修改了原文的部分內容和結構。
?
對象存儲概述
什么是對象存儲??
相對于存儲局域網(SAN)和網絡附加存儲(NAS)網絡存儲架構,對象存儲(Object-based Storage)是一種新的網絡存儲架構,基于對象存儲技術的設備就是對象存儲設備(Object-based Storage Device)簡稱 OSD。總體上來講,對象存儲綜合了?NAS?和?SAN?的優點,同時具有?SAN?的高速直接訪問和?NAS?的分布式數據共享等優勢,提供了具有高性能、高可靠性、跨平臺以及安全的數據共享的存儲體系結構。
?
對象存儲架構
核心是將數據通路(數據讀或寫)和控制通路(元數據)分離,并且基于對象存儲設備構建存儲系統,每個對象存儲設備是智能的,能夠自動管理其上的數據分布。對象存儲結構由對象存儲設備、元數據服務器、對象存儲系統的客戶端三部分組成。?
?
對象?
對象是系統中數據存儲的基本單位,每個?Obeject?是數據和數據屬性集的綜合體,數據屬性可以根據應用的需求進行設置,包括數據分布、服務質量等。在傳統的存儲系統中用文件或塊作為基本的存儲單位,塊設備要記錄每個存儲數據塊在設備上的位置。Object?維護自己的屬性,從而簡化了存儲系統的管理任務,增加了靈活性。Object?的大小可以不同,可以包含整個數據結構,如文件、數據表項等。在存儲設備中,所有對象都有一個對象標識,通過對象標識?OSD?命令訪問對象。通常由多種類型的對象,存儲設備上的根對象標識存儲設備和該設備的各種屬性,組對象是存儲設備上共享資源管理策略的對象集合等。?
?
對象存儲設備?
每個 OSD 都是一個智能設備,具有自己的存儲介質、處理器、內存以及網絡系統等,負責管理本地的?Object,是對象存儲系統的核心。OSD?同塊設備的不同不在于存儲介質,而在于兩者提供的訪問接口。OSD?的主要功能包括數據存儲和安全訪問、目前國際上通常采用刀片式結構實現對象存儲設備。OSD 提供三個主要功能:?
(1)?數據存儲:OSD?管理對象數據,并將它們放置在標準的磁盤系統上,OSD 不提供接口訪問方式,Client?請求數據時用對象ID、偏移進行數據讀寫。?
(2) 智能分布:OSD?用其自身的?CPU?和內存優化數據分布,并支持數據的預取。由于?OSD?可以智能地支持對象的預取,從而可以優化磁盤的性能。?
(3) 每個對象數據的管理:OSD?管理存儲在其上對象的元數據,該元數據與傳統的?inode?元數據相似,通常包括對象的數據塊和對象的長度。而在傳統的?NAS?系統中,這些元數據是由文件服務器提供的,對象存儲架構將系統中主要的元數據管理工作由?OSD?來完成,降低了?Client?的開銷。?
?
?
元數據服務器(Metadata Server,MDS)?
MDS?控制?Client?與?OSD?對象的交互,為客戶端提供元數據,主要是文件的邏輯視圖,包括文件與目錄的組織關系、每個文件所對應的?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?不一致引發的問提。?
?
?
對象存儲系統的客戶端
為了有效支持?Client?支持訪問?OSD?上的對象,需要在計算節點實現對象存儲系統的?Client。現有的應用對數據的訪問大部分都是通過?POSIX?文件方式進行的,同時為了提高性能,也具有對數據的?Cache?功能和文件的條帶功能。同時,文件系統必須維護不同客戶端上?Cache?的一致性,保證文件系統的數據一致。文件系統訪問流程:?
(1) 客戶端應用發出讀請求;?
(2) 文件系統向元數據服務器發送請求,獲取要讀取的數據所在的?OSD;?
(3) 然后直接向每個?OSD?發送數據讀取請求;?
(4) OSD?得到請求后,判斷要讀取的?Object,并根據此?Object?的認證方式,對客戶端進行認證,如果客戶端得到了授權,則將?Object?的數據返回給客戶端;?
(5) 文件系統收到?OSD?返回的數據以后,讀操作完成。
?
?
對象存儲文件系統的關鍵技術?
分布元數據?
(1) 為計算結點提供一個存儲數據的邏輯視圖(Virtual File System,VFS層),文件名列表及目錄結構。?
(2) 組織物理存儲介質的數據分布(inode層)。對象存儲結構將存儲數據的邏輯視圖與物理視圖分開,并將負載分布,避免元數據服務器引起的瓶頸(如NAS系統)。元數據的?VFS?部分通常是元數據服務器的?10% 的負載,剩下的?90% 工作(inode部分)是在存儲介質塊的數據物理分布上完成的。在對象存儲結構,inode?工作分布到每個智能的?OSD,每個?OSD?負責管理數據分布和檢索,這樣?90%?的元數據管理工作分布到智能的存儲設備,從而提高了系統元數據管理的性能。另外,分布的元數據管理,在增加更多的?OSD?到系統中時,可以同時增加元數據的性能和系統存儲容量。
?
并發數據訪問
對象存儲體系結構定義了一個新的、更加智能的磁盤接口?OSD。OSD?是與網絡連接的設備,它自身包含存儲介質,如磁盤或磁帶,并且足夠的智能,可以管理本地存儲的數據。計算結點直接與?OSD?通信,訪問它存儲的數據,由于?OSD?很智能,所以不需要文件服務器的介入。如果將文件系統的數據分布在多個?OSD?上,則聚合I/O速率和數據吞吐率將線性增長,對絕大多數?Linux?集群應用來說,持續的I/O聚合帶寬和吞吐率對較多數目的計算結點是非常重要的。對象存儲結構提供的性能非常好,如?ActiveScale?對象存儲文件系統的帶寬可以達到 10GB/s。
?
轉載自:https://blog.csdn.net/liuaigui/article/details/17973039
總結
- 上一篇: 什么是 MultiRaft ?
- 下一篇: 九种 0-1 背包问题详解