一种存储集群任务管理方法及装置与流程

文档序号:11216073阅读:215来源:国知局
一种存储集群任务管理方法及装置与流程

本发明涉及存储集群技术领域,特别是涉及一种存储集群任务管理方法及装置。



背景技术:

在海量存储的场景下,存储器集群规模越来越大,这势必造成管理上的困难。随着被管理节点的增多,执行一条管理命令(即一个管理任务)的时间也会越来越长。现有技术中,主流采用的管理框架为,主节点接收界面下发的任务,并进行处理,然后将处理结果推送到各个被管理节点。然而这种管理框架存在以下弊端,当管理界面下发大量管理任务时,会消耗管理节点大量的资源进行这些任务的处理。



技术实现要素:

本发明的目的是提供一种存储集群任务管理方法及装置,将下发任务均衡调度到集群各个节点上进行处理,降低管理节点的压力。

为实现上述目的,本发明提供如下技术方案:

一种存储集群任务管理方法,包括:

存储集群的主节点将下发的任务存放到创建的任务队列中;

存储集群的子节点监听所述任务队列,从所述任务队列中获取分发给自身的任务,并进行处理,并在任务处理完成后将任务处理结果返回到所述主节点;

所述主节点对返回的任务处理结果对应保存。

可选地,创建的任务队列包括:高优先级任务队列、中优先级任务队列和低优先级任务队列;

其中,所述高优先级任务队列用于存放对cpu占用密集的任务,所述低优先级任务队列用于存放对i/o占用密集的任务,所述中优先级任务队列用于存放对cpu占用情况和对i/o占用情况介于上述两类之间的任务;

所述子节点分别监听各优先级任务队列,从各优先级任务队列中分别获取下发给自身的任务,并进行处理。

可选地,在所述子节点中,为处理高优先级任务队列中任务分配的进程数量,大于为处理低优先级任务队列中任务分配的进程数量,为处理中优先级任务队列中任务分配的进程数量介于上述两者之间。

可选地,在所述主节点配置有数据库,用于存储所述任务队列、所述任务队列中的任务信息以及保存的任务处理结果。

可选地,采用所述数据库实现任务的分发包括:

设置所述任务队列的中间件,使该中间件指向所述数据库,将所述任务队列以及所述任务队列中的任务信息存储在所述数据库中;

设置各所述子节点指向所述数据库中的任务队列。

一种存储集群任务管理装置,包括:

任务队列模块,设置在存储集群的主节点中,用于将下发的任务存放到创建的任务队列中;

监听模块,设置在存储集群的子节点中,用于监听所述任务队列,从所述任务队列中获取分发给自身的任务,并进行处理,并在任务处理完成后将任务处理结果返回到所述主节点;

保存模块,用于对返回的任务处理结果对应保存。

可选地,创建的任务队列包括:高优先级任务队列、中优先级任务队列和低优先级任务队列;

其中,所述高优先级任务队列用于存放对cpu占用密集的任务,所述低优先级任务队列用于存放对i/o占用密集的任务,所述中优先级任务队列用于存放对cpu占用情况和对i/o占用情况介于上述两类之间的任务;

所述监听模块包括第一监听模块、第二监听模块和第三监听模块;

所述第一监听模块用于监听所述高优先级任务队列,从所述高优先级任务队列中获取分发给本子节点的任务,并进行处理,并在任务处理完成后将任务处理结果返回到所述主节点;

所述第二监听模块用于监听所述中优先级任务队列,从所述中优先级任务队列中获取分发给本子节点的任务,并进行处理,并在任务处理完成后将任务处理结果返回到所述主节点;

所述第三监听模块用于监听所述低优先级任务队列,从所述低优先级任务队列中获取分发给本子节点的任务,并进行处理,并在任务处理完成后将任务处理结果返回到所述主节点。

可选地,在所述子节点中,为所述第一监听模块分配的进程数量大于为所述第三监听模块分配的进程数量,为所述第二监听模块分配的进程数量介于上述两者之间。

可选地,还包括在所述主节点配置的数据库,所述数据库用于存储所述任务队列、所述任务队列中的任务信息以及保存的任务处理结果。

由上述技术方案可知,本发明所提供的存储集群任务管理方法及装置,在存储集群中,主节点将下发的任务存放到创建的任务队列中,各子节点监听所述任务队列,从任务队列中获取分发给自身的任务,进行处理,并在任务处理完成后将任务处理结果返回到主节点,主节点将返回的任务处理结果对应保存。

本发明存储集群任务管理方法及装置,实现了将下发的任务负载均衡到存储集群各个节点上,与现有方法相比,在下发大量任务时,可以充分利用存储集群中各个节点资源,可避免对主节点消耗大量的资源,从而降低对主节点的压力。

附图说明

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

图1为本发明实施例提供的一种存储集群任务管理方法的流程图;

图2为本发明实施例中存储集群的示意图;

图3为本发明实施例提供的一种存储集群任务管理装置的示意图。

具体实施方式

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

请参考图1,本发明实施例提供的一种存储集群任务管理方法,包括步骤:

s10:存储集群的主节点将下发的任务存放到创建的任务队列中。

需要说明的是,所述的主节点即指存储服务器集群中的管理节点,下文中所述的子节点即存储服务器集群中的被管理节点。

主节点接收界面下发的任务,将任务存放到任务队列中。

在所述主节点中会预先创建任务队列。本方法中,创建的任务队列包括至少两个优先级任务队列,会根据任务对cpu的占用情况和对i/o的占用情况,将下发的任务存放到相应优先级的任务队列中。

更为具体的,可参考图2,在一种实施方式中,创建的任务队列包括:高优先级任务队列、中优先级任务队列和低优先级任务队列;

其中,所述高优先级任务队列用于存放对cpu占用密集的任务,所述低优先级任务队列用于存放对i/o占用密集的任务,所述中优先级任务队列用于存放对cpu占用情况和对i/o占用情况介于上述两类之间的任务。

对cpu占用密集的任务是指任务的执行过程较多地需要在cpu中运算,对i/o占用密集的任务是指对数据读取及写入的过程较多。

s11:存储集群的子节点监听所述任务队列,从所述任务队列中获取分发给自身的任务,并进行处理,并在任务处理完成后将任务处理结果返回到所述主节点。

存储集群中各子节点监听所述任务队列,在任务队列中的任务具有标识信息,标识信息会指示本任务分发给哪一子节点处理。

子节点根据任务的标识信息,从任务队列中获取分发给自身的任务。

在子节点中,对任务处理的进程进行守护,防止在处理调度任务时出现意外宕机,导致任务处理过程中断。

在创建的任务队列包括高优先级任务队列、中优先级任务队列和低优先级任务队列的情况下,所述子节点分别监听各优先级任务队列,分别从各优先级任务队列中获取下发给自身的任务,并进行处理。

优选的,基于各优先级任务队列中任务对cpu占用情况和对i/o占用情况的不同,分别为处理各优先级任务队列中任务分配不同数量的进程。这样有助于提高系统资源的利用率,提高任务处理效率。

更为具体的,在创建的任务队列包括高优先级任务队列、中优先级任务队列和低优先级任务队列的情况下,相应的,为处理高优先级任务队列中任务分配的进程数量,大于为处理低优先级任务队列中任务分配的进程数量,为处理中优先级任务队列中任务分配的进程数量介于上述两者之间。

优选的,根据对应各优先级任务队列分配的进程数量,在处理任务时,为处理任务队列中任务配置最大并发进程数。

本方法中,根据任务对cpu占用情况和对i/o占用情况将任务划分到不同优先级队列中,分别进行处理,并分别配置进程数量,可以提高系统资源的利用率,同时降低了消耗在任务调度上的时间开销,提高任务执行效率。

s12:所述主节点对返回的任务处理结果对应保存。

主节点将返回的任务处理结果与任务信息对应保存。用户通过界面,可以从保存的数据中获取任务处理结果,查询任务执行情况。

因此,本实施例存储集群任务管理方法,实现了将下发的任务负载均衡到存储集群各个节点上,与现有方法相比,在下发大量任务时,可以充分利用存储集群中各个节点资源,可避免对主节点消耗大量的资源,从而降低对主节点的压力。另外,不仅可以充分利用存储集群系统的资源,而且可缩短任务执行时间,提高任务执行效率,给用户带来更优体验。

优选的,本实施例存储集群任务管理方法中,在所述主节点配置有数据库,所述数据库用于存储所述任务队列、所述任务队列中的任务信息以及保存的任务处理结果。

具体的,采用所述数据库实现任务的分发包括步骤:

s20:设置所述任务队列的中间件,使该中间件指向所述数据库,将所述任务队列以及所述任务队列中的任务信息存储在所述数据库中;

s21:设置各所述子节点指向所述数据库中的任务队列。

这样,使各子节点能够监听所述任务队列,从任务队列中获取分发给自身的任务,进行处理;并且,在任务处理完成后将任务处理结果返回到所述数据库中,用户通过界面可以从数据库中获取及查询任务处理结果。

优选的,所述数据库可采用高速内存数据库。

相应的,请参考图3,本发明实施例还提供一种存储集群任务管理装置,包括:

任务队列模块30,设置在存储集群的主节点中,用于将下发的任务存放到创建的任务队列中;

监听模块31,设置在存储集群的子节点中,用于监听所述任务队列,从所述任务队列中获取分发给自身的任务,并进行处理,并在任务处理完成后将任务处理结果返回到所述主节点;

保存模块32,用于对返回的任务处理结果对应保存。

本实施例存储集群任务管理装置,在存储集群的主节点中,任务队列模块将下发的任务存放到创建的任务队列中,子节点中的监听模块监听所述任务队列,从所述任务队列中获取分发给自身的任务,并进行处理,并在任务处理完成后将任务处理结果返回到所述主节点,保存模块对返回的任务处理结果对应保存。

本实施例存储集群任务管理装置,实现了将下发的任务负载均衡到存储集群各个节点上,与现有方法相比,在下发大量任务时,可以充分利用存储集群中各个节点资源,可避免对主节点消耗大量的资源,从而降低对主节点的压力。

本实施例中,创建的任务队列包括至少两个优先级任务队列,会根据任务对cpu的占用情况和对i/o的占用情况,将下发的任务存放到相应优先级的任务队列中。

更为具体的,可参考图2,创建的任务队列包括:高优先级任务队列、中优先级任务队列和低优先级任务队列;

其中,所述高优先级任务队列用于存放对cpu占用密集的任务,所述低优先级任务队列用于存放对i/o占用密集的任务,所述中优先级任务队列用于存放对cpu占用情况和对i/o占用情况介于上述两类之间的任务;

所述监听模块31包括第一监听模块、第二监听模块和第三监听模块;

所述第一监听模块用于监听所述高优先级任务队列,从所述高优先级任务队列中获取分发给本子节点的任务,并进行处理,并在任务处理完成后将任务处理结果返回到所述主节点;

所述第二监听模块用于监听所述中优先级任务队列,从所述中优先级任务队列中获取分发给本子节点的任务,并进行处理,并在任务处理完成后将任务处理结果返回到所述主节点;

所述第三监听模块用于监听所述低优先级任务队列,从所述低优先级任务队列中获取分发给本子节点的任务,并进行处理,并在任务处理完成后将任务处理结果返回到所述主节点。

进一步的,在所述子节点中,为所述第一监听模块分配的进程数量,大于为所述第三监听模块分配的进程数量,为所述第二监听模块分配的进程数量介于上述两者之间。

本实施例存储集群任务管理装置,根据任务对cpu占用情况和对i/o占用情况将任务划分到不同优先级队列中,分别进行处理,并分别配置进程数量,可以提高系统资源的利用率,同时降低了消耗在任务调度上的时间开销,提高任务执行效率。

本实施例装置,还包括在所述主节点配置的数据库,所述数据库用于存储所述任务队列、所述任务队列中的任务信息以及保存的任务处理结果。

其中,采用所述数据库实现任务的分发包括步骤:

s20:设置所述任务队列的中间件,使该中间件指向所述数据库,将所述任务队列以及所述任务队列中的任务信息存储在所述数据库中;

s21:设置各所述子节点指向所述数据库中的任务队列。

以上对本发明所提供的一种存储集群任务管理方法及装置进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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