1 前言
經常在網上看到對象存儲文章,但一直沒有一篇文章能讓我明白對象存儲是什麼。最近得到一個機會,老闆希望我們告訴他什麼是對象存儲,為了給老闆做5頁PPT筆者參閱了大量的文獻并整理成文(以下文章僅供當參閱,并非權威之作,如果你覺得有不妥之處,歡迎指正)。
2 對象存儲
2.1 Obeject-based Storage的概念(個人整理,并非權威)
是一種新的儲架構,對象存儲有别于Block與File級别的存儲,他以一個彈性的可自定義的資料對象為基本的存儲單元,基于資料對象的唯一ID索引,并形成虛拟檔案組織結構。結合群集技術将一群伺服器的儲存設備彙內建存儲池,通過軟體資料可自動在群集中自分布,存儲容量可達到TB甚至EB以上的規模,對象存儲同時具備高I/O、共享便利、高擴充性、高可靠性、高性能等特征。
2.2 OSD的概念
OSD是Object-based Storage Device的簡稱,即面向對象存儲技術裝置的簡稱,指運作對象存儲技術群集中的基本邏輯單元(通俗指運作對象存儲群集技術軟體的伺服器)
2.3 Object的概念
<a href="https://s3.51cto.com/wyfs02/M00/8E/78/wKioL1jBaEeTlm8TAAMv6NvEFOs565.png" target="_blank"></a>
- Data指使用者要存取的資料記錄或稱資料
- MetaData用于定位資料存取的真實位置、曆史資料、資源查找、檔案記錄等功能
- OID即Object ID是資料對象的唯一辨別(相當于人身份證ID)
- Attributes資料描述屬性
- Object由Data/OID/Metadat/Attributes組成,是對象存儲定義的最小資料存儲單元
2.4 塊存儲與對象存儲的對比
<a href="https://s5.51cto.com/wyfs02/M01/8E/7A/wKiom1jBaHrBEoxrAAIR3qgGfiA468.png" target="_blank"></a>
- 塊存儲最小存儲單元是一個資料塊(Block)而對象存儲基本單元是一個資料對象(Object)
- 塊存儲基于inode尋找唯一的資料塊而對象存儲基于OID尋找唯一的資料對象
- 塊存儲的資料塊與對象存儲的資料塊都是扁平化結構(決定讀寫的I/O)
<a href="https://s4.51cto.com/wyfs02/M01/8E/78/wKioL1jBaK3j5N2TAANgmU1b4yk177.png" target="_blank"></a>
- 塊存儲下塊分資料塊與檔案夾塊,檔案夾塊通過記錄inode重定位資料塊來組織檔案結構
- 而同理,對象存儲通過GID重新定位資料對象來組織出虛拟檔案結構(即目錄樹)
2.5 Object Type
ANSI T10 SCSI OSD标準定義四個不同的對象:
<a href="https://s5.51cto.com/wyfs02/M02/8E/7A/wKiom1jBaM_SQUcTAAISLrFbDJE652.png" target="_blank"></a>
- 根對象,OSD本身
- 使用者對象,由來自于應用程式或用戶端的SCSI指令建立的對象
- 集合對象,一組使用者對象,例如輸入項目的所有.mp3的對象集合或所有對象
- 分區對象,由共享安全或空間管理特征(如配合和秘鑰)的使用者對象和集合容器
2.6 系統架構
<a href="https://s4.51cto.com/wyfs02/M02/8E/7A/wKiom1jBaOnSb-cJAADKLbiPSj8431.png" target="_blank"></a>
對象存儲通常分為三個部分:
Metadata Server Cluster– 中繼資料群集,用于定位存取資料的位置等
Object Storage Cluster– 對象存儲群集,用于存儲資料對象(Object)
Clients – 資料的需求方,到Metadata Server定位據的位置後到Object Storage中存取
2.7 對象存儲的特點
- 高I/O讀寫性能,具有SAN的高速直接通路磁盤的特點
- 共享便利,具有NAS的分布式共享特點
- 高擴充性,使用普通x86伺服器,支援10~1000台伺服器,支援TB到PB級的擴充。
- 高可靠性,沒有單點故障,多資料副本,自動管理,自動修複。
- 高性能,資料分布均衡,并行化度高。對于objects storage和block storage,不需要中繼資料伺服器。
3 存儲類型對比分析
3.1 塊存儲
- 專業廠商定制,整個存儲相當于一塊大硬碟(使用者可根據需要格式化成檔案系統使用)
- 以資料塊為最小存儲單元,以inode直接定位資料(決定IO性能)
- 以FC-SAN協定作為通訊媒體
- 優點是I/O性能好
- 缺點是可擴充性差,資料不便于共享,并且裝置價格高
- scale up的擴充方式,單點通過多控制器、多電源實作容錯
- 代表産品:SAN
3.2 檔案存儲
- 相當于共享檔案夾(Samba)或NFS,由軟體加伺服器硬體實作
- 以檔案為存儲單元,以目錄結構定位資料(決定IO性能)
- 優點是資料共享便利
- 缺點是傳輸協定開銷大,I/O性能差
- 預設scale up的擴充方式,借助lvs可實作scale out擴充方式(存儲自身沒有高可靠性能力)
- 代表産品:NAS
3.3 對象存儲
- 軟體定義存儲的一種類型,由存儲軟體系統加伺服器硬體實作
- 以資料對象為最小存儲單元,通過資料對象ID直接索引資料(決定IO性能)
- 優點是I/O性能好,協定開銷小,共享便利,成本适中
- scale out的擴充方式,存儲本身實作高可靠性、高性能、高擴充
- 代表産品Redhat Cept與OpenStack Swift
3.4 三種存儲的對照表
類型
存儲單元
傳輸協定
讀寫I/O
協定開銷
共享能力
擴充性
可靠性
成本
産品
塊存儲
Block
FC-SAN
高
小
差
強
SAN
檔案存儲
File
TCP/IP
低
大
NAS
對象存儲
Object
SCSI/FC/ATA
中
Cept/Swift
本文轉自 tanzhenchao 51CTO部落格,原文連結:http://blog.51cto.com/cmdschool/1904905,如需轉載請自行聯系原作者