天天看点

对象存储(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,如需转载请自行联系原作者

继续阅读