对象存储(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

时间: 2024-10-29 19:10:41

对象存储(Object-based Storage)的相关文章

openStack 对象存储object storage swift

环境管理网络 Create initial rings  before starting the object storage services,you must create the initial account,container,and object rings; 1. Account rings 创建基本的account.builder 文件 swift-ring-builder account.builder create 10 3 1

深入理解C语言11 基于对象(Object based)编程

在使用对象编程之前先要了解什么是对象. 对象是指对数据和操作的抽象封装. 优点: 高内聚, 使用方便 缺点: 相关的操作函数是有状态的(也就是函数编程里常说的副作用, 操作系统开发里的不可重入函数), 不同时间点执行该函数,有可能会返回不同的结果), 不方便并行处理 C语言要实现一个对象,关键是解决数据和操作的封装. 1> 数据的封装主要是通过结构体来实现, 操作的封装则是通过函数指针来实现. 2> 数据隐藏, 主要是通过万能的void* 指针来实现. 对象的通用操作主要有以下3个 1>

三种存储类型比较-文件、块、对象存储

块存储和文件存储是我们比较熟悉的两种主流的存储类型,而对象存储(Object-based Storage)是一种新的网络存储架构,基于对象存储技术的设备就是对象存储设备(Object-based Storage Device)简称OSD. 首先,我们介绍这两种传统的存储类型.通常来讲,所有磁盘阵列都是基于Block块的模式,而所有的NAS产品都是文件级存储. 1.块存储 以下列出的两种存储方式都是块存储类型: 1) DAS(Direct Attach STorage):是直接连接于主机服务器的一

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

# 在部署对象存储服务(swift)之前,你的环境必须包含身份验证服务(keystone); # keystone需要MySQL数据库,Rabbitmq服务,Memcached服务; # 内存:4G # 系统:Ubuntu Server-14.04.5 # 安装方法:http://www.jianshu.com/p/9e77b3ad930a # IP地址:192.168.10.55 # 主机名:object 基本环境配置 配置主机静态IP地址 vim /etc/network/interface

openstack-mitaka之对象存储服务(object安装配置)

在本次环境中,object共使用2台主机,每台主机3个磁盘,其中第一块磁盘用于系统,后面两块,用于对象存储服务使用,前期准备工作,已经准备就绪,接下来,开始安装配置 1.安装软件包(在object1.object2分别执行如下命令) 2.在object1.object2执行XFS格式化/dev/sdb./dev/sdc 3.在object1.object2创建挂载点目录结构 3.在object1.object2分别编辑/etc/fstab 4.在object1.object2挂载设备 5.在ob

利用HTML5开发Android(4)---HTML5本地存储之Web Storage

Web Storage是HTML5引入的一个非常重要的功能,可以在客户端本地存储数据,类似HTML4的cookie,但可实现功能要比cookie强大的多,cookie大小被限制在4KB,Web Storage官方建议为每个网站5MB. Web Storage又分为两种: sessionStorage localStorage 从字面意思就可以很清楚的看出来,sessionStorage将数据保存在session中,浏览器关闭也就没了:而localStorage则一直将数据保存在客户端本地: 不管

HTML5分析实战Web存储机制(Web Storage)

Web Storage它是Key-Value在持久性数据存储的形式.Web Storage为了克服cookie把所引起的一些限制.当数据需要严格格控制client准时,没有必要不断地发回数据server. Web Storage有两个目的:提供一种存储会话数据的路径;提供存储大量能够跨会话存在的数据的机制. 最初的Web Storage规范包括了两个对象的定义:sessionStorage对象和globalStorage对象.这两个对象在支持的浏览器中都是以window对象属性的形式存在.支持s

OSS对象存储

一.产品概述 阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量.安全.低成本.高可靠的云存储服务.它具有与平台无关的RESTful API接口,能够提供99.99999999%的服务持久性.您可以在任何应用.任何时间.任何地点存储和访问任意类型的数据.OSS适合各种网站.开发企业及开发者使用. 您可以使用阿里云提供的API/SDK接口或者OSS迁移工具轻松地将海量数据移入或移出阿里云OSS.数据存储到阿里云OSS以后,您可以选择标准类型(Sta

HTML5实战与剖析之Web存储机制(Web Storage)

Web Storage是以Key-Value的形式进行数据持久性存储.Web Storage是为了克服由cookie带来的一些限制而产生的.当数据需要被严格控制在客户端上的时候,无须持续地将数据发回服务器.Web Storage的目标有两个:提供一种存储会话数据的路径;提供存储大量可以跨会话存在的数据的机制. 最初的Web Storage规范包含了两个对象的定义:sessionStorage对象和globalStorage对象.这两个对象在支持的浏览器中都是以window对象属性的形式存在,支持