对象存储概念及特性
在介绍 QingStor®️对象存储内部的的架构和设计原理之前,我们首先来了解一下对象存储的概念,也就是从外部视角看,对象存储有什么特性,我们应该如何使用。
对象存储本质上是一款存储产品,与其他的存储,如文件存储、块存储,功能是类似的,主要的功能都是数据的读和写。最大的不同在于对象存储是把数据作为对象进行管理,这是它最主要的特征,所有的数据在这里面都当做一个对象处理。
对象存储有一些非常鲜明的特点:
- 它的结构是扁平的,不像文件存储那样有目录层级,在读写数据时不需要对目录进行层层查找和打开。
- 对象存储具备海量数据存储的能力,这里的海量指的是不仅仅是几百 GB 的量,而是说几百 T 甚至上 PB 的级别。
- 对象存储适用于非结构化数据的存储,非结构化具体指的是不对数据的类型和格式做任何假设,不管是简单的文本,还是图片、视频、音频都可以存在对象存储里,当做对象来处理。
- 对象存储通过 Restful 接口对外提供服务,也就是 HTTP 协议,这使得对象存储的访问非常方便,随时随地可以进行数据的上传和下载。
QingStor®️对象存储核心优势
组成,在使用对象存储时,必须要先申请一个存储桶,然后才能向存储桶中上传对象数据,以存储桶为单位来存储和管理对象数据。
在同一个 Zone 下面可以有很多个存储桶,存储桶里有各种各样的对象数据,对象数据对类型大小没有限制,单个存储桶中对象的数量也没有限制,可以无限量上传对象数据。
QingStor®️对象存储架构解析
这是 QingStor®️对象存储的后台系统架构,这个架构图经过了一些简化和抽象。
首先是接入子系统,对象存储提供的是在线服务,通过 Restful 进行访问,本质上相当于在线服务的后台,需要有接入子系统来完成接收请求、解析协议等工作。
在接入子系统下是索引子系统,索引子系统用来存储和管理对象的元数据,元数据指的是对象的 Meta 信息,包括 Object 类型、大小、写入时间之类的信息,由索引子系统管理。
存储子系统负责存储和管理数据实体本身,保证数据的可靠持久化存储。
事件子系统主要工作是异步事件处理和分布式任务调度,它是生命周期管理等功能的底层机制。
图中几条实线箭头显示了数据的流向或者说是请求处理流程,请求从接入子系统下来,接入子系统会和索引子系