一种用于海量对象的存储方法及系统技术方案

技术编号:34612681 阅读:18 留言:0更新日期:2022-08-20 09:18
本发明专利技术公开了一种用于海量对象的存储方法及系统,属于数据存储领域;所述的方法具体步骤如下:S1对用户的请求进行认证授权;S2对外提供服务的bucket映射为多个虚拟bucket;本发明专利技术方法用以满足用户存储海量数据的要求,同时解决单个bucket存储object数量上限的问题,提高查询的性能。在系统进行扩容/缩容时,尽量减少或者避免数据的大量迁移,从而保证整个系统平稳运行,提高系统的可用性及数据高可靠性,提升用户体验。提升用户体验。提升用户体验。

【技术实现步骤摘要】
一种用于海量对象的存储方法及系统


[0001]本专利技术公开一种用于海量对象的存储方法及系统,涉及数据存储


技术介绍

[0002]海量小文件存储(简称LOSF,lots of small files)出现后,就一直是业界的难题,这类业务只需要简单的存取,非常适合使用对象存储。对象存储是面向对象/文件的海量云存储。对象存储没有像文件系统那样有一个很多层级的文件结构,而是只有一个“桶(bucket)”的概念(也就是存储空间),“桶”是用于存储对象(object)的容器,是一种非常扁平化的存储方式。当前业界采用最为流行的Ceph作为后端存储。
[0003]Ceph是一种具备卓越性能和高可靠性、高扩展性的统一、分布式存储系统。 Ceph通过RGW(Rados Gateway)对外提供对象存储服务,支持S3和Swift两种接口。
[0004]在上述技术趋势下,存在以下问题:单个bucket在实际使用中存在object 数量的上限,受限于桶的元数据索引的shard数量,即使目前社区已经支持了 reshard甚至是Auto Reshard,但是随着object达到上十亿级别甚至千亿时,每次reshard的时间会越来越长,最为严重的是当系统处于reshard操作时,会阻塞客户端的上传请求,同时在此过程中增加了元数据丢失的风险。另外 Ceph集群进行扩容缩容时也会触发数据的重新平衡,当集群内数据量巨大时,平衡时间也会非常长,严重影响正常的业务。
[0005]有鉴于此,有必要对现有技术中对象存储的实现方法予以改进,故专利技术一种用于海量对象的存储方法及系统,以解决上述问题。

技术实现思路

[0006]本专利技术针对现有技术的问题,提供一种用于海量对象的存储方法及系统,所采用的技术方案为:一种用于海量对象的存储方法,所述的方法具体步骤如下:
[0007]S1对用户的请求进行认证授权:
[0008]从用户的请求中解析出access_key和数字签名,使用用户的access_key 和请求头部数据计算出出数字签名;
[0009]比较计算出的数字签名和用户请求传过来的是否一致,如果一致就认证通过,否则认证失败;
[0010]对通过认证的请求进行资源鉴权;
[0011]S2对外提供服务的bucket映射为多个虚拟bucket:
[0012]将每个bucket对应一组虚拟的bucket进行命名;
[0013]当存储容量到达虚拟bucket的门限值时,触发扩容虚拟桶的流程;
[0014]根据测试数据设置单个虚机桶内对象数量。
[0015]所述S2采用Hash算法定位当前文件对应的虚拟bucket。
[0016]所述扩容虚拟桶的流程中,获取底层Ceph集群剩余的存储空间,在剩余空间最大的Ceph上创建虚拟bucket。
[0017]所述底层Ceph集群剩余的存储空间能够对接多个Ceph集群,每个Ceph 集群都有个RGW对外提供服务。
[0018]所述Ceph集群之间互相备份。
[0019]一种用于海量对象的存储系统,所述的系统具体包括请求处理模块和虚拟映射模块:
[0020]请求处理模块:对用户的请求进行认证授权;
[0021]虚拟映射模块:对外提供服务的bucket映射为多个虚拟bucket:
[0022]所述请求处理模块具体包括请求解析模块、请求认证模块和认证授权模块:
[0023]请求解析模块:从用户的请求中解析出access_key和数字签名,使用用户的access_key和请求头部数据计算出出数字签名;
[0024]请求认证模块:比较计算出的数字签名和用户请求传过来的是否一致,如果一致就认证通过,否则认证失败;
[0025]认证授权模块:对通过认证的请求进行资源鉴权;
[0026]所述虚拟映射模块具体包括虚拟命名模块、流程触发模块和对象设置模块:
[0027]虚拟命名模块:将每个bucket对应一组虚拟的bucket进行命名;
[0028]流程触发模块:当存储容量到达虚拟bucket的门限值时,触发扩容虚拟桶的流程;
[0029]对象设置模块:根据测试数据设置单个虚机桶内对象数量。
[0030]所述虚拟映射模块采用Hash算法定位当前文件对应的虚拟bucket。
[0031]所述流程触发模块扩容虚拟桶的流程中,获取底层Ceph集群剩余的存储空间,在剩余空间最大的Ceph上创建虚拟bucket。
[0032]所述流程触发模块底层Ceph集群剩余的存储空间能够对接多个Ceph集群,每个Ceph集群都有个RGW对外提供服务。
[0033]所述Ceph集群之间互相备份。
[0034]本专利技术的有益效果为:本专利技术方法用以满足用户存储海量数据的要求,同时解决单个bucket存储object数量上限的问题,提高查询的性能。在系统进行扩容/缩容时,尽量减少或者避免数据的大量迁移,从而保证整个系统平稳运行,提高系统的可用性及数据高可靠性,提升用户体验。
附图说明
[0035]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0036]图1是本专利技术方法实施例的实施流程示意图;图2是本专利技术方法实施例中 bucket处理流程示意图。
具体实施方式
[0037]下面结合附图和具体实施例对本专利技术作进一步说明,以使本领域的技术人员可以更好地理解本专利技术并能予以实施,但所举实施例不作为对本专利技术的限定。
[0038]实施例一:
[0039]一种用于海量对象的存储方法,所述的方法具体步骤如下:
[0040]S1对用户的请求进行认证授权:
[0041]从用户的请求中解析出access_key和数字签名,使用用户的access_key 和请求头部数据计算出出数字签名;
[0042]比较计算出的数字签名和用户请求传过来的是否一致,如果一致就认证通过,否则认证失败;
[0043]对通过认证的请求进行资源鉴权;
[0044]S2对外提供服务的bucket映射为多个虚拟bucket:
[0045]将每个bucket对应一组虚拟的bucket进行命名;
[0046]当存储容量到达虚拟bucket的门限值时,触发扩容虚拟桶的流程;
[0047]根据测试数据设置单个虚机桶内对象数量;
[0048]首先按照S1对用户的请求进行认证授权;从用户的请求中解析出 access_key和数字签名,使用用户的access_key和请求头部数据计算出出数字签名,比较计算出的数字签名和用户请求传过来的是否一致,如果一致就认证通过,否则认证失败;通过认证的请本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于海量对象的存储方法,其特征是所述的方法具体步骤如下:S1对用户的请求进行认证授权:从用户的请求中解析出access_key和数字签名,使用用户的access_key和请求头部数据计算出出数字签名;比较计算出的数字签名和用户请求传过来的是否一致,如果一致就认证通过,否则认证失败;对通过认证的请求进行资源鉴权;S2对外提供服务的bucket映射为多个虚拟bucket:将每个bucket对应一组虚拟的bucket进行命名;当存储容量到达虚拟bucket的门限值时,触发扩容虚拟桶的流程;根据测试数据设置单个虚机桶内对象数量。2.根据权利要求1所述的方法,其特征是所述S2采用Hash算法定位当前文件对应的虚拟bucket。3.根据权利要求2所述的方法,其特征是所述扩容虚拟桶的流程中,获取底层Ceph集群剩余的存储空间,在剩余空间最大的Ceph上创建虚拟bucket。4.根据权利要求3所述的方法,其特征是所述底层Ceph集群剩余的存储空间能够对接多个Ceph集群,每个Ceph集群都有个RGW对外提供服务。5.根据权利要求4所述的方法,其特征是所述Ceph集群之间互相备份。6.一种用于海量对象的存储系统,其特征是所述的系统具体包括请求处理模块和虚拟映射模块:请求处理模块:对用户的请求进行认证授权;虚拟映射模块:对外提供服务...

【专利技术属性】
技术研发人员:王腾飞李超高传集
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1