一种对机群实现集中并发管理的方法技术

技术编号:2859650 阅读:118 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种对机群实现集中并发管理的方法,该方法包括:机群管理服务器中的运行实体侦听到任务请求时,如果该任务中的资源子集中有不都可用资源,则裁减所述任务中涉及不可用资源实例的部分任务,同时将裁减掉的任务创建为一新任务,并写入一预先设定的全局任务列表中,按正常流程处理所述被裁减任务的剩余部分,运行实体读取全局任务列表,并处理读取的任务;如果该任务由一个以上独立的子任务组成,则将所述任务分解为多个子任务,并将该多个子任务写入一预先设定的全局任务列表中,运行实体读取全局任务列表,并处理读取的任务。利用上述方法可提高对机群并发管理的效率。

【技术实现步骤摘要】

本专利技术涉及计算机机群网络管理技术,尤其涉及。
技术介绍
应用于计算机网络环境中的管理系统一般有两种控制策略基于分布式算法的分布式控制策略和集中控制策略。分布式控制策略是指管理系统中没有专门用于管理的结点,全部管理任务都是由所有结点协商来实现的,由于分布式算法比较复杂,且效率较低,因此分布式控制策略一般只用于小规模的管理系统中;集中式控制策略是指管理系统中存在有专门的管理结点,该管理结点不一定唯一,可能存在备份,负责对整个网络环境的运行进行各种管理与控制。当前在大规模机群环境的管理系统中一般都采用集中控制策略。如图1所示,在对机群实现集中并发管理的管理系统中,一般采用客户机-服务器的体系结构,管理服务器101为管理结点,客户机103为被管理结点,管理服务器101上有一个运行实体负责侦听管理服务端口102,并对侦听到的任务进行处理。所述的运行实体为进程或者线程。由于进程与线程的处理过程很类似,因此本文仅以进程为例来进行说明。参见图1,所有被管理结点上的客户机103向管理端口102发送服务请求,由管理服务器101内的进程处理该请求并将处理结果返回客户端103。在现有技术中,管理服务器101对机群实现集中并发管理的方法通常有以下两种现有技术一普通并发管理方法。如图2所示,本方法中,管理服务器内的一主控制进程201侦听管理服务端口102上的服务请求,每当在管理服务端口102上接收到一个新连接请求,主控制进程201就动态创建一个临时子进程202来处理该连接请求,临时子进程202作完处理并将结果返回给发送请求的客户端后,自行销毁。本方法有一个明显的缺陷主控制进程201对临时子进程202的管理是面向连接的而不是面向任务的,即主控制进程201无法预知任务所需的进程数目,因此为每个连接只创建一个临时子进程202。如果需要为一个连接创建并分配多个进程,该工作只能由连接所对应的临时子进程202来完成,效率不高;另外,使用本方法必然要频繁地动态建立进程和销毁进程,而建立和销毁进程是一种很耗费资源的系统操作,因此导致资源浪费严重。现有技术二采用运行实体池结构和细粒度锁机制的并发管理方法,所述的运行实体池为进程池或线程池,由于进程池与线程池的处理过程很类似,因此本文仅以进程池为例来进行说明。如图3所示,本方法中,管理服务器内的主控制进程301动态维护进程池302中的一个以上进程。进程池302中的多个进程同时处于侦听状态,当某个进程接收到来自客户端的请求时,该进程立即进入到处理状态,而其它进程仍处于侦听状态,这样可以在一定程度上提高系统的并发处理效率。管理服务器周期检查进程池302中每个进程的状态,并始终保持一定数目的空闲进程。当由于任务多而导致进程池中的空闲进程不足时,管理服务器自动向进程池302中创建一些新的空闲进程;当进程池302中的空闲进程数目超过预期时,管理服务器自动销毁一定数目的空闲进程。本方法不需实时动态建立和销毁进程,可使进程持久化,节省了资源。同时,由于进程池302保持了一定数量的空闲进程,因此可以随时实现面向任务的进程分配。在上述的并发管理方法中,还存在资源竞争的问题,所述的资源指的是管理服务器101所维护的、用于管理整个机群系统的、被所有进程所共享的表明全局状态的信息。所述的资源有各种类型,例如结点状态信息和服务状态信息等。每种类型的资源包含有多个资源实例,而所有具有相同资源类型的资源实例构成了一个资源子集。例如机群中部署了两个服务Web服务和Mail服务,Web服务的状态信息与Mail服务的状态信息就是服务状态资源中的两个实例,它们属于同一种资源类型,因而构成了一个资源子集。由于管理任务的相关性比较强,在多任务,即多进程并发处理的环境下,竞争同一个资源而导致进程间冲突的可能性较大,所以如果不能很好地解决资源竞争问题,将大大降低进程池的并发处理效率。因此,上述并发管理方法中的资源竞争问题采用细粒度锁机制来解决。所述“细粒度锁机制”是指为每一个资源实例创建一把细粒度锁,该细粒度锁为互斥锁,每把细粒度锁都有一个唯一的标识。细粒度锁有两种状态开锁状态和加锁状态。开锁意味着当前没有进程“单独占用”该资源实例;加锁意味着当前该资源实例已被某个进程单独占用。所述的细粒度锁机制包括下列基本操作1、加锁操作,即管理服务器能够一次性地对某个资源子集中的任意资源实例进行加锁。如果某个资源实例已经被其它进程所占用,即该资源实例所对应的细粒度锁处于加锁状态,则后续占用该资源实例的进程进入阻塞睡眠状态,当资源实例被解锁时,所有阻塞于该资源实例的进程将被唤醒。2、开锁操作,管理服务器能够一次性地对某个资源子集中的任意资源实例进行开锁。3、获取锁状态,管理服务器能够一次性地获取某个资源子集中的任意资源实例所对应的锁状态。在“细粒度锁机制”中,进程处理任务的常规流程为进程一次性地获取待处理任务所需要的资源实例,为资源实例加锁,并利用获取的资源实例对任务进行处理。在多进程发生资源冲突的情况下,“细粒度锁机制”还会作串行处理,参见图4,以两个进程,即进程1和进程2为例,具体说明应用“细粒度锁机制”处理多进程资源冲突的实现方法,其具体为进程1在处理任务前,首先一次性地获取待处理任务所需要的所有资源实例,并为所有资源实例加锁,获取资源,并利用获取的资源对任务进行处理;此时,如果进程2所需要的资源实例和进程1所独占的资源实例有冲突,则进程2进入阻塞睡眠状态,当进程1处理完任务并对全部资源实例解锁后,进程2再为其所需要的资源实例加锁,并进行处理。应用“细粒度锁机制”,在多个进程同时请求某个共享资源时,使原本并发执行的进程改为串行执行,进程执行的顺序是随机的,即哪个进程先获得资源,就先执行处理。上述的细粒度锁机制有多种实现方式,例如可用现代通用的操作系统所提供的进程间通信机制(IPC)来实现。在现有技术二中相对于现有技术一有很多优势,但现有技术二还存在以下缺陷1、当多任务冲突时,处理效率低下。进程池中的进程在执行任务时是彼此独立的,虽然通过细粒度锁可以将多个争夺相同资源实例的进程进行串行化排序,但是,在大多数情况下相互冲突的任务只是由于对部分资源实例的争夺而造成的,并非争夺任务所需的全部资源实例,而且,即使缺少了部分资源实例,有些任务仍然可以继续处理。因此,应用上述方法,必然导致一个任务占用资源时,其他所有与其有资源冲突的进程都无法执行处理,由此导致服务器的处理效率不高。2、当单进程处理大任务时,处理效率低下。所述的大任务是指由一系列耗时的子任务组成的任务集。上述的并发管理方法在处理大任务时,是在一个进程中顺序处理该大任务中的多个子任务,而每个子任务都要耗费一定的时间,因此,大大加长了处理时间,处理效率不高。例如,对于规模非常庞大和复杂的机群而言,一个结点上可能运行着多个服务,若结点发生故障,则故障的恢复就是一个大任务,该结点上每一个故障的恢复作为一项子任务可能都需要几秒甚至是几十秒钟的时间,因此,利用现有技术二所述的方法必然会导致整个故障结点的恢复效率的低下,又由于运行在结点上的服务数目是不确定的,因此故障结点恢复的时间也是很难预期的。
技术实现思路
有鉴于此,本专利技术的主要目的是提供,使原有的串行处理方式改为并行处理方式,提高对机群并发管理本文档来自技高网
...

【技术保护点】
一种对机群实现集中并发管理的方法,其特征在于,该方法包括:a、机群管理服务器中的运行实体侦听到的来自机群客户端的任务请求信息;b、根据所述任务请求获取所述任务所需的资源子集,并判断该资源子集中的资源实例是否都可用,如果是,则 按照常规流程处理所述任务,结束流程;否则,裁减所述任务中涉及不可用资源实例的部分任务,同时将裁减掉的部分任务创建为新任务,并将所述新任务写入预先设置的全局任务列表中;c、按照常规流程处理所述经过裁减的任务;d、机群管理服务器 中的空闲运行实体互斥并发读取上述全局任务列表,并对读取到的任务进行解析,根据解析结果,调用与之相对应的任务处理模块进行常规处理。

【技术特征摘要】
1.一种对机群实现集中并发管理的方法,其特征在于,该方法包括a、机群管理服务器中的运行实体侦听到的来自机群客户端的任务请求信息;b、根据所述任务请求获取所述任务所需的资源子集,并判断该资源子集中的资源实例是否都可用,如果是,则按照常规流程处理所述任务,结束流程;否则,裁减所述任务中涉及不可用资源实例的部分任务,同时将裁减掉的部分任务创建为新任务,并将所述新任务写入预先设置的全局任务列表中;c、按照常规流程处理所述经过裁减的任务;d、机群管理服务器中的空闲运行实体互斥并发读取上述全局任务列表,并对读取到的任务进行解析,根据解析结果,调用与之相对应的任务处理模块进行常规处理。2.如权利要求1所述的方法,其特征在于,步骤c所述按照常规流程处理所述经过裁减的任务之前,进一步包括判断所述经过裁减的任务是否为由一个以上独立子任务构成的大任务,如果是,则将所述任务分解为一个以上独立子任务,并将所述子任务写入一预先设定的全局任务列表中,直接执行步骤d;否则,再按照常规流程处理所述经过裁减的任务。3.如权利要求1或2所述的方法,其特征在于,步骤d所述的空闲运行实体互斥并发读取上述全局任务列表,并对读取到的任务进行解析之后,进一步包括判断读取到的任务所用到的资源是否都可用,若是,则继续执行后续步骤;否则,裁减所述任务中涉及不可用资源实例的部分任务,同时将裁减掉的部分任务创建为新任务,并将所述新任务写入预先设置的全局任务列表中,返回步骤c。4.如权利要求1或2所述的方法,其特征在于,步骤d所述根据解析结果,调用与之相对应的任务处理模块后,进一步包括所述任务处理模块再次判断是否需要执行所述读取的任务,如果是,则再对该任务进行常规处理,否则,直接结束本流程。5.如权利要求1或2所述的方法,其特征在于,步骤b所述判断资源子集中的资源实例是否都可用的方法为获取所述资源子集中所有可用的资源实例,判断所有可用资源实例的数目是否与资源子集中全部资源实例的数目相同,如果是,则所述资源子集中的资源实例都可用,否则,所述资源子集中有不可用资源实例。6.如权利要求5所述的方法,其特征在于,获取所述资源子集中所有可用资源实例的具体过程为a1、获取所述资源子集中所有资源实例的细粒度锁状态;a2、依次读取所述资源子集中的资源实例的细粒度锁状态,并判断当前读取的资源实例是否处于开细粒度锁状态,如果是,则获取该资源实例,并执行步骤a3;否则,将该资源实例从该资源子集中删除,执行步骤a3;a3、判断当前读取的资源实例是否为资源子集中最后一个资源实例,如果是,结束获取流程;否则,继续执行步骤a2,读取下一个资源实例。7.如权利要求1或2所述的方法,其特征在于,所述全局任务列表包括用于存放任务实体的任务表、用于保存当前任务表中任务数的任务计数器、用于指向任务计数器的任务数指针、用于指向任务表的任务表指针和一个用于实现运行实体对全局任务列表进行互斥读取的互斥锁,所述的任务实体包括任务类型和参数信息。8.如权利要求7所述的方法,其特征在于,所述向全局任务列表中写入任务的过程包括以下步骤b1、将所述的互斥锁加锁;b2、读取任务计数器内的任务数,并将任务数加1;b3、通过任务表指针获取任务表的首地址,将步骤b2所述的任务数与任务实体大小之积与任务表首地址相加,得到待写入任务的存储位置;b4、将待写入任务的任务类型与参数信息写入任务表中步骤b3所述的存储位置;b5、将所述的互斥锁解锁。9.如权利要求7所述的方法,其特征在于,所述空闲运行实体互斥并发读取全局任务列表的具体过程包括c1、将...

【专利技术属性】
技术研发人员:许正华黄平姜晓东李电森
申请(专利权)人:联想北京有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1