天天看點

對象存儲(Object-based Storage)

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,如需轉載請自行聯系原作者

繼續閱讀