一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

恢复任务的处理方法、装置及电子设备与流程

2022-02-24 17:24:44 来源:中国专利 TAG:


1.本发明涉及数据处理技术领域,尤其是涉及一种恢复任务的处理方法、装置及电子设备。


背景技术:

2.在公有云场景下,集群的规模是逐渐增长的,随着集群运行时间变长,集群内可能存在着多种不同的机型,不同机型所能够承接的恢复能力也有所区别。
3.目前,现有分布式对象存储集群的恢复能力配置方案是对集群内的所有机器配置固定的恢复能力,但是,固定的恢复能力并不能够满足公有云多变的场景需求。因为,如果固定配置的恢复能力过大,则会造成对部分机器的压力,影响这部分机器的正常服务;而如果固定配置的恢复能力过小,又无法充分利用集群的恢复能力,从而降低集群的可靠性。
4.整体而言,现有分布式对象存储集群的恢复能力配置方式无法满足公有云多变场景下对机器恢复能力的不同需求,也无法充分利用集群整体的恢复能力,降低了集群服务的可靠性。


技术实现要素:

5.有鉴于此,本发明的目的在于提供一种恢复任务的处理方法、装置及电子设备,可以满足公有云多变场景下对集群内机器恢复能力的不同需求,更加充分地利用集群整体的恢复能力,提高集群服务的可靠性。
6.第一方面,本发明实施例提供了一种恢复任务的处理方法,应用于存储集群的管理服务器,该管理服务器与该存储集群中的数据服务器通信连接,该方法包括:获取数据服务器中恢复任务执行线程的线程状态,以及该数据服务器的剩余容量;其中,该数据服务器上运行有预设第一数量的恢复任务执行线程,当该恢复任务执行线程的线程状态为激活时,该恢复任务执行线程用于处理恢复任务;根据该线程状态和该剩余容量,确定数据服务器的恢复系数;根据数据服务器的恢复系数向数据服务器分配恢复任务。
7.在本发明较佳的实施例中,上述线程状态包括激活或休眠;上述根据该线程状态和该剩余容量,确定数据服务器的恢复系数的步骤,包括:根据每个恢复任务执行线程的线程状态,将正在执行恢复任务的恢复任务执行线程的数量确定为第二数量,并且,将线程状态为激活但处于空闲的恢复任务执行线程的数量确定为第三数量;基于该第二数量、该第三数量和该剩余容量,确定该数据服务器的权重值,根据该权重值确定该数据服务器的恢复系数。
8.在本发明较佳的实施例中,上述基于该第二数量、该第三数量和该剩余容量,确定该数据服务器的权重值的计算公式,包括:其中,vi表示该存储集群中的第i个数据服务器的权重值;n
i-thr
表示该第i个数据服务器的第三数量;c
i-re
表示该第i个数据服务器的剩余容量;n
i-sec
表示该第i个数据服务器的第二数量;n为该存储集群中的数
据服务器的总数。
9.在本发明较佳的实施例中,上述根据数据服务器的恢复系数向数据服务器分配恢复任务的步骤,包括:根据该数据服务器的恢复系数,通过预设的选取算法从该存储集群中选取目标数据服务器;向该目标数据服务器发送恢复任务。
10.在本发明较佳的实施例中,上述随机选取算法为shuffle、randow或者quick sort。
11.在本发明较佳的实施例中,上述方法还包括:监测该目标数据服务器上恢复任务的执行情况;如果监测到任一个恢复任务出现异常,停止向该目标数据服务器分配恢复任务,直至该目标数据服务器上已经分配的恢复任务均处理完毕;向该目标数据服务器发送一个恢复任务,判断该恢复任务的执行情况是否正常;如果是,重新向该目标数据服务器分配恢复任务。
12.在本发明较佳的实施例中,当监测到以下情况之一时,确定该恢复任务出现异常:该目标数据服务器宕机、该恢复任务对应的恢复任务执行线程终止、该目标数据服务器与该管理服务器的通信异常、该目标数据服务器上存在网络消息堆积。
13.在本发明较佳的实施例中,上述获取该数据服务器中恢复任务执行线程的线程状态,以及该数据服务器的剩余容量的步骤,包括:接收该数据服务器发送的心跳信号;其中,该数据服务器上运行有心跳服务,该数据服务器通过该心跳服务向该管理服务器发送心跳信号;根据该心跳信号,获取该数据服务器中恢复任务执行线程的线程状态,以及该数据服务器的剩余容量。
14.在本发明较佳的实施例中,上述第一数量是根据该数据服务器的网卡带宽、磁盘io压力和/或cpu承载力确定的。
15.第二方面,本发明实施例还提供了一种恢复任务的处理方法,应用于存储集群的数据服务器,该数据服务器与该存储集群中的管理服务器通信连接,该方法包括:将该数据服务器中恢复任务执行线程的线程状态,以及该数据服务器的剩余容量发送给该管理服务器,以根据该线程状态和该剩余容量,确定该数据服务器的恢复系数;其中,在该数据服务器上运行有预设第一数量的恢复任务执行线程,当该恢复任务执行线程的线程状态为激活时,该恢复任务执行线程用于处理恢复任务;接收该管理服务器分配的恢复任务,其中,该管理服务器根据该数据服务器的恢复系数进行恢复任务的分配;处理分配到的恢复任务。
16.在本发明较佳的实施例中,上述将该数据服务器中恢复任务执行线程的线程状态,以及该数据服务器的剩余容量发送给该管理服务器的步骤,包括:通过预设的心跳服务,将该数据服务器中恢复任务执行线程的线程状态,以及该数据服务器的剩余容量发送给该管理服务器。
17.在本发明较佳的实施例中,上述线程状态包括激活或休眠;上述方法还包括:获取该管理服务器上恢复任务的堆积量;判断该堆积量是否大于预设第一阈值;如果是,且该数据服务器上线程状态为激活的恢复任务执行线程的数量小于该第一数量,调整线程状态为休眠的恢复任务执行线程的线程状态,以增加该数据服务器的恢复系数。
18.在本发明较佳的实施例中,上述调整线程状态为休眠的恢复任务执行线程的线程状态的步骤,包括:从该数据服务器上线程状态为休眠的恢复任务执行线程中确定待调整的恢复任务执行线程;将确定出的该恢复任务执行线程的线程状态调整为激活。
19.在本发明较佳的实施例中,上述线程状态包括激活或休眠;上述方法还包括:获取该管理服务器上恢复任务的堆积量;判断该堆积量是否小于预设第二阈值;如果是,且该数据服务器上线程状态为激活的恢复任务执行线程的数量大于零,调整线程状态为激活的恢复任务执行线程的线程状态,以降低该数据服务器的恢复系数。
20.在本发明较佳的实施例中,上述调整线程状态为激活的恢复任务执行线程的线程状态的步骤,包括:从该数据服务器上线程状态为激活的恢复任务执行线程中确定待调整的恢复任务执行线程;将确定出的该恢复任务执行线程的线程状态调整为休眠。
21.第三方面,本发明实施例还提供了一种恢复任务的处理装置,应用于存储集群的管理服务器,该管理服务器与该存储集群中的数据服务器通信连接,该装置包括:参数获取模块,用于获取该数据服务器中恢复任务执行线程的线程状态,以及该数据服务器的剩余容量;其中,该数据服务器上运行有预设第一数量的恢复任务执行线程,当该恢复任务执行线程的线程状态为激活时,该恢复任务执行线程用于处理恢复任务;恢复系数确定模块,用于根据该线程状态和该剩余容量,确定该数据服务器的恢复系数;恢复任务分配模块,用于根据该数据服务器的恢复系数向该数据服务器分配恢复任务。
22.第四方面,本发明实施例还提供了一种恢复任务的处理装置,应用于存储集群的数据服务器,该数据服务器与该存储集群中的管理服务器通信连接,该装置包括:参数发送模块,用于将该数据服务器中恢复任务执行线程的线程状态,以及该数据服务器的剩余容量发送给该管理服务器,以根据该线程状态和该剩余容量,确定该数据服务器的恢复系数;其中,在该数据服务器上运行有预设第一数量的恢复任务执行线程,当该恢复任务执行线程的线程状态为激活时,该恢复任务执行线程用于处理恢复任务;恢复任务接收模块,用于接收该管理服务器分配的恢复任务,其中,该管理服务器根据该数据服务器的恢复系数进行恢复任务的分配;恢复任务处理模块,用于处理分配到的恢复任务。
23.第五方面,本发明实施例还提供了一种电子设备,该电子设备包括处理器和存储器,该存储器存储有能够被该处理器执行的计算机可执行指令,该处理器执行该计算机可执行指令以实现上述恢复任务的处理方法。
24.第六方面,本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述恢复任务的处理方法。
25.本发明实施例带来了以下有益效果:
26.本发明实施例提供的一种恢复任务的处理方法、装置及电子设备,获取数据服务器中恢复任务执行线程的线程状态,以及该数据服务器的剩余容量;其中,该数据服务器上运行有预设第一数量的恢复任务执行线程,当该恢复任务执行线程的线程状态为激活时,该恢复任务执行线程用于处理恢复任务;根据该线程状态和该剩余容量,确定数据服务器的恢复系数;根据数据服务器的恢复系数向数据服务器分配恢复任务。该方式中,通过在数据服务器上为每个恢复任务设置对应的恢复任务执行线程,管理服务器根据各台数据服务器中恢复任务执行线程的线程状态和剩余容量,对各台数据服务器的恢复能力进行评估,其中,激活的恢复任务执行线程数量越多,剩余容量越大则表明该机器的恢复能力越强,进而根据各台数据服务器的实际恢复能力灵活分配相应数量的恢复任务,该方式可以更加充分地利用集群整体的恢复能力,提高集群服务的可靠性,并满足公有云多变场景下对集群
内机器恢复能力的不同需求。
27.此外,该恢复任务处理方法还根据数据服务器自身的硬件性能,初始化对应数量的恢复任务执行线程,从而放宽了恢复能力更强的机器的限制,让机器的恢复能力能够得到充分的使用;并且,恢复任务执行线程是否激活,由每台数据服务器自己独立配置,激活的恢复任务执行线程数量越多则对应恢复能力越强,各个数据服务器根据自身恢复任务执行线程的激活状态,以及管理服务器中恢复任务的堆积情况,动态调整恢复任务执行线程的线程状态,实现了动态调整数据服务器的恢复能力;再者,管理服务器通过监控每个恢复任务,当发现有任一恢复任务异常时,对对应的数据服务器进行限制,不再给其分配新的恢复任务,直至该数据服务器上恢复任务的监控指标均恢复正常,从而实现了机器恢复压力的退避,优先保证基础服务,提高了集群服务的可靠性。
28.本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。
29.为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
30.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
31.图1为本发明实施例提供的一种恢复任务的处理方法的应用场景示意图;
32.图2为本发明实施例提供的一种恢复任务的处理方法的流程示意图;
33.图3为本发明实施例提供的另一种恢复任务的处理方法的流程示意图;
34.图4为本发明实施例提供的一种数据服务器中恢复任务执行线程的线程状态分布示意图;
35.图5为本发明实施例提供的另一种恢复任务的处理方法的流程示意图;
36.图6为本发明实施例提供的一种恢复任务的处理装置的结构示意图;
37.图7为本发明实施例提供的另一种恢复任务的处理装置的结构示意图;
38.图8为本发明实施例提供的一种电子设备的结构示意图。
39.图标:10-管理服务器;20-数据服务器;30-存储集群;61-参数获取模块;62-恢复系数确定模块;63-恢复任务分配模块;71-参数发送模块;72-恢复任务接收模块;73-恢复任务处理模块;81-处理器;82-存储器;83-总线;84-通信接口。
具体实施方式
40.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
41.对于大规模的分布式对象存储集群,集群出现坏盘甚至坏机器都是常见的场景,
在这种场景下,需要摘除这部分坏盘或者坏机器,因此需要将这部分数据移动到其他机器上。
42.如图1所示,其为一种恢复任务的处理方法的应用场景示意图,其中,该应用场景中包括存储集群30,该存储集群30包括管理服务器10以及与该管理服务器10通信连接的多台数据服务器20。在其中一种情形下,如果该存储集群30中的任一台数据服务器20出现异常,例如出现不可读的情况,则需要执行恢复任务,以将该异常服务器上的数据文件备份到其他数据服务器20上。例如,假设数据服务器a出现不可读的情况,且数据服务器b和数据服务器c上均备份有该数据服务器a中的文件w,则可以从数据服务器b或者数据服务器c中选择一台数据服务器,将文件w备份到另一台数据服务上(例如数据服务器d)。
43.以该存储集群30为phenix系统为例,其中,phenix系统采用管理服务器(nameserver)作为中控节点,数据服务器(dataserver)作为数据存储节点的架构。其中,管理服务器中管理着集群内所有数据副本的元信息,当集群内的数据副本出现损坏或者丢失,集群会自动完成损坏副本或者丢失副本的恢复,保证集群多副本的冗余存储。在phenix中,数据服务器提供恢复的能力和空间,管理服务器负责管理恢复任务的分配和下发。
44.现有方案中,为了保证存储集群的恢复不会影响正常的服务质量,通常会对集群整体的恢复能力做出比较大的限制,根据木桶效应,集群中最差的机器将决定集群内所有机器的恢复能力,这就使得集群整体的恢复能力大打折扣,同时也降低了整个对象存储系统的数据可靠性。但是,如果降低对恢复能力的限制,那么当集群压力比较大的时候,有可能造成恢复占用的资源过多而影响了基础服务,也是得不偿失。
45.在实际操作中,如何选择一个对集群恢复能力的合理限制值,需要对整个集群进行评估,随着使用场景的变化,这个合理的限制值也可能会随之变化。而如果对恢复能力进行固定的限制,则整体恢复能力无法随着集群能力的变化而变化(例如集群的扩容)。在一个大规模的对象存储系统中,集群的规模是逐渐扩大的,在每次扩容集群后,集群内部机器的整体能力和使用状况都是不同的,对整体集群做统一的限制,将无法区分和细化集群内部机器能力的差别。
46.考虑到现有分布式对象存储集群的恢复能力配置方式,无法满足公有云多变场景下对机器恢复能力的不同需求,且集群整体恢复能力得不到充分利用的问题,本发明实施例提供的一种恢复任务的处理方法、装置及电子设备,该方法可以应用于存储集群对恢复任务进行处理的各种应用场景中。为便于对本实施例进行理解,首先对本发明实施例所公开的一种恢复任务的处理方法进行详细介绍。
47.参见图2,所示为一种恢复任务的处理方法的流程示意图,其中,该方法应用于存储集群的管理服务器,并且,该管理服务器与该存储集群中的数据服务器通信连接。由图2可见,该方法包括以下步骤:
48.步骤s202:获取数据服务器中恢复任务执行线程的线程状态,以及该数据服务器的剩余容量;其中,该数据服务器上运行有预设第一数量的恢复任务执行线程,当该恢复任务执行线程的线程状态为激活时,该恢复任务执行线程用于处理恢复任务。
49.在本实施例中,对于存储集群中的每个数据服务器,其上均运行有预设第一数量的恢复任务执行线程,其中,分配到数据服务器上的每一个恢复任务,均对应有一个恢复任务执行线程,该恢复任务执行线程跟踪该恢复任务的整个恢复过程。
50.当恢复任务执行线程的线程状态为激活时,表明其可以用于处理恢复任务,并且,每个恢复任务执行线程一次只处理一个恢复任务。各个恢复任务执行线程之间相互独立,互不干扰。
51.另外,上述数据服务器也称为数据库服务器,其是由运行在局域网中的一台/多台计算机和数据库管理系统软件共同构成,数据服务器用于存储数据和提供基本的数据服务。在实际操作中,与数据服务器通信连接的管理服务器可以主动获取各台数据服务器的信息,包括数据服务器中恢复任务执行线程的线程状态,以及该数据服务器的剩余容量。在其他可能的实施方式中,也可以由数据服务器将上述信息主动上报给管理服务器,例如,可以在数据服务器上运行心跳服务,管理服务器接收该数据服务器发送的心跳信号,并根据该心跳信号,获取该数据服务器中恢复任务执行线程的线程状态,以及该数据服务器的剩余容量。
52.在其中一种可能的实施方式中,每台数据服务器上运行的恢复任务执行线程的数量,也即上述第一数量,可以根据该数据服务器本身的硬件性能进行确定,例如,可以根据该数据服务器的网卡带宽、磁盘io压力和/或cpu承载力进行确定。在实际操作中,对于网卡带宽越大、磁盘io压力越小,以及cpu承载力越强的数据服务器,表明其硬件性能越好,则可以在该数据服务器上部署更多的恢复任务执行线程;相应地,硬件性能差的数据服务器,则可以部署相对更少数量的恢复任务执行线程,如此,即可区分存储集群中不同数据服务器的恢复能力,使得对不同的机器做出不同的恢复能力限制,放宽了恢复能力更强的机器(比如容量更大,硬件更好)的限制,让这部分机器的恢复能力能够得到充分的使用;而对恢复能力较差的机器(比如集群中老机器,硬件能力不足),则主要保证这部分机器能够正常提供基础服务。
53.步骤s204:根据该线程状态和该剩余容量,确定数据服务器的恢复系数。
54.这里,当数据服务器上有越多的恢复任务执行线程的线程状态为激活时,表明可用于处理恢复任务的恢复任务执行线程的数量越多,该数据服务器的恢复系数也越大,也即恢复能力越强;当数据服务器上的剩余容量越大时,表明其可接受存储任务的能力越强,也即该数据服务器的恢复系数也越大。
55.同理,当数据服务器上有较少的恢复任务执行线程的线程状态为激活时,表明可用于处理恢复任务的恢复任务执行线程的数量较少,该数据服务器的恢复系数也越小,也即恢复能力越弱;当数据服务器上的剩余容量越小时,表明其可接受存储任务的能力越弱,也即该数据服务器的恢复系数也越小。
56.这样,管理服务器即可根据集群中各个数据服务器中,各个恢复任务执行线程的线程状态和该数据服务器的剩余容量,判断该数据服务器的恢复能力。
57.步骤s206:根据数据服务器的恢复系数向数据服务器分配恢复任务。
58.对于集群中恢复系数较大的数据服务器,可以分配较多的恢复任务,相应地,对于集群中恢复系数较小的数据服务器,则分配较少的恢复任务。在实际操作中,可以根据数据服务器的恢复系数对分配恢复任务的数量进行量化,以实现智能分配恢复任务。
59.相比于现有技术中,对集群整体的恢复系数或者对集群中单台服务器的恢复系数进行固定限制的方式,本实施例中的恢复任务的处理方法,根据集群中各台数据服务器的硬件性能,在数据服务器上设置对应数量的恢复任务执行线程,从而更大程度地发挥每台
数据服务器的恢复能力,提升集群整体恢复能力;再者,管理服务器还根据各台数据服务器中恢复任务执行线程的线程状态和剩余容量,对各台数据服务器的恢复系数进行评估,根据恢复系数的实际情况,相应分配恢复任务,恢复任务的分配更加灵活,从而可以充分地利用集群整体的恢复能力,满足公有云多变场景下对集群内机器恢复能力的不同需求。
60.本发明实施例提供的一种恢复任务的处理方法,获取数据服务器中恢复任务执行线程的线程状态,以及该数据服务器的剩余容量;其中,该数据服务器上运行有预设第一数量的恢复任务执行线程,当该恢复任务执行线程的线程状态为激活时,该恢复任务执行线程;根据该线程状态和该剩余容量,确定数据服务器的恢复系数;根据数据服务器的恢复系数向数据服务器分配恢复任务。该方式中,通过在数据服务器上为每个恢复任务设置对应的恢复任务执行线程,管理服务器根据各台数据服务器中恢复任务执行线程的线程状态和剩余容量,对各台数据服务器的恢复能力进行评估,进而根据各台数据服务器的实际恢复能力灵活分配相应数量的恢复任务,该方式可以更加充分地利用集群整体的恢复能力,提高集群服务的可靠性。
61.在图1所示恢复任务的处理方法的基础上,本实施例还提供了另一种恢复任务的处理方法,该方法重点描述了前述实施例中步骤s204(根据该线程状态和该剩余容量,确定数据服务器的恢复系数)的具体实施方式。
62.参见图3,所示为另一种恢复任务的处理方法的流程示意图,其中,该方法应用于存储集群的管理服务器,该管理服务器与该存储集群中的数据服务器通信连接,由图3可见,该方法包括以下步骤:
63.步骤s302:获取数据服务器中恢复任务执行线程的线程状态,以及该数据服务器的剩余容量;其中,该数据服务器上运行有预设第一数量的恢复任务执行线程,当该恢复任务执行线程的线程状态为激活时,该恢复任务执行线程用于处理恢复任务。
64.这里,本实施例中的步骤s302,对应上述实施例中的步骤s202,相应内容的描述可以参考前述实施例的对应部分,在此不再赘述。
65.步骤s304:根据每个恢复任务执行线程的线程状态,将正在执行恢复任务的恢复任务执行线程的数量确定为第二数量,并且,将线程状态为激活但处于空闲的恢复任务执行线程的数量确定为第三数量。
66.在本实施例中,上述线程状态包括激活或休眠,其中,每个恢复任务执行线程的线程状态可以在激活和休眠之间相互转换,并且,唯有线程状态为激活时,该恢复任务执行线程才可用于处理恢复任务。对于不同的数据服务器,其上处于激活的恢复任务执行线程的数量往往不同,这里,参见图4,其为一种数据服务器中恢复任务执行线程的线程状态分布示意图,在图4示出的实施方式中,各台数据服务器虽然有相同数量的恢复任务执行线程,但是线程状态为激活的恢复任务执行线程的数量却有差异。
67.在实际操作中,线程状态为激活的恢复任务执行线程可以是处于正在执行恢复任务的状态下,也可以是处于空闲的状态下。出于空闲的激活的恢复任务执行线程越多,表明其可以接受恢复任务的能力也越强。
68.步骤s306:基于该第二数量、该第三数量和该剩余容量,确定该数据服务器的权重值,根据该权重值确定该数据服务器的恢复系数。
69.这里,管理服务器可以根据正在执行恢复任务的恢复任务执行线程的数量(也即
上述第二数量),以及处于空闲的激活的恢复任务执行线程的数量(也即上述第三数量),结合数据服务器的剩余容量来量化数据服务器的权重,进而确定各台数据服务器的恢复系数。
70.在至少一种可能的实施方式中,上述基于该第二数量、该第三数量和该剩余容量,确定该数据服务器的权重值的计算公式,包括:
[0071][0072]
其中,vi表示该存储集群中的第i个数据服务器的权重值;n
i-thr
表示该第i个数据服务器的第三数量;c
i-re
表示该第i个数据服务器的剩余容量;n
i-sec
表示该第i个数据服务器的第二数量;n为该存储集群中的数据服务器的总数。
[0073]
步骤s308:根据数据服务器的恢复系数向数据服务器分配恢复任务。
[0074]
在其中一种可能的实施方式中,可以根据该数据服务器的恢复系数,通过预设的选取算法从该存储集群中选取目标数据服务器;这里,该选取算法优选为随机选取算法,例如shuffle、randow或者quick sort等,此外,该选取算法也可以是确定性的选取算法,但是采用确定性算法容易出现单机故障阻塞的问题;然后,向该目标数据服务器发送恢复任务。
[0075]
例如,假设存储集群中包括4台数据服务器d1~d4,并且,通过上述步骤s302至s306,得到上述4台数据服务器的权重值分别对应为w1=0.1,w2=0.4,w3=0.2和w4=0.3,此时,所有数据服务器的权重之和为1(total_weight),因而,从0~1(total_weight)之间随机选取一个值(rdm),例如随机选择值rdm为0.5,把各个数据服务器的权重值逐个相加得到tmp_weight,当tmp_weight》=rdm时,选中这个权重值对应的数据服务器为目标数据服务器,在本例中,目标数据服务器为d2(w1 w2=rdm)。
[0076]
在实际操作中,对于对象存储系统而言,为客户提供稳定可靠的服务是最优先考虑的,如果因为集群内部恢复而影响正常的服务,则是与根本目的背道而驰。为此,在图3所示恢复任务的处理方法的基础上,本发明实施例还提供了恢复任务的处理过程中的一种退避策略,当集群内部因为恢复占用了集群过多的资源时,能够自发的执行退避策略,以优先保证基础服务。该退避策略可以通过下述步骤11~13实现:
[0077]
步骤11:监测该目标数据服务器上恢复任务的执行情况,如果监测到任一个恢复任务出现异常,停止向该目标数据服务器分配恢复任务,直至该目标数据服务器上已经分配的恢复任务均处理完毕。
[0078]
基于前述步骤,已经从该存储集群中确定出目标数据服务器,并向该目标数据服务器发送恢复任务,这里,由管理服务器监测该目标数据服务器上恢复任务的执行情况,如果发现任一个恢复任务出现异常,则停止向该目标数据服务器分配恢复任务。
[0079]
这里,当监测到以下情况之一时,确定该恢复任务出现异常:
[0080]
(1)该目标数据服务器宕机;
[0081]
(2)该恢复任务对应的恢复任务执行线程终止;
[0082]
(3)该目标数据服务器与该管理服务器的通信异常;
[0083]
(4)该目标数据服务器上存在网络消息堆积。
[0084]
在实际操作中,对数据服务器的恢复任务执行线程的配置存在出错的可能,如果
配置不合理,则可能导致数据服务器所提供的恢复能力超出其性能的限制,从而占用过多的系统资源,进而影响正常的基础服务。因此,在本实施例中,管理服务器监测该目标数据服务器上恢复任务的执行情况,当监测到上述任一情况时,确定该恢复任务异常,此时,管理服务器会直接对对应的数据服务器做出限制,即便此时该数据服务器仍然能够提供更多的恢复能力,但是管理服务器不会再向该数据服务器下发新的恢复任务。
[0085]
假设目标数据服务器a上的一个恢复任务t1出现异常,例如,该恢复任务t1对应的恢复任务执行线程终止(挂掉),在管理服务器监测到上述情况后,不再将新的恢复任务下发到该数据服务器a。如果该数据服务器a上还有已经分配但尚未处理完的恢复任务,例如还有恢复任务t2和t3在处理中,则需要继续将恢复任务t2和t3处理完。
[0086]
步骤12:向该目标数据服务器发送一个恢复任务,判断该恢复任务的执行情况是否正常。
[0087]
当目标数据服务器上已经分配的恢复任务均已经处理完毕,此时,向该目标数据服务器发送一个恢复任务,通过检测该恢复任务的监控指标是否均恢复正常,判断异常是否已经排除。
[0088]
步骤13:如果是,重新向该目标数据服务器分配恢复任务。
[0089]
如果用于测试的该恢复任务的执行情况正常,则重新向该目标数据服务器分配恢复任务。
[0090]
本实施例提供的恢复任务的处理方法,提供了对集群中数据服务器的恢复能力进行量化的方式,并且,管理服务器通过监控每个恢复任务,当发现有任一恢复任务异常时,对对应的数据服务器进行限制,不再给其分配新的恢复任务,直至该数据服务器上恢复任务的监控指标均恢复正常,从而实现了机器恢复压力的退避,优先保证基础服务,提高了集群服务的可靠性。
[0091]
在前述实施例中,从存储集群中的管理服务器一侧介绍了恢复任务的处理方式,本实施例从数据服务器一侧描述了该恢复任务的处理方法。如图5所示,其为另一种恢复任务的处理方法的流程示意图,其中,该方法应用于存储集群的数据服务器,该数据服务器与该存储集群中的管理服务器通信连接,由图5可见,该方法包括以下步骤:
[0092]
步骤s502:将该数据服务器中恢复任务执行线程的线程状态,以及该数据服务器的剩余容量发送给该管理服务器,以根据该线程状态和该剩余容量,确定该数据服务器的恢复系数;其中,在该数据服务器上运行有预设第一数量的恢复任务执行线程,当该恢复任务执行线程的线程状态为激活时,该恢复任务执行线程用于处理恢复任务。
[0093]
在本实施例中,通过数据服务器中预设的心跳服务,将该数据服务器中恢复任务执行线程的线程状态,以及该数据服务器的剩余容量发送给该管理服务器。其中,上述线程状态包括激活或休眠。
[0094]
对于管理服务器根据上述线程状态和数据服务器的剩余容量,确定数据服务器的恢复系数的方式,可以参考前述实施例的相应描述,在此不再赘述。
[0095]
步骤s504:接收该管理服务器分配的恢复任务,其中,该管理服务器根据该数据服务器的恢复系数进行恢复任务的分配。
[0096]
步骤s506:处理分配到的恢复任务。
[0097]
由运行在该数据服务器上的处于激活状态的恢复任务执行线程,处理分配到的恢
复任务,每一个恢复任务执行线程一次只处理一个恢复任务。这样,即可以将集群中各台数据服务器的实际恢复能力尽可能的利用,提高了集群整体的恢复能力,也可以满足公有云多变场景下对集群内机器恢复能力的不同需求。
[0098]
在实际操作中,管理服务器实时感知各台数据服务器的恢复能力,并根据各台数据服务器的恢复系数分配相应数量的恢复任务;对于数据服务器而言,其通过心跳服务主动上报自身的各个恢复任务执行线程的线程状态,并根据管理服务器上恢复任务的堆积量,动态调整自身的恢复任务处理能力,具体如下所述。
[0099]
在其中一种实施方式中,数据服务器可以通过下述步骤21-22实现对恢复系数增大的调整:
[0100]
(21)获取该管理服务器上恢复任务的堆积量。
[0101]
(22)判断该堆积量是否大于预设第一阈值,如果是,且该数据服务器上线程状态为激活的恢复任务执行线程的数量小于该第一数量,调整线程状态为休眠的恢复任务执行线程的线程状态,以增加该数据服务器的恢复系数。
[0102]
其中,在调整线程状态为休眠的恢复任务执行线程的线程状态时,可以首先从该数据服务器上线程状态为休眠的恢复任务执行线程中确定待调整的恢复任务执行线程;然后,将确定出的该恢复任务执行线程的线程状态调整为激活。
[0103]
这样,由于激活了更多的恢复任务执行线程,因而可以处理更多的恢复任务,从而提高了数据服务器的恢复系数。
[0104]
在另一种实施方式中,数据服务器还可以通过下述步骤31-32实现对恢复系数减小的调整:
[0105]
(31)获取该管理服务器上恢复任务的堆积量;判断该堆积量是否小于预设第二阈值;
[0106]
(32)如果是,且该数据服务器上线程状态为激活的恢复任务执行线程的数量大于零,调整线程状态为激活的恢复任务执行线程的线程状态,以降低该数据服务器的恢复系数。
[0107]
其中,在调整线程状态为激活的恢复任务执行线程的线程状态时,可以首先从该数据服务器上线程状态为激活的恢复任务执行线程中确定待调整的恢复任务执行线程;然后,将确定出的该恢复任务执行线程的线程状态调整为休眠。这里,对于各个恢复任务执行线程,可以设置对应的身份标识id,在实际操作中,优先调整id较大的恢复任务执行线程状态。
[0108]
这样,由于让更多的恢复任务执行线程进入休眠状态,因而减弱了数据服务器的恢复能力。
[0109]
本实施例提供的恢复任务的处理方法,根据数据服务器自身的硬件性能,初始化对应数量的恢复任务执行线程,从而放宽了恢复能力更强的机器的限制,让机器的恢复能力能够得到充分的使用;并且,恢复任务执行线程是否激活,由每台数据服务器自己独立配置,激活的恢复任务执行线程数量越多则对应恢复能力越强,各个数据服务器根据自身恢复任务执行线程的激活状态,以及管理服务器中恢复任务的堆积情况,动态调整恢复任务执行线程的线程状态,实现了动态调整数据服务器的恢复能力。
[0110]
对应于图1中所示的恢复任务的处理方法,本发明实施例还提供了一种恢复任务
的处理装置,参见图6,所示为一种恢复任务的处理装置的结构示意图,其中,该装置应用于存储集群的数据服务器,该数据服务器与该存储集群中的管理服务器通信连接。
[0111]
由图6可见,该装置包括依次连接的参数获取模块61、恢复系数确定模块62和恢复任务分配模块63,其中,各个模块的功能如下:
[0112]
参数获取模块61,用于获取该数据服务器中恢复任务执行线程的线程状态,以及该数据服务器的剩余容量;其中,该数据服务器上运行有预设第一数量的恢复任务执行线程,当该恢复任务执行线程的线程状态为激活时,该恢复任务执行线程用于处理恢复任务;
[0113]
恢复系数确定模块62,用于根据该线程状态和该剩余容量,确定该数据服务器的恢复系数;
[0114]
恢复任务分配模块63,用于根据该数据服务器的恢复系数向该数据服务器分配恢复任务。
[0115]
本发明实施例提供的一种恢复任务的处理装置,获取数据服务器中恢复任务执行线程的线程状态,以及该数据服务器的剩余容量;其中,该数据服务器上运行有预设第一数量的恢复任务执行线程,当该恢复任务执行线程的线程状态为激活时,该恢复任务执行线程用于处理恢复任务;根据该线程状态和该剩余容量,确定数据服务器的恢复系数;根据数据服务器的恢复系数向数据服务器分配恢复任务。该装置中,通过在数据服务器上为每个恢复任务设置对应的恢复任务执行线程,管理服务器根据各台数据服务器中恢复任务执行线程的线程状态和剩余容量,对各台数据服务器的恢复能力进行评估,其中,激活的恢复任务执行线程数量越多,剩余容量越大则表明该机器的恢复能力越强,进而根据各台数据服务器的实际恢复能力灵活分配相应数量的恢复任务,该方式可以更加充分地利用集群整体的恢复能力,提高集群服务的可靠性,并满足公有云多变场景下对集群内机器恢复能力的不同需求。
[0116]
在其中一种可能的实施方式中,上述线程状态包括激活或休眠;上述恢复系数确定模块62还用于:根据每个恢复任务执行线程的线程状态,将正在执行恢复任务的恢复任务执行线程的数量确定为第二数量,并且,将线程状态为激活但处于空闲的恢复任务执行线程的数量确定为第三数量;基于该第二数量、该第三数量和该剩余容量,确定该数据服务器的权重值,根据该权重值确定该数据服务器的恢复系数。
[0117]
在另一种可能的实施方式中,上述基于该第二数量、该第三数量和该剩余容量,确定该数据服务器的权重值的计算公式,包括:其中,vi表示该存储集群中的第i个数据服务器的权重值;n
i-thr
表示该第i个数据服务器的第三数量;c
i-re
表示该第i个数据服务器的剩余容量;n
i-sec
表示该第i个数据服务器的第二数量;n为该存储集群中的数据服务器的总数。
[0118]
在另一种可能的实施方式中,上述恢复任务分配模块63还用于:根据该数据服务器的恢复系数,通过预设的选取算法从该存储集群中选取目标数据服务器;向该目标数据服务器发送恢复任务。
[0119]
在另一种可能的实施方式中,上述随机选取算法为shuffle、randow或者quick sort。
[0120]
在另一种可能的实施方式中,上述恢复任务分配模块63还用于:监测该目标数据
服务器上恢复任务的执行情况,如果监测到任一个恢复任务出现异常,停止向该目标数据服务器分配恢复任务,直至该目标数据服务器上已经分配的恢复任务均处理完毕;向该目标数据服务器发送一个恢复任务,判断该恢复任务的执行情况是否正常;如果是,重新向该目标数据服务器分配恢复任务。
[0121]
在另一种可能的实施方式中,当监测到以下情况之一时,确定该恢复任务出现异常:该目标数据服务器宕机、该恢复任务对应的恢复任务执行线程终止、该目标数据服务器与该管理服务器的通信异常、该目标数据服务器上存在网络消息堆积。
[0122]
在另一种可能的实施方式中,上述参数获取模块61还用于:接收该数据服务器发送的心跳信号;其中,该数据服务器上运行有心跳服务,该数据服务器通过该心跳服务向该管理服务器发送心跳信号;根据该心跳信号,获取该数据服务器中恢复任务执行线程的线程状态,以及该数据服务器的剩余容量。
[0123]
在另一种可能的实施方式中,上述第一数量是根据该数据服务器的网卡带宽、磁盘io压力和/或cpu承载力确定的。
[0124]
本发明实施例提供的恢复任务的处理装置,其实现原理及产生的技术效果和前述恢复任务的处理方法实施例相同,为简要描述,恢复任务的处理装置的实施例部分未提及之处,可参考前述恢复任务的处理方法实施例中相应内容。
[0125]
对应于图5所示的恢复任务的处理方法,本发明实施例还提供了一种恢复任务的处理装置,参见图7,所示为另一种恢复任务的处理装置的结构示意图,其中,该装置应用于存储集群的数据服务器,该数据服务器与该存储集群中的管理服务器通信连接。
[0126]
由图7可见,该装置包括依次连接的参数发送模块71、恢复任务接收模块72和恢复任务处理模块73,其中,各个模块的功能如下:
[0127]
参数发送模块71,用于将该数据服务器中恢复任务执行线程的线程状态,以及该数据服务器的剩余容量发送给该管理服务器,以根据该线程状态和该剩余容量,确定该数据服务器的恢复系数;其中,在该数据服务器上运行有预设第一数量的恢复任务执行线程,当该恢复任务执行线程的线程状态为激活时,该恢复任务执行线程用于处理恢复任务;
[0128]
恢复任务接收模块72,用于接收该管理服务器分配的恢复任务,其中,该管理服务器根据该数据服务器的恢复系数进行恢复任务的分配;
[0129]
恢复任务处理模块73,用于处理分配到的恢复任务。
[0130]
在其中一种可能的实施方式中,上述参数发送模块71还用于:通过预设的心跳服务,将该数据服务器中恢复任务执行线程的线程状态,以及该数据服务器的剩余容量发送给该管理服务器。
[0131]
在另一种可能的实施方式中,上述线程状态包括激活或休眠;上述装置还包括恢复系数调整模块,用于获取该管理服务器上恢复任务的堆积量;判断该堆积量是否大于预设第一阈值;如果是,且该数据服务器上线程状态为激活的恢复任务执行线程的数量小于该第一数量,调整线程状态为休眠的恢复任务执行线程的线程状态,以增加该数据服务器的恢复系数。
[0132]
在另一种可能的实施方式中,上述恢复系数调整模块还用于:从该数据服务器上线程状态为休眠的恢复任务执行线程中确定待调整的恢复任务执行线程;将确定出的该恢复任务执行线程的线程状态调整为激活。
[0133]
在另一种可能的实施方式中,上述线程状态包括激活或休眠;上述恢复系数调整模块还用于:获取该管理服务器上恢复任务的堆积量;判断该堆积量是否小于预设第二阈值;如果是,且该数据服务器上线程状态为激活的恢复任务执行线程的数量大于零,调整线程状态为激活的恢复任务执行线程的线程状态,以降低该数据服务器的恢复系数。
[0134]
在另一种可能的实施方式中,上述恢复系数调整模块还用于:从该数据服务器上线程状态为激活的恢复任务执行线程中确定待调整的恢复任务执行线程;将确定出的该恢复任务执行线程的线程状态调整为休眠。
[0135]
本发明实施例提供的恢复任务的处理装置,与前述实施例提供的恢复任务的处理方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
[0136]
本发明实施例还提供了一种电子设备,如图8所示,为该电子设备的结构示意图,其中,该电子设备包括处理器81和存储器82,该存储器82存储有能够被该处理器81执行的机器可执行指令,该处理器81执行该机器可执行指令以实现上述恢复任务的处理方法。
[0137]
在图8示出的实施方式中,该电子设备还包括总线83和通信接口84,其中,处理器81、通信接口84和存储器82通过总线连接。
[0138]
其中,存储器82可能包含高速随机存取存储器(ram,random access memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口84(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
[0139]
处理器81可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器81中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器81可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现成可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器81读取存储器82中的信息,结合其硬件完成前述实施例的恢复任务的处理方法的步骤。
[0140]
本发明实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,该机器可执行指令促使处理器实现上述恢复任务的处理方法,具体实现可参见前述方法实施例,在此不再赘述。
[0141]
本发明实施例所提供的恢复任务的处理方法、恢复任务的处理装置和电子设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的恢复任务的处理方法,具体实现可参见方法实施例,
在此不再赘述。
[0142]
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0143]
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
[0144]
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0145]
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献