一种数据处理方法、对象存储网关池及业务系统与流程

文档序号:18664155发布日期:2019-09-13 19:51阅读:185来源:国知局
一种数据处理方法、对象存储网关池及业务系统与流程

本发明涉及互联网技术领域,特别涉及一种数据处理方法、对象存储网关池及业务系统。



背景技术:

在当前的ceph分布式系统中,对象存储网关(radosgateway,rgw)可以接收用户发来的数据处理请求,在对数据处理请求完成解析后,可以将解析结果发送至对应的rados集群处。

目前,ceph分布式系统中的rgw通常只能访问固定的一个rados集群。在实际应用中,用户发来的数据处理请求具备较大的随机性,可能会导致一定时间内,大部分的数据处理请求都需要发送至同一个rados集群处。这样,该rados集群对应的rgw需要解析的数据处理请求会比较多,导致负载较高。而由于其它的rados集群没有接收到太多用户的数据处理请求,从而使得其它的一些rgw处于相对空闲的状态。

由上可见,当前ceph分布式系统中的这种运作模式,会导致rgw之间的负载不太均衡,无法最大化地利用多个rgw的资源。



技术实现要素:

本申请的目的在于提供一种数据处理方法、对象存储网关池及业务系统,能够最大化地利用ceph分布式系统中各个rgw的资源。

为实现上述目的,本申请一方面提供一种数据处理方法,所述方法包括:所述对象存储网关池中的各个对象存储网关向业务系统提供当前的负载信息,以使得所述业务系统根据接收到的各个负载信息,在所述对象存储网关池中确定用于解析客户端发来的数据处理请求的目标对象存储网关;其中,所述数据处理请求中携带目标存储集群的集群标识;所述目标对象存储网关接收所述业务系统转发的所述数据处理请求,并基于所述目标存储集群的集群标识,查询所述目标存储集群的通信地址;所述目标对象存储网关按照所述通信地址将所述数据处理请求发送至所述目标存储集群。

为实现上述目的,本申请另一方面还提供一种对象存储网关池,所述对象存储网关中包含多个对象存储网关,其中:各个所述对象存储网关,用于向业务系统提供当前的负载信息,以使得所述业务系统根据接收到的各个负载信息,在所述对象存储网关池中确定用于解析客户端发来的数据处理请求的目标对象存储网关;其中,所述数据处理请求中携带目标存储集群的集群标识;所述目标对象存储网关,用于接收所述业务系统转发的所述数据处理请求,并基于所述目标存储集群的集群标识,查询所述目标存储集群的通信地址;以及按照所述通信地址将所述数据处理请求发送至所述目标存储集群。

为实现上述目的,本申请另一方面还提供一种业务系统的数据处理方法,所述业务系统与对象存储网关池相关联,所述方法包括:接收客户端发来的数据处理请求,所述数据处理请求中携带目标存储集群的集群标识;收集所述对象存储网关池中各个对象存储网关的负载信息,并基于所述负载信息,从所述各个对象存储网关中确定目标对象存储网关;将所述数据处理请求发送至所述目标对象存储网关,以使得所述目标对象存储网关将所述数据处理请求发送至所述目标存储集群。

为实现上述目的,本申请另一方面还提供一种业务系统,所述业务系统与对象存储网关池相关联,所述业务系统包括:请求接收单元,用于接收客户端发来的数据处理请求,所述数据处理请求中携带目标存储集群的集群标识;网关确定单元,用于收集所述对象存储网关池中各个对象存储网关的负载信息,并基于所述负载信息,从所述各个对象存储网关中确定目标对象存储网关;请求转发单元,用于将所述数据处理请求发送至所述目标对象存储网关,以使得所述目标对象存储网关将所述数据处理请求发送至所述目标存储集群。

由上可见,本申请提供的技术方案,可以将多个对象存储网关形成一个对象存储网关池,该对象存储网关池可以与业务层面的业务系统相关联,从而实现对象存储网关池中的多个对象存储网关可以被同一个业务系统管理。业务系统可以通过对象存储网关的负载接口,实时获取各个对象存储网关的负载信息。在本申请中,用户发送的数据处理请求中可以携带目标存储集群的集群标识,表明该数据处理请求最终需要发往所述目标存储集群。业务系统接收到该数据处理请求后,可以根据各个对象存储网关的负载信息,确定出适合解析该数据处理请求的目标对象存储网关。业务系统可以将该数据处理请求发送至所述目标对象存储网关处。后续,目标对象存储网关可以根据数据处理请求中携带的集群标识,查询到目标存储集群的通信地址,并且可以按照所述通信地址将所述数据处理请求发送至所述目标存储集群。这样,通过本申请提供的方案,一个对象存储网关可以同时对应多个存储集群,并且用户发来的数据处理请求,可以由业务系统按照各个对象存储网关的负载信息进行动态分配,从而可以最大化地利用各个对象存储网关的资源,避免一部分对象存储网关负载较高,而一部分对象存储网关相对空闲。

附图说明

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

图1是本发明实施方式中的系统结构示意图;

图2是本发明实施方式中对象存储网关池的数据处理方法流程图;

图3是本发明实施方式中集群配置信息的继承示意图;

图4是本发明实施方式中业务系统的数据处理方法流程图;

图5是本发明实施方式中业务系统的功能模块示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

本申请提供一种数据处理方法,该方法可以应用于如图1所示的系统架构中。在图1所示的系统架构中,可以包括业务层面的业务系统、与该业务系统相关联的对象存储网关池,以及多个存储集群。其中,所述业务系统可以用于接收用户的客户端发来的数据处理请求,该数据处理请求可以针对某个存储集群中的对象进行指定操作。该指定操作例如可以包括在存储集群中新增对象、修改对象、删除对象等。所述对象存储网关池中可以包括多个对象存储网关,后续,业务系统可以将接收到的数据处理请求,在这多个对象存储网关之间进行分配。所述对象存储网关可以解析数据处理请求,并可以根据数据处理请求的解析结果,访问存储集群。

请参阅图2,本申请可以提供一种数据处理方法,所述方法可以包括以下步骤。

s11:所述对象存储网关池中的各个对象存储网关向业务系统提供当前的负载信息,以使得所述业务系统根据接收到的各个负载信息,在所述对象存储网关池中确定用于解析客户端发来的数据处理请求的目标对象存储网关;其中,所述数据处理请求中携带目标存储集群的集群标识。

在本实施方式中,所述对象存储网关池中的各个对象存储网关,均可以具备自身的负载接口,该负载接口可以被具备权限的外部设备访问。这样,外部设备可以通过该负载接口获取对象存储网关当前的负载信息。在实际应用中,该负载接口可以是对象存储网关中闲置的接口,也可以是已经使用的接口。其中,已经使用的接口可以通过接口复用的方式,在提供原始功能的同时,还能实现上报负载信息的功能。

在本实施方式中,所述业务系统可以获取对象存储网关池中各个对象存储网关的接口访问权限,从而可以定期从各个对象存储网关的负载接口处获取到对象存储网关的负载信息。这样,各个所述对象存储网关可以通过各自的负载接口,向所述业务系统提供自身的负载信息。

在实际应用中,所述负载信息可以表征所述对象存储网关当前堆积的数据处理请求的数量以及所述对象存储网关当前用于解析数据处理请求的线程的数量。其中,当前堆积的数据处理请求越多,表明对象存储网关当前的负载压力越大。同理,当前用于解析数据处理请求的线程的数量越多,也可以表明对象存储网关当前的负载压力越大。

在本实施方式中,业务系统在获取到各个对象存储网关当前的负载信息后,可以解析每个对象存储网关的负载信息,从而知晓各个对象存储网关当前堆积的数据处理请求的数量和当前用于解析数据处理请求的线程的数量。然后,业务系统可以根据各个所述对象存储网关当前堆积的数据处理请求的数量和当前用于解析数据处理请求的线程的数量,确定出各个所述对象存储网关的负载指标。具体地,所述负载指标可以是用于表明负载大小的数值或者字符。例如,所述负载指标可以是负载评分,负载评分越高,表明负载越大。又例如,所述负载指标可以是“高”、“中”、“低”这样的字符,分别对应负载的不同层级。需要说明的是,本申请对于确定负载指标的过程并不限定。例如,可以直接将堆积的数据处理请求的数量或者解析数据处理请求的线程的数量作为上述的负载评分,也可以是对两个数量进行加权求和后得到上述负载评分。在计算出负载评分后,可以根据负载评分所在的区间,划分为“高”、“中”、“低”这样的负载层级。

在本实施方式中,业务系统在确定出各个对象存储网关的负载指标后,便可以从负载指标满足指定条件的对象存储网关中确定用于解析所述数据处理请求的目标对象存储网关。其中,负载指标满足指定条件可以是负载指标低于指定负载阈值,或者负载指标处于指定负载层级以下。负载指标满足指定条件的对象存储网关,则可以是负载压力不大,尚有足够资源解析数据处理请求的对象存储网关。这样,从这些对象存储网关中,可以随机选择一个对象存储网关作为解析所述数据处理请求的目标对象存储网关。

在本实施方式中,由于对象存储网关池中的对象存储网关不会与固定的存储集群相绑定,而是一个对象存储网关可以对应多个存储集群,那么为了让对象存储网关知晓当前接收到的数据处理请求是指向哪个存储集群的,可以在数据处理请求中携带存储集群的集群标识。这样,通过识别集群标识,对象存储网关便可以正确地将数据处理请求的解析结果发送至对应的存储集群处。

s13:所述目标对象存储网关接收所述业务系统转发的所述数据处理请求,并基于所述目标存储集群的集群标识,查询所述目标存储集群的通信地址。

在本实施方式中,业务系统在确定出目标对象存储网关后,可以将客户端的数据处理请求转发至该目标对象存储网关。目标对象存储网关可以识别出该数据处理请求中携带的集群标识,并可以根据该集群标识查询出该集群标识指向的目标存储集群的通信地址。其中,所述通信地址例如可以包括目标存储集群的ip地址和端口号。

具体地,系统中的各个存储集群的通信地址可以存储于集群配置信息中。该集群配置信息可以灵活地选择存储方式。例如,所述集群配置信息可以存储于本地配置文件中,还可以存储于zookeeper之类的分布式协调系统中。其中,本地配置文件可以备份于各个对象存储网关中,这样,各个对象存储网关可以直接从本地读取到所述集群配置信息。此外,各个对象存储网关也可以从分布式协调系统处读取所述集群配置信息。

在本实施方式中,所述集群配置信息可以通过预设配置类加载,所述预设配置类例如可以是configinfo。在所述预设配置类中,可以包含一个或者多个类成员。每个类成员可以实现各自的功能,例如,所述类成员可以实现获取/更新/设置指定集群的配置信息、获取/更新/设置指定集群的版本号、清除指定集群的列表、判断某个集群是否位于集群列表中、保存指定集群的配置信息中的至少一种功能。其中,所述指定集群可以是不同类型的集群。例如,所述指定集群可以是rados集群或者mango集群。

举例来说,在configinfo中,updateradosinfo可以用于实现更新rados集群的配置信息的功能、getmongoinfo可以用于实现获取mongo集群的配置信息的功能、setradosversion可以实现设置rados集群的版本号的功能。

这样,目标存储对象网关可以通过预设的信息获取指令从所述预设配置类中获取集群配置信息。例如,所述信息获取指令可以是getradosconfiginfo。在该集群配置信息中,可以关联存储集群标识和存储集群的通信地址。其中,集群标识可以作为key(键),对应的存储集群的通信地址可以作为值(value),这样,目标对象存储网关可以在所述集群配置信息中查询与所述目标存储集群的集群标识相绑定的通信地址,并将查询得到的所述通信地址作为所述目标存储集群的通信地址。

请参阅图3,在一个实施方式中,如果所述集群配置信息需要通过除所述本地配置文件或者所述分布式协调系统之外的形式进行存储,则可以在其它的存储形式中继承所述预设配置类。这样,可以通过继承的方式,准确地获取各个存储集群的集群配置信息。例如,在图3中,configinfofromfile可以表示从本地配置文件中继承所述预设配置类,configinfofromzk可以表示从zookeeper中继承所述预设配置类。

s15:所述目标对象存储网关按照所述通信地址将所述数据处理请求发送至所述目标存储集群。

在本实施方式中,所述目标对象存储网关在接收到业务系统转发的数据处理请求后,可以对所述数据处理请求进行解析。具体地,所述目标对象存储网关可以通过http前端将接收到的数据处理请求保存至相应的数据结构中。然后,目标对象存储网关中的restapi可以通过处理层从http语义中解析出s3或者swift的数据,并对解析出的数据进行校验。当校验通过后,可以数据处理请求中的操作指令执行对应的处理流程。最终,可以将解析得到的结果通过librados接口发送至目标存储集群。

当然,所述目标对象存储网关也可以仅仅作为数据处理请求的转发方,直接按照所述通信地址将所述数据处理请求发送至所述目标存储集群。

在实际应用中,目标对象存储网关可以从集群配置信息中获取到目标存储集群的通信地址,这样,目标对象存储网关可以按照所述通信地址将解析结果发送至目标存储集群处。

本申请还提供一种对象存储网关池,所述对象存储网关中包含多个对象存储网关,其中:

各个所述对象存储网关,用于向业务系统提供当前的负载信息,以使得所述业务系统根据接收到的各个负载信息,在所述对象存储网关池中确定用于解析客户端发来的数据处理请求的目标对象存储网关;其中,所述数据处理请求中携带目标存储集群的集群标识;

所述目标对象存储网关,用于接收所述业务系统转发的所述数据处理请求,并基于所述目标存储集群的集群标识,查询所述目标存储集群的通信地址;以及按照所述通信地址将所述数据处理请求发送至所述目标存储集群。

请参阅图4,本申请还提供一种业务系统的数据处理方法,所述方法可以包括以下步骤。

s21:接收客户端发来的数据处理请求,所述数据处理请求中携带目标存储集群的集群标识。

s23:收集所述对象存储网关池中各个对象存储网关的负载信息,并基于所述负载信息,从所述各个对象存储网关中确定目标对象存储网关。

s25:将所述数据处理请求发送至所述目标对象存储网关,以使得所述目标对象存储网关将所述数据处理请求发送至所述目标存储集群。

在本实施方式中,所述业务系统可以与对象存储网关池相关联,这样,所述业务系统可以与所述对象存储网关池中的各个对象存储网关进行通信。具体地,各个用户的客户端发送的指向存储集群的数据处理请求均可以被所述业务系统统一接收。为了识别数据处理请求具体是指向哪个存储集群,可以在数据处理请求中携带存储集群的集群标识。这样,通过识别集群标识,业务系统可以正确地将数据处理请求引导至对应的存储集群处。

在本实施方式中,所述业务系统可以获取对象存储网关池中各个对象存储网关的接口访问权限,从而可以定期从各个对象存储网关的负载接口处获取到对象存储网关的负载信息。

在实际应用中,所述负载信息可以表征所述对象存储网关当前堆积的数据处理请求的数量以及所述对象存储网关当前用于解析数据处理请求的线程的数量。其中,当前堆积的数据处理请求越多,表明对象存储网关当前的负载压力越大。同理,当前用于解析数据处理请求的线程的数量越多,也可以表明对象存储网关当前的负载压力越大。

在本实施方式中,业务系统在获取到各个对象存储网关当前的负载信息后,可以解析每个对象存储网关的负载信息,从而知晓各个对象存储网关当前堆积的数据处理请求的数量和当前用于解析数据处理请求的线程的数量。然后,业务系统可以按照步骤s11中描述的方案,根据各个所述对象存储网关当前堆积的数据处理请求的数量和当前用于解析数据处理请求的线程的数量,确定出各个所述对象存储网关的负载指标,并可以从负载指标满足指定条件的对象存储网关中确定用于解析所述数据处理请求的目标对象存储网关。

在一个实施方式中,所述负载信息可以决定各个对象存储网关的选择权重。具体地,在所述业务系统中可以预先设置一个负载阈值,并且业务系统可以设置定时任务,当该定时任务触发时,业务系统可以将当前各个对象存储网关的负载信息与所述负载阈值进行对比,如果某个对象存储网关当前的负载信息超出了该负载阈值,那么业务系统会降低该对象存储网关的选择权重。这样,经过定时检测各个对象存储网关的负载信息,可以不断地更新各个对象存储网关的选择权重。最终,可以按照选择权重从大到小的顺序,选择负责转发数据处理请求的对象存储网关。

在本实施方式中,业务系统在确定出目标对象存储网关后,可以将客户端的数据处理请求转发至该目标对象存储网关。这样,目标对象存储网关可以识别出该数据处理请求中携带的集群标识,并可以根据该集群标识查询出该集群标识指向的目标存储集群的通信地址。最终,目标对象存储网关便可以按照该通信地址,将所述数据处理请求发送至所述目标存储集群。

请参阅图5,本申请还提供一种业务系统,所述业务系统与对象存储网关池相关联,所述业务系统包括:

请求接收单元,用于接收客户端发来的数据处理请求,所述数据处理请求中携带目标存储集群的集群标识;

网关确定单元,用于收集所述对象存储网关池中各个对象存储网关的负载信息,并基于所述负载信息,从所述各个对象存储网关中确定目标对象存储网关;

请求转发单元,用于将所述数据处理请求发送至所述目标对象存储网关,以使得所述目标对象存储网关将所述数据处理请求发送至所述目标存储集群。

由上可见,本申请提供的技术方案,可以将多个对象存储网关形成一个对象存储网关池,该对象存储网关池可以与业务层面的业务系统相关联,从而实现对象存储网关池中的多个对象存储网关可以被同一个业务系统管理。业务系统可以通过对象存储网关的负载接口,实时获取各个对象存储网关的负载信息。在本申请中,用户发送的数据处理请求中可以携带目标存储集群的集群标识,表明该数据处理请求最终需要发往所述目标存储集群。业务系统接收到该数据处理请求后,可以根据各个对象存储网关的负载信息,确定出适合解析该数据处理请求的目标对象存储网关。业务系统可以将该数据处理请求发送至所述目标对象存储网关处。后续,目标对象存储网关可以根据数据处理请求中携带的集群标识,查询到目标存储集群的通信地址,并且可以按照所述通信地址将所述数据处理请求发送至所述目标存储集群。这样,通过本申请提供的方案,一个对象存储网关可以同时对应多个存储集群,并且用户发来的数据处理请求,可以由业务系统按照各个对象存储网关的负载信息进行动态分配,从而可以最大化地利用各个对象存储网关的资源,避免一部分对象存储网关负载较高,而一部分对象存储网关相对空闲。

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

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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