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 |