调度方法、存储系统、电子设备以及存储介质与流程

文档序号:33702020发布日期:2023-03-31 20:02阅读:40来源:国知局
调度方法、存储系统、电子设备以及存储介质与流程

1.本说明书一个或多个实施例涉及负载均衡技术领域,尤其涉及一种调度方法、存储系统、电子设备以及存储介质。


背景技术:

2.在相关技术的多集群的存储系统中,如果其中一个集群的流量访问接近集群上限之后,通常会采取热迁移手段,将原集群中的至少部分数据迁移到其他集群中,以此来减轻流量冲击。
3.但是,热迁移存在以下问题:(1)热迁移涉及到大量用户数据移动,经常需要较长时间才能完成;(2)数据迁移加重了原集群的负载和流量冲击,经常只能以非常低的速率迁移数据,进一步延长了流量缓解时间;(3)选择迁移的数据经常面临两难选择:选择迁移高流量的数据可以减轻原集群的负载,但高流量情况下迁移容易影响其当前服务质量;选择迁移低流量的数据容易做到用户无感知,但没有解决原集群的流量冲击问题;(4)数据迁移和校验消耗原集群的资源,加重其服务负担。


技术实现要素:

4.有鉴于此,本说明书一个或多个实施例提供一种调度方法、存储系统、电子设备以及存储介质。
5.为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
6.根据本说明书一个或多个实施例的第一方面,提出了一种调度方法,所述方法应用于存储系统的任一集群中的管理节点;集群还包括服务节点和存储节点;所述方法包括:
7.响应于本集群中的服务节点的负载满足第一高负载条件,向其他集群的管理节点发送服务资源调用请求,以接收其他集群的管理节点返回的反馈信息;所述反馈信息指示有其他集群中可被调用的存在空闲服务资源的候选服务节点;
8.向本集群的目标服务对象发送第一服务转移通知,以使所述目标服务对象向目标服务节点发送服务请求;所述目标服务节点从所述候选服务节点中选定;所述目标服务对象从本集群的所有服务对象中选定;以及
9.向所述目标服务节点发送第二服务转移通知,以使所述目标服务节点在收到所述目标服务对象的服务请求后,对所述本集群中的存储节点进行读写操作以响应所述服务请求。
10.可选地,还包括:
11.在所述目标服务节点对本集群中的存储节点进行读写操作之前,为所述目标服务节点开放本集群中的存储节点的读写权限。
12.可选地,在向本集群的至少一个目标服务对象发送第一服务转移通知之前,还包括:
13.向本集群中的服务节点发送暂停服务通知,所述暂停服务通知用于指示本集群中
的服务节点拒绝接收所述目标服务对象发送的服务请求。
14.可选地,所述暂停服务通知用于使所述目标服务对象在访问本集群中的服务节点被拒的情况下,重新向本集群的管理节点发送接入请求;
15.所述向本集群的至少一个目标服务对象发送第一服务转移通知,包括:
16.响应于接收到的所述接入请求,向所述目标服务对象发送第一服务转移通知;
17.所述向所述目标服务节点发送第二服务转移通知,包括:
18.通过所述目标服务节点所在集群的管理节点,向所述目标服务节点发送包括所述接入请求的第二服务转移通知。
19.可选地,还包括:
20.响应于本集群中的服务节点的负载满足低负载条件,向所述目标服务节点所在集群的管理节点发送服务资源归还请求,以使所述目标服务节点不再接收所述目标服务对象发送的服务请求;
21.向所述目标服务对象发送第三服务转移通知,以使所述目标服务对象向本集群中的服务节点发送服务请求;以及
22.向本集群中的服务节点发送第四服务转移通知,以使本集群中的服务节点在收到所述目标服务对象的服务请求后,对本集群中的存储节点进行读写操作以响应所述服务请求。
23.可选地,所述服务请求包括读请求和写请求;
24.所述方法还包括:
25.响应于本集群中的存储节点的负载满足第二高负载条件,向所述目标服务节点所在集群的管理节点发送存储资源调用请求,以使所述目标服务节点在收到所述目标服务对象的写请求后,对所述目标服务节点所在集群中的存储节点进行写操作以响应所述写请求,并根据所述写操作的写入结果更新所述目标服务对象对应的元数据;
26.其中,所述目标服务对象对应的元数据存储在本集群的存储节点中。
27.可选地,从本集群的所有目标服务对象中选定的所述目标服务对象满足以下至少一个条件:
28.存储有所述目标服务对象的数据的其他集群的总数量少于第一预设数量;
29.所述目标服务对象在单位时间内发送服务请求的频率高于预设频率;以及
30.所述目标服务对象在本集群的服务节点中等待处理的服务请求的数量超过第二预设数量。
31.可选地,在候选服务节点有多个的情况下,从多个候选服务节点选定的目标服务节点满足以下至少一个条件:
32.所述目标服务节点所服务的目标服务对象的数量不超过第三预设数量;以及
33.目标服务节点与其服务的目标服务对象之间的通信距离、以及目标服务节点与本集群中的存储节点之间的通信距离两者之和满足预设短通信距离条件。
34.可选地,还包括:
35.存储所述目标服务节点的调度信息,所述调度信息用于指示所述目标服务节点与所述目标服务对象之间的调度关系;
36.其中,所述目标服务节点所在集群的管理节点也存储有所述调度信息。
37.根据本说明书一个或多个实施例的第二方面,提出了一种存储系统,包括集群,集群包括管理节点、服务节点和存储节点;
38.任一集群中的管理节点用于执行第一方面任意一项所述的方法;
39.任一集群中的服务节点用于响应于第二服务转移通知,在收到其他集群的目标服务对象的服务请求后,对所述其他集群中的存储节点进行读写操作以响应所述目标服务对象的服务请求。根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括:
40.处理器;
41.用于存储处理器可执行指令的存储器;
42.其中,所述处理器通过运行所述可执行指令以实现如第一方面中任一项所述的方法。
43.根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面中任一项所述方法的步骤。
44.本说明书实施例具有如下有益效果:
45.存储系统中的任意一个集群的管理节点在发现自身集群中的服务节点的负载满足第一高负载条件的情况下,可以向其他集群发送服务资源调用请求,以实现对其他集群中的服务节点进行调用,可以让其他集群中的目标服务节点为本集群的目标服务对象提供读写服务,其他集群中的目标服务节点可以根据目标服务对象发送的服务请求,对集群的存储节点中进行读写操作。任意一个集群的管理节点通过借用其他集群的服务节点来为本集群的服务对象提供读写服务,减轻本集群的服务节点的负担,由于无需迁移数据,可以实现非常快速(秒级)地完成本集群的负载均衡,提高了负载均衡效率,并且轻量通用,侵入性小,容易接入现有的存储架构。
附图说明
46.图1是一示例性实施例提供的一种存储系统的结构示意图。
47.图2是一示例性实施例提供的另一种存储系统的结构示意图。
48.图3是一示例性实施例提供的一种调度方法的流程示意图。
49.图4是一示例性实施例提供的一种设备的结构示意图。
具体实施方式
50.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
51.需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行
描述。
52.为了便于理解本说明书实施例提供的调度方法,这里对多集群的存储系统进行示例性说明:
53.请参阅图1所示的存储系统,所述存储系统包括至少两个集群,每个集群包括管理节点(blockmaster,bm)、服务节点(blockserver,bs)和存储节点(chunkserver,cs))。比如每个集群包括一个管理节点、至少一个服务节点和至少一个存储节点。集群中的管理节点、服务节点和存储节点可以部署在一个或多个物理设备上。可以理解的是,所述管理节点、服务节点和存储节点均为计算机程序产品。
54.在一个例子中,如图1所示,以一个集群包括一个管理节点、多个服务节点和多个存储节点,集群部署在多个物理设备上举例,则一个物理设备上可以部署至少一个服务节点和至少一个存储节点,存储节点用于管理该物理设备上的物理存储器(如硬盘等);示例性的,服务节点和存储节点可以是同一应用程序中的不同功能,也可以是不同的应用程序,本实施例对此不做任何限制。管理节点可以部署在所述多个物理设备中的任意一个物理设备上。
55.可以理解的是,所述存储系统中的多个集群所部署的多个物理设备可以在同一地点(比如处于同一个机房或者处于同一个可用区),也可以处于不同的地点(比如处于不同的地级市、不同的机房或者不同的可用区),本实施例对此不做任何限制。
56.在另一个例子中,以集群包括一个管理节点、一个服务节点和一个存储节点为例,这三者可以部署在同一物理设备上,则管理节点、服务节点和存储节点可以是同一应用程序中的不同功能,也可以是不同的应用程序,本实施例对此不做任何限制;或者也可以是服务节点和存储节点部署在一物理设备,管理节点部署在另一物理设备。
57.请参阅图1,存储系统可以为若干计算节点提供读写服务。计算节点也是部署在物理设备上的计算机程序产品。用户可以通过计算节点所提供的接口访问存储系统。可以理解的是,在有些场景中比如云存储场景,部署集群中的管理节点、服务节点和存储节点的物理设备和部署计算节点的物理设备为不同的设备,比如部署集群中的管理节点、服务节点和存储节点的物理设备为机房中的服务器,部署计算节点的物理设备为用户的手机、电脑、平板或者可穿戴设备等终端设备。
58.首先,在初始化时,计算节点可以向任一集群中的管理节点发送接入请求,管理节点确定本集群中可以为该计算节点提供服务的服务节点并返回指示该服务节点的信息,使得计算节点可以与该服务节点建立连接,然后向该服务节点发送服务请求。
59.每个集群中的服务节点,用于为自身所服务的计算节点(即服务对象)提供读写服务;可以接收计算节点发送的服务请求,所述服务请求包括读请求和写请求,然后根据所述服务请求对本集群的存储节点进行读写操作。
60.在一个例子中,上述提到一个物理设备上可以部署一个服务节点和一个存储节点,服务节点可以对同一物理设备上的存储节点进行读写操作。在另一个例子中,为了保证数据存储的安全性,通常采用多副本备份机制,即将用户数据持久化到多个存储节点中,请参阅图1,则服务节点可以根据所述服务请求对本集群的多个存储节点进行读写操作,即可以对同一物理设备上的存储节点进行读写操作,也可以对属于同一集群的其他物理设备上的存储节点进行读写操作。
61.每个集群中的存储节点,用于管理部署该存储节点的物理设备上的物理存储器(如硬盘等),实现将数据持久化到物理存储器中,根据所述服务节点对本存储节点的读写操作访问物理存储器。
62.每个集群中的管理节点,还用于对集群中的服务节点和存储节点进行管理,比如负载均衡管理。比如如图1所示,集群a中的服务节点1为计算节点1提供读写服务,服务节点2为计算节点1和计算节点2提供读写服务,服务节点3为计算节点2和计算节点3提供读写服务,服务节点4为计算节点4提供读写服务;在服务节点2的负载较高的情况下,集群a中的管理节点可以通过调度让负载较低的服务节点4为计算节点2提供读写服务。
63.可以理解的是,图1以集群a和集群b总计2个集群进行示例性说明,但不限于此。
64.在相关技术的多集群的存储系统中,如果其中一个集群的流量访问接近集群上限之后,通常会采取热迁移手段,将原集群中的至少部分数据迁移到其他集群中,以此来减轻流量冲击。比如在云存储领域,通过块存储(ebs、elastic block storage)技术在存储系统中为用户创建云硬盘,比如可以在一个集群中创建多个用户的云硬盘,而当集群的流量访问接近集群上限之后,通常会采取热迁移手段,将原集群中的部分用户的云硬盘热迁移到其他集群,以此来减轻流量冲击。
65.但是,热迁移存在以下问题:(1)热迁移涉及到大量用户数据移动,经常需要较长时间才能完成;(2)数据迁移加重了原集群的负载和流量冲击,经常只能以非常低的速率迁移数据,进一步延长了流量缓解时间;(3)选择迁移的数据经常面临两难选择:选择迁移高流量的数据可以减轻原集群的负载,但高流量情况下迁移容易影响其当前服务质量;选择迁移低流量的数据容易做到用户无感知,但没有解决原集群的流量冲击问题;(4)数据迁移和校验消耗原集群的资源,加重其服务负担。
66.针对于相关技术中的问题,本说明书实施例提供了一种调度方法、存储系统、电子设备以及存储介质。存储系统中的任意一个集群的管理节点在发现自身集群中的服务节点的负载较高的情况下,可以向其他集群发送服务资源调用请求,以实现对其他集群中的服务节点进行调用,可以让其他集群中的服务节点为本集群的服务对象提供读写服务,服务节点可以对作为请求方的集群的存储节点中进行读写操作以相应本集群的服务对象发送的服务请求。本实施例实现在无需迁移数据的情况下,通过借用其他集群的服务资源实现集群间的负载均衡,可以实现秒级完成,提高了负载均衡效率,并且轻量通用,侵入性小,容易在现有的存储架构中实现。
67.请参阅图1和图2,为本说明书提供的一种存储系统的结构示意图。所述存储系统包括至少两个集群,每个集群包括管理节点、服务节点和存储节点。需要说明的是,存储系统中的每个集群的管理节点均具备在负载较高的情况下向其他集群请求资源的功能,也具备在存储空闲资源的情况下将资源借用给其他集群的功能。
68.接下来从多个集群中的任意一个集群在负载较高的情况下向其他集群请求资源的角度进行示例性说明:
69.任一集群(为方便区别,以图2中的集群a来指代)的管理节点,用于响应于本集群中的服务节点的负载满足第一高负载条件,向其他集群的管理节点发送服务资源调用请求,以接收其他集群的管理节点返回的反馈信息;所述反馈信息指示有其他集群中可被调用的存在空闲服务资源的候选服务节点。
70.其中,发送服务资源调用请求的集群作为请求方,接收服务资源调用请求的其他集群作为被请求方。
71.可以理解的是,第一高负载条件可依据集群的实际应用场景进行具体设置。在一个例子中,第一高负载条件可以是集群中的服务节点的总负载高于第一阈值。在另一个例子中,第一高负载条件也可以是集群中的服务节点接收到的服务请求的数量超过预设数量。在又一个例子中,第一高负载条件还可以是服务节点当前接收到的服务请求所需的服务资源大于服务节点当前剩余的服务资源。本实施例对此不做任何限制。
72.示例性的,其他集群的管理节点在接收到集群a的管理节点发送的服务资源调用请求之后,可以根据所述服务资源调用请求确定集群中可被调用的存在空闲服务资源的候选服务节点,以向所述其他集群的管理节点返回指示所述候选服务节点的反馈信息。当然,如果其他集群的管理节点发现自身集群中的服务节点的负载也满足第一高负载条件,则可以向集群a的管理节点返回指示无法提供服务资源的提示信息。
73.集群a的管理节点,还用于从本集群的所有服务对象中选定至少一个目标服务对象,以及在接收到所述反馈信息之后,从所述候选服务节点中选定用于服务所述目标服务的目标服务节点。其中,所述服务对象可以是如图1和图2所示的计算节点。
74.接着,集群a的管理节点向本集群的至少一个目标服务对象发送第一服务转移通知,以使所述目标服务对象向目标服务节点发送服务请求;以及,向所述目标服务节点发送第二服务转移通知,以使所述目标服务节点在收到所述目标服务对象的服务请求后,对作为请求方的本集群中的存储节点进行读写操作以响应所述服务请求。
75.可以理解的是,在有些业务场景中,集群a的管理节点可以与其他集群中的所述目标服务节点直接通信,则集群a的管理节点可以直接向所述目标服务节点发送第二服务转移通知。在另一些业务场景中,集群a的管理节点与其他集群中的所述目标服务节点无法直接通信,集群a的管理节点可以与其他集群中的管理节点通信,则集群a的管理节点可以通过所述目标服务节点所在集群的管理节点,向所述目标服务节点发送第二服务转移通知。
76.本实施例,任意一个集群的管理节点通过借用其他集群的服务节点来为本集群的服务对象提供读写服务,减轻本集群的服务节点的负担,由于无需迁移数据,可以实现非常快速地完成本集群的负载均衡,提高了负载均衡效率,并且轻量通用,侵入性小,容易接入现有的存储架构。
77.在一些实施例中,在所述目标服务节点对作为请求方的本集群中的存储节点进行读写操作之前,集群a的管理节点还用于为所述目标服务节点开放本集群中的存储节点的读写权限,以使得所述目标服务节点能够在本集群的存储节点中执行读写操作。可以理解的是,本实施例对于本集群中的存储节点的读写权限的开放时机不做任何限制;比如可以是存储系统在初始化时,已经默认设置向其他集群中的所有服务节点开放本集群中的存储节点的读写权限;又比如可以是在选定了目标服务节点之后,为所述目标服务节点开放本集群中的存储节点的读写权限;但不限于此。
78.在一个例子中,请参阅图2,比如集群a在发现本集群中的服务节点满足第一高负载条件,向其他集群(集群b、集群c和集群d)的管理节点发送服务资源调用请求。
79.集群b的管理节点在评估自身集群的负载后,确定可被调用的存在空闲服务资源的候选服务节点(如服务节点5),并向集群a返回指示服务节点5的反馈信息。集群c的管理
节点在评估自身集群的负载后,确定可被调用的存在空闲服务资源的候选服务节点(如服务节点12),并向集群a返回指示服务节点12的反馈信息。集群d的管理节点在评估自身集群的负载后,发现自身集群中的服务节点的负载也满足第一高负载条件,则可以向集群a的管理节点返回指示无法提供服务资源的提示信息。
80.集群a的管理节点从本集群服务的多个服务对象中选择目标服务对象(如计算节点4)。并且在接收到集群b和集群c返回的反馈信息之后,从服务节点5和服务节点12中选择用于服务所述计算节点4的目标服务节点,比如选定的目标服务节点为服务节点5,接着为服务节点5开放本集群中的存储节点的读写权限。
81.然后集群a的管理节点向本集群的计算节点4发送第一服务转移通知,以使计算节点4向服务节点5发送服务请求;以及向所述服务节点5发送第二服务转移通知,以使服务节点5在收到计算节点4的服务请求后,对集群a中的存储节点进行读写操作以响应所述服务请求。从图2中可以看出,计算节点4由集群a中的服务节点4切换为由集群b中的服务节点5为其提供读写服务,实现在无需迁移数据的情况下,集群a的管理节点通过借用其他集群的服务节点来为本集群的服务对象提供读写服务,减轻本集群的服务节点的负担,可以实现秒级完成本集群的负载均衡,提高了负载均衡效率。
82.同理,从图2中可以看出,集群d原本由服务节点14为本集群的服务对象(计算节点5)提供读写服务,在负载较高的情况下,借用了集群c的服务节点12,以便为集群d的服务对象(计算节点5)提供读写服务,集群c的服务节点12可以根据计算节点5发送的服务请求在集群d的存储节点中进行读写操作。
83.在一些可能的实施方式中,对于目标服务对象的选定,可以从本集群(集群a)中的多个服务对象中选择访问流量较高的服务对象进行服务转移,以快速实现负载均衡。示例性的,可以从本集群中的多个服务对象中选择满足高访问流量条件的服务对象作为所述目标服务对
84.象。所述高访问流量条件包括但不限于:服务对象在单位时间内发送服务请求的频率高于预5设频率、和/或服务对象在本集群(集群a)的服务节点中等待处理的服务请求的数量超过第
85.二预设数量;但不限于此。比如在图2所示的实施例中,计算节点4的访问流量较高,因为将计算节点4交由集群b中的服务节点5来服务,以快速降低集群a的负载。
86.当然,也可以采用其他方式来选定目标服务对象,比如可以从本集群(集群a)中的多个服务对象中随机选取至少一个目标服务对象。
87.0在一些实施例中,可能存在多个其他集群向本集群返回反馈信息,或者其他集群返回的反馈信息中指示的候选服务节点多于一个,则可能有多个候选服务节点可供本集群选择与调用。则集群a的管理节点可以从多个候选服务节点中选择用于服务各个目标服务对象的目标服务节点。
88.在一种可能的实现方式中,考虑到不同集群可以部署的物理设备可以位于不同的地点,5以及不同的服务对象所处的地点也有所不同,而通信距离越长,通信效率会相应地降低。因
89.此集群a的管理节点可以根据本集群中的目标服务对象与各个候选服务节点的通信距离、以及本集群中的存储节点与各个候选服务节点的通信距离,从多个候选服务节点
中选定用于服务所述目标服务对象的目标服务节点。示例性的,选定的目标服务节点满足以下条件:目标
90.服务节点与其服务的目标服务对象之间的通信距离、以及目标服务节点与本集群中的存储节0点之间的通信距离两者之和满足预设短通信距离条件。所述预设短通信距离条件可以是上述
91.两者的通信距离之和最短,或者上述两者的通信距离之和小于预设通信距离,但不限于此。
92.在一种可能的实现方式中,在目标服务对象有多个的情况下,如果由一个目标服务节点来服务多个目标服务对象,可能存在服务效率不高的问题。因此,在候选服务节点有多个的情况下,可以设置同一个目标服务节点所服务的目标服务对象的数量不超过第三预设数量,5第三预设数量可依据实际应用场景进行具体设置,本实施例对此不做任何限制,比如第三预
93.设数量3个或4个等。
94.示例性的,综合考虑服务效率和通信效率,在候选服务节点有多个的情况下,从多个候选服务节点选定的目标服务节点满足以下至少一个条件:所述目标服务节点所服务的目标服
95.务对象的数量不超过第三预设数量;以及目标服务节点与其服务的目标服务对象之间的通信0距离、以及目标服务节点与本集群中的存储节点之间的通信距离两者之和满足预设短通信距
96.离条件。
97.在一些实施例中,集群a的管理节点在向本集群的至少一个目标服务对象发送第一服务转移通知之前,可以先向本集群中用于服务所述目标服务对象的服务节点发送暂停服务通知,所述暂停服务通知用于指示本集群中的服务节点拒绝接收所述目标服务对象发送的服务请求,以使所述目标服务对象在继续访问本集群中的服务节点被拒的情况下,重新向本集群的管理节点发送接入请求。然后,集群a的管理节点响应于接收到的所述接入请求,向所述目标服务对象发送第一服务转移通知,所述第一服务转移通知指示有目标服务节点。所述目标服务对象可以根据所述第一服务转移通知,与目标服务节点建立连接之后向目标服务节点发送服务请求。以及集群a的管理节点可以通过所述目标服务节点所在集群的管理节点,向所述目标服务节点发送包括所述接入请求的第二服务转移通知。所述目标服务节点用于响应于所述第二服务转移通知,在收到所述目标服务对象的服务请求后,对集群a的存储节点进行读写操作以响应所述服务请求。
98.在一种示例性的实施例中,其他集群的管理节点返回的反馈信息包括第一反馈信息和第二反馈信息,所述第一反馈信息用于告知集群a的管理节点允许在所述其他集群中进行服务资源调用,第二反馈信息用于指示所述其他集群中可被调用的存在空闲服务资源的候选服务节点。以图2进行示例性说明:
99.(1)集群a的管理节点响应于本集群中的服务节点的负载满足第一高负载条件,向其他集群(集群b、集群c和集群d)的管理节点发送服务资源调用请求。
100.(2)集群b的管理节点在评估自身集群的负载后,向集群a的管理节点返回第一反馈信息,所述第一反馈信息用于告知集群a的管理节点允许在集群b中进行服务资源调用。
集群c和集群d的管理节点在评估自身集群的负载后,确定自身的服务节点的负载也满足第一高负载条件,向集群a的管理节点返回指示无法提供服务资源的提示信息。
101.(3)集群a的管理节点从本集群服务的多个服务对象中选择目标服务对象(如计算节点4)。并且在接收到集群b返回的反馈信息之后,先向本集群中用于服务所述计算节点4的服务节点(如服务节点4)发送暂停服务通知,所述暂停服务通知用于指示服务节点4拒绝接收计算节点4发送的服务请求。
102.(4)计算节点4继续访问本集群的服务节点4被拒,向集群a的管理节点发送接入请求。
103.(5)集群a的管理节点向集群b的管理节点发送包括所述接入请求的第二服务转移通知。
104.(6)集群b的管理节点根据自身集群的均衡情况选择服务节点5,并向服务节点5发送包括所述接入请求的第二服务转移通知,以及向集群a的管理节点发送第二反馈信息,第二反馈信息用于指示集群b中的可被调用的存在空闲服务资源的服务节点5。
105.(7)集群a的管理节点为服务节点5开放本集群的存储节点的读写权限。以及,集群a的管理节点向本集群的计算节点4发送指示所述服务节点5的第一服务转移通知。
106.(8)计算节点4根据所述第一服务转移通知,与集群b中的服务节点5建立连接,然后向服务节点5发送服务请求,所述服务请求包括读请求和写请求。
107.(9)服务节点5在收到计算节点4的服务请求之后,对集群a中的存储节点进行读写操作以响应所述服务请求。本实施例实现在无需迁移数据的情况下,集群a的管理节点通过借用其他集群的服务节点来为本集群的服务对象提供读写服务,减轻本集群的服务节点的负担,可以实现秒级完成本集群的负载均衡,提高了负载均衡效率。
108.在一些实施例中,集群a的管理节点和所述目标服务节点所在集群的管理节点均存储所述目标服务节点的调度信息,所述调度信息用于指示所述目标服务节点与所述目标服务对象之间的调度关系,从而方便后续在故障转移、切换、容错等情况出现的情况下可以基于存储的调度信息实现恢复正确的调度状态。
109.在一些实施例中,集群a的管理节点响应于本集群中的服务节点的负载满足低负载条件,可以向所述目标服务节点所在集群的管理节点发送服务资源归还请求,目标服务节点所在集群的管理节点响应于服务资源归还请求,向目标服务节点发送指示所述目标服务对象的暂停服务通知,以使所述目标服务节点不再接收所述目标服务对象发送的服务请求。并且集群a的管理节点向所述目标服务对象发送第三服务转移通知,以使所述目标服务对象向本集群中的服务节点发送服务请求;以及向本集群中的服务节点发送第四服务转移通知,以使本集群中的服务节点在收到所述目标服务对象的服务请求后,对本集群中的存储节点进行读写操作以响应所述服务请求。
110.示例性的,所述目标服务节点不再接收所述目标服务对象发送的服务请求之后,所述目标服务对象访问所述目标服务节点被拒,然后向集群a的管理节点重新发送接入请求;集群a的管理节点响应于该接入请求,向所述目标服务对象发送指示本集群中的服务节点的第三服务转移通知、以及向本集群中的服务节点发送第四服务转移通知;所述目标服务对象响应于所述第三服务转移通知,与本集群中的服务节点建立连接后向本集群中的服务节点发送服务请求;本集群中的服务节点响应于第四服务转移通知,在收到所述目标服
务对象的服务请求后,对本集群中的存储节点进行读写操作以响应所述服务请求。本实施例中,在集群中的负载降低的情况下,可以将借用的其他集群的服务资源归还,因为没有涉及数据迁移,则可以非常快速地完成归还过程。
111.在一个例子中,请参阅图2,集群a可以将集群b发送服务资源归还请求,集群b基于服务资源归还请求向服务节点5发送暂停服务通知,以告知服务节点5拒绝接收计算节点4的服务请求,计算节点4在访问服务节点5被拒后,向集群a的管理节点发送接收请求,集群a的管理节点将服务节点4返回给计算节点4,以及告知服务节点4继续接收计算节点4的服务请求,则计算节点4在与服务节点4重新建立连接之后向服务节点4发送服务请求,服务节点4根据接收到的服务请求对集群a的存储节点进行读写操作。
112.在一些实施例中,响应于本集群中的存储节点的负载满足第二高负载条件,集群a的管理节点还用于向所述目标服务节点所在集群的管理节点发送存储资源调用请求;所述目标服务节点所在集群的管理节点可以将存储资源调用请求转发给所述目标服务节点,则所述目标服务节点可以响应于所述存储资源调用请求,在收到所述目标服务对象的写请求后,对所述目标服务节点所在集群中的存储节点进行写操作以响应所述写请求,并且根据所述写操作的写入结果更新所述目标服务对象对应的元数据;其中,所述目标服务对象对应的元数据存储在集群a的存储节点中。本实施例中,实现将目标服务对象的增量数据写到目标服务节点所在集群中的存储节点中,从而进一步降低集群a的负载,并且在所述目标服务对象对应的元数据中做好配置记录,以便后续在故障恢复时可以基于所述目标服务对象对应的元数据找到该目标服务对象的所有数据,而对于原有的存量数据仍然存储在集群a的存储节点中,无需进行迁移。
113.可以理解的是,所述第二高负载条件可以依据集群的实际应用场景进行具体设置。在一个例子中,第二高负载条件可以是集群中的存储节点的总负载高于第二阈值。在另一个例子中,第二高负载条件还可以是存储节点当前接收到的读写任务所需的读写资源大于存储节点当前剩余的读写资源。本实施例对此不做任何限制。
114.在一些实施例中,随着多次的服务转移过程,本集群的服务对象的数据可能分散地存储在本集群以及至少一个其他集群的存储节点中,存储有服务对象的数据的其他集群的数量越多,则服务对象受到影响的范围越广,即存储有服务对象的数据的任何一个其他集群故障,都会导致服务对象的数据不可用。因此,为了减小服务对象受到影响的范围,集群a的管理节点在从本集群的所有目标服务对象中选定目标服务对象时,选定的目标服务对象还可以满足以下条件:存储有所述目标服务对象的数据的其他集群的总数量少于第一预设数量。所述第一预设数量可以依据实际应用场景进行具体设置,比如第一预设数量为3或者5,但不限于此。
115.在一些例子中,集群a的管理节点在从本集群的所有目标服务对象中选定目标服务对象时,选定的目标服务对象还可以满足以下至少一个条件:(1)存储有所述目标服务对象的数据的其他集群的总数量少于第一预设数量;(2)所述目标服务对象在单位时间内发送服务请求的频率高于预设频率;以及(3)所述目标服务对象在本集群的服务节点中等待处理的服务请求的数量超过第二预设数量。满足条件(1)可以减小目标服务对象的数据受到影响的范围,避免目标服务对象的数据存储地过于分散;满足条件(2)或(3)可以快速减轻服务节点的负担。
116.以上实施方式中的各种技术特征可以任意进行组合,只要特征之间的组合不存在冲突或矛盾,但是限于篇幅,未进行一一描述,因此上述实施方式中的各种技术特征的任意进行组合也属于本说明书公开的范围。
117.相应地,请参阅图3,本说明书实施例提供了一种存储系统的调度方法,所述存储系统包括集群,集群包括管理节点、服务节点和存储节点;所述方法应用于任一集群中的管理节点;所述方法包括:
118.在步骤101中,响应于本集群中的服务节点的负载满足第一高负载条件,向其他集群的管理节点发送服务资源调用请求,以接收其他集群的管理节点返回的反馈信息;所述反馈信息指示有其他集群中可被调用的存在空闲服务资源的候选服务节点。
119.在步骤102中,向本集群的目标服务对象发送第一服务转移通知,以使所述目标服务对象向目标服务节点发送服务请求;所述目标服务节点从所述候选服务节点中选定;所述目标服务对象从本集群的所有服务对象中选定。
120.在步骤103中,向所述目标服务节点发送第二服务转移通知,以使所述目标服务节点在收到所述目标服务对象的服务请求后,对所述本集群中的存储节点进行读写操作以响应所述服务请求。
121.在一些实施例中,还包括:在所述目标服务节点对本集群中的存储节点进行读写操作之前,为所述目标服务节点开放本集群中的存储节点的读写权限。
122.在一些实施例中,在向本集群的至少一个目标服务对象发送第一服务转移通知之前,还包括:向本集群中的服务节点发送暂停服务通知,所述暂停服务通知用于指示本集群中的服务节点拒绝接收所述目标服务对象发送的服务请求。
123.在一些实施例中,所述暂停服务通知用于使所述目标服务对象在访问本集群中的服务节点被拒的情况下,重新向本集群的管理节点发送接入请求。
124.所述向本集群的至少一个目标服务对象发送第一服务转移通知,包括:响应于接收到的所述接入请求,向所述目标服务对象发送第一服务转移通知。
125.所述向所述目标服务节点发送第二服务转移通知,包括:通过所述目标服务节点所在集群的管理节点,向所述目标服务节点发送包括所述接入请求的第二服务转移通知。
126.在一些实施例中,还包括:响应于本集群中的服务节点的负载满足低负载条件,向所述目标服务节点所在集群的管理节点发送服务资源归还请求,以使所述目标服务节点不再接收所述目标服务对象发送的服务请求;向所述目标服务对象发送第三服务转移通知,以使所述目标服务对象向本集群中的服务节点发送服务请求;以及向本集群中的服务节点发送第四服务转移通知,以使本集群中的服务节点在收到所述目标服务对象的服务请求后,对本集群中的存储节点进行读写操作以响应所述服务请求。
127.在一些实施例中,所述服务请求包括读请求和写请求;所述方法还包括:响应于本集群中的存储节点的负载满足第二高负载条件,向所述目标服务节点所在集群的管理节点发送存储资源调用请求,以使所述目标服务节点在收到所述目标服务对象的写请求后,对所述目标服务节点所在集群中的存储节点进行写操作以响应所述写请求,并根据所述写操作的写入结果更新所述目标服务对象对应的元数据;其中,所述目标服务对象对应的元数据存储在本集群的存储节点中。
128.在一些实施例中,从本集群的所有目标服务对象中选定的所述目标服务对象满足
以下至少一个条件:存储有所述目标服务对象的数据的其他集群的总数量少于第一预设数量;
129.所述目标服务对象在单位时间内发送服务请求的频率高于预设频率;以及所述目标服务对象在本集群的服务节点中等待处理的服务请求的数量超过第二预设数量。
130.在一些实施例中,在候选服务节点有多个的情况下,从多个候选服务节点选定的目标服务节点满足以下至少一个条件:所述目标服务节点所服务的目标服务对象的数量不超过第三预设数量;以及目标服务节点与其服务的目标服务对象之间的通信距离、以及目标服务节点与本集群中的存储节点之间的通信距离两者之和满足预设短通信距离条件。
131.在一些实施例中,还包括:存储所述目标服务节点的调度信息,所述调度信息用于指示所述目标服务节点与所述目标服务对象之间的调度关系;其中,所述目标服务节点所在集群的管理节点也存储有所述调度信息。
132.上述方法的实现过程具体详见上述系统中对于管理节点、服务节点和存储节点的描述,在此不再赘述。
133.相应的,本说明书实施例还提供了一种电子设备,包括:
134.处理器;
135.用于存储处理器可执行指令的存储器;
136.其中,所述处理器通过运行所述可执行指令以实现如上述任一项所述的方法。
137.所述处理器包括但不限于中央处理单元(central processing unit,cpu)、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)或者现成可编程门阵列(field-programmable gate array,fpga)等。
138.示例性的,所述存储器可以包括至少一种类型的存储介质,存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等等。
139.示例性的,图4是一示例性实施例提供的一种设备的示意结构图。请参考图4,在硬件层面,该设备包括处理器402、内部总线404、网络接口406、内存408以及非易失性存储器410,当然还可能包括其他业务所需要的硬件。本说明书一个或多个实施例可以基于软件方式来实现,比如由处理器402从非易失性存储器410中读取对应的计算机程序到内存408中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等。
140.相应的,本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述任一项所述方法的步骤。例如,计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
141.相应的,本说明书实施例还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时用于实现上述的调度方法。
142.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放
器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
143.在一个典型的配置中,计算机包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
144.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
145.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
146.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
147.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
148.在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
149.应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
150.以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1