以前咱们探讨过数据和存储的重要性,这是ABC+IoT等新技术的核心之一,也是百度智能云重点发力的产品和解决方案。从当前数据的增加来看,IDC预测,到2025年人类产生的数据量将达到 163 ZB;其次,从数据种类来看,照片、视频、音频……天天产生的数据中超过80%是非结构化数据。node
由此,数据存储尤其重要,对象存储即是其中的一种。当前,对象存储已经成为应用最广泛的存储技术,甚至能够说没有之一。web
对象存储是什么,有什么原理?和文件存储、块存储最大的区别是什么?有什么优点?适用于哪些场景?本文作一个全面梳理。数据库
对象存储,也叫基于对象的存储,是用来描述解决和处理离散单元的方法的通用术语,这些离散单元被称做对象。后端
这么说可能太抽象,从两个维度来解释。安全
1.与其余存储方式对比服务器
相同点:顾名思义,对象存储,对象就是要存储的数据,和文件存储、块存储中的文件、块是一个意思。微信
不一样点:存储方式,以文件存储为例,它有不少层级,最熟悉的是你们都用过的Windows系统,要找一个文件,可能须要打开多个层级的文件夹,块存储也相似,对象存储则否则,就两层,很像今天不少互联网企业倡导的扁平化管理方式。网络
对象存储最重要的一个概念是“桶”,对象就装在桶里面。每一个桶会有一个ID,就像咱们的身份证号同样,每一个对象也有一个ID,全部要寻找某一个对象,只须要知道两个ID便可。其中全部对象都是平级,没有层级的概念,全部桶也都是平级。数据结构
2.去楼下代客停车就懂了架构
业内一般将对象存储比做高级餐厅、高级酒店的代客停车。当顾客须要代客停车时,把钥匙交给服务生,换来一张收据。这个顾客不用知道他的车被停在哪,也不用知道在他用餐时服务员会把他的车移动多少次。
在这个比喻中,车就是对象,酒店或者餐厅就是桶。假如你当天喝多了没开车走,次日去取车,只需去收据上的酒店把收据给服务生就行,他会帮你开出来,不用关心车究竟停在哪一个位置。
因此通俗理解对象存储,它是一种更适合当下时代的一种存储方式,数据量大、数据类型复杂意味着须要存的更方便、存的容量更大、存的更多元,这些都是对象存储的独有的特性。
如前文所述,对象存储以对象ID为基础,扁平化管理全部对象和桶,根据对象ID即可直接访问数据,解决了不少文件存储和块存储难以解决的问题。
总结起来,对象存储有三大特性:
一、优秀的扩展性:扁平化的数据结构容许对象存储容量从TB级扩展到EB级,管理数十个到百亿个存储对象,支持从数字节(Byte)到数万亿字节(TB)范围内的任意大小对象,解决了文件存储系统复杂iNode机制带来的扩展性瓶颈,并使得对象存储无需像块存储(SAN)那样管理数量庞大的逻辑单元号(LUN)。
二、基于策略的自动化管理:对象存储支持从应用角度基于业务需求设置对象/容器的属性(元数据)策略,如数据保护级别、保留期限、合规情况、远程复制的份数等。这对于当下正普遍普及的云服务来讲,使客户能在数据快速增加的同时,避免运维成本飙升。
三、多租户技术:多租户特性可使用同一种架构,同一套系统为不一样用户和应用提供存储服务,并分别为这些用户和应用设置数据保护、数据存储策略,并确保这些数据之间相互隔离。
对象存储是一种方式,要应用起来须要完整的一套系统,也就是对象存储系统。对象存储系统由对象、对象存储设备、元数据服务器、对象存储系统的客户端四部分组成。
一、对象(Object) 对象(Object)是系统中数据存储的基本单位,一个对象实际上就是文件的数据和一组属性信息(Meta Data)的组合,每一个对象是数据和数据属性集的综合体,数据属性能够根据应用的需求进行设置,包括数据分布、服务质量等。
二、对象存储设备(Object StorageDevice) 每一个存储单元都是一套完整的系统,具备本身的存储介质、处理器、内存以及网络系统等,负责管理本地的Object,是对象存储系统的核心。
主要提供如下三个主要功能。
数据存储。管理对象数据,并将它们放置在标准的磁盘系统上,存储单元不提供块接口访问方式,Client请求数据时用对象ID、偏移进行数据读写。
智能分布。存储单元用其自身的CPU和内存优化数据分布,并支持数据的预取。因为存储单元能够智能地支持对象的预取,从而能够优化磁盘的性能。
每一个对象元数据的管理。存储单元管理存储在其上对象的元数据,该元数据与传统的inode元数据类似,一般包括对象的数据块和对象的长度。而在传统的NAS系统中,这些元数据是由文件服务器维护的,对象存储架构将系统中主要的元数据管理工做由存储单元来完成,下降了Client的开销。
三、元数据服务器(Metadata Server)元数据服务器控制Client与OSD对象的交互,为客户端提供元数据,主要是文件的逻辑视图,包括文件与目录的组织关系、每一个文件所对应的存储单元等。
四、对象存储系统的客户端(Client),也就是最终用户端。
整个对象存储系统的文件访问流程以下:
客户端应用发出读请求;
文件系统向元数据服务器发送请求,获取要读取的数据所在的存储单元;
而后直接向每一个存储单元发送数据读取请求;
存储单元获得请求之后,判断要读取的Object,并根据此Object要求的认证方式,对客户端进行认证,若是此客户端获得受权,则将Object的数据返回给客户端;
文件系统收到存储单元返回的数据之后,读操做完成。
基于对象存储的特性,包括支持存储的数据类型多、对单个文件大小的限制少,扩展方面等,对一些数据量增加很快、数据类型复杂的应用场景很是适用。
应用场景一 图片存储问题。
若是网站有大量的图片,若是都存储在本地,须要大量的磁盘空间,虽然如今磁盘空间的价格已经很低,可是用户访问却须要大量的宽带,若是把全部的图片都存储在云存储里,每一年主机成本的下降会很是可观。
应用场景二 视频存储问题。
若是有大量的视频,虽然能够选择把视频存储在专门的视频网站,好比爱奇艺等。但问题是,全部的视频都会被视频网站加上播放前的贴片广告,这样其实很是不友好,而若是放网站上,会出现磁盘和宽带不足的状况,这时上传到云存储,就是不错的选择。
应用场景三 电商、互联网金融、在线教育等行业的Web和移动应用。
有传统数据库,同时有大量的图片、视频、文件等须要存储,此时用对象存储是更好的选择。
应用场景四 企业网盘,后端就是对象存储。
企业遍及各地的各个部门文档都在用企业网盘,分享和管理文件,企业网盘能够很是容易地分享给特定的我的,群组或部门。企业网盘是单独的市场,与我的网盘有很大区别,企业对访问权限认证的管理更细致,数据管理要求更高。
记住这两个关键词:数据量大、数据类型复杂,用对象存储就没错。
总结全文,数据还在不断的爆炸式增加,对象存储做为大数据时代的事实存储标准,应用只会愈来愈普遍。
百度智能云对象存储产品BOS,提供稳定、安全、高效、高可扩展的云存储服务。您能够将任意数量和形式的非结构化数据存入BOS,并对数据进行管理和处理。BOS支持标准、低频、冷和归档存储等多种存储类型,知足多场景的存储需求。
将来,百度智能云还将继续为客户提供更强大的对象存储产品。
了解更多百度智能云BOS产品信息,请点击文末左下角【阅读原文】。





本文分享自微信公众号 - 百度智能云(baidu_cloud)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。