對象存儲(Object-based Storage)

本文出自 “老譚linux集羣博客” 博客,請務必保留此出處 http://cmdschool.blog.51cto.com/2420395/1904905

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的概念
wKioL1jBaEeTlm8TAAMv6NvEFOs565.png

- Data指用戶要存取數據記錄或稱資料
- MetaData用於定位數據存取的真實位置、歷史數據、資源查找、文件記錄等功能
- OID即Object ID是數據對象的唯一標識(相當於人身份證ID)
- Attributes數據描述屬性
- Object由Data/OID/Metadat/Attributes組成,是對象存儲定義的最小數據存儲單元
2.4 塊存儲與對象存儲的對比
wKiom1jBaHrBEoxrAAIR3qgGfiA468.png

- 塊存儲最小存儲單元是一個數據塊(Block)而對象存儲基本單元是一個數據對象(Object)
- 塊存儲基於inode尋找唯一的數據塊而對象存儲基於OID尋找唯一的數據對象
- 塊存儲的數據塊與對象存儲的數據塊都是扁平化結構(決定讀寫的I/O)

wKioL1jBaK3j5N2TAANgmU1b4yk177.png

- 塊存儲下塊分數據塊與文件夾塊,文件夾塊通過記錄inode重定位數據塊來組織文件結構
- 而同理,對象存儲通過GID重新定位數據對象來組織出虛擬文件結構(即目錄樹)
2.5 Object Type

ANSI T10 SCSI OSD標準定義四個不同的對象:

wKiom1jBaM_SQUcTAAISLrFbDJE652.png

- 根對象,OSD本身
- 用戶對象,由來自於應用程序或客戶端的SCSI命令創建的對象
- 集合對象,一組用戶對象,例如輸入項目的所有.mp3的對象集合或所有對象
- 分區對象,由共享安全或空間管理特徵(如配合和祕鑰)的用戶對象和集合容器
2.6 系統架構
wKiom1jBaOnSb-cJAADKLbiPSj8431.png

對象存儲通常分爲三個部分:
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


==============================================
參閱文獻:
https://en.wikipedia.org/wiki/Object_storage
http://www.chinastor.com/a/jishu/OSD.html
https://zhidao.baidu.com/question/681721512143511972.html
http://wenku.baidu.com/view/be724b74f46527d3240ce0a5.html?from=search
https://www.ustack.com/blog/ceph_infra/
http://wenku.baidu.com/link?url=eoa47VQbA9-_rxGLG5o8uNDCWV-DeviAOe0hQCPQSqPLRK62_igE9hCmVwyV51zlzBSqnkuqjgJw0dNh0dQARWlEBv8ug8_RgYUtLC9CoYG
https://www.ustack.com/blog/ceph_infra/
http://www.oracle.com/technetwork/server-storage/solaris/osd-142183.html
http://www.tuicool.com/articles/2yqUZvz

本文出自 “老譚linux集羣博客” 博客,請務必保留此出處http://cmdschool.blog.51cto.com/2420395/1904905


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