对象存储(Object-based Storage)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对象存储(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的概念
技术分享

- Data指用户要存取数据记录或称资料
- MetaData用于定位数据存取的真实位置、历史数据、资源查找、文件记录等功能
- OID即Object ID是数据对象的唯一标识(相当于人身份证ID)
- Attributes数据描述属性
- Object由Data/OID/Metadat/Attributes组成,是对象存储定义的最小数据存储单元
2.4 块存储与对象存储的对比
技术分享

- 块存储最小存储单元是一个数据块(Block)而对象存储基本单元是一个数据对象(Object)
- 块存储基于inode寻找唯一的数据块而对象存储基于OID寻找唯一的数据对象
- 块存储的数据块与对象存储的数据块都是扁平化结构(决定读写的I/O)

技术分享

- 块存储下块分数据块与文件夹块,文件夹块通过记录inode重定位数据块来组织文件结构
- 而同理,对象存储通过GID重新定位数据对象来组织出虚拟文件结构(即目录树)
2.5 Object Type

ANSI T10 SCSI OSD标准定义四个不同的对象:

技术分享

- 根对象,OSD本身
- 用户对象,由来自于应用程序或客户端的SCSI命令创建的对象
- 集合对象,一组用户对象,例如输入项目的所有.mp3的对象集合或所有对象
- 分区对象,由共享安全或空间管理特征(如配合和秘钥)的用户对象和集合容器
2.6 系统架构
技术分享

对象存储通常分为三个部分:
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

以上是关于对象存储(Object-based Storage)的主要内容,如果未能解决你的问题,请参考以下文章

CMS-headless or non-headless, page-based or object-based storage?

创建Google Storage的存储对象时的NoSuchMethodError(Java)

javascript本地缓存方案-- 存储对象和设置过期时间

swift(Object Storage对象存储服务)(单节点)

阿里云云计算 12 对象存储 Object Storage Service OSS 的概念

Storage存储对象变成‘[Object Object]‘的问题