分布式对象存储集群及其请求响应方法、系统和存储介质与流程

文档序号:16630032发布日期:2019-01-16 06:29阅读:155来源:国知局
分布式对象存储集群及其请求响应方法、系统和存储介质与流程

本申请涉及存储技术领域,更具体地说,涉及一种分布式对象存储集群及其请求响应方法、系统和一种计算机可读存储介质。



背景技术:

近年来,随着大数据应用的爆发性增长和网络应用的快速普及,网络数据呈海量的增长方式.直接推动了存储、网络以及计算技术的发展,数据分析应用需求正在影响着数据存储基础设施的发展。

随着结构化数据和非结构化数据量的持续增长,以及分析数据来源的多样化,对分布式对象存储集群的高可用性和数据安全性提出更高的要求,当前存储系统的设计已经无法满足大数据应用的需要。

因此,如何提高分布式对象存储集群的高可用性和数据安全性是本领域技术人员需要解决的问题。



技术实现要素:

本申请的目的在于提供一种分布式对象存储集群及其请求响应方法、系统和一种计算机可读存储介质,提高了分布式对象存储集群的高可用性和数据安全性。

为实现上述目的,本申请提供了一种分布式对象存储集群,包括haproxy服务器集群、keystone认证模块、元数据服务集群和对象存储集群;

所述haproxy服务器集群包括多个haproxy服务器节点;各所述haproxy服务器节点之间通过keepalived实现心跳监测和资源接管;

所述keystone认证模块用于发送服务请求的客户端进行身份认证。

其中,每个所述haproxy服务器节点与多个响应节点相连;

所述响应节点用于根据所述元数据服务集群和所述对象存储集群响应所述客户端的所述服务请求。

为实现上述目的,本申请提供了一种分布式对象存储集群请求响应方法,包括:

当接收到客户端的服务请求时,通过keystone认证模块对所述客户端进行身份认证;

身份认证通过后,通过目标haproxy服务器节点将所述服务请求分配至目标响应节点,以便所述目标响应节点根据所述服务请求对元数据服务集群和/或对象存储集群执行对应的操作。

其中,所述对应的操作包括用户账号管理、数据存储管理和数据管理中的任一项或任多项的组合。

其中,还包括:

通过keepalived对haproxy服务器集群中的各haproxy服务器节点进行心跳监测,并判断是否存在故障haproxy服务器节点;

若是,则将所述故障haproxy服务器节点中的资源转移至所述haproxy服务器集群中的其他haproxy服务器节点。

其中,将所述故障haproxy服务器节点中的资源转移至所述haproxy服务器集群中的其他haproxy服务器节点,包括:

根据所述haproxy服务器集群中的其他haproxy服务器节点的当前负载情况选择目标haproxy服务器节点;

将所述故障haproxy服务器节点中的资源转移至所述目标haproxy服务器节点。

为实现上述目的,本申请提供了一种分布式对象存储集群请求响应系统,包括:

认证模块,用于当接收到客户端的服务请求时,通过keystone认证模块对所述客户端进行身份认证;

响应模块,用于身份认证通过后,通过目标haproxy服务器节点将所述服务请求分配至目标响应节点,以便所述目标响应节点根据所述服务请求对元数据服务集群和/或对象存储集群执行对应的操作。

其中,还包括:

监测模块,用于通过keepalived对haproxy服务器集群中的各haproxy服务器节点进行心跳监测,并判断是否存在故障haproxy服务器节点;

转移模块,用于当存在故障haproxy服务器节点时,将所述故障haproxy服务器节点中的资源转移至所述haproxy服务器集群中的其他haproxy服务器节点。

其中,所述转移模块包括:

选取单元,用于根据所述haproxy服务器集群中的其他haproxy服务器节点的当前负载情况选择目标haproxy服务器节点;

转移单元,用于将所述故障haproxy服务器节点中的资源转移至所述目标haproxy服务器节点。

为实现上述目的,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述分布式对象存储集群请求响应方法的步骤。

通过以上方案可知,本申请提供的一种分布式对象存储集群,包括haproxy服务器集群、keystone认证模块、元数据服务集群和对象存储集群;所述haproxy服务器集群包括多个haproxy服务器节点;各所述haproxy服务器节点之间通过keepalived实现心跳监测和资源接管;所述keystone认证模块用于发送服务请求的客户端进行身份认证。

本申请提供的分布式对象存储集群,在传统对象存储集群的基础上,通过keystone的统一认证,合法用户才能通过经haproxy和keepalived设置后的dnsserver节点实现对基于对象存储集群的数据操作。统一的keystone认证系统保证用户数据的安全性和隔离性,有效提升服务请求的吞吐能力。同时分别部署多个haproxy服务器节点,作为对象存储集群的接口,当并行服务请求急剧增长的情况下,能够有效降低数据并行访问的失败请求数,实现整个对象存储集群的高可用性。本申请还公开了一种分布式对象存储集群请求响应方法、系统和一种计算机可读存储介质,同样能实现上述技术效果。

附图说明

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

图1为本申请实施例公开的一种分布式对象存储集群的结构图;

图2为本申请实施例公开的一种分布式对象存储集群的整体架构图;

图3为本申请实施例公开的一种对象存储集群的框架图;

图4为本申请实施例公开的一种分布式对象存储集群的高可用性框架图;

图5为本申请实施例公开的一种分布式对象存储集群请求响应方法的流程图;

图6为本申请实施例公开的另一种分布式对象存储集群请求响应方法的流程图;

图7为本申请实施例公开的一种分布式对象存储集群请求响应系统的结构图。

具体实施方式

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

本申请实施例公开了一种分布式对象存储集群,提高了分布式对象存储集群的高可用性和数据安全性。

参见图1,本申请实施例公开的一种分布式对象存储集群的结构图,如图1所示,包括haproxy服务器集群200、keystone认证模块100、元数据服务集群300和对象存储集群400;

所述haproxy服务器集群200包括多个haproxy服务器节点;各所述haproxy服务器节点之间通过keepalived实现心跳监测和资源接管;

所述keystone认证模块100用于发送服务请求的客户端进行身份认证。

在具体实施中,为实现分布式对象存储集群的高可用性,部署多个haproxy服务器节点作为对象存储集群的接口。以haproxy服务器集群中包括两个haproxy服务器节点为例,本实施例提供的分布式对象存储集群整体架构如图2所示。

集群生态系统是一个完整的对象存储系统,实现对象存储集群中用户数据的存储和管理。librados对rados进行抽象和封装,向上层提供api,满足基于rados的应用开发需求。radosgw在librados库的基础上提供抽象层次更高、更便于应用或客户端使用的上层接口。radosgw是一个提供与amazons3和swift兼容的restfulapi的gateway,通过设计rados-gw来提供对象存储的应用开发,如用户的认证体系、用户的管理、配额管理、对象的操作等。haproxy1和haproxy2是整个存储集群中设置radosgw的节点。每个haproxy服务器节点与多个响应节点相连,该响应节点用于根据元数据服务集群和对象存储集群响应客户端的服务请求。

数据用户在大多数客户端的文件系统中所有的控制和智能在内核的文件系统源本身中执行。在对象存储集群中还可以设置集群监视器,用于执行监视功能。当对象存储设备发生故障或者新设备添加时,集群监视器就检测和维护一个有效的集群映射。对象存储集群中的各存储节点配合响应节点响应客户端发出的各种数据请求。元数据服务器用于缓存和同步分布式元数据,元数据服务器将文件名转变为索引节点、文件大小,用于文件i/o的分段数据布局。

对于上述对象存储集群的框架如图3所示,在对象存储集群健康的状态下,用户通过dnsserver节点访问对象存储集群,在整个对象存储集群中,可以根据实际生产需求设计对象存储集群的radosgw,形成庞大的多区域访问节点,实现用户访问的多区域访问模式,满足实际生产环境下不同用户的交互和操作。keystone认证模块统一认证实现用户访问的安全性和对存储数据的隔离性。通过统一认证的用户可以操作和管理对象存储集群,例如数据存储、数据管理、数据的整合等服务。

对于高可用性的实现如图4所示,haproxy1和haproxy2提供对象存储集群中的对象存储服务。通过设置keepalived在haproxy1和haproxy2节点上不断进行故障检测,保证对象存储集群提供正常的云存储服务。在dnsserver节点安装和配置haproxy,用户可以通过访问dnsserver实现对对象存储的轮询访问,当网络访问量急剧增长时,能够有效的解决网络的io瓶颈,减轻服务器节点的压力。

本申请实施例提供的分布式对象存储集群,在传统对象存储集群的基础上,通过keystone的统一认证,合法用户才能通过经haproxy和keepalived设置后的dnsserver节点实现对基于对象存储集群的数据操作。统一的keystone认证系统保证用户数据的安全性和隔离性,有效提升服务请求的吞吐能力。同时分别部署多个haproxy服务器节点,作为对象存储集群的接口,当并行服务请求急剧增长的情况下,能够有效降低数据并行访问的失败请求数,实现整个对象存储集群的高可用性。

本实施例提供了分布式对象存储集群请求响应方法,具体的:

参见图5,本申请实施例提供的一种分布式对象存储集群请求响应方法的流程图,如图5所示,包括:

s101:当接收到客户端的服务请求时,通过keystone认证模块对所述客户端进行身份认证;

在具体实施中,在dnsserver节点安装和配置haproxy,用户可以通过客户端访问dnsserver实现对对象存储集群的服务请求。只用该用户通过keystone认证模块的身份认证后,该服务请求才会被分配至响应节点进行响应,实现用户访问的安全性和对存储数据的隔离性。

s102:身份认证通过后,通过目标haproxy服务器节点将所述服务请求分配至目标响应节点,以便所述目标响应节点根据所述服务请求对元数据服务集群和/或对象存储集群执行对应的操作。

其中,此处对应的操作可以包括用户账号管理、数据存储管理和数据管理等。

本申请实施例提供的分布式对象存储集群请求响应方法,在传统对象存储集群的基础上,通过keystone的统一认证,合法用户才能通过经haproxy和keepalived设置后的dnsserver节点实现对基于对象存储集群的数据操作。统一的keystone认证系统保证用户数据的安全性和隔离性,有效提升服务请求的吞吐能力。同时分别部署多个haproxy服务器节点,作为对象存储集群的接口,当并行服务请求急剧增长的情况下,能够有效降低数据并行访问的失败请求数,实现整个对象存储集群的高可用性。

下面介绍本实施例提供的分布式对象存储集群的高可用性实现方法,具体的:

参见图6,本申请实施例提供的另一种分布式对象存储集群请求响应方法的流程图,如图6所示,包括:

s201:通过keepalived对haproxy服务器集群中的各haproxy服务器节点进行心跳监测,并判断是否存在故障haproxy服务器节点;若是,则进入s202;

s202:将所述故障haproxy服务器节点中的资源转移至所述haproxy服务器集群中的其他haproxy服务器节点。

在具体实施中,keepalived不断检测对象存储集群的运行状态,若haproxy1服务器死机或工作出现故障,则将haproxy1服务器中的资源转移至其他haproxy服务器节点,并重新启动haproxy1服务器,当其工作正常后,keepalived自动将haproxy1服务器加入到对象存储集群中,不需要人工干涉,保证了整个系统的高可用性。

作为一种优选实施方式,本步骤包括:根据所述haproxy服务器集群中的其他haproxy服务器节点的当前负载情况选择目标haproxy服务器节点;将所述故障haproxy服务器节点中的资源转移至所述目标haproxy服务器节点。

可以理解的是,为使所有的haproxy服务器节点负载均衡,可以选择当前负载较轻的haproxy服务器节点作为目标haproxy服务器节点,并将haproxy1服务器中的资源转移至该目标haproxy服务器节点上。

下面对本申请实施例提供的一种分布式对象存储集群请求响应系统进行介绍,下文描述的一种分布式对象存储集群请求响应系统与上文描述的一种分布式对象存储集群请求响应方法可以相互参照。

参见图7,本申请实施例提供的一种分布式对象存储集群请求响应系统的结构图,如图7所示,包括:

认证模块701,用于当接收到客户端的服务请求时,通过keystone认证模块对所述客户端进行身份认证;

响应模块702,用于身份认证通过后,通过目标haproxy服务器节点将所述服务请求分配至目标响应节点,以便所述目标响应节点根据所述服务请求对元数据服务集群和/或对象存储集群执行对应的操作。

本申请实施例提供的分布式对象存储集群请求响应方法,在传统对象存储集群的基础上,通过keystone的统一认证,合法用户才能通过经haproxy和keepalived设置后的dnsserver节点实现对基于对象存储集群的数据操作。统一的keystone认证系统保证用户数据的安全性和隔离性,有效提升服务请求的吞吐能力。同时分别部署多个haproxy服务器节点,作为对象存储集群的接口,当并行服务请求急剧增长的情况下,能够有效降低数据并行访问的失败请求数,实现整个对象存储集群的高可用性。

在上述实施例的基础上,作为一种优选实施方式,还包括:

监测模块,用于通过keepalived对haproxy服务器集群中的各haproxy服务器节点进行心跳监测,并判断是否存在故障haproxy服务器节点;

转移模块,用于当存在故障haproxy服务器节点时,将所述故障haproxy服务器节点中的资源转移至所述haproxy服务器集群中的其他haproxy服务器节点。

在上述实施例的基础上,作为一种优选实施方式,所述转移模块包括:

选取单元,用于根据所述haproxy服务器集群中的其他haproxy服务器节点的当前负载情况选择目标haproxy服务器节点;

转移单元,用于将所述故障haproxy服务器节点中的资源转移至所述目标haproxy服务器节点。

本申请还提供了一种计算机可读存储介质,该存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。该存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例提供的分布式对象存储集群请求响应方法的步骤。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1