数据处理方法、装置、计算机设备及计算机可读存储介质与流程

文档序号:33323587发布日期:2023-03-03 21:57阅读:25来源:国知局
数据处理方法、装置、计算机设备及计算机可读存储介质与流程

1.本技术涉及存储技术领域,特别涉及一种数据处理方法、装置、计算机设备及计算机可读存储介质。


背景技术:

2.随着云计算技术的发展与应用,为了满足存储与计算的弹性扩展和高效存储,在存算一体架构的存储系统的基础上演化出存算分离架构的存储系统。例如存算分离的存储系统包括计算集群、负载均衡集群以及存储集群,计算集群通过数据转发集群访问存储集群。
3.目前,在存算分离的存储系统中数据处理的过程可以是:计算集群中的计算节点将数据处理请求发送至数据转发集群中的负载均衡设备,负载均衡设备采用负载均衡方案,从存储集群中的多个网关设备中选择一个网关设备,并向选择出的网关设备转发数据处理请求,由该网关设备将发数据处理请求发送至存储集群中的存储节点,存储节点对该数据处理请求进行处理,例如读取数据或者存储数据。其中,数据转发集群中的负载均衡设备可以是负载均衡器,例如,f5网络公司提供的f5负载均衡器,或者负载均衡器nginx,也可以是部署有linux虚拟服务器(linux virtual server,lvs)。
4.但是,在存算分离的存储系统比较大的情况下,为了实现负载均衡,负载均衡集群中部署的负载均衡设备可能不止一台,且负载均衡设备造价昂贵,导致构建存算分离的存储系统的成本不断增加。因此,如何提供一种低成本的存储系统成为亟待解决的技术问题。


技术实现要素:

5.本技术提供了一种数据处理方法、装置、计算机设备以及存储介质,能够构建存算分离的存储系统的成本。该技术方案如下:
6.第一方面,提供了一种数据处理方法,所述方法应用于存算分离的存储系统,所述存储系统包括计算集群以及存储集群,所述方法由所述计算集群中的计算节点执行,所述方法包括:接收数据处理请求,所述数据处理请求指示对文件进行处理;从所述存储集群的多个网关设备中确定第一网关设备;向所述第一网关设备发送所述数据处理请求,由所述第一网关设备将所述数据处理请求转发至所述存储集群中的存储节点完成对所述文件进行处理。
7.本方法由计算集群中的计算节点实现负载均衡器的功能,使得计算节点可以从存储集群的多个网关设备中选择网关设备发送数据处理请求,数据处理的过程中计算节点无需通过负载均衡集群为数据处理请求选择网关设备,从而在构建存算分离的存储系统时,无须部署负载均衡集群,降低了构建存算分离的存储系统的成本。
8.在一种可能的实现方式中,所述计算节点中记录有所述多个网关设备与索引之间的对应关系,所述多个网关设备中的每个网关设备分别对应一个索引;所述从所述存储集群的多个网关设备中,确定第一网关设备包括:对所述数据处理请求携带的所述文件的标
识进行哈希计算,得到所述文件的哈希值;基于所述哈希值,获取目标索引;基于所述多个网关设备与索引之间的对应关系,将所述多个网关设备中所述目标索引对应的网关设备确定为所述第一网关设备。
9.在一种可能的实现方式中,所述多个网关设备与索引之间的对应关系包括所述多个网关设备中每个网关设备的标识以及每个网关设备所对应的索引,每个网关设备的标识包括每个网关设备的网络协议ip地址。
10.在一种可能的实现方式中,所述目标索引为所述哈希值与所述多个网关设备的数目之间的余数。
11.在一种可能的实现方式中,所述从所述存储集群的多个网关设备中确定第一网关设备包括:
12.在所述多个网关设备中随机选择任一网关设备作为所述第一网关设备。
13.在一种可能的实现方式中,所述从所述存储集群的多个网关设备中,确定第一网关设备之前,所述方法还包括:
14.从所述存储集群中的监控节点,获取所述存储集群中各个网关设备所处的状态,其中,所述状态包括空闲状态、繁忙状态或故障状态中任意一种;
15.基于所述存储集群中各个网关设备所处的状态,确定处于空闲状态的所述多个网关设备。
16.在一种可能的实现方式中,所述向所述第一网关设备发送所述数据处理请求,由所述第一网关设备将所述数据处理请求转发至所述存储集群中的存储节点完成对所述文件进行处理,包括:
17.若所述第一网关设备处于繁忙状态或故障状态,基于记录的所述多个网关设备所处的状态,从所述多个网关设备中,确定第二网关设备,向所述第二网关设备发送所述数据处理请求,由所述第二网关设备将所述数据处理请求转发至所述存储集群中的存储节点完成对所述文件进行处理,所述第二网关设备为所述多个网关设备中处于空闲状态的任一网关设备。
18.第二方面,提供了一种数据处理方法,其特征在于,所述方法应用于存算分离的存储系统,所述存储系统包括计算集群以及存储集群,所述方法由所述存储集群中的网关设备执行,所述方法包括:接收所述计算集群中计算节点的数据处理请求,所述数据处理请求指示对文件进行处理,所述网关设备由所述计算节点从所述存储集群中的多个网关设备中确定;向所述存储集群中的存储节点发送所述数据处理请求,由所述存储节点基于所述数据处理请求对所述文件中进行处理。
19.在一种可能的实现方式中,所述接收所述计算集群中计算节点的数据处理请求之前,所述方法还包括:向所述存储集群中的监控节点发送所述网关设备所处的状态,所述状态包括空闲状态、繁忙状态或故障状态中任意一种。
20.在一种可能的实现方式中,所述存储集群包括m个资源池,每个资源池包括一个主网关软件和n个备用网关软件,所述网关设备包括一个资源池内的主网关软件,由所述网关设备中的主网关软件接收并发送所述数据处理请求,所述m和所述n均为大于或等于1的整数;
21.所述接收所述计算集群中计算节点的数据处理请求之前,所述方法还包括:若所
述网关设备中的主网关软件处于故障状态或繁忙状态,所述网关设备中的网关监控模块启用所述主网关软件所在资源池中的一个备用网关软件,由启用的所述备用网关软件接收并发送所述数据处理请求。
22.在一种可能的实现方式中,所述网关设备中的网关监控模块启用所述主网关软件所在资源池中的一个备用网关软件包括:若所述网关设备还包括所述主网关软件所在资源池中的k个备用网关软件,所述网关监控模块启用所述k个备用网关软件中的任一备用网关软件,所述k为大于等于1且小于等于所述n的整数;或者,若所述主网关软件所在资源池中的一个备用网关软件部署在备用网关设备,所述网关监控模块向所述备用网关设备发送地址更新请求,所述地址更新请指示所述备用网关设备将ip地址修改为所述网关设备的ip地址,并启用所述备用网关设备中的备用软件。
23.第三方面,提供了一种存算分离的存储系统,所述存储系统包括计算集群以及存储集群,所述计算集群包括计算节点;
24.所述计算节点,用于接收数据处理请求;从所述存储集群的多个网关设备中确定第一网关设备;向所述第一网关设备发送所述数据处理请求,其中,所述数据处理请求指示对文件进行处理;
25.所述第一网关设备,用于接收所述计算集群中计算节点的所述数据处理请求;向所述存储集群中的存储节点发送所述数据处理请求,由所述存储节点基于所述数据处理请求对所述文件中进行处理。
26.在一种可能的实现方式中,所述计算节点还用于:
27.对所述数据处理请求携带的所述文件的标识进行哈希计算,得到所述文件的哈希值;
28.基于所述哈希值,获取目标索引;
29.基于所述多个网关设备与索引之间的对应关系,将所述多个网关设备中所述目标索引对应的网关设备确定为所述第一网关设备。
30.在一种可能的实现方式中,所述多个网关设备与索引之间的对应关系包括所述多个网关设备中每个网关设备的标识以及每个网关设备所对应的索引,每个网关设备的标识包括每个网关设备的网络协议ip地址。
31.在一种可能的实现方式中,所述目标索引为所述哈希值与所述多个网关设备的数目之间的余数。
32.在一种可能的实现方式中,所述计算节点还用于:在所述多个网关设备中随机选择任一网关设备作为所述第一网关设备。
33.在一种可能的实现方式中,所述计算节点还用于:从所述存储集群中的监控节点,获取所述存储集群中各个网关设备所处的状态,其中,所述状态包括空闲状态、繁忙状态或故障状态中任意一种;基于所述存储集群中各个网关设备所处的状态,确定处于空闲状态的所述多个网关设备。
34.在一种可能的实现方式中,所述计算节点,还用于若所述第一网关设备处于繁忙状态或故障状态,基于记录的所述多个网关设备所处的状态,从所述多个网关设备中,确定第二网关设备,向所述第二网关设备发送所述数据处理请求,所述第二网关设备为所述多个网关设备中处于空闲状态的任一网关设备;所述第二网关设备,用于接收所述计算集群
中计算节点的所述数据处理请求;向所述存储集群中的存储节点发送所述数据处理请求,由所述存储节点基于所述数据处理请求对所述文件中进行处理。
35.在一种可能的实现方式中,所述第一网关设备还用于:向所述存储集群中的监控节点发送所述第一网关设备所处的状态,所述状态包括空闲状态、繁忙状态或故障状态中任意一种。
36.在一种可能的实现方式中,所述存储集群包括m个资源池,每个资源池包括一个主网关软件和n个备用网关软件,所述网关设备包括一个资源池内的主网关软件,由所述第一网关设备中的主网关软件接收并发送所述数据处理请求,所述m和所述n均为大于或等于1的整数;所述第一网关设备中的网关监控模块,用于若所述第一网关设备中的主网关软件处于故障状态或繁忙状态,启用所述主网关软件所在资源池中的一个备用网关软件,由启用的所述备用网关软件接收并发送所述数据处理请求。
37.在一种可能的实现方式中,所述网关监控模块用于:若所述第一网关设备还包括所述主网关软件所在资源池中的k个备用网关软件,启用所述k个备用网关软件中的任一备用网关软件,所述k为大于等于1且小于等于所述n的整数;或者,若所述主网关软件所在资源池中的一个备用网关软件部署在备用网关设备,监控模块向所述备用网关设备发送地址更新请求,所述地址更新请指示所述备用网关设备将ip地址修改为所述网关设备的ip地址,并启用所述备用网关设备中的备用软件。
38.第四方面,提供了一种数据处理装置,用于执行上述数据处理方法。具体地,该数据处理装置包括用于执行上述第一方面或上述第一方面的任一种可选方式提供的数据处理方法的功能模块。
39.第五方面,提供了一种数据处理装置,用于执行上述数据处理方法。具体地,该数据处理装置包括用于执行上述第二方面或上述第二方面的任一种可选方式提供的数据处理方法的功能模块。
40.第六方面,提供一种计算机设备,该计算机设备包括处理器,所述处理器用于执行程序代码,使得计算机设备执行以实现如上述数据处理方法所执行的操作。具体地,使得计算机设备执行以实现如第一方面或上述第一方面的任一种可选方式提供的数据处理方法所执行的操作。
41.第七方面,提供一种计算机设备,该计算机设备包括处理器,所述处理器用于执行程序代码,使得计算机设备执行以实现如上述数据处理方法所执行的操作。具体地,使得计算机设备执行以实现如第二方面或上述第二方面的任一种可选方式提供的数据处理方法所执行的操作。
42.第八方面,提供一种计算机可读存储介质,该存储介质中存储有至少一条程序代码,该程序代码由处理器读取以使计算机设备执行如上述数据处理方法所执行的操作。具体地,使得计算机设备执行以实现如第一方面或上述第一方面的任一种可选方式提供的数据处理方法所执行的操作,或者,使得计算机设备执行以实现如第二方面或上述第二方面的任一种可选方式提供的数据处理方法所执行的操作。
43.第九方面,提供了一种计算机程序产品,该计算机程序产品包括至少一条程序代码,该程序代码存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该程序代码,处理器执行该程序代码,使得该计算机设备执行上述第一方面或者第
一方面的各种可选实现方式中提供的方法,或者,使得该计算机设备执行上述第二方面或者第二方面的各种可选实现方式中提供的方法。
44.本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
45.图1是本技术提供的一种存算分离的存储系统的示意图;
46.图2是本技术提供的一种数据处理方法的流程图;
47.图3是本技术提供的一种的数据处理方法的流程图;
48.图4是本技术提供的一种主备网关设备切换方法的流程图;
49.图5是本技术提供的一种数据处理装置的结构示意图;
50.图6是本技术提供的一种数据处理装置的结构示意图;
51.图7是本技术提供的一种计算机设备的结构示意图。
具体实施方式
52.下面将结合附图对本技术实施方式作进一步地详细描述。
53.图1是本技术提供的一种存算分离的存储系统的示意图,参见图1,该系统100包括至少一个计算集群101以及至少一个存储集群102,其中,每个计算集群101可以对应一个或多个存储集群102,一个存储集群102也可以对应一个或多个计算集群101。为了便于理解,以下实施例以一个计算集群101能够访问一个存储集群102,而一个存储集群102可以被一个或多个计算集群101访问为例进行说明。
54.每个计算集群101包括多个计算节点1011,每个计算节点1011用于为用户提供数据处理服务,例如将用户提供的数据存储在存储集群102或者为用户从存储集群102中读取数据。每个计算节点1011可以由至少一个服务器组成。每个计算集群101可以用于部署hadoop数据库、数据库工具hive、计算引擎spark或分布式数据库hbase。
55.每个存储集群102包括多个存储节点1021以及多个网关设备1022,每个存储节点1021用于提供数据存储服务以及数据读取服务等,每个存储节点1021可以由至少一个服务器组成。每个网关设备1022具有访问存储集群102中各个存储节点1021的权限。例如,每个网关设备1022内部署有至少一个网关软件,每个网关软件提供用于访问存储集群102的应用程序接口(application programming interface,api),以便计算集群101能够通过网关设备1022中的网关软件访问存储集群102中的存储节点1021。该系统100中的存储集群102可以是ceph存储集群或者fusionstorage分布式存储集群中任一存储集群,若存储集群102为ceph存储集群,网关设备1022内部署的网关软件为对象存储网关(rados gateway,rgw),存储节点1021可以是对象存储设备(object-based storage device,osd)。
56.以该系统100中的一个计算集群101与一个存储集群102之间的交互为例,用户可以通过用户设备向计算集群101中的任一计算节点1011提交数据处理请求(如用于读数据的读请求或者用于写数据的写请求)。该任一计算节点1011可以从存储集群102中部署的网关设备1022内选择一个网关设备1022,转发用户提交的数据处理请求。例如该任一计算节点1011将用户提交的数据处理请求发送给所选择的网关设备1022,由该网关设备1022将该
数据处理请求转发至存储集群102中的至少一个存储节点1021,由该至少一个存储节点1021处理该数据处理请求。由于计算集群101中的计算节点1011可以选择存储集群102中的网关设备1022转发用户提交的数据处理请求,则同一个计算节点1011的不同数据处理请求可以发送至存储集群102的不同网关设备1022,从而在处理多并发的数据处理请求时,能够保证存储集群102的负载均衡,因此,无须在存储集群102与计算集群101之间部署负载均衡集群,降低了存算分离的存储系统100的构建成本。
57.在一种可能的实现方式中,每个存储集群102还包括监控节点1023,监控节点1023用于收集存储集群102中的各个网关设备1022所处的状态,一个网关设备1022所处的状态包括空闲状态、繁忙状或故障状态,其中,空闲状态和繁忙状态为网关设备1022的非故障状态,网关设备1022在非故障状态下可以正常工作。计算集群101中的计算节点1011可以从该监控节点1023获取该存储集群102中各个网关设备1022所处的状态,计算节点1011在为数据处理请求选择网关设备1022时,可以优先选择处于空闲状态的网关设备1022。其中,选择处于空闲状态的网关设备1022可以保证网关设备1022上的负载均衡,使得数据处理请求无须在处于空闲状态的网关设备1022上排队等待转发。
58.为了进一步说明计算节点为数据处理请求选择网关设备的过程,参见图2所示的本技术提供的一种数据处理方法的流程图。该方法应用于存算分离的存储系统,其中,该存算分离的存储系统可以是上述图1所示的存储系统。
59.步骤201、计算节点接收数据处理请求,该数据处理请求指示对文件进行处理。
60.其中,该计算节点为存算分离的存储系统中任一计算集群内的任一计算节点。该任一计算集群中的任一计算节点均具有选择网关设备的功能以及通过选择的网关设备访问存储集群的功能。例如该任一节点设备均能够从存储集群的多个网关设备中选择一个网关设备发送数据理请求,再由选择的网关设备将该数据处理请求转发至存储集群中的存储节点完成对该文件进行处理。为了便于理解,以下实施例以任一计算集群中的一个计算节点选择网关设备访问一个存储集群为例进行说明。
61.该文件为用户指定的待处理文件。该数据处理请求可以是读请求或者写请求,若该数据处理请求为读请求,则该数据处理请求指示读取该文件。若该数据处理请求为写请求,则该数据处理请求指示将该文件写入该存储系统中的存储集群中,也即是存储该文件。
62.在一种可能的实现方式中,该数据处理请求携带该文件的标识,其中,该文件的标识用于唯一指示该文件,可以是该文件的名称。若该数据处理请求为写请求,该数据处理请求还携带该文件。
63.在一种可能的实现方式中,用户通过用户设备向该计算节点提交任务,或者用户可以在该计算节点上提交任务,该计算节点将用户提交的任务分解为多个数据处理请求。例如,该计算节点接收用户提交的任务,并对该任务进行处理。该计算节点在对该任务处理的过程中,需要对该任务涉及的多个文件进行处理,则该计算节点分别基于多个文件中的每个文件,生成一个数据处理请求,每个数据处理请求指示对多个文件中的一个文件进行处理。之后,该计算节点将多个数据处理请求中的任一数据处理请求作为待处理的该数据处理请求,该多数据处理请求中的每个数据处理请求均通过该图2所示的过程来处理。
64.其中,该用户设备包括终端、终端站点、用户终端、用户装置,接入装置,订户站,订户单元,移动站,用户代理,用户装备、便携式终端、膝上型终端、台式终端等其他名称。例
如,用户设备可以是移动电话、笔记本电脑、平板电脑、台式电脑、智能电视、智能可穿戴设备、计算机、人工智能(artificial intelligence,ai)产品智能汽车、智能仪器或物联网(internet of things,iot)终端等。
65.步骤202、该计算节点从存储集群的多个网关设备中,确定第一网关设备。
66.其中,该第一网关设备为计算节点从该多个网关设备中,选择的用于转发该数据处理请求的网关设备。
67.该计算节点从该多个网关设备中确定第一网关设备的方式包括下述方式a或b中的任一种方式。
68.方式a、该计算节点通过哈希计算选择出第一网关设备。
69.其中,计算节点中记录有该多个网关设备与索引之间的对应关系,该多个网关设备中的每个网关设备分别对应一个索引。在一种可能的实现方式中,该多个网关设备与索引之间的对应关系包括该多个网关设备中每个网关设备的标识以及每个网关设备所对应的索引,每个网关设备的标识包括每个网关设备的网络协议(internet protocol,ip)地址。在一种可能的实现方式中,该每个网关设备的标识还包括每个网关设备的通信端口的端口标识。
70.例如,该计算节点中存储有网关映射(map)表,该网关映射表中记录有该多个网关设备与索引之间的对应关系。以存储集群包括m个网关设备为例,参见下述表1所示的网关映射表,其中,m为大于或等于1的整数。
71.表1
[0072][0073]
在一种可能的实现方式中,方式a可以通过下述步骤a1-a3实现。
[0074]
步骤a1、该计算节点对该数据处理请求携带的该文件的标识进行哈希计算,得到该文件的哈希值。
[0075]
步骤a2、该计算节点基于该哈希值,获取目标索引。
[0076]
其中,该目标索引也即是第一网关设备对应的索引。在一种可能的实现方式中,该目标索引为该哈希值与该多个网关设备的数目之间的余数。
[0077]
以该多个网关设备有m个为例,该计算节点对该哈希值与m求余,所得到的求余结果也即是该目标索引。求余结果也即是该哈希值与该多个网关设备的数目之间的余数。
[0078]
步骤a3、该计算节点基于该多个网关设备与索引之间的对应关系,将该多个网关设备中该目标索引对应的网关设备确定为该第一网关设备。
[0079]
当获取到该目标索引后,该计算节点查询网关映射表中该目标索引对应的网关设备的标识,并将该标识所指示的网关设备作为第一网关设备。例如目标索引为2,则该计算
节点将目标索引2对应的网关设备2作为第一网关设备。
[0080]
方式b、该计算节点基于随机选择规则选择出第一网关设备。
[0081]
在一种可能的实现方式中,该计算节点在该多个网关设备中随机选择的任一网关设备作为该第一网关设备。例如该计算节点将该网关映射表中的任一索引对应的网关,确定为第一网关设备。
[0082]
可选地,除了通过上述方式a或方式b选择第一网关设备外,还可以通过根据各个网关设备的负载选择第一网关,也就是说,计算节点还可以实现负载均衡功能,根据各个网关的负载情况平衡业务处理的情况,充分发挥各个网关设备的作用,提升整个系统中设备的利用率。
[0083]
步骤203、该计算节点向该第一网关设备发送该数据处理请求,由该第一网关设备将该数据处理请求转发至该存储集群中的存储节点完成对该文件进行处理。
[0084]
步骤204、该第一网关设备接收该数据处理请求。
[0085]
步骤205、该第一网关设备向该存储集群中的存储节点发送该数据处理请求。
[0086]
在一种可能的实现方式中,当接收该数据处理请求后,该第一网关设备基于该数据处理请求,从该存储集群的多个存储节点中,确定至少一个存储节点,并向该至少一个存储节点发送该数据处理请求。其中,该至少一个存储节点为用于处理该数据处理请求的存储节点。
[0087]
例如,若该数据处理请求为读请求,该第一网关设备基于数据处理请求中该文件的标识,从记录的多个文件的元数据中,查询该文件的元数据,其中,每个文件的元数据包括每个文件的存储地址。当查询到该文件的元数据后,该第一网关设备将该多个存储节点中该文件的存储地址所属的存储节点,确定为该至少一个存储节点。在一种可能的实现方式中,一个文件的存储地址包括该文件对应的至少一个对象(object)的存储地址,该至少一个对象组成该文件,其中,一个对象为存储集群中数据存储的最小单位。在一种可能的实现方式中,每个文件的原数据还包括每个文件对应的至少一个对象的标识,其中,每个对象的标识指示一个对象,并指示该对象在文件中的位置。
[0088]
再例如,若该数据处理请求为写请求,该第一网关设备从该数据处理请求中获取该文件,并基于该文件的大小,从该存储集群的多个存储节点中确定该至少一个存储节点,其中,该至少一个存储节点中每个存储节点的剩余存储空间的大小大于或等于文件的大小。
[0089]
该第一网关设备还可以将该文件拆分为至少一个对象,生成该至少一个对象的标识,在该至少一个对象中分别添加对象的标识。该第一网关设备将该数据处理请求中的文件修改为添加过标识的该至少一个对象,并向该至少一个存储节点发送修改后的数据处理请求。
[0090]
之后,该第一网关设备还可以创建该文件的元数据,并在该文件的元数据中添加该至少一个对象的标识以及该文件的标识。
[0091]
步骤206、该存储节点接收该数据处理请求。
[0092]
步骤207、该存储节点基于该数据处理请求,对该文件进行处理。
[0093]
在一种可能的实现方式中,若该数据处理请求为写请求,该存储节点存储该数据处理请求携带的至少一个对象,并将该至少一个对象的标识、该至少一个对象的存储地址
以及该数据处理请求中该文件的标识进行关联存储,以建立该文件与该至少一个对象之间的对应关系。
[0094]
在一种可能的实现方式中,若该数据处理请求为读请求,该存储节点根据文件与对象之间的对应关系,查询该文件所对应的至少一个对象的存储地址。该存储节点在该至少一个对象的存储地址,获取该至少一个对象。
[0095]
当该存储节点处理完该数据处理请求后,生成数据处理响应,并向该第一网关设备发送该数据处理响应,该数据处理响应指示该文件已经处理完成。若该数据处理请求为读请求,则该数据处理响应携带从存储节点中读取到的该文件的至少一个对象。若该数据处理请求为写请求,则该数据处理响应携带文件的至少一个对象的存储的地址。
[0096]
由上述描述可知,由计算集群中的计算节点实现负载均衡器的功能,使得计算节点可以从存储集群的多个网关设备中选择网关设备发送数据处理请求,数据处理的过程中计算节点无需通过负载均衡集群为数据处理请求选择网关设备,从而在构建存算分离的存储系统时,无须部署负载均衡集群,降低了构建存算分离的存储系统的成本。
[0097]
图2所示的过程是计算节点从记录的存储集群的多个网关设备中选择一个网关设备,访问存储集群的过程。作为另一种可能的实现方式,为了提高数据处理请求的处理效率,该计算节点在为新的数据处理请求选择网关设备时,还可以考虑网关设备的状态。例如下述图3所示的本技术提供的一种的数据处理方法的流程图,其中,图3所示的过程为计算节点基于记录的存储集群的多个网关设备的状态,从该多个网关设备中选择一个网关设备,访问存储集群中的过程。该方法应用于存算分离的存储系统,其中,该存算分离的存储系统可以是上述图1所示的存储系统。
[0098]
步骤301、对于存储集群中的每个网关设备,每个网关设备内的网关监控模块检测对应网关软件所处的状态。
[0099]
其中,每个网关设备包括网关监控模块,每个网关设备内设置有网关软件,网关监控模块用于实时或者周期性检测所属网关设备的网关软件所处的状态,以及上报网关软件所处的状态。网关软件用于将存储集群以外的设备所发送的消息转发至存储集群中的存储节点,从而使得存储集群以外的设备能够访问该存储集群中的存储节点。例如,网关软件可以将接收到的数据处理请求转发至存储集群中的存储节点。再例如上述步骤205可以由第一网关设备内的网关软件来执行。该网关软件可以是rgw软件,或者是能够为存储集群以外的设备提供访问存储集群接口的其他网关软件。
[0100]
网关设备中网关软件所处的状态包括空闲状态、繁忙状态或故障状态中任意一种。该空闲状态是指该网关设备中待转发的数据处理请求的个数小于或等于第一阈值,处于空闲状态的网关设备若接收到新的数据处理请求,可以在短时间(如预设时长)内转发新的数据处理请求。繁忙状态是指网关设备中待转发的数据处理请求的个数大于第一阈值,处于繁忙状态的网关设备若接收到新的数据处理请求,在短时间内不能转发新的数据处理请求,新的数据处理请求需要在网关设备内排队等待转发。其中,该第一阈值可以由相关技术人员根据具体的实施场景进行设置,在此,本技术实施例对第一阈值不做限定。
[0101]
以一个网关设备为例,该网关设备内的网关监控模块检测所在网关设备的网关软件所处的状态。例如该网关监控模块检测所在网关设备内的网关软件是否发生故障,若该网关软件发生故障,则确定该网关软件处于故障状态(也即是该网关设备处于故障状态)。
若该网关软件没有发生故障,则该网关监控模块检测该网关设备内待转发数据处理请求的个数,若待转发的数据处理请求的个数小于或等第一阈值,则说明该网关软件的负载少,该网关监控模块确定该网关软件处于空闲状态(也即是该网关设备处于空闲状态)。若待转发的数据处理请求的个数大于第一阈值,则说明该网关软件的负载高,该网关监控模块确定该网关软件处于繁忙状态(也即是该网关设备处于繁忙状态)。
[0102]
步骤302、每个网关监控模块向该存储系统中的监控节点发送对应网关软件所处的状态。
[0103]
其中,网关监控模块对应的网关软件是是指该网关监控模块所在网关设备内的网关软件。仍以一个网关设备为例,若该网关设备内的网关监控模块检测到该网关设备内的网关软件所处的状态后,该网关监控模块向该监控节点发送状态通知消息,该状态通知消息包括该网关软件所处的状态的标识。网关软件所处的每个状态由每个状态的标识来表示,不同状态的标识可以有不同的表示方式,例如繁忙状态的标识为“00”,空闲状态的标识为“01”,故障状态的标识为“11”。
[0104]
其中,该状态通知消息可以是心跳消息或者其他消息类型的消息。
[0105]
步骤303、该监控节点获取并记录每个网关设备的网关软件所处的状态。
[0106]
仍以一个网关设备为例,当该监控节点接收到一个网关设备的状态通知消息后,将状态通知消息中该网关软件所处的状态的标识与该网关设备的ip地址进行关联存储。在一种可能的实现方式中,该监控节点内存储有网关状态表,该网关状态表用于记录该存储集群中各个网关设备内的网关软件所处的状态,该监控节点每接收到一个网关设备的网关软件所处的状态后,将该网关设备的网关软件所处的状态记录在该网关状态表中。以存储集群包括m个网关设备为例,参见下述表2所示的网关状态表。
[0107]
表2
[0108]
网关设备的ip地址网关设备所处的状态网关设备1的ip地址繁忙状态(00)网关设备2的ip地址空闲状态(01)
……
网关设备m的ip地址故障状态(11)
[0109]
在一种可能的实现方式中,网关软件所处的故障状态并不是监控节点从状态通知消息中获取的,而是存储集群中的各个网关设备内的网关监控模块周期性向监控节点发送状态通知消息。当某一网关设备内的网关软件处于故障状态时,该网关设备内的监控模块不向监控节点发送状态通知消息。相应地,若监控节点经过预设时长没有接收到来自该网关设备的状态通知消息,则说明该网关设备内的网关软件处于故障状态,则该监控节点将该网关设备的网关软件所处的状态记录为故障状态。其中,该预设时长为网关监控模块周期性发送状态通知消息的发送周期。对于这种情况,状态通知消息可以不携带故障状态的标识。
[0110]
上述步骤302-303所示的过程为存储集群中的网关设备主动向监控节点上报各自的网关软件所处的状态的过程。而在另一种可能的实现方式中,监控节点在各个网关设备查询网关软件所处的状态,并记录查询到的网关软件所处的状态。例如,监控节点向存储集群中的各个网关设备发送查询请求,该查询请求用于查询网关设备内的网关软件所处的状
态,每个网关设备内的网关监控模块接收到该查询请求后,向该监控节点发送对应网关软件所处的状态,以便监控节点记录该网关软件所处的状态。
[0111]
步骤304、计算集群中的计算节点从该存储集群中的监控节点,获取该存储集群中各个网关设备的网关软件所处的状态,并将每个网关设备的网关软件所处的状态作为每个网关设备所处的状态。
[0112]
该计算节点为该计算集群中的任一计算节点,该计算集群中的每个计算节点均可以执行本步骤304。
[0113]
该计算节点向该监控节点发送网关状态获取请求,该网关状态获取请求指示获取该存储集群中各个网关设备所处的状态。
[0114]
该计算节点接收到该网关状态获取请求后,向该计算节点发送网关状态获取响应,其中,该网关状态获取响应携带该存储集群中各个网关设备所处状态的标识以及各个网关设备的ip地址。例如,该网关状态获取响应携带该监控节点内的网关状态表。
[0115]
该计算节点从该监控节点接收该网关状态获取响应,并从该网关状态获取响应中,获取该存储集群中每个网关设备所处的状态的标识。
[0116]
需要说明的是,本步骤304为一个计算节点获取存储集群中各个网关设备所处的状态的一种可能的实现方式。在另一种可能的实现方式中,该计算节点从该存储集群中的其他计算节点,获取该存储集群中各个网关设备的网关软件所处的状态。例如,计算集群中的第一计算节点从该监控节点获取该存储集群中各个网关设备的状态,并向该计算集群中的各个计算节点发送该存储集群中各个网关设备的状态。之后,该计算节点从该第一计算节点接收该存储集群中各个网关设备的状态,其中,该第一计算节点为该存储集群中除该计算节点以外的任一计算节点。
[0117]
再例如,该存储集群不包括监控节点,该计算节点从该存储集群中的各个网关设备,获取各个网关设备的网关软件所处的状态。其中,该计算节点从该存储集群中的各个网关设备,获取各个网关设备的网关软件所处的状态的过程与监控节点获取各个网关设备的网关软件所处的状态的过程同理。在此,本技术实施例对该计算节点从该存储集群中的各个网关设备,获取各个网关设备的网关软件所处的状态的过程不做赘述。
[0118]
再例如,该存储集群中的各个网关设备向计算集群中的第一计算节点发送各自的网关软件所处的状态,然后,该计算节点可以从该第一计算节点获取存储集群中的各个网关设备的网关软件所处的状态。
[0119]
步骤305、该计算节点基于该存储集群中各个网关设备所处的状态,确定处于空闲状态的多个网关设备。
[0120]
在一种可能的实现方式中,若该存储集群中的任一网关设备所处的状态为空闲状态,则该计算节点将该任一网关设备确定为该多个网关设备中的一个。
[0121]
在另一个可能的实现方式中,该计算节点内记录有该存储集群中各个网关设备与索引之间的对应关系。若该存储集群中的任一网关设备所处的状态为繁忙状态或故障状态,则该计算节点删除记录的该任一网关设备与索引之间的对应关系,并将该任一网关设备之后的各个网关设备的索引作为该各个网关设备的前一个网关设备的索引。
[0122]
以上述的表1为例,若网关设备1处于故障状态,且存储集群中除网关设备1以外的网关设备均处于空闲状态,则该计算节点删除表1中网关设备1与索引1之间的对应关系,并
将网关设备2至m的标识索引1至m-1对应,从而将网关设备2至m的索引更新为网关设备1至m-1的索引,如下述表3所示。
[0123]
表3
[0124][0125]
当该计算节点将该处于故障状态或者繁忙状态的网关设备与索引之间的对应关系均删除后,也即是对于该计算节点而言,已经将存储集群中处于故障状态或者繁忙状态的网关设备剔除。该计算节点此时记录的多个网关设备均处于空闲状态。
[0126]
需要说明的是,上述步骤301-305所示的过程可以实时进行,也可以周期性进行,本技术实施例对上述步骤301-305的执行周期的时长不做限定。
[0127]
步骤306、计算节点接收数据处理请求,该数据处理请求指示对文件进行处理。
[0128]
其中,本步骤306与上述步骤201同理,在此,本技术实施例对本步骤301不做赘述。
[0129]
步骤307、该计算节点从该多个网关设备中,确定第一网关设备。
[0130]
其中,本步骤307与上述步骤202同理,在此,本技术实施例对本步骤307不做赘述。
[0131]
步骤308、该计算节点向该第一网关设备发送该数据处理请求。
[0132]
步骤309、该第一网关设备接收该数据处理请求。
[0133]
步骤310、该第一网关设备向该存储集群中的存储节点发送该数据处理请求。
[0134]
其中,本步骤310与上述步骤205同理,在此,本技术实施例对本步骤310不做赘述。
[0135]
在另一种可能的实现方式中,上述步骤305-310所示的过程,可以由下述步骤311-314所示的过程来替换。
[0136]
步骤311、该计算节点记录存储系统中各个网关设备所处的状态与各个网关设备的索引的对应关系。
[0137]
例如,该计算节点可以将各个网关设备所处的状态的标识存储在网关映射表中,以便各个网关设备的状态与各个网关设备的索引对应。以存储集群包括m个网关设备为例,在表1所示的网关映射表中记录各个网关设备所处的状态,得到下述表4。
[0138]
表4
[0139][0140]
步骤312、该计算节点从存储集群的多个网关设备中,确定第一网关设备。
[0141]
其中,本步骤312与上述步骤202同理,在此,本技术实施例对本步骤312不做赘述。
[0142]
步骤313、若该第一网关设备处于繁忙状态或故障状态,该计算节点基于记录的多个网关设备所处的状态,从该多个网关设备中,确定第二网关设备,该第二网关设备为该多个网关设备中处于空闲状态的任一网关设备。
[0143]
若该第一网关设备处于繁忙状态或者故障状态,该计算节点查询网关映射表,将该网关映射表中记录的处于空闲状态的任一网关设备确定为第二网关设备。
[0144]
以表4所示的网关映射表为例,若第一网关设备为网关设备1,从表4可知,网关设备1处于繁忙状态,为了避免该数据处理请求在该网关设备1中长时间排队等待转发,则该计算节点将该处于空闲状态的网关设备2,确定为该第二网关设备。
[0145]
步骤314、该计算节点向该第二网关设备发送该数据处理请求,由该第二网关设备将该数据处理请求转发至该存储集群中的存储节点完成对该文件进行处理。
[0146]
步骤315、该第二网关设备接收该数据处理请求。
[0147]
步骤316、该第二网关设备向该存储集群中的存储节点发送该数据处理请求。
[0148]
其中,本步骤316与上述步骤205同理,在此,本技术实施例对本步骤316不做赘述。
[0149]
步骤317、该存储节点接收该数据处理请求。
[0150]
其中,该数据处理请求来自第一网关设备或者第二网关设备。
[0151]
步骤318、该存储节点基于该数据处理请求,对该文件进行处理。
[0152]
本步骤318与上述步骤207同理,在此,本技术实施例对本步骤318不做赘述。
[0153]
由上述描述可知,由计算集群中计算节点实现负载均衡器的功能,使得计算节点可以从存储集群的多个网关设备中选择网关设备发送数据处理请求,数据处理的过程中计算节点无需通过负载均衡集群为数据处理请求选择网关设备,从而在构建存算分离的存储系统时,无须部署负载均衡集群,降低了构建存算分离的存储系统的成本。并且,由于计算节点在选择网关设备时,选择的是处于空闲状态的网关设备,而不是繁忙状态或者故障状态的网关设备,从而使得数据处理请求可以避免在繁忙状态的网关设备长时间排队等待转发也可以避免故障的网关设备不转发该数据处理请求,从而提高了数据处理请求的处理效率。
[0154]
在图3所示的过程中,多个网关设备互为主备关系,若计算节点最先选择的网关设备处于故障状态,则该计算节点再次选择一个处于空闲状态的网关设备发送数据处理请求。
[0155]
在另一种可能的实现方式中,一个存储集群对应一个或多个计算集群,该存储集
群中每个网关设备包括一个或多个通信端口,每个通信端口用于与一个计算集群进行通信,也即是用于接收该计算集群发送的消息以及向该计算集群发送消息,从而使得每个网关设备能够通过一个或多个通信端口与该一个或多个计算集群通信。
[0156]
该存储集群中部署有m个资源池,每个资源池包括n+1个网关软件,每个资源池对应一个ip地址以及至少一个端口标识,该至少一个端口标识中的每个端口标识对应一个计算集群,以指示该存储集群中网关设备内的一个端口标识所指示通信端口与对应的计算集群通信。其中,m和n均为大于1的整数。每个资源池中的n+1个网关软件部署在r个网关设备上,该r个网关设备内任一网关设备中部署有至少一个网关软件,其中,r为大于等于1且小于等于n+1整数。相关技术人员分别从每个资源池的r个网关设备中,随机选择任一网关设备作为每个资源池的一个主网关设备,并将每个资源池的r个网关设备中除主网关设备以外的各个网关设备作为备用网关设备。
[0157]
为了便于区分同一资源池中的主网关设备和备用网关设备,相关技术人员将每个资源池的主网关设备的ip地址配置为每个资源对应的ip地址,将每个资源池中的备用网关设备的ip地址配置为除各个资源池对应的ip地址以外的任一ip地址。
[0158]
为了便于同一资源池中主备网关软件的切换,对于该至少一个计算集群中的任一计算集群以及该m个资源池中的任一资源池,相关技术员将该任一资源池的各个网关设备中用于与该任一计算集群通信的通信端口的标识,均配置为该任一资源池对应的至少一个端口标识中与该任一计算集群对应的端口标识。并在该任一计算集群中的各个计算节点中将该任一资源池对应的ip地址、该任一资源池对应的至少一个端口标识中与该任一计算集群对应的端口标识记录为该任一资源池的主网关设备的标识。
[0159]
在存储集群工作的过程中,由该m个资源池的主网关设备为计算集群提供访问存储集群的服务。也可以理解为,存储集群中部署有m*r个网关设备,且由m*r个网关设备中的m个主网关设备为计算集群提供访问存储集群的服务,而m*r个网关设备中的各个备用网关设备暂不为计算集群提供访问存储集群的服务。
[0160]
其中,每个主网关设备内部署有一个资源池中的至少一个网关软件,每个主网关设备从部署的至少一个网关软件中随机选择一个网关软件,来为计算集群提供访问存储集群的服务,也即是每个主网关设备随机开启一个网关软件,为计算集群提供访问存储集群的服务。为了便于描述,将每个主网关设备开启的网关软件作为每个网关设备所属资源池中的主网关软件,每个资源池中除主网关软件以外的各个网关软件均为备用网关软件。也可以理解为每个资源池包括一个主网关软件和n个备用网关软件,其中,每个资源池的主网关软件所在的网关设备为每个资源池的主网关设备。此时,主网关设备所处的状态也即是主网关设备内的主网关软件所处的状态。当一个主网关软件处于故障状态或者繁忙状态时,则主网关设备可以将当前使用的主网关软件切换为所属资源池中的备用网关软件,将所属资源池中的某一备用网关软件切换为主网关软件。为了进一步说明该过程,参加图4所示的本技术提供的一种主备网关设备切换方法的流程图。该方法应用于存算分离的存储系统,其中,该存算分离的存储系统可以是上述图1所示的存储系统。
[0161]
步骤401、网关设备的网关监控模块检测该网关设备内的主网关软件所处的状态。
[0162]
其中,该网关设备为存储集群的m个资源池中任一资源池的主网关设备,该网关设备包括该任一资源池内的主网关软件,当该主网关软件处于空闲状态时,由该网关设备内
的主网关软件接收并发送数据处理请求。
[0163]
网关监控模块检测该网关设备内的主网关软件所处的状态过程,也即是网关监控模块检测该网关设备内的网关软件所处的状态的过程,而网关监控模块检测网关设备内的网关软件所处的状态的过程在301中有相关描述,在此,本技术实施例对本步骤401不做赘述。
[0164]
步骤402、若该主网关软件处于故障状态或繁忙状态,该网关监控模块启用该主网关软件所在资源池中的一个备用网关软件,由启用的该备用网关软件接收并发送数据处理请求。
[0165]
其中,该网关监控模块启用备用网关软件,替代处于故障状态或者繁忙状态的主网关软件,使得启用的备用网关软件成为该任一资源池中新的主网关软件。而处于故障状态或者繁忙状态的主网关软件切换为该任一资源池中的备用网关软件。
[0166]
在一种可能的实现方式中,该网关监控模块启用该主网关软件所在资源池中的一个备用网关软件包括输出方式1或2中的任一种方式。
[0167]
方式1、若该网关设备还包括该主网关软件所在资源池中的k个备用网关软件,该网关监控模块启用该k个备用网关软件中的任一备用网关软件,该k为大于等于1且小于等于n的整数。
[0168]
由于该主网关软件与该k个备用网关软件均部署在该网关设备,则该主网关软件与该k个备用网关软件共用该网关设备的ip地址(即该任一资源池对应的ip地址),共用该网关设备的同一通信端口与该计算集群通信,因此,该网关监控模块启用该k个备用网关软件中的任一备用网关软件,替代处于繁忙状态或故障状态的主网关软件,该网关设备仍然为该任一资源池的主网关设备。由于计算集群的各个计算节点中记录的该任一资源池的主网关设备的标识包括该任一资源池对应的ip地址以及端口标识,其记录的主网关设备的标识没有发生变化,因此,即使主网关设备中的网关软件发生了切换,计算节点是感知不到的。
[0169]
方式2、若该主网关软件所在资源池中的一个备用网关软件部署在备用网关设备,该网关监控模块向该备用网关设备发送地址更新请求,该地址更新请指示该备用网关设备将ip地址修改为该网关设备的ip地址,并启用该备用网关设备中的备用软件。
[0170]
其中,该地址更新请求携带该网关设备的ip地址。
[0171]
当该网关监控模块在发送出该地址更新请求后,该网关监控模块还可以将该网关设备的ip地址修改为除m个资源池对应的ip地址以外的任一ip地址,使得该主网关软件切换为备用网关软件,该主网关设备也切换为备用网关设备。
[0172]
当该备用网关设备接收到该地址更新请求后,从该地址更新请求中解析出该网关设备的ip地址,将该备用网关设备的ip地址更新为该网关设备的ip地址。当地址更新完成后,该备用网关设备内的备用网关软件的ip地址为主网关设备的ip地址,该备用网关设备启用该备用网关设备内的备用网关软件,此时,该备用网关设备内的备用网关软件成为该任一资源池中的主网关软件,该备用网关设备成为该任一资源池中最新的主网关设备。
[0173]
由于计算集群的各个计算节点中记录的该任一资源池的主网关设备的标识包括该任一资源池对应的的ip地址以及通信端口的端口标识,而该任一资源池的各个网关设备与计算集群通信时的通信端口的标识均为该任一资源对应的通信端口的标识,且由于该备
用网关设备将自己的ip地址修改为主网关设备的ip地址,替代处于繁忙状态或故障状态的主网关设备,计算节点是感知不到的,对于计算节点而言,其记录的主网关设备的标识没有发生变化。
[0174]
对于这种情况,由于计算节点不感知资源池中主备网关软件的切换过程,存储集群中可以不部署监控节点。当然,为了避免出现资源池中所有的网关软件全部处于故障状态或者繁忙状态,而计算节点感知不到的情况,该存储集群中还是可以部署监控节点的。由于一般情况下,备用网关设备是不工作的,只有在当前主网关设备出现故障或者繁忙的情况下,备用网关设备才会切换至主网关设备开始工作,因此,监控节点收集资源池中主网软件所处的状态即可,而无须收集资源池中备用网关软件所处的状态,相应地,计算节点从监控节点获取到的是资源池中主网关软件所处的状态。
[0175]
步骤403、网关设备中的备用网关软件接收该计算集群中计算节点的数据处理请求,该数据处理请求指示对文件进行处理,该网关设备由该计算节点从该存储集群中的多个网关设备中确定。
[0176]
此时,该网关设备可以是该计算节点从该存储集群中的多个网关设备中确定的第一网关设备。本步骤403所示的过程也即是网关设备接收该计算集群中计算节点的数据处理请求的过程。
[0177]
步骤404、该备用网关软件向该存储集群中的存储节点发送该数据处理请求。
[0178]
其中,本步骤404所示的过程也即是网关设备向该存储集群中的存储节点发送该数据处理请求的过程。
[0179]
步骤405、该存储节点接收该数据处理请求。
[0180]
其中,本步骤405与上述步骤206同理,在此,本技术实施例对本步骤405不做赘述。
[0181]
步骤406、该存储节点基于该数据处理请求,对该文件进行处理。
[0182]
其中,本步骤406与上述步骤207同理,在此,本技术实施例对本步骤406不做赘述。
[0183]
由上述描述可知,由计算集群中的计算节点实现负载均衡器的功能,使得计算节点可以从存储集群的多个网关设备中选择网关设备发送数据处理请求,数据处理的过程中计算节点无需通过负载均衡集群为数据处理请求选择网关设备,从而在构建存算分离的存储系统时,无须部署负载均衡集群,降低了构建存算分离的存储系统的成本。并且,由于计算节点不会感知到存储集群中网关设备主备之间的切换过程,其记录的各个网关设备均是处于空闲状态的,因此,在选择网关设备时,选择的也是处于空闲状态的网关设备,而不是繁忙状态或者故障状态的网关设备,从而使得数据处理请求可以避免在繁忙状态的网关设备长时间排队等待转发,也可以避免故障的网关设备不转发该数据处理请求,从而提高了数据处理请求的处理效率。
[0184]
需要说明的是,本技术所涉及的计算节点包括计算机可读存储介质,该计算机可读存储介质内存储有负载均衡软件包,该负载均衡软件包中的程序代码用于实现上述数据处理方法。例如,计算节点的处理器通过读取并运行负载均衡软件包中的程序代码,使得该计算节点执行上述数据处理方法。
[0185]
在一种可能的实现方式中,该负载均衡软件包中的程序代码基于代码生成库(code generator library,cglib)生成。例如,该负载均衡软件包中的程序代码由该cglib内字节码拼接而成。其中,cglib是一个强大的、高性能的代码生成库,基于该cglib所生成
的负载软件包的代码量比较少。例如,预计的负载软件包的代码量可以达到3000行,而实际生成的负载均衡软件包的代码量不到300行。
[0186]
该cglib被广泛应用于面向切面编程(aspect oriented programming,aop)框架中,能够用以提供方法拦截操作,则计算节点可以补丁的形式,将基于该cglib所生成的负载均衡软件包加载至该计算集群的源码中,该计算节点的处理器在运行该计算集群的源码的过程,可以执行该源码内加载的负载均衡软件包,使得该计算节点能够执行上述数据处理方法。从而在实现负载均衡的基础上,能够避免修改该计算集群的源码,能够消除用户对新增负载均衡功能的计算集群的可靠性、安全性的顾虑。
[0187]
以上介绍了本技术实施例的方法,以下介绍本技术实施例的装置。应理解,以下介绍的装置具有上述方法中计算节点的任意功能。
[0188]
图5是本技术提供了一种数据处理装置,所述装置500可以为前面各个实施例或图2-5中的计算节点的部分,用于执行计算节点所执行的方法。所述装置500应用于存算分离的存储系统,所述存储系统包括计算集群以及存储集群,所述装置500被配置为所述计算集群中的计算节点,所述装置500包括:
[0189]
接收模块501,用于接收数据处理请求,所述数据处理请求指示对文件进行处理;
[0190]
确定模块502,用于从所述存储集群的多个网关设备中确定第一网关设备;
[0191]
发送模块503,用于向所述第一网关设备发送所述数据处理请求,由所述第一网关设备将所述数据处理请求转发至所述存储集群中的存储节点完成对所述文件进行处理。
[0192]
应理解的是,本发明本技术实施例的装置500可以通过中央处理单元(central processing unit,cpu)实现,也可以通过专用集成电路(application-specific integrated circuit,asic)实现,或可编程逻辑器件(programmable logic device,pld)实现,上述pld可以是复杂程序逻辑器件(complex programmable logical device,cpld),现场可编程门阵列(field-programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。也可以通过软件实现图2至图4所示的数据处理方法时,装置500及其各个模块也可以为软件模块。
[0193]
在一种可能的实现方式中,所述计算节点中记录有所述多个网关设备与索引之间的对应关系,所述多个网关设备中的每个网关设备分别对应一个索引;所述确定模块502用于:
[0194]
对所述数据处理请求携带的所述文件的标识进行哈希计算,得到所述文件的哈希值;
[0195]
基于所述哈希值,获取目标索引;
[0196]
基于所述多个网关设备与索引之间的对应关系,将所述多个网关设备中所述目标索引对应的网关设备确定为所述第一网关设备。
[0197]
在一种可能的实现方式中,所述多个网关设备与索引之间的对应关系包括所述多个网关设备中每个网关设备的标识以及每个网关设备所对应的索引,每个网关设备的标识包括每个网关设备的网络协议ip地址。
[0198]
在一种可能的实现方式中,所述目标索引为所述哈希值与所述多个网关设备的数目之间的余数。
[0199]
在一种可能的实现方式中,所述确定模块502用于:
[0200]
在所述多个网关设备中随机选择任一网关设备作为所述第一网关设备。
[0201]
在一种可能的实现方式中,所述装置500还包括:
[0202]
获取模块,用于从所述存储集群中的监控节点,获取所述存储集群中各个网关设备所处的状态,其中,所述状态包括空闲状态、繁忙状态或故障状态中任意一种;
[0203]
所述确定模块502,还用于基于所述存储集群中各个网关设备所处的状态,确定处于空闲状态的所述多个网关设备。
[0204]
在一种可能的实现方式中,所述确定模块502,还用于若所述第一网关设备处于繁忙状态或故障状态,基于记录的所述多个网关设备所处的状态,从所述多个网关设备中,确定第二网关设备,所述第二网关设备为所述多个网关设备中处于空闲状态的任一网关设备;
[0205]
所述发送模块503,还用于向所述第二网关设备发送所述数据处理请求,由所述第二网关设备将所述数据处理请求转发至所述存储集群中的存储节点完成对所述文件进行处理。
[0206]
应理解,装置500对应于上述方法实施例中的计算节点,装置500中的各模块和上述其他操作和/或功能分别为了实现方法实施例中的计算节点所实施的各种步骤和方法,具体细节可参见上述方法实施例,为了简洁,在此不再赘述。
[0207]
应理解,装置500在选择网关设备时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置500的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置500与上述方法实施例属于同一构思,其具体实现过程详见上述方法实施例,这里不再赘述。
[0208]
应理解,装置500可以相当于系统100中的计算节点1011,或者相当于计算节点1011中的执行部件。
[0209]
图6是本技术提供了一种数据处理装置,所述装置600可以为前面各个实施例或图2-5中的网关设备的部分,用于执行网关设备所执行的方法。所述装置600应用于存算分离的存储系统,所述存储系统包括计算集群以及存储集群,所述装置600被配置为所述存储集群中的网关设备执行,所述装置600包括:
[0210]
接收模块601,用于接收所述计算集群中计算节点的数据处理请求,所述数据处理请求指示对文件进行处理,所述网关设备由所述计算节点从所述存储集群中的多个网关设备中确定;
[0211]
发送模块602,用于向所述存储集群中的存储节点发送所述数据处理请求,由所述存储节点基于所述数据处理请求对所述文件中进行处理。
[0212]
应理解的是,本发明本技术实施例的装置600可以通过中央处理单元(cpu)实现,也可以通过专用集成电路(asic)实现,或可编程逻辑器件(pld)实现,上述pld可以是复杂程序逻辑器件(cpld),现场可编程门阵列(fpga),通用阵列逻辑(gal)或其任意组合。也可以通过软件实现图2至图4所示的数据处理方法时,装置600及其各个模块也可以为软件模块。
[0213]
在一种可能的实现方式中,所述发送模块602还用于:
[0214]
向所述存储集群中的监控节点发送所述网关设备所处的状态,所述状态包括空闲
状态、繁忙状态或故障状态中任意一种。
[0215]
在一种可能的实现方式中,所述存储集群包括m个资源池,每个资源池包括一个主网关软件和n个备用网关软件,所述网关设备包括一个资源池内的主网关软件,由所述网关设备中的主网关软件接收并发送所述数据处理请求,所述m和所述n均为大于或等于1的整数;所述装置600还包括:
[0216]
网关监控模块603,用于若所述网关设备中的主网关软件处于故障状态或繁忙状态,所述网关设备中的网关监控模块启用所述主网关软件所在资源池中的一个备用网关软件,由启用的所述备用网关软件接收并发送所述数据处理请求。
[0217]
在一种可能的实现方式中,所述网关监控模块603用于:
[0218]
若所述网关设备还包括所述主网关软件所在资源池中的k个备用网关软件,启用所述k个备用网关软件中的任一备用网关软件,所述k为大于等于1且小于等于所述n的整数;
[0219]
或者,
[0220]
若所述主网关软件所在资源池中的一个备用网关软件部署在备用网关设备,向所述备用网关设备发送地址更新请求,所述地址更新请指示所述备用网关设备将ip地址修改为所述网关设备的ip地址,并启用所述备用网关设备中的备用软件。
[0221]
应理解,装置600对应于上述方法实施例中的网关设备,装置600中的各模块和上述其他操作和/或功能分别为了实现方法实施例中的网关设备所实施的各种步骤和方法,具体细节可参见上述方法实施例,为了简洁,在此不再赘述。
[0222]
应理解,装置600在转发数据处理请求时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置600的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置600与上述方法实施例属于同一构思,其具体实现过程详见上述方法实施例,这里不再赘述。
[0223]
应理解,装置600可以相当于系统100中的网关设备1022,或者相当于网关设备1022中的执行部件。
[0224]
图7是本技术提供的一种计算机设备的结构示意图,该计算机设备700可以是图1-5部分描述的内容中涉及的任一设备,比如计算节点、网关设备等。该计算机设备700包括至少一个处理器701、通信总线702、存储器703以及至少一个通信接口704。
[0225]
处理器701可以是一个通用中央处理器(central processing unit,cpu)、网络处理器(network processor,np)、微处理器、或者可以是一个或多个用于实现本技术方案的集成电路,例如,专用集成电路(application-specific integrated circuit,asic),可编程逻辑器件(programmable logic device,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complex programmable logic device,cpld),现场可编程逻辑门阵列(field-programmable gate array,fpga),通用阵列逻辑(generic array logic,gal)或其任意组合。
[0226]
通信总线702用于在上述组件之间传送信息。通信总线702可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0227]
存储器703可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其它类型的静态存储设备,也可以是随机存取存储器(random access memory,ram)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器703可以是独立存在,并通过通信总线702与处理器701相连接。存储器703也可以和处理器701集成在一起。
[0228]
通信接口704使用任何收发器一类的装置,用于与其它设备或通信网络通信。通信接口704包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为无线局域网(wireless local area networks,wlan)接口,蜂窝网络通信接口或其组合等。
[0229]
在具体实现中,作为一种实施例,处理器701可以包括一个或多个cpu,如图7中所示的cpu0和cpu1。
[0230]
在具体实现中,作为一种实施例,计算机设备可以包括多个处理器,如图7中所示的处理器701和处理器705。这些处理器中的每一个可以是一个单核处理器(single-cpu),也可以是一个多核处理器(multi-cpu)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
[0231]
在具体实现中,作为一种实施例,计算机设备还可以包括输出设备706和输入设备707。输出设备706和处理器701通信,可以以多种方式来显示信息。例如,输出设备706可以是液晶显示器(liquid crystal display,lcd)、发光二级管(light emitting diode,led)显示设备、阴极射线管(cathode ray tube,crt)显示设备或投影仪(projector)等。输入设备707和处理器701通信,可以以多种方式接收用户的输入。例如,输入设备707可以是鼠标、键盘、触摸屏设备或传感设备等。
[0232]
在一些实施例中,存储器703用于存储执行本技术方案的程序代码710,处理器701可以执行存储器703中存储的程序代码710。也即是,该计算机设备700可以通过处理器701以及存储器703中的程序代码710,来实现上文图2-5实施例提供的方法。
[0233]
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括程序代码的存储器,上述程序代码可由计算机设备中的处理器执行以完成上述实施例中的数据处理方法。例如,该计算机可读存储介质是非临时计算机可读存储介质,如只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、只读光盘(compact disc read-only memory,cd-rom)、磁带、软盘和光数据存储设备等。
[0234]
本技术实施例还提供了一种计算机程序产品,该计算机程序产品包括至少一条程序代码,该程序代码存储在计算机可读存储介质中,计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该程序代码,使得计算机设备执行上述数据处理方法。
[0235]
另外,本技术的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行
时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中数据处理方法。
[0236]
其中,本实施例提供的装置、设备、计算机可读存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
[0237]
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明本技术实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,ssd)。
[0238]
以上所述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1