本发明属于集群设计领域,具体涉及一种多节点双路串行高可用集群系统及管理方法。
背景技术:
1、一般的高可用集群系统多为双节点或多节点互联组成的系统,节点间的互联拓扑结构一般为双节点直连(如图1所示)或多节点星型网络互联(如图2所示)。高可用集群管理也是基于这样的拓扑结构进行的。对于双节点组成的集群,节点之间直接互联,高可用管理一般采用主备、或主主的模式;对于多节点集群,节点之间通过交换进行互联,节点间的通信时对等的,高可用管理一般采用多主一备、一主多备或多主多备的模式。
2、现有的高可用集群系统及其管理均是在双节点直连或多节点对等互联的拓扑结构下进行的,无法适用于多节点串行流水业务的系统。
技术实现思路
1、(一)要解决的技术问题
2、本发明要解决的技术问题是如何提供一种多节点双路串行高可用集群系统及管理方法,以解决现有的高可用集群系统及其管理均是在双节点直连或多节点对等互联的拓扑结构下进行的,无法适用于多节点串行流水业务的系统的问题。
3、(二)技术方案
4、为了解决上述技术问题,本发明提出一种多节点双路串行高可用集群系统,该系统包含两路适用于流水业务的串行节点,每路串行的节点个数大于等于3个;
5、两路相同位置的串行节点为主备双节点冗余,用于实现高可用;
6、每路串行节点之间通信链路可以是网络、串口、srio形式中的任何一种,但两路相同位置的节点之间的通信形式须一致,且系统运行过程中不可更改通信形式;两路相同位置的串行节点之间构成主备节点,通过网络和串口直连,用于实现双冗余心跳。
7、本发明还提供一种多节点双路串行高可用集群管理方法,该方法包括如下步骤:
8、s101、设定节点默认状态;默认第一路的各串行节点为主节点,第二路的各串行节点为备节点;
9、s102、确定节点间通信形式;根据实际硬件连接情况,以配置文件的形式,确定各节点间的通信形式,并建立起节点间的通信路由链路;
10、s103、在各节点上启动状态监测;包括节点内部运行状态和同一串行链路上与该节点相连节点的通信状态;
11、s104、在各节点上启动分时双冗余心跳监测;即网络心跳监测和串口心跳监测;二者不同时进行,先进行网络心跳监测,待网络心跳异常时,再启用串口心跳监测;
12、s105、确定节点的角色状态;各节点根据自身所处的链路编号、状态监测结果和心跳监测结果,确定自身的初始角色状态,具体为:主状态、备状态或故障状态;
13、s106、节点间角色状态协调;各节点将自身确定的角色状态通知给串行链路上相邻的节点,节点收到相邻节点的角色状态信息,调整自己的角色状态;最终确定出系统的主节点链路、备节点链路或故障链路;默认情况下,若无节点及链路异常,第1路上的节点均为主节点,即第1路为主链路,第2路为备链路,如图4所示;图5示意其他可能的主备节点角色状态;
14、s107、节点的角色状态变换及动作:节点依据变换后的角色状态,执行不同的业务及配置,以此作为业务高可用主备模式切换的基础。
15、本发明还提供一种多节点双路串行高可用集群管理方法,该方法包括如下步骤:
16、s201、系统确定主节点链路和备节点链路;
17、s202、处理节点宕机故障;当链路中的某节点出现宕机故障时,故障处理流程如下:
18、a)串行链路上相同位置的节点通过主备间心跳监测到对方宕机故障,转入步骤c;
19、b)串行链路上任一节点监测到与相邻节点的链路通信存在异常,转入步骤k;
20、c)节点判断自身的角色状态,若为主状态,则表示备节点发生宕机,不作处理,流程结束;若为备状态,则表示主节点发生宕机,转入步骤d;
21、d)将自身角色状态设定为主状态节点,转入步骤e;
22、e)完成节点角色状态设定,转入步骤f和步骤g;
23、f)向同链路中的相邻节点通知角色状态变更信息,转入步骤h;
24、g)向另一链路中的相同位置的另一节点通知角色状态变更信息,转入步骤h;
25、h)节点收到角色状态变更信息,转入步骤i;
26、i)收到角色状态变更信息的节点进行预变更角色状态决策,并根据决策结果判断预变更的角色是否与当前已处于的角色状态相同,若相同,则流程结束;若不同则转入步骤j;
27、j)将自身角色状态变更为预变更的角色状态,然后转入步骤e;
28、k)监测到链路通信异常的节点判断是否为完全链路异常;若为完全链路异常则转入步骤l;否则,转入步骤m;
29、l)节点将自身角色状态设定为故障状态,转入步骤e;
30、m)监测到非完全链路异常的节点判断自己是否为末端节点,若为末端节点,则转入步骤n;若为非末端节点,则该节点不做角色状态变换处理,故障流程结束;
31、n)末端节点判断异常的链路是否是与前一节点的主状态节点的通信链路,若是则转入步骤l;否则,不做角色状态变换处理,故障处理流程结束;
32、s203、处理节点非宕机链路故障;
33、直接进入上述步骤s202;
34、s204、处理节点非宕机其他故障;
35、直接进入上述步骤l。
36、(三)有益效果
37、本发明提出一种多节点双路串行高可用集群系统及管理方法,本发明通过在节点上建立通信路由配置的方式,灵活地实现了串行多节点集群主备节点的增加和删除,满足不同流水业务对不同节点个数的需求。本发明通过故障信息纵向横向双重通知机制,实现了故障信息在集群中的快速传播,确保节点故障时整个串行集群的主备切换性能。本发明采用分时双冗余心跳机制,既避免了集群系统的脑裂问题,由兼顾了心跳监测性能和系统资源的占用,保障了集群系统的稳定、可靠运行。
38、与现有技术相比,本发明提出的技术方法提供了适用于串行流水业务的高可用集群系统及管理方法,提供三种不同的节点间通信方式供选择,且节点数量灵活配置。
1.一种多节点双路串行高可用集群系统,其特征在于,该系统包含两路适用于流水业务的串行节点,每路串行的节点个数大于等于3个;
2.如权利要求1所述的多节点双路串行高可用集群系统,其特征在于,当两路链路末端的节点与之前的节点的之间通信形式为网络时,允许这两对串行节点实现主备节点交叉通信。
3.一种基于权利要求1或2所述的系统的多节点双路串行高可用集群管理方法,其特征在于,该方法包括如下步骤:
4.如权利要求3所述的多节点双路串行高可用集群管理方法,其特征在于,所述步骤s105中的角色状态包括:主状态、备状态和故障状态。
5.如权利要求3所述的多节点双路串行高可用集群管理方法,其特征在于,所述步骤s106中,默认情况下,若无节点及链路异常,第1路上的节点均为主节点,即第1路为主链路,第2路为备链路。
6.如权利要求3所述的多节点双路串行高可用集群管理方法,其特征在于,所述步骤s107中,节点变为主状态时,需要将浮动ip设置到当前节点;节点变换为备状态或故障状态时,需要将浮动ip从当前节点去除。
7.一种基于权利要求1或2所述的系统的多节点双路串行高可用集群管理方法,其特征在于,该方法包括如下步骤:
8.如权利要求7所述的多节点双路串行高可用集群管理方法,其特征在于,所述步骤k中,当异常链路为单链路时,该链路通信异常即为完全链路异常。
9.如权利要求7所述的多节点双路串行高可用集群管理方法,其特征在于,所述步骤k中,当链路为允许交叉通信时,两条链路均异常时为完全链路异常。
10.如权利要求7所述的多节点双路串行高可用集群管理方法,其特征在于,所述步骤n中,当两路链路末端的节点y、y与之前的节点x,x的之间通信形式为网络时,允许这两对串行节点实现主备节点交叉通信,假设x是主节点,x是备节点,y节点判断异常的链路是y与x间的,还是y与x间的;若是y与x间的则转入l,若是y与x间的,则不作处理,因为目前的状态不影响业务流。