掌桥专利:专业的专利平台
掌桥专利
首页

用于分布式存储系统的存储方法、电子设备及存储介质

文献发布时间:2023-06-19 09:24:30


用于分布式存储系统的存储方法、电子设备及存储介质

技术领域

本发明涉及数据存储技术领域,尤其涉及一种用于分布式存储系统的存储方法、电子设备及存储介质。

背景技术

由于大数据、人工智能(Artificial Intelligence,AI)技术的高速发展,需要配置的存储系统具有更大的容量、更快的响应速度以及更大的带宽。

现有大规模的对象存储系统通常可以包括云对象存储系统以及分布式存储系统,云对象存储系统通过一个集中式的数据中心再加上多个集群共同组建一个大规模集群,数据由集中式的数据中心分配至对应的集群进行存储,用户使用标准的S3接口就可以直接根据数据索引找到对应的集群并进行数据访问。现有技术中的云对象存储系统,由于每个数据均对应唯一的数据索引以及集群,不仅会增加元数据的存储空间,不利于系统扩容,使得系统性能急剧下降。而分布式存储系统,规模较大但是复杂度高,搭建及维护成本高。

发明内容

本发明实施例提供一种用于分布式存储系统的存储方法、电子设备及存储介质,用以解决现有技术中存在的缺陷。

本发明实施例提供一种用于分布式存储系统的存储方法,所述分布式存储系统包括元数据中心和多个存储集群,包括:

获取待存储对象的存储请求,其中,所述存储请求携带有所述待存储对象的第一URL;

根据所述第一URL从所述元数据中心查找所述待存储对象存放的RealBucket,其中,所述RealBucket属于第一存储集群;

利用所述第一存储集群的集群类型重新组织所述第一URL以形成第二URL,并基于所述第二URL将所述待存储对象存放到所述第一存储集群。

根据本发明一个实施例的用于分布式存储系统的存储方法,所述根据所述第一URL从所述元数据中心查找所述待存储对象存放的RealBucket,包括:

根据所述第一URL中的用户桶信息,确定所述待存储对象对应的虚拟存储位置;

基于所述虚拟存储位置,从所述元数据中心中存储的预设映射关系中确定所述虚拟存储位置对应的RealBucket,并将所述虚拟存储位置对应的RealBucket作为所述待存储对象存放的RealBucket。

根据本发明一个实施例的用于分布式存储系统的存储方法,所述利用所述第一存储集群的集群类型重新组织所述第一URL以形成第二URL,包括:

利用所述第一存储集群的集群类型,或基于所述第一存储集群的集群类型和对用户进行身份认证所得的授权信息,结合所述待存储对象存放的RealBucket以及所述第一存储集群重新组织所述第一URL以形成所述第二URL。

根据本发明一个实施例的用于分布式存储系统的存储方法,还包括:

基于每个存储集群的运行状态信息,增加每个存储集群中RealBucket的数量,并为每个RealBucket分配若干虚拟存储位置。

根据本发明一个实施例的用于分布式存储系统的存储方法,每个所述存储集群均具有优先级的属性;

所述方法还包括:

基于对象的存储时间信息以及属性信息,将优先级较高的存储集群中的对象迁移至优先级较低的存储集群中。

根据本发明一个实施例的用于分布式存储系统的存储方法,所述基于对象的存储时间信息以及属性信息,将优先级较高的存储集群中的对象迁移至优先级较低的存储集群中,包括:

基于对象的存储时间信息以及属性信息,将优先级较高的存储集群中的对象进行合并以及去重处理,并将处理后的对象迁移至优先级较低的存储集群中。

根据本发明一个实施例的用于分布式存储系统的存储方法,所述预设映射关系包括虚拟存储位置与RealBucket之间的第一映射关系以及RealBucket与存储集群之间的第二映射关系。

根据本发明一个实施例的用于分布式存储系统的存储方法,还包括:

获取待访问对象的访问请求,其中,所述访问请求携带有所述待访问对象的第三URL;

根据所述第三URL从所述元数据中心查找所述待访问对象存放的RealBucket,其中,所述RealBucket属于第二存储集群;

利用所述第二存储集群的集群类型重新组织所述第三URL以形成第四URL,并基于所述第四URL在所述第二存储集群中读取所述待访问对象。

本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述用于分布式存储系统的存储方法的步骤。

本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述用于分布式存储系统的存储方法的步骤。

本发明实施例提供的用于分布式存储系统的存储方法、电子设备及存储介质,分布式存储系统包括元数据中心和多个存储集群,该方法包括:获取待存储对象的存储请求,其中,所述存储请求携带有所述待存储对象的第一URL;根据所述第一URL从所述元数据中心查找所述待存储对象存放的RealBucket,其中,所述RealBucket属于第一存储集群;利用所述第一存储集群的集群类型重新组织所述第一URL以形成第二URL,并基于所述第二URL将所述待存储对象存放到所述第一存储集群。根据第一URL从元数据中心查找待存储对象存放的RealBucket,不仅可以快速确定出待存储对象存放的RealBucket,而且由于存储过程中并不需要引入待存储对象的数据索引,可以大大节约元数据的存储空间,降低存储规模以及复杂度,减少了搭建及维护成本。即使在需要对系统扩容的情况下,也可以在不影响系统性能的情况下实现对系统的扩容。尤其针对于万亿级别及以上量级的对象存储,本发明实施例中提供的用于分布式存储系统的存储方法,其优势更加凸显。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种用于分布式存储系统的存储方法的流程示意图;

图2是本发明实施例提供的一种分布式存储系统在数据流层面的结构示意图;

图3是本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

由于现有的云对象存储系统通过一个集中式的数据中心再加上多个集群共同组建一个大规模集群,存储的对象为数据,数据由集中式的数据中心分配至对应的集群进行存储,集群在对数据进行存储时,通常为每个数据提供一个数据索引,因此当用户访问数据时,可以直接使用标准的S3接口根据数据索引找到对应的集群并进行数据访问。这种方式虽然对应关系简单,但不仅会增加元数据的存储空间,不利于系统扩容,而且会导致对象查询速度降低,使得系统性能急剧下降。而现有的分布式存储系统,例如盘古分布式存储系统,规模较大但是复杂度高,搭建及维护成本高。为此,本发明实施例中提供了一种用于分布式存储系统的存储方法,以解决现有技术中存在的问题。

图1为本发明实施例中提供的一种用于分布式存储系统的存储方法的流程示意图,如图1所示,所述方法包括:

S1,获取待存储对象的存储请求,其中,所述存储请求携带有所述待存储对象的第一URL;

S2,根据所述第一URL从所述元数据中心查找所述待存储对象存放的RealBucket,其中,所述RealBucket属于第一存储集群;

S3,利用所述第一存储集群的集群类型重新组织所述第一URL以形成第二URL,并基于所述第二URL将所述待存储对象存放到所述第一存储集群。

可以理解的是,本发明实施例中提供的用于分布式存储系统的存储方法,其执行主体为分布式存储系统,该分布式存储系统中可以包含有元数据中心、网关模块和多个存储集群。元数据中心用于为分布式存储系统提供元数据服务以及元数据存储,元数据是指用于描述对象的数据,用于支持如指示存储位置、历史数据、资源查找、文件记录等功能。元数据可以作为一种电子式目录,为了达到编制目录的目的,必须描述并收藏数据的内容或特色,进而达成协助数据检索的目的。网关模块可以是用户实现对象存储及访问的入口,网关模块可以通过网络接口与用户接口(UserInterface)连接,网络接口可以包括S3API和SwiftAPI,二者能够同时提供高性能远程过程调用(Remote Procedure Calls,RPC)接口。用户接口是面向用户的接口,可以提供公网入口和内网入口。

每个存储集群均可用于存储对象的内容,且每个存储集群均可以携带有用于起标识作用的标识,例如序号。存储集群可以按内部存储的对象的属性信息进行类别划分,对象的属性信息可以包括优先级以及热度等,则存储集群既可以以优先级进行划分,分为高优先级存储集群、中优先级存储集群以及低优先级存储集群,也可以按热度进行划分,分为热存储集群、温存储集群以及冷存储集群。其中,温存储集群又可以称为普通存储集群,冷存储集群又可以称为归档存储集群。属于同一类的存储集群可以有多个,例如,可以有多个热存储集群、多个温存储集群以及多个冷存储集群。属于同一类的多个存储集群可以携带有用于表示类别的统一标识以及用于区分同一类别下的其他存储集群的个体标识。由于存储集群的按类别划分,可以使得分布式存储系统可以天然支持数据分层存储。

首先执行步骤S1,待存储对象为待存储的对象,该对象的内容可以是数据、文件等,待存储对象的存储请求可以由用户通过用户接口传输至网关模块,存储请求可以携带有待存储对象的第一统一资源定位器(Uniform Resource Locator,URL),这是一种基于http协议生成的链接地址。在第一URL中可以携带有待存储对象对应的相关信息。网关模块接收到该存储请求后,对该存储请求进行分类,以确定该存储请求的类型是swift请求还是S3请求,即判断该存储请求是通过哪种类型的用户接口接收到的。针对存储请求的类型,对存储请求进行相应处理,以识别出该存储请求中包含的第一URL以及待存储对象对应的相关信息。

然后执行步骤S2,根据第一URL从元数据中心查找待存储对象存放的RealBucket,该RealBucket属于第一存储集群。由于在元数据中心存储有各对象的元数据信息,因此可以在元数据中心中查找与第一URL中携带的信息相匹配的元数据信息,确定出待存储对象存放的RealBucket,进而可以知晓RealBucket所属的存储集群为第一存储集群。此处,RealBucket是指分布式存储系统中存储集群内用于存储对象的实际存储位置,RealBucket部署于存储集群内,且每个存储集群内可以部署有多个RealBucket。

最后执行步骤S3,利用第一存储集群的集群类型,重新组织第一URL以形成第二URL。其中,存储集群的集群类型可以包括Ceph型、switf型以及其他类型。由于存储集群的集群类型不同,对象存入存储集群或从存储集群中取出均需要采用不同的URL,因此需要利用第一存储集群的集群类型重新组织第一URL,以保证待存储对象可以通过形成的第二URL存放到第一存储集群中。

本发明实施例提供的用于分布式存储系统的存储方法,分布式存储系统包括元数据中心和多个存储集群,根据第一URL从元数据中心查找待存储对象存放的RealBucket,不仅可以快速确定出待存储对象存放的RealBucket,而且由于存储过程中并不需要引入待存储对象的数据索引,可以大大节约元数据的存储空间,降低存储规模以及复杂度,减少了搭建及维护成本。即使在需要对系统扩容的情况下,也可以在不影响系统性能的情况下实现对系统的扩容。尤其针对于万亿级别及以上量级的对象存储,本发明实施例中提供的用于分布式存储系统的存储方法,其优势更加凸显。

在上述实施例的基础上,本发明实施例中提供的用于分布式存储系统的存储方法,所述根据所述第一URL从所述元数据中心查找所述待存储对象存放的RealBucket,包括:

根据所述第一URL中的用户桶信息,确定所述待存储对象对应的虚拟存储位置;

基于所述虚拟存储位置,从所述元数据中心中存储的预设映射关系中确定所述虚拟存储位置对应的RealBucket,并将所述虚拟存储位置对应的RealBucket作为所述待存储对象存放的RealBucket。

可以理解的是,存储请求携带的待存储对象的第一URL中包含有用户桶信息,用户桶信息可以是用于表征待存储对象对应的用户桶(UserBucket/UserContainer,UB/UC)的相关信息,用户桶是一种虚拟桶,可以理解为是为用户分配的存储层面上的虚拟概念,用于让用户将分布式存储系统中的所有存储集群不作区分地作为一个整体进行考虑。本发明实施例中,分布式存储系统中基于用户账户(Account)实现隔离,即每个用户在分布式存储系统中均对应存在一个用户账户,该用户账户可以通过注册得到,且该用户账户与用户桶是一一对应的。该用户账户下的对象对应的用户桶均为该用户账户对应的用户桶。因此,在第一URL中还可以包含有用户账户。

在分布式存储系统中,每个用户桶可以对应有若干虚拟存储集合(HashBuckets,HBs),每个虚拟存储集合中可以包括一个或多个虚拟存储位置(HashBucket,HB),每个虚拟存储位置用于表征对象在用户桶中的逻辑存储位置。根据待存储对象对应的用户桶信息,可以确定出待存储对象对应的虚拟存储位置。

本发明实施例中可以为每个虚拟存储位置分配一标识信息,在确定待存储对象的虚拟存储位置时,可以根据待存储对象的用户桶信息,结合相应算法对第一URL进行运算,得到对应的数值,确定携带有与该数值对应的标识信息的虚拟存储位置即为用户桶信息的虚拟存储位置。

本发明实施例中,元数据中心中存储有预设映射关系这一对象的元数据信息,预设映射关系可以表示虚拟存储位置与实际存储位置之间的映射关系,实际存储位置可以包括RealBucket以及存储集群。因此,预设映射关系可以包括虚拟存储位置与RealBucket之间的第一映射关系以及RealBucket与存储集群之间的第二映射关系。结合元数据中心中存储的预设映射关系,即可以确定出虚拟存储位置对应的RealBucket以及RealBucket所处的存储集群。本发明实施例中,不同存储集群上的RealBucket可以对应于同一用户桶,从而使同一用户的数据可以分布在不同的存储集群上而用户无感知。

最后将虚拟存储位置对应的RealBucket作为待存储对象待存储对象存放的RealBucket,虚拟存储位置对应的RealBucket所处的存储集群即为第一存储集群。

本发明实施例中提供的用于分布式存储系统的存储方法,通过元数据中心存储的预设映射关系,确定出虚拟存储位置对应的RealBucket以及RealBucket所处的第一存储集群,不仅可以快速确定出待存储对象存放的RealBucket以及RealBucket所处的第一存储集群,而且由于存储过程中并不需要引入待存储对象的数据索引,可以大大节约元数据的存储空间,降低存储规模以及复杂度,减少了搭建及维护成本。即使在需要对系统扩容的情况下,也可以在不影响系统性能的情况下实现对系统的扩容。尤其针对于万亿级别及以上量级的对象存储,本发明实施例中提供的用于分布式存储系统的存储方法,其优势更加凸显。另外,本发明实施例中元数据中心存储的预设映射关系,相比于现有技术中集中式的元数据存储,避免了单点性能瓶颈,使得元数据服务可以水平扩容。

在上述实施例的基础上,本发明实施例中提供的用于分布式存储系统的存储方法,所述利用所述第一存储集群的集群类型重新组织所述第一URL以形成第二URL,包括:

利用所述第一存储集群的集群类型,或基于所述第一存储集群的集群类型和对用户进行身份认证所得的授权信息,结合所述待存储对象存放的RealBucket以及所述第一存储集群重新组织所述第一URL以形成所述第二URL。

可以理解的是,在从元数据中心查找出待存储对象存放的RealBucket之后,将查找出的RealBucket以及RealBucket所处的第一存储集群发送至分布式存储系统中的网关模块,网关模块在收到RealBucket以及RealBucket所处的第一存储集群之后,可以根据第一存储集群的集群类型,结合RealBucket以及RealBucket所处的第一存储集群重新组织第一URL,即重新组织得到的第二URL中包含有RealBucket以及RealBucket所处的第一存储集群,并可以适应于第一存储集群的类型。网关模块根据第二URL将待存储对象转发至第一存储集群上进行存放,至此实现了对待存储对象的成功存储。

网关模块在收到RealBucket以及RealBucket所处的第一存储集群之后,也可以根据第一存储集群的类型以及对用户进行身份认证所得的授权信息,结合RealBucket以及RealBucket所处的第一存储集群重新组织第一URL,即重新组织第一URL的前提是对用户进行身份认证得到的结果是认证通过,如果认证未通过则无法得到授权信息,进而无法重新组织第一URL并利用得到的第二URL对待存储对象进行存储。其中,重新组织得到的第二URL中包含有RealBucket、RealBucket所处的第一存储集群以及授权信息,并可以适应于第一存储集群的类型。然后,网关模块根据第二URL将待存储对象转发至第一存储集群上进行存放,至此实现了对待存储对象的成功存储。

需要说明的是,本发明实施例中可以通过分布式存储系统中的统一认证中心对用户进行身份认证,并在认证通过后由统一认证中心返回授权信息。由于分布式存储系统的底层存储空间基于异构多集群构建,为每个集群执行一套身份认证系统过于冗余且会带来大量运维问题,因此采用统一认证中心,在用户接口(User Interface,UI)层接管身份认证相关操作,非高权限管理员无法绕过UI层直接访问底层集群数据。

本发明实施例中,给出了网关模块转发实现对待存储对象的存储方案,考虑了第一存储集群的类型,使得待存储对象可以顺利存储。而且,还可以引入用户的身份认证,只有得到授权信息后才能够对第一URL进行重新组织并使网关模块根据根据第二URL将待存储对象存放至第一存储集群,限定了待存储对象的存储主体,提高了待存储对象的安全性,实现了基于用户信息的待存储对象的存储隔离。

在上述实施例的基础上,本发明实施例中提供的用于分布式存储系统的存储方法,还包括:

基于每个存储集群的运行状态信息,增加每个存储集群中RealBucket的数量,并为每个RealBucket分配若干虚拟存储位置。

可以理解的是,分布式存储系统中还包括统一运维中心,统一运维中心用于获取分布式存储系统内每个存储集群的运行状态信息。其中,运行状态信息可以包括但不限于各存储集群的日志、系统性能数据、用户访问日志等。在需要对分布式存储系统进行扩容以增加存储集群中的RealBucket时,统一运维中心可以根据获取到的每个存储集群的运行状态信息,监控各个存储集群的负载,自动化的创建新的RealBucket,并各个存储集群中的RealBucket分配若干虚拟存储位置以实现各个存储集群间的负载均衡。一个RealBucket可以被分配1个或多个虚拟存储位置,最多可以将一个UB/UC对应的某一虚拟存储集合中所有虚拟存储位置均分配给同一个RealBucket。

除此之外,统一运维中心还可以用于监控用户桶对应的虚拟存储位置的数量等。

本发明实施例中,可以根据每个存储集群的运行状态信息,增加每个存储集群中的存储桶,并为每个存储桶分配若干虚拟存储位置,为系统扩容提供基础支持。

在上述实施例的基础上,在进行系统扩容时,扩容集群只要是支持swift接口或者S3接口的存储集群都可以作为分布式存储系统的存储集群。

在上述实施例的基础上,本发明实施例中提供的用于分布式存储系统的存储方法,所述存储集群具有优先级的属性;所述方法还包括:

基于对象的存储时间信息以及属性信息,将优先级较高的存储集群中的对象迁移至优先级较低的存储集群中。

可以理解的是,存储集群可以具有优先级的属性,即存储集群可以以优先级进行划分,分为高优先级存储集群、中优先级存储集群以及低优先级存储集群,高优先级存储集群用于存储高优先级的对象,中优先级存储集群用于存储中优先级的对象,低优先级存储集群用于存储低优先级的对象。

对象的存储时间信息是指对象存储时间的先后、长短等信息,在对分布式存储系统进行扩容时,可以根据各存储集群中对象的存储时间信息以及属性信息,将优先级较高的存储集群中的对象迁移至优先级较低的存储集群中,即对于存储时间较久的对象,结合其属性信息考虑,可以认为其优先级较低或者热度较低,因此可以将其由原来所处的优先级较高的存储集群迁移至优先级较低的存储集群中。

本发明实施例中,将优先级较高的存储集群中的对象迁移至优先级较低的存储集群中,可以为后续优先级较高的对象提供充足的存储空间。

在上述实施例的基础上,本发明实施例中提供的用于分布式存储系统的存储方法,所述基于对象的存储时间信息以及属性信息,将优先级较高的存储集群中的对象迁移至优先级较低的存储集群中,包括:

基于对象的存储时间信息以及属性信息,将优先级较高的存储集群中的对象进行合并以及去重处理,并将处理后的对象迁移至优先级较低的存储集群中。

可以理解的是,在进行对象迁移的过程中,可以先将待迁移的对象,即优先级较高的存储集群中的对象进行合并以及去重处理,然后将处理后的对象进行迁移,如此可以保证对象迁移至优先级较低的存储集群中之后,可以占用更少的存储资源。

在上述实施例的基础上,预设映射关系不仅可以包括虚拟存储位置与RealBucket之间的第一映射关系、RealBucket与存储集群之间的第二映射关系,还可以包括对象对应的用户账户与用户桶之间的第三映射关系。第三映射关系的存在,可以使得存储请求或访问请求中不包含有用户账户时,也可以根据包含的用户桶确定出用户账户,以进行用户身份认证。

由于现有技术中的云对象存储系统中通常采用TiDB作为中心化的元数据存储单元,其性能决定了整个存储系统的性能。TiDB作为一种kv数据库,虽然拥有很好的查询性能和可扩展性,目前在百亿甚至千亿级别object的存储上也有不错的性能,但是随着存储规模的更加的扩大,当数据量超过万亿,十万亿乃至百万亿时,中心化的元数据存储系统的任何查询功能特别是sql查询功能都有可能成为其性能瓶颈,这是由于存储、读出、浏览(scan)等系统性能决定的,而为了提速,进行拆分则有可能极大的推高元数据存储系统的成本。

为此,在上述实施例的基础上,本发明实施例中提供的用于分布式存储系统的存储方法中,还包括:

获取待访问对象的访问请求,其中,所述访问请求携带有所述待访问对象的第三URL;

根据所述第三URL从所述元数据中心查找所述待访问对象存放的RealBucket,其中,所述RealBucket属于第二存储集群;

利用所述第二存储集群的集群类型重新组织所述第三URL以形成第四URL,并基于所述第四URL在所述第二存储集群中读取所述待访问对象。

可以理解的是,本发明实施例中给出了对待访问对象的访问过程,即如何确定出待访问对象在分布式存储系统中的RealBucket并顺利读取。本发明实施例不对上述访问过程和存储过程执行的先后顺序进行限定。

首先,获取待访问对象的访问请求,所述访问请求中携带有所述待访问对象的第三URL。其中,待访问对象为待访问的对象,该对象的内容可以是数据、文件等,待访问对象的访问请求可以由用户通过用户接口传输至网关模块,访问请求可以携带有待访问对象的第三URL,这是可以是一种基于http协议生成的链接地址。在访问请求中可以携带有待访问对象对应的用户桶信息,还可以携带有待访问对象对应的用户账户。

可选地,网关模块接收到该访问请求后,对该访问请求进行分类,以确定该访问请求的类型是swift请求还是S3请求,即判断该访问请求是通过哪种类型的用户接口接收到的。针对访问请求的类型,对访问请求进行相应处理,以识别出该访问请求中包含的待访问对象对应的用户桶信息以及用户账户。

其次,根据待访问对象对应的用户桶信息,可以确定出待访问对象的虚拟存储位置,即待访问对象在对应的用户桶中的逻辑存储位置。可以通过待访问对象对应的用户桶信息,结合哈希算法对访问请求进行哈希运算,得到对应的哈希值,该哈希值对应的虚拟存储位置即为指定虚拟存储位置。

最后,根据预设映射关系,确定出待访问对象的虚拟存储位置对应的RealBucket及RealBucket所处的存储集群。通过网关模块即可从待访问对象对应的RealBucket中读取到待访问对象。

本发明实施例中,通过预设映射关系,可以为待访问对象的查询与访问提供便利,提高待访问对象的查询与访问效率,缩短对象查询与访问耗费的时间。

图2为本发明实施例中提供的分布式存储系统在数据流层面的结构示意图,如图2所示,该分布式系统可以包括用户接口和网络接口,该用户接口可以是公网入口或内网入口。网络接口可以是S3接口,也可以是Swift接口。网络接口与网关模块连接,网关模块通过对存储请求或者访问请求的转发,与分布式存储系统中各集群实现交互。分布式存储系统中包含的集群包括热存储集群、温存储集群、归档集群以及元数据集群,热存储集群中可以包含有多个高性能集群,温存储集群中可以包含有多个普通存储集群,归档集群中可以包含有多个低功耗大容量集群。在对分布式存储系统进行扩容的过程中,可以将热存储集群中的文件进行去重以及小文件合并处理,然后将处理后的结果存储温存储集群中。元数据集群中可以通过元数据服务实现对各对象的元数据的处理操作,并可以实现对各对象的元数据进行统一存储的功能。分布式存储系统中还包含有统一运维中心,用于收集各存储集群的运行状态信息,并可根据该运行状态信息更新元数据集群中存储的预设映射关系。

网关模块在转发存储请求或访问请求时,可以结合统一认证中心对用户进行身份认证得到的授权信息,以提高对象的保密性。

图3示例了一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)310、通信接口(Communications Interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行用于分布式存储系统的存储方法,所述分布式存储系统包括元数据中心和多个存储集群,该方法包括:获取待存储对象的存储请求,其中,所述存储请求携带有所述待存储对象的第一URL;根据所述第一URL从所述元数据中心查找所述待存储对象存放的RealBucket,其中,所述RealBucket属于第一存储集群;利用所述第一存储集群的集群类型重新组织所述第一URL以形成第二URL,并基于所述第二URL将所述待存储对象存放到所述第一存储集群。

此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的用于分布式存储系统的存储方法,所述分布式存储系统包括元数据中心和多个存储集群,该方法包括:获取待存储对象的存储请求,其中,所述存储请求携带有所述待存储对象的第一URL;根据所述第一URL从所述元数据中心查找所述待存储对象存放的RealBucket,其中,所述RealBucket属于第一存储集群;利用所述第一存储集群的集群类型重新组织所述第一URL以形成第二URL,并基于所述第二URL将所述待存储对象存放到所述第一存储集群。

又一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的用于分布式存储系统的存储方法,所述分布式存储系统包括元数据中心和多个存储集群,该方法包括:获取待存储对象的存储请求,其中,所述存储请求携带有所述待存储对象的第一URL;根据所述第一URL从所述元数据中心查找所述待存储对象存放的RealBucket,其中,所述RealBucket属于第一存储集群;利用所述第一存储集群的集群类型重新组织所述第一URL以形成第二URL,并基于所述第二URL将所述待存储对象存放到所述第一存储集群。

以上所描述的实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 用于分布式存储系统的存储方法、电子设备及存储介质
  • 分布式存储系统中元数据存储方法、系统及存储介质
技术分类

06120112154829