5分钟了解云存储PaaS的核心服务:对象存储

无论阿里云,还是腾讯云、百度云等其他公有云平台一般都会提供对象存储服务。对象存储是目前云计算应用非常广泛的一项技术。今天我们就来聊聊这项有用的技术。

阿里云对象存储服务的入口


对象存储是什么?

对象存储,是用来描述解决和处理离散单元的方法的通用术语,这些离散单元被称作为对象。

单纯从对象存储的定义来看,有点太抽象了。我们不妨先与传统的存储技术做个比较,看看对象存储到底有何不同。

传统存储技术分类

按照服务器扩展存储架构,传统的存储技术可分为直连存储(DAS: Direct Access Storage)、存储区域网络(SAN: Storage Area Network)和网络附加存储(NAS:Network Attached Storage)。

从存储形态来看,DAS和SAN属于块存储,也就是说存储系统对磁盘(块设备)进行操作,数据存取的接口是块设备驱动。NAS属于文件存储,主要是对文件及目录进行管理,数据存取的接口是文件协议,比如NFS。从抽象层次来说,文件存储要高于块存储。

对象存储

对象存储的核心思想是将数据通路(数据读或写)和控制通路(元数据)分离,并且基于对象存储设备(Object-based Storage Device,OSD)构建存储系统,每个对象存储设备具有一定的智能,能够自动管理其上的数据分布。

对象存储的核心思想:数据IO与访问控制(元数据操作)分离

对象存储与块存储不一样。对象存储没有逻辑单元(LUN)、卷及磁盘阵列(RAID)这些概念。对象存储与文件存储也不一样,对象存储不是通过目录来查询文件。对象数据不是存储在块或者LUN中,而是在大小可变的容器(Bucket)里。

对象存储中的基本存储单位是对象。对象实际上是文件加上一组描述这个文件的属性信息(Meta Data)。属性信息可能包括数据存储的RAID参数、数据的分布等。这些属性信息被称为元数据,也可以理解为数据的数据。

元数据类似于文件的索引,用户先根据索引(对象存储的元数据)找到数据存储的位置,进而通过底层的存储接口来访问数据。元数据起到控制数据访问的作用。


对象存储 vs 块存储、文件存储

以DAS、SAN为代表的块存储以块为存储单位。数据存取速度快,但不利于网络共享。以NFS为代表的NAS存储,以文件为存储单位,适合网络共享,但性能不行。对象存储结合了块存储和文件存储的优点,既有块存储的好性能,也有文件存储的共享便利,是目前最主要的云存储方式。

我们访问对象存储中的数据,可以直接通过REST API来访问对象存储,就像用URI访问一个网络资源文件一样的方便。

对象存储的用途

对象存储通常可用来存储图片、音频、视频等非结构化数据,结构化数据则交给云数据库。下图是阿里云提供的针对中型电商应用的架构解决方案。对象(OSS)用来存储电商的产品图片,并配合CDN网络提高分发的效率。

阿里云提供的电商架构

其实不只是电商应用,只要涉及到非结构化数据存储的应用,都可以使用对象存储技术来代替文件存储。对象存储可以说是云计算平台的标配服务。

前面的文章《简单聊聊最流行的开源云计算平台OpenStack架构》中曾经介绍OpenStack框架中的Swift就是对象存储管理。不仅为应用层提供对象存储服务,包括OpenStack的虚拟机镜像文件也是通过对象存储来存储,镜像管理Glance会调用镜像存储接口,把镜像文件存在Swift中。


结语

最后把文章的几个要点总结一下:

1 对象存储中的对象包括元数据和实际的数据文件,元数据起到控制数据访问的作用。

2 对象存储的核心思想是数据IO与访问控制分离,结合了块存储和文件存储的优点。

3 对象存储使用REST API访问数据,方便又好用,适合非结构化数据存储。

发表评论

邮箱地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.