云时代,没有对象,我也能搞对象存储

说到对象,真的是扎到每个程序员的心窝窝里了。在上学时候,学习C++语言,告诉我要面向对象编程,工作了,学习云存储,告诉我要面向对象存储。我怎么这么难呢?没有对象,还不能愉快的编程、愉快的工作了吗?那当然不是啊。所谓对象存储,就是面向对象、文件的互联网存储,始于互联网,也兴于互联网。它存储的是文件数据、非结构化数据,比如音频、视频、图片、文件等等。简单来说,对象存储的过程就像你去超市购物时,将自己的包包放在储物柜,储物柜会给你一张凭条,购物完毕,凭借条子就可以取货。

没有对象存储之前,我们看看传统方式是怎么实现存储的呢?以我们看电影为例哈,方式之一U盘,使用U盘将别人电脑上的电影拷贝下来,再放在自己的电脑上查看,U盘就是我们的存储设备。方式之二网盘,有了百度网盘的出现,只需要小伙伴把电影分享保存下,就可以下载在本地或在线观看了。方式之三视频网站,有了视频服务提供商,自己开发了视频应用如腾讯视频、优酷、爱奇艺,将视频存在服务器中,自己下载app就可以观看了。而在云时代,有了云存储,只需要把视频存储在对象存储中,我们得到视频的地址,在浏览器输入地址、或把地址放入app中(视频服务提供商)就可以看了。

随着互联网的到来,Web应用创造出上千亿的数据,再到移动应用的黄金时代,App创造出上万亿的数据,每天聊微信、刷抖音、刷微博、看新闻、看电影等,每天都在上传下载海量的照片、视频、音频,而且80%以上都是非结构化数据。面对如此巨大的数据量,仅仅靠传统的磁盘、块存储、文件存储,已经无能为力了,就算我们可以靠不断的增加硬件投入来扩宽存储能力,但这毕竟是有成本在啊,硬件成本、人工维护成本,还可能牺牲应用的可扩展性、低延迟性,降低用户体验,所以云存储是势不可挡。

对象存储是基于存储的存储设备,通过Web协议(如Rest、SOAP)来实现对象的读写和存储资源的访问。它由对象、对象存储设备、元数据服务器、对象存储系统客户端四部分组成,一般来说用户通过客户端发出访问请求,文件系统OSS接收请求并且向元数据服务器MDS发送请求获取数据的OSD地址,获取OSD地址后直接发出读取对象的请求,经过认证之后将该对象数据返回给客户端,用户在客户端查看数据,整体架构图如下所示:Client客户端就是用户终端,通过标准的文件访问接口与对象存储系统进行对接。Object对象就是存储系统中的基本单元,由文件的数据、属性信息metadata组成。在对象存储中的数据主要有三类,即Key、Data、MetaData,整个对象就是一个桶Bucket,桶里面有很多对象Object。key是用于检索对象,是该对象的全局唯一标识符,即使用户或服务器不知道数据的物理地址,通过可以也可以找到对象。存储系统中,所有的对象都是平等的,对象可大可小,可以是某个字符,也可以是整个文件。

Client客户端就是用户终端,通过标准的文件访问接口与对象存储系统进行对接。Object对象就是存储系统中的基本单元,由文件的数据、属性信息metadata组成。在对象存储中的数据主要有三类,即Key、Data、MetaData,整个对象就是一个桶Bucket,桶里面有很多对象Object。key是用于检索对象,是该对象的全局唯一标识符,即使用户或服务器不知道数据的物理地址,通过可以也可以找到对象。存储系统中,所有的对象都是平等的,对象可大可小,可以是某个字符,也可以是整个文件。

目前阿里云的OSS、腾讯云的COS、七牛云的Kodo、百度云的BOS、网易云的NOS、华为云的OBS等都是提供对象存储服务。下图是一个对象的地址,也就是一个key,以往都是写在前端文件里进行访问获取,如果直接公开的话,我们输入URL就可以访问该视频了。

OSD对象存储设备(ObjectStorageDevice)是一个存储设备,有自己的存储介质、处理器、内存、网络系统,管理本地的对象Object。在OSD中,可以实现数据的存储、数据智能分布、数据管理。首先OSD将数据存储在内置的磁盘系统中,通过对外提供对象ID来进行数据的读写操作。其次OSD可以对自身的CPU、内存进行数据优化分布,优化磁盘系统性能。最后OSD管理对象的元数据,比如对象的数据块、长度等,降低了客户端的开销。

MDS元数据服务器(MetaDataServer)管理客户端与OSD的交互,提供客户端文件目录的关系、每个文件对应的OSD等数据,客户端访问OSD时通过MDS就可以获取到对象所在的位置、大小、存储内容,可快速的获取到访问的文件。

对象存储有很多的优点,比如容量弹性伸缩、数据安全可靠、使用快速便捷。出生于云计算时代,自然继承云计算的弹性伸缩。对象存储的所有业务、存储节点采用分布式集群方式工作,各功能节点、集群支持独立扩容。从理论上来说,某个对象存储系统或单个桶(bucket),没有总数据容量和对象数量的限制,实现了按需使用资源。

对于数据的安全可靠性方面,因为采用了分布式部署,自然不用担心数据丢失问题,其次对于所有的链接都是有访问认证的,也不用担心数据安全问题。最后就是使用方便了,开发者通过标准的接口协议进行开发调用,运维也不用维护网络带宽、服务器成本,使用者直接访问,当然非常方便了。

云计算给我们的生活带来了无限的可能,让我们吃的更好、玩的更好、工作的更高效率、生活的更加的智能。现在你又掌握了一项云计算的黑科技,说不定很快就可以找到对象,一起搞对象存储了哦。

你可能感兴趣的:(云时代,没有对象,我也能搞对象存储)