机群自适应的控制方法

文档序号:6605508阅读:148来源:国知局
专利名称:机群自适应的控制方法
技术领域
本发明涉及计算机机群的控制方法,尤其涉及一种机群自适应控制的方法,属于计算机软件领域。
背景技术
随着机群系统应用的蓬勃发展,机群规模也越来越大,如何方便地管理机群系统也变得越来越重要。机群系统对于外部客户来说应该是一个高性能的机器。因此,整个机群系统的服务不能因为一部分节点没有启动而不能工作,不能因为节点机启动顺序不正确而不能工作,也不能因为一部分节点机出故障了而不能工作。同时,也希望可以自由地增加节点机到机群系统里来提高机群系统的服务性能,或者从机群系统里切除一些节点机。并且希望这些操作都不需要中断机群系统所提供的服务。
目前大部分的高可用产品都需要管理员干预启动不同的节点或启动不同的服务,由于各节点启动的时间可能不同,如果所有节点必须人工干预启动顺序,管理一个比较大的机群对管理员来说是个很大的工作量。
当机群中的节点出现故障时,现有的大部分产品能实现服务的接管,但是对于该节点恢复正常时,一般是将该节点作为备份机。

发明内容
本发明的主要目的在于提供一种机群自适应控制的方法,可以在不中断机群系统所提供服务的前提下,执行对故障节点处理、加入新节点等操作,可以提高机群系统的可用性,方便机群系统的管理。
本发明的目的是这样实现的一种机群自适应的控制方法,至少包括节点的启动、节点的切除及故障节点自动接管的方法。
所述的节点启动具体包括步骤1机群节点在启动时,试图跟辅助主节点和主节点联系,请求加入机群系统;步骤2如果非候选控制节点首先启动并请求加入,将该非候选控制节点退出加入过程并等待重新加入;步骤3使最先加入机群的候选控制节点成为主节点与辅助主节点;步骤4主节点根据配置文件,启动所有本节点可启动的服务。
所述的节点启动还进一步包括当多个候选控制节点同时启动并竞争主节点与辅助主节点时,首先使主节点与辅助主节点运行在同一节点上;然后将新加入的候选控制节点设定为辅助主节点,并将原主节点上的辅助主节点迁移到该新加入的辅助主节点上。
所述的节点启动还进一步包括当默认的主节点已经启动,且当前的主节点不是默认的主节点时,则根据系统配置,将主节点迁移或不迁移到默认的主节点上。
当机群中主节点和辅助主节点以外的节点与主节点和辅助主节点进行通信时,首先与辅助主节点通信,然后再与主节点通信,用于保证主节点和辅助主节点保存的全局状态信息的一致。
非控制节点启动时,首先控制节点联系,该控制节点告知其位置和角色信息;然后控制节点根据配置文件和当前的系统运行情况,为新启动的节点配置应启动的服务。
节点的位置和角色信息至少包括该节点的上、下游节点,以及是否为组长节点。
节点启动的服务为非可接管的服务,则直接启动,否则执行如下的步骤步骤100如果该启动节点是该服务的默认服务节点,则进一步判断该服务是否启动;否则执行步骤103;步骤101如果该服务已经启动,则将该服务迁移至该启动节点,结束;步骤102在该启动节点上启动该服务,结束;步骤103如果该启动节点是该服务的默认备份服务节点,则进一步判断该服务是否启动;否则结束;步骤104如果该服务没有启动,则在该启动节点上启动该服务,结束;步骤105如果该服务在默认的服务节点或备份服务节点上已经启动,则将该服务迁移到该启动节点上,结束;否则结束。
所述的接管为在新选择上的节点上运行相应的服务,且控制节点修改全局信息。
所述的故障节点的自动接管至少包括控制节点接收故障节点下游节点发送的信息,并查看当前机群系统的全局状态信息,修改故障节点的上下游节点的位置信息和/或角色信息,然后根据故障节点上运行的服务类型进行处理。
处理至少包括对故障节点上运行的服务类型进行分析,如果该服务为非可接管的服务,则控制节点直接修改全局信息,在以后的任务分发时,不在向这个节点分发任务;如果该服务为可接管的服务,则将该节点上运行的每一个可接管服务的信息保存在控制节点之中。
所述的服务类型处理至少包括如果故障节点为组长节点,控制节点将该故障节点所在组中的候选控制节点设定为组长节点,或者将报告组长节点故障的节点设定为组长节点。
所述的节点切除至少包括根据被切除节点运行的服务类型为非可接管服务,则控制节点不再向该节点分发新的任务;该服务类型为可接管服务,则控制节点在机群系统内找到相应的节点接管该服务;控制节点切除该被切除节点。
所述的主节点、辅助主节点、组长节点可以在同一节点上,也可以在不同节点上。
本发明所提供的一种机群自适应控制的方法具有如下的特点1、可以使机群系统在开始上电时,先启动的节点机将运行尽可能多的服务;对于外部来说,机群系统已经可以提供服务了;后启动的各个节点机自动地获取服务,启动服务。如果需要,可能与先启动的节点机进行一些服务的迁移,从而提高机群系统的服务性能。
2、在机群系统出故障时或者需要切除节点机时,本发明根据这个节点机运行的服务类型,可能把这台节点机上运行的服务迁移到别的机器上;从而使机群系统所提供的服务不会中断;当故障节点修复后重新加入机群系统时,本发明会将一些服务迁回到这个节点上,从而使各节点机器负载相对平衡。
3、当往机群系统里增加一个新的节点机时,本发明会根据配置文件,启动相应的服务;从而提高机群系统的服务性能,或者增加服务种类。
本发明提高了机群系统服务的可用性,对于机群节点的启动、退出、故障的发生、修复、节点的切除和新节点的增加,本发明都能使机群系统对外提供服务,而不受影响;同时,本发明不需要人工的干预,降低了管理员的工作强度。


图1为主节点启动示意图;图2为非控制节点加入并接管组长节点功能的示意图;图3为新加入的节点接管已有节点可接管服务的流程图;图4为机群系统运行时的示意图;图5为接管故障节点上可接管服务的流程图;图6为节点加入机群的流程图。
具体实施例方式
以下结合附图对本发明做进一步的说明参见图1,目前机群负载信息传递采用多个环形的分组,以减小网络传输的开销。在机群的负载信息传递系统中,存在四类节点,主节点M,辅助主节点F,组长节点G及普通节点S,若干节点构成一个逻辑上的环路,成为负载信息传递环。
主节点M运行控制部件的全局仲裁节点为主节点M,并且它分析、处理全局状态信息。运行时决定哪个节点是主节点M,是动态信息。主节点M将汇总整个机群系统中所有节点的信息,并在节点发生故障时采取相应的措施屏蔽故障,并及时根据负载信息调整调整负载均衡器,使各节点的负载趋于均衡。
辅助主节点F运行控制部件的,且对主节点M中的全局状态信息起备份作用的节点为辅助主节点F。运行时决定哪个节点是辅助主节点F,是动态信息。辅助主节点F为主节点M的备份节点,在主节点M出现故障时及时接替主节点M的工作并重新制定其他的节点为辅助主节点F。
组长节点G每个负载信息传递环中各有一个组长节点G,向主节点M汇报自己所在心跳环的所有成员的状态信息的节点为组长节点G。运行时决定哪个节点是组长节点G,是动态信息。
普通节点S除了主节点M和辅助主节点F外的所有的节点,都是普通节点S。另外,本发明还定义了一些概念,如下所述控制节点已经是主节点M或辅助主节点F的节点为控制节点。
心跳环机群系统内若干个节点从逻辑上组成一个环叫心跳环。
组长节点G向主节点M汇报自己所在心跳环的所有成员的状态信息的节点为组长节点G。运行时决定哪个节点是组长节点G,是动态信息。
上游节点,下游节点如果节点A向节点B发送状态信息,则节点A是节点B的上游节点,节点B是节点A的下游节点。
可接管的服务一个服务在机器A上运行,由于故障,不在机器A上运行,而在机器B上运行。
机群节点机群内的节点是指这个节点已经定义在机群的配置文件里面。
一个新节点是指这个节点没有定义在机群的配置文件里面。
机群系统一个心跳环中的最大节点机数目。
一个已经配置好的机群系统,每个节点已经定下来的属性有这个节点是不是候选控制节点;这个节点是不是默认的主节点M;这个节点默认启动那些服务,这些服务的备份节点是哪些;这个节点是哪些服务的备份节点;这个节点运行哪些服务,是不是可接管的服务,如果是,是不是默认的服务器还是默认的备份服务器。
本发明所提供的机群自适应控制方法包括机群启动控制、故障自动接管、故障修复后重新启动、机群节点增加和节点切除。
机群的启动控制包括主节点M的启动和非控制节点的启动。
为了提高控制节点的可靠性,本发明设计了主节点M和辅助主节点F。主节点M是真正的控制节点,在主节点上M实时搜集了机群内所有节点的全局状态信息,辅助主节点F对主节点M中的全局状态信息进行备份,在主节点M出现故障时及时接替主节点M的工作并重新制定其他的节点为辅助主节点F。
参见图6,在机群节点的启动过程中,主节点M与辅助主节点F应是最先加入机群的节点。具体的过程是机群节点在启动时,试图跟辅助主节点和主节点联系,请求加入机群系统。如果非候选控制节点首先启动并请求加入,则必须退出加入过程并等待重新加入,因为普通节点不具有维护全局状态信息的能力。为了保证使系统中尽可能快的拥有控制节点,系统将使最先加入机群的候选控制节点成为主节点M与辅助主节点F,如图1所示。由于此时系统中就它一个节点;此时,控制节点根据配置文件,启动所有本节点可启动的服务。现在的情形相当于别的机器都出故障了,只有这台机器提供机群服务。对外,说明机群系统已经启动了。比如让这台先运行FTP,WEB,EMAIL服务。
由于在启动候选控制节点时,可能会出现竞争的状态,即多个节点同时都想成为主节点与辅助主节点,因此必须对启动控制部件的操作实现“互斥”。开始时,主节点与辅助主节点运行在同一节点上,随着更多的候选控制节点加入机群,需要将辅助主节点迁移到其它候选控制节点上。所谓将辅助主节点迁移,就是在新的候选控制节点上启动控制部件,并修改相关的辅助主节点运行位置信息。因为主节点和辅助主节点记录了全局的所有的信息。
如果默认的主节点已经启动,而当前的主节点不是默认的主节点。那么应该根据系统配置,决定是否把主节点迁移到默认的主节点上。
每次需要与主节点和辅助主节点通信时,都需要先与辅助主节点通信,然后与主节点通信,可以保证主节点和辅助主节点保存的全局状态信息的一致性。对外,主节点和辅助主节点以一个节点,即控制节点的面目出现。
非控制节点的启动就是机群节点的加入。机群节点的加入不同于新节点的加入,因为机群节点在配置文件里面有它相应的信息。而对于新节点的加入,新节点在配置文件里面没有相应的信息。
机群节点在启动时,先与控制节点联系,希望控制节点能告诉它的位置(上游节点,下游节点),角色(是否是组长节点)。图2是图1中增加一个节点时,把组长节点的功能迁移到该节点的情况。当普通节点接入到机群系统的心跳环后,控制节点根据配置文件和当前的系统运行情况,告诉刚刚接入的节点机启动哪些服务程序。如果要启动非可接管的服务,则直接启动即可,如果是可接管的服务,则应该按照图3执行。如图3所示开始对于机群系统每一个可接管的服务B,首先判断节点A是否是服务B默认的服务点,如果是服务B默认的服务点,则接着判断服务B是否已经启动了,如果已经启动了,则把服务B迁移到节点A,结束;如果服务B未启动,则在节点A上启动服务B,结束;如果不是服务B默认的服务点,则判断节点A是否是服务B的默认备份服务节点,如果不是,则节点A不接收服务B,结束;如果是,则还需判断服务B是否已经启动了,如果服务B未启动,则在节点A上启动服务B,结束;如果服务B已经启动了,结束。
所谓接管就是在新选择上的节点上运行相应的服务,且控制节点修改全局信息。
图4是机群系统启动后的示意图,此时主节点把辅助主节点的功能也迁移出去了,系统有两个满的心跳环组和一个不满的心跳环组。所谓满的心跳环组是指这个心跳环内的节点数目已经到达机群中心跳环中的最大节点数目了。
心跳环的工作时,负载信息首先由组长节点发出,下一个节点接收到组长节点的负载信息后,将自身的负载信息负载在后面,又传递给下一个节点,依此类推,最终环内所有节点的信息都汇总到了组长节点处,组长节点再将本组中所有节点的负载信息向主节点报告。如果某一个节点在一定的时间内没有接收到它的上游节点发来的状态信息,就认为它的上游节点出故障了。然后向控制节点报告这种情况,控制节点查看当前机群系统的全局状态信息,告诉故障节点的上下游节点,要它们修改自己的上下游节点。然后根据故障节点上运行的服务类型分别处理,如果是非可接管的服务,则控制节点直接修改全局信息,在以后的任务分发时不在向这个节点分发任务;如果是可接管的服务,则按照图5实现。图5中节点A上运行的每一个可接管服务的信息保存在控制节点里,当节点A被判断为故障节点后,主节点根据机群当前的运行情况,找到一个节点C来接管节点A上可接管的服务。
如果发现是组长节点故障了,这个信息可以来自两个方面1控制节点在一定时间内没有接收到组长节点的状态报告信息;2控制节点接收到故障报告时,发现这个故障节点是组长节点。当接收到组长节点故障的消息后,控制节点查看,如果这个环里有候选控制节点的存在,就让它成为组长节点;或者让报告组长故障的节点成为组长节点。
让组长节点是候选控制节点的好处是,当组长节点与控制节点通信,如果发现控制节点已经故障,那么组长节点可以立即成为组长节点。否则,如果组长节点不是候选控制节点,则等待一会儿再去连接。
如果一个故障节点经过修复后重新加入机群系统,可按照图2所示的机群节点的启动流程,加入心跳环中。
如果要向机群系统里增加新的节点机,管理员通过管理界面直接向控制节点发送增加节点的命令。过程跟增加机群节点的过程一样,唯一的不同在于新增加的节点尽管已经在机群系统里面了,但是不跑任何服务程序。因此,对这一个节点还需要进一步的配置。
另外,当用户需要切除一个节点机时,要根据这个节点机的运行的服务类型分别处理。如果是非可接管服务,则告诉控制节点不再向该节点分发新的任务;如果是可接管服务,就需要在机群系统内找到别的节点来接管服务,这样这个节点就不再承担机群系统的任何服务了,然后就可切除。这个过程与检测到故障时的处理过程恰恰相反。
最后所应说明的是以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种机群自适应的控制方法,其特征在于至少包括节点的启动、节点的切除及故障节点自动接管的方法。
2.根据权利要求1所述的机群自适应的控制方法,其特征在于所述的节点启动具体包括步骤1机群节点在启动时,试图跟辅助主节点和主节点联系,请求加入机群系统;步骤2如果非候选控制节点首先启动并请求加入,将该非候选控制节点退出加入过程并等待重新加入;步骤3使最先加入机群的候选控制节点成为主节点与辅助主节点;步骤4主节点根据配置文件,启动所有本节点可启动的服务。
3.根据权利要求2所述的机群自适应的控制方法,其特征在于所述的节点启动还进一步包括当多个候选控制节点同时启动并竞争主节点与辅助主节点时,首先使主节点与辅助主节点运行在同一节点上;然后将新加入的候选控制节点设定为辅助主节点,并将原主节点上的辅助主节点迁移到该新加入的辅助主节点上。
4.根据权利要求2所述的机群自适应的控制方法,其特征在于所述的节点启动还进一步包括当默认的主节点已经启动,且当前的主节点不是默认的主节点时,则根据系统配置,将主节点迁移或不迁移到默认的主节点上。
5.根据权利要求2所述的机群自适应的控制方法,其特征在于当机群中主节点和辅助主节点以外的节点与主节点和辅助主节点进行通信时,首先与辅助主节点通信,然后再与主节点通信,用于保证主节点和辅助主节点保存的全局状态信息的一致。
6.根据权利要求2所述的机群自适应的控制方法,其特征在于非控制节点启动时,首先控制节点联系,该控制节点告知其位置和角色信息;然后控制节点根据配置文件和当前的系统运行情况,为新启动的节点配置应启动的服务。
7.根据权利要求6所述的机群自适应的控制方法,其特征在于所述的节点的位置和角色信息至少包括该节点的上、下游节点,以及是否为组长节点。
8.根据权利要求6所述的机群自适应的控制方法,其特征在于所述的节点启动的服务为非可接管的服务,则直接启动,否则执行如下的步骤步骤100如果该启动节点是该服务的默认服务节点,则进一步判断该服务是否启动;否则执行步骤103;步骤101如果该服务已经启动,则将该服务迁移至该启动节点,结束;步骤102在该启动节点上启动该服务,结束;步骤103如果该启动节点是该服务的默认备份服务节点,则进一步判断该服务是否启动;否则结束;步骤104如果该服务没有启动,则在该启动节点上启动该服务,结束;步骤105如果该服务在默认的服务节点或备份服务节点上已经启动,则将该服务迁移到该启动节点上,结束;否则结束。
9.根据权利要求8所述的机群自适应的控制方法,其特征在于所述的接管为在新选择上的节点上运行相应的服务,且控制节点修改全局信息。
10.根据权利要求1所述的机群自适应的控制方法,其特征在于所述的故障节点自动接管至少包括控制节点接收故障节点下游节点发送的信息,并查看当前机群系统的全局状态信息,修改故障节点的上下游节点的位置信息和/或角色信息,然后根据故障节点上运行的服务类型进行处理。
11.根据权利要求10所述的机群自适应的控制方法,其特征在于所述的处理至少包括对故障节点上运行的服务类型进行分析,如果该服务为非可接管的服务,则控制节点直接修改全局信息,在以后的任务分发时,不在向这个节点分发任务;如果该服务为可接管的服务,则将该节点上运行的每一个可接管服务的信息保存在控制节点之中。
12.根据权利要求10所述的机群自适应的控制方法,其特征在于所述的处理至少包括如果故障节点为组长节点,控制节点将该故障节点所在组中的候选控制节点设定为组长节点,或者将报告组长节点故障的节点设定为组长节点。
13.根据权利要求1所述的机群自适应的控制方法,其特征在于所述的节点切除至少包括根据被切除节点运行的服务类型为非可接管服务,则控制节点不再向该节点分发新的任务;该服务类型为可接管服务,则控制节点在机群系统内找到相应的节点接管该服务;控制节点切除该被切除节点。
14.根据权利要求2所述的机群自适应的控制方法,其特征在于所述的主节点、辅助主节点、组长节点可以在同一节点上,也可以在不同节点上。
全文摘要
一种机群自适应的控制方法,至少包括节点的启动、节点的切除及故障节点自动接管的方法。本发明可使机群系统在上电时,先启动的节点机将运行尽可能多的服务;后启动的各个节点机自动地获取服务,启动服务。并与先启动的节点机进行服务迁移,从而提高了机群系统的服务性能。在机群系统出故障或切除节点机时,本发明根据该节点机的服务类型,将该节点机上运行的服务进行迁移,从而使机群提供的服务不中断;当故障节点修复后重新加入机群系统时,将相应的服务迁移回该节点,从而使各节点机器的负载相对平衡。当增加一个新的节点机时,本发明根据配置文件,启动相应的服务;提高了机群系统的服务性能,或增加了服务种类。
文档编号G06F9/445GK1512329SQ02159478
公开日2004年7月14日 申请日期2002年12月31日 优先权日2002年12月31日
发明者李电森, 黄平, 姜晓东, 肖利民 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1