对象存储入门

10.5.3 对象接口

对象存储系统(Object-BasedStorage System)是综合了NAS和SAN的优点,同时具有SAN的高速直接访问和NAS的数据共享等优势,提供了高可用性、跨平台性及安全性的数据共享的存储体系结构。

Object是对象存储的基本单元。每个Object都是数据和数据属性集的综合体。数据属性可以根据应用的需求进行设置,包括数据分布、服务质量等。在传统的存储中,块设备要记录每个存储数据块在设备上的位置。Object维护自己的属性,从而简化了存储系统的管理任务,增加了灵活性。Object的大小可以不同,可以包含整个数据结构,如文件、数据库表项等。

1.对象存储的产生

随着互联网、Web 2.0的快速发展,Web应用创建出数百亿的小文件;人们上传海量的照片、视频、音乐,Facebook每天都新增数十亿条内容,人们每天发送数千亿封电子邮件。据IDC统计,未来10年间,数据将增长44倍,到2020年全球数据将增加到35ZB,其中80%是非结构化数据,且大部分是非活跃数据。面对如此庞大的数据量,仅具备PB级扩展能力的块存储(SAN)和文件存储(NAS)显得有些无能为力。单个文件系统在最优性能的情况下支持的文件数量通常只在百万级别。人们需要一种全新架构的存储系统,这种存储系统需要具备极高的可扩展性,能够满足人们对存储容量从TB到EB规模的扩展需求。

2002年,安然、世界通信等事件的接连爆发导致萨班斯法案推出,对象存储被用于政府法规要求数据长期保存金融服务、健康医疗等行业的数据归档场景,对象存储由此具备了备份归档的基因。

2006年,Amazon发布AWS,S3服务及其使用的REST、SOAP访问接口成为对象存储的事实标准。Amazon S3成功为对象存储注入云服务基因。

2.对象存储的关键特性与价值

对象存储是一种基于对象的存储设备,具备智能、自我管理能力,通过Web服务协议(如REST、SOAP)实现对象的读/写和存储资源的访问。

对象存储系统包含两种数据描述:容器(Bucket)和对象(Object)。容器和对象都有一个全局唯一的ID。对象存储采用扁平化结构管理所有数据,用户/应用通过接入码(Access Key)认证后,只需根据ID就可以访问容器/对象及相关的数据(Data)、元数据(Metadata)和对象属性(Attribute)。

对象存储数据组织示意图如图10.3所示。

对象存储对外提供更抽象的对象接口,而不是SCSI或文件接口。与SAN存储以逻辑扇区为单位的较细粒度的固定I/O(512B~4KB)不同,对象存储I/O粒度更有弹性,支持几个字节(B)到数万亿字节(TB)范围内的任意对象大小,使得业务可以根据需要灵活地分割数据。对象存储以对象ID为基础,扁平化地管理所有对象和桶,根据对象ID便可直接访问数据,解决了NAS复杂的目录树结构在海量数据情况下的数据查找耗时长的问题。这使得对象存储具备极强的扩展性,能够轻松实现单一名字空间(namespace)内支持百亿级文件的存储。

图10.3

在重复数据删除、绿色节能等特性的基础上,为了更好地满足海量数据存储和公众云服务的需求,对象存储系统还包括如下一些关键特性:

(1)超强的扩展性。扁平化的数据结构允许对象存储容量从TB级扩展到EB级,管理数十个到百亿个存储对象,支持从数字节(Byte)到数万亿字节(TB)范围内的任意大小对象,解决了文件系统复杂的iNode机制带来的扩展性瓶颈,并使得对象存储无须像SAN存储那样管理数量庞大的逻辑单元号(LUN)。对象存储系统通常在一个横向扩展(或网格硬件)架构上构建一个全局的命名空间,这使得对象存储非常适用在云计算环境中使用。某些对象存储系统还可以支持升级、扩容过程中的业务零中断。

(2)基于策略的自动化管理。由于云环境中的数据往往是动态、快速增长的,所以基于策略的自动化将变得非常重要。对象存储支持从应用角度基于业务需求设置对象/容器的属性(元数据)策略,如数据保护级别、保留期限、合规状况、远程复制的份数等。这使得对象存储具备云的自服务特征,同时有效地降低运维管理的成本,使得客户在存储容量从TB增长到ZB时运维管理成本不会随之飙升。

(3)多租户。多租户特性可以使用同一种架构、同一套系统为不同用户和应用提供存储服务,并分别为这些用户和应用设置数据保护、数据存储策略,并确保这些数据之间相互隔离。

(4)数据完整性和安全性。对象存储系统一般通过连续后台数据扫描、数据完整性校验、自动化对象修复等技术,大大提高数据的完整性和安全性。某些对象存储产品还引入了一些先进的算法(如擦除码)和技术将数据切分为多个分片,然后将这些分片存储到不同的设备/站点,在确保数据完整性的同时获取最高的存储利用率。

3.对象存储的主要应用场景

对象存储系统的出现主要是为了满足数据归档和云服务两大需求,下面对这两种场景进行进一步的细化。

1)存储资源池(空间租赁)

使用对象存储构建类似AmazonS3的存储空间租赁服务,向个人、企业或应用提供按需扩展的弹性存储服务。用户向资源池运营商按需购买存储资源后,通过基于Web协议访问和使用存储资源,而无须采购和运维存储设备。多租户模型将不同用户的数据隔离开来,以确保用户的数据安全。

2)网盘应用

在海量存储资源池的基础上,使用图形用户界面(GUI)实现对象存储资源的封装,向用户提供类似DropBox的网盘业务。用户可通过PC客户端、手机客户端、Web页面完成数据的上传、下载、管理与分享。在网盘的帮助下,个人和家庭用户能够实现数据安全、持久地保存和不同终端之间的数据同步;企业客户可实现更高效的信息分享、协同办公和非结构化数据管理,同时还可用于实现低成本的Windows远程备份,确保企业数据安全。

3)集中备份

在大型企业或科研机构中,对象存储通过与CommVault Simpana、Symantec NBU等主流备份软件结合,可向用户提供更具成本效益、更低TCO[1]的集中备份方案。相对于原有的磁带库或虚拟磁带库等备份方案,重复数据删除特性能够帮助用户用更少的存储设备存储更多的数据,从而减少低设备采购 ,智能管理特性使得备份系统无须即时维护,从而降低CAPEX[2]和OPEX [3];分布式并行读/写带来的巨大吞吐量和在线/近线的存储模式有效降低了RTO[4]和RPO[5]。

4)归档和分级存储

对象存储通过与归档软件、分级存储软件结合,将在线系统中的数据无缝归档/分级存储到对象存储,释放在线系统存储资源。对象存储提供几乎可无限扩展的容量及智能管理能力,帮助用户降低海量数据归档的TCO;对象归档采用主动归档模式,使得归档数据能够被按需访问,而无须长时间地等待和延迟。

4.与传统存储的比较

基于块的存储系统,磁盘块通过底层存储协议访问,像SCSI命令,开销很小而且没有其他额外的抽象层。这是访问磁盘数据最快的方式,所有高级别的任务,如多用户访问、共享、锁定和安全等通常由操作系统负责。换句话说,基于块的存储关心所有底层的问题,但其他事情都要依靠高层的应用程序实现。而所有的对象存储拥有基于块存储的节点,利用对象存储软件集合提供所有其他的功能。

基于块的存储系统是对象存储系统的补充,而基于文件的存储系统一般被认为是直接的竞争者。横向扩展的NAS系统的关键属性就是扩展性,对象存储也是如此,通过增加节点实现水平扩展。但由于NAS系统是基于分层文件结构的有限的命名空间,它们对于有着接近无限扩展能力的、具有扁平结构的纯对象存储来讲,所受的约束更多,而对象存储仅受到对象ID的位数限制。尽管限制多多,但横向扩展的NAS系统仍然具备对象存储的诸多特性,而其欠缺的功能,如对于表征状态转移(REST)协议的支持,厂商们正在快速地完善中,这样他们就可以把横向扩展的NAS系统划归到对象存储的类别中了。

5.S3

对象存储最典型的是Amazon S3。Amazon S3将数据作为对象存储在称为“存储桶”的资源中。用户可以在一个存储桶中尽可能多地存储对象,并写入、读取和删除存储桶中的对象。对象大小最多可为5TB。用户可以控制对存储桶的访问权限(例如,控制谁能在存储桶中创建、删除和检索对象)、查看该存储桶的访问日志及其对象,并选择存储桶存储所在的AWS区域以优化延迟性,最大限度地降低成本或满足法规要求。

Amazon S3为任务关键型和主要数据存储提供了高度持久的存储基础设施。Amazon S3将数据冗余存储在多个设施中,也存储在每个设施内的多个设备上。为了提高耐久性,Amazon S3在确认数据已成功存储之前将数据同步存储在多个设施中。此外,Amazon S3还会在存储或检索数据时对所有的网络流量计算校验和,以检测数据包是否损坏。与传统系统需要费时耗力的数据验证和手工修复方式不同的是,Amazon S3可以定期执行系统的数据完整性校验,并且内置了自动的自我修复能力。

Amazon S3的标准存储:以Amazon S3服务等级协议作为后盾,以实现可用性;设计目的是在指定年度内为对象提供99.999999999%的持久性和99.99%的可用性;能够承受两个设施中的数据同时丢失。


[1]TCO:Total Cost of Ownership 总拥有成本从产品采购到后期使用、维护的总的成本。

[2] CAPEX,全称为Capital Expenditure,即资本性支出,一般是指资金或固定资产、无形资产、递延资产的投入。

[3] OPEX=维护费用+营销费用+人工成本(+折旧)

[4] RTO:(Recovery Time Objective,复原时间目标)是企业可容许服务中断的时间长度

[5] RPO:(Recovery Point Objective,复原点目标)是指当服务恢复后,恢复得来的数据所对应时的间点。


本文选自我的新作《大数据架构详解:从数据获取到深度学习》10.5.3节

原文发布于微信公众号 - 大数据和云计算技术(jiezhu2007)

原文发表时间:2017-02-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来亲自试一试NoSQL

针对Web开发人员,DBA,程序员,本文介绍了NoSQL数据库的基本概念,不同类型及其特性。

1543
来自专栏PPV课数据科学社区

【学习】NoSQL数据库的35个应用场景

现在我们站在各个用例的角度上来考虑那种系统适合于这些用例。 你的意见是首先,我们要纵览各种数据模型。这些模型的分类方法来自于Emil Eifrem 和 NoSQ...

2859
来自专栏跨界架构师

又出现异常数据?来剖析一下分布式系统中的「事务」

本文是本系列的第三篇。与前两篇《不知道是不是最通俗易懂的《数据一致性》剖析了》、《烦人的数据不一致到底怎么解决?——通过“共识”达成数据一致性》...

892
来自专栏风中追风

如果进入CPU的世界,时间会是怎样的?

不知道大家有没有感觉每天写代码的时间过得很快啊,有时候一天过去了一个功能还没完成,但是时间就这么没了!

3249
来自专栏CSDN技术头条

像Apache Storm一样简单的分布式图计算

介绍 计算可能很复杂。对我们来说,这种复杂主要就是软件世界的人类驱动力。甚至有一个学科整个都围绕着问题解决和计算——计算机科学。 当一个人开始学习计算机科学时,...

2056
来自专栏企鹅号快讯

像Apache Storm一样简单的分布式图计算

作者:Kobi Hikri 翻译:无阻我飞扬 摘要:本文从计算机领域的“祖师爷”艾伦·图灵提出的图灵机概念开始,介绍了图形计算的概念,并以示例介绍了apache...

17110
来自专栏视频直播

世界杯直播技术揭秘及视频云直播回源系统的应用

近些年,视频直播应用蓬勃发展,带宽也是日渐新高,腾讯云旗下的视频云直播为斗鱼、快手、虎牙、龙珠、CNTV广大的企业客户提供了很大的支持,在行业内起到了引领的作用...

852
来自专栏斑斓

利用Actor实现管道过滤器模式

《基于Actor的响应式编程》计划分为三部分,第一部分剖析响应式编程的本质思想,为大家介绍何谓响应式编程(Reactive Programming)。第二部分则...

2874
来自专栏专知

【观点】漫谈推荐系统及数据库技术(二)——分布式数据库技术

【导读】推荐系统和数据库技术,一个是偏机器学习数据挖掘相关的应用,一个是偏系统存储相关的技术,这两者在实际中有很大的应用。上一次专知推出漫谈推荐系统及数据库技术...

3239
来自专栏一名叫大蕉的程序员

Spark你一定学得会(四)No.68

小伙伴在写Spark任务的过程中感觉非常巨痛苦,总是有奇奇怪怪的问题,写好的程序在开发环境跑得好好的,一上到生产直接被干懵逼了。今天呢,我就跟大伙好好聊聊 Sp...

1815

扫码关注云+社区