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