对象存储入门

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 条评论
登录 后参与评论

相关文章

来自专栏猿人谷

云时代:区别云主机、虚拟主机和VPS

云计算时代,云主机其可扩展性、价格便宜、安全可靠的特性深受企业和开发者欢迎,但目前有些IDC企业,新瓶装旧酒,将虚拟主机、VPS进行包装推出所谓的云主机服务,为...

5196
来自专栏Java技术

IPv6终于要取代IPv4了!!!你准备好了么?

周末干什么?天气这么冷,被窝这么暖!当然钻被窝看《Java后端技术》公众号文章啦!最近,国家对IPv6发力了,小编一大早爬起来为大家整理了一篇文章,还请各位客官...

751
来自专栏大数据和云计算技术

非易失性存储一览

RAM:随机存取存储器(random access memory,RAM)又称作“随机存储器”,是与CPU直接交换数据的内部存储器,也叫主存(内存)。它可以随时...

2996
来自专栏腾讯技术工程官方号的专栏

让业务感知不到服务器的存在——基于弹性计算的无服务器化实践

12.6K4
来自专栏机器人网

工业机器人控制系统的组成

(1)控制计算机:控制系统的调度指挥机构。一般为微型机、微处理器有32位、64位等,如奔腾系列CPU以及其他类型CPU。

853
来自专栏数据和云

静默错误:为什么看了那么多灾难,还是过不好备份这一关?

可是毕竟广告好不好,还要看疗效,9个9的可靠性,你也永远无法论证你不是那 0.00000001%。

1081
来自专栏云计算D1net

如何针对不同的数据需求构建OpenStack存储云

OpenStack的存储组件—Cinder和Swift—让你在你的私有云里构建块和对象的存储系统。Chris Evans对这些技术给出了一些深入的阐述。 在向w...

3377
来自专栏彭湖湾的编程世界

【计算机网络】数据交换技术和多路复用技术的正(nao)确(can)打开方式

交换的作用 数据交换是计算机网络中两个终端进行数据传输的方式,它又可以分成两种类型:电路交换和分组交换。很显然,问题的核心在于“交换”,那么我们首先要思考的是:...

1716
来自专栏Golang语言社区

手游页游和端游的服务端的架构与区别

类型1:卡牌、跑酷等弱交互服务端 卡牌跑酷类因为交互弱,玩家和玩家之间不需要实时面对面PK,打一下对方的离线数据,计算下排行榜,买卖下道具即可,所以实现往往使...

32611
来自专栏腾讯大讲堂的专栏

让业务感知不到服务器的存在——基于弹性计算的无服务器化实践

1084

扫描关注云+社区