处理至少一个分布式集群中的故障的方法、设备和系统技术方案

技术编号:13795970 阅读:86 留言:0更新日期:2016-10-06 14:12
本发明专利技术实施例提供一种处理至少一个分布式集群中的故障的方法、设备和系统,至少一个分布式集群包括第一分布式集群,第一分布式集群中包括第一Master节点和第一Slave节点,第一参考节点,以及作为第一Master节点的备份的第一备用节点,第一备用节点接收第一参考节点发送的包括用于指示第一参考节点与第一Master节点处于失联状态的第一指示信息的心跳消息;第一备用节点根据第一指示信息,确定第一参考节点与第一Master节点处于失联状态;第一备用节点在检测到第一Master节点向第一备用节点发送的心跳消息中断的情况下,确定第一备用节点与第一Master节点也处于失联状态;第一备用节点确定该第一Master节点发生故障。在本发明专利技术实施例中,能够有效缩短故障检测时间。

【技术实现步骤摘要】

本专利技术实施例涉及集群管理领域,并且更具体地,涉及一种处理至少一个分布式集群中的故障的方法、设备和系统
技术介绍
目前大部分的高可用性(High Available,简称为“HA”)分布式集群通常为一主(Master节点)多从(Slave节点)集中式的,其中,Master节点向集群中所有Slave节点发送心跳消息,集群中每个Salve节点也向该Master节点发送心跳消息。Slave节点通过检测Master节点发送的心跳消息来判断该Master节点是否发生故障,Master节点通过检测Slave节点发送的心跳消息来判断该Salve节点是否发生故障。但在上述故障检测中存在以下弊端,Salve节点通常是在多次判断没有接收到Master节点的心跳消息的情况下,才会认为该Master节点发生故障,才会发起用于在集群内确定新的Master节点的选举策略,因此,在目前技术中,Master节点的故障检测时间过长。
技术实现思路
本专利技术实施例提供一种处理至少一个分布式集群中的故障的方法、设备和系统,能够有效缩短故障检测时间。第一方面提供了一种处理至少一个分布式集群中的故障的方法,该至少一个分布式集群包括第一分布式集群,该第一分布式集群中包括第一Master节点和第一Slave节点,该分布式集群还包括第一参考节点,以及作为该第一Master节点的备份的第一备用节点,该方法包括:该第一备用节点接收该第一参考节点发送的心跳消息,该心跳消息包括用于指示该第一参考节点与该第一Master节点处于失联状态的第一指示信息;该第一备用节点根据该第一指示信息,确定该第一参考节点与该第
Master节点处于失联状态;该第一备用节点检测该第一Master节点向该第一备用节点发送的心跳消息是否中断;在检测到该第一Master节点向该第一备用节点发送的心跳消息中断的情况下,该第一备用节点确定该第一备用节点与该第一Master节点也处于失联状态;该第一备用节点确定与该第一备用节点和该第一参考节点均失联的该第一Master节点发生故障。结合第一方面,在第一方面的第一种可能的实现方式中,在确定该第一Master节点发生故障的情况下,该方法还包括:该第一备用节点向该第一分布式集群中所有节点发送广播消息,该广播消息用于指示该第一备用节点升级为该第一Master节点。结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,该第一备用节点检测该第一Master节点向该第一备用节点发送的心跳消息是否中断,包括:该第一备用节点检测在第一时刻与第二时刻之间是否接收到该第一Master节点发送的心跳消息,该第一时刻为该第一备用节点接收到该第一参考节点发送的包括有该第一指示信息的心跳消息的时刻,该第二时刻早于该第一时刻,该第一时刻与该第二时刻之间的时间间隔为该第一Master节点向该第一备用节点发送心跳消息的心跳周期的N倍,N为正整数。结合第一方面或第一方面的第一种或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,该至少一个分布式集群还包括第二分布式集群,该第二分布式集群中包括第二Master节点,第二Slave节点,第二参考节点,以及作为该第二Master节点的备份的第二备用节点,该方法还包括:该第一备用节点接收该第二参考节点发送的心跳消息,该心跳消息包括用于指示该心跳消息的接收端的节点属性为Slave节点的第二指示信息,该第二参考节点用于分别向该第二Slave节点以及该第一分布式集群中的所有节点发送包括该第二指示信息的心跳消息,该第二分布式集群与该第一分布式集群具有相同的集群标识;该第一备用节点根据该第二指示信息,确定该第二参考节点发送的心跳消息中所指示的该心跳消息的接收端的节点属性与该第一备用节点的节点属
性不相符,并确定该第二参考节点所在的第二分布式集群与该第一备用节点所在的第一分布式集群为一个网络分布式集群分裂后形成的两个子集群;该第一备用节点与该第二分布式集群中的第二备用节点进行协商,以便于整合该第一分布式集群和该第二分布式集群。结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,该第一备用节点与该第二分布式集群中的第二备用节点进行协商,包括:该第一备用节点向该第一分布式集群和该第二分布式集群内所有的节点发送用于指示该第一备用节点的节点属性为备用节点的广播消息;该第一备用节点接收该第二备用节点发送的协商消息,该协商消息中包括用于指示该第二备用节点的权重的信息,该协商消息是该第二备用节点在检测到该广播消息指示的节点属性与自身的节点属性相同的情况下向该第一备用节点发送的;在确定该第一备用节点的权重大于或等于该第二备用节点的权重的情况下,该第一备用节点向该第二备用节点发送用于指示该第二备用节点降级为Slave节点的协商响应消息;在确定该第一备用节点的权重小于该第二备用节点的权重的情况下,该第一备用节点向该第一分布式集群和该第二分布式集群内所有的节点发送用于指示该第一备用节点降级为Slave节点的广播消息第二方面提供了一种处理至少一个分布式集群中的故障的方法,该至少一个分布式集群包括第一分布式集群,该第一分布式集群中包括第一Master节点和第一Slave节点,该第一分布式集群还包括第一参考节点以及作为该第一Master节点的备份的第一备用节点,该方法包括:该第一Master节点接收该第一备用节点发送的心跳消息,该心跳消息包括用于指示该第一备用节点与该第一Slave节点处于失联状态的第三指示信息;该第一Master节点根据该第三指示信息,确定该第一备用节点与该第一Slave节点处于失联状态;该第一Master节点检测该第一Slave节点向该第一Master节点发送的心跳消息是否中断;在检测到该第一Slave节点向该第一Master节点发送的心跳消息中断的
情况下,该第一Master节点确定该第一Master节点与该第一Slave节点也处于失联状态;该第一Master节点确定与该第一Master节点和该第一备用节点均失联的该第一Slave节点发生故障。结合第二方面,在第二方面的第一种可能的实现方式中,该第一Master节点检测该第一Slave节点向该第一Master节点发送的心跳消息是否中断,包括:该第一Master节点检测在第三时刻与第四时刻之间是否接收到该第一Slave节点发送的心跳消息,该第三时刻为该第一Master节点接收到该第一备用节点发送的包括有该第三指示信息的心跳消息的时刻,该第四时刻早于该第三时刻,该第三时刻与该第四时刻之间的时间间隔为该第一Slave节点向该第一Master节点发送心跳消息的心跳周期的N倍,N为正整数。结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,该方法还包括:该第一Master节点在预设检测周期内检测是否接收到该第一备用节点发送的心跳消息和该第一参考节点发送的心跳消息,该预设检测周期为发送心跳消息的心跳周期的M倍,M为正整数;在该预设检测周期内既没有接收到该第一备用节点发送的心跳消息,也没有接收到该第一参考节点发送的心跳消息的情况下,该第一Master节点确定该第一备用节点和该第一参考节点均发生本文档来自技高网
...

【技术保护点】
一种处理至少一个分布式集群中的故障的方法,所述至少一个分布式集群包括第一分布式集群,所述第一分布式集群中包括第一Master节点和第一Slave节点,其特征在于,所述分布式集群还包括第一参考节点,以及作为所述第一Master节点的备份的第一备用节点,所述方法包括:所述第一备用节点接收所述第一参考节点发送的心跳消息,所述心跳消息包括用于指示所述第一参考节点与所述第一Master节点处于失联状态的第一指示信息;所述第一备用节点根据所述第一指示信息,确定所述第一参考节点与所述第一Master节点处于失联状态;所述第一备用节点检测所述第一Master节点向所述第一备用节点发送的心跳消息是否中断;在检测到所述第一Master节点向所述第一备用节点发送的心跳消息中断的情况下,所述第一备用节点确定所述第一备用节点与所述第一Master节点也处于失联状态;所述第一备用节点确定与所述第一备用节点和所述第一参考节点均失联的所述第一Master节点发生故障。

【技术特征摘要】
1.一种处理至少一个分布式集群中的故障的方法,所述至少一个分布式集群包括第一分布式集群,所述第一分布式集群中包括第一Master节点和第一Slave节点,其特征在于,所述分布式集群还包括第一参考节点,以及作为所述第一Master节点的备份的第一备用节点,所述方法包括:所述第一备用节点接收所述第一参考节点发送的心跳消息,所述心跳消息包括用于指示所述第一参考节点与所述第一Master节点处于失联状态的第一指示信息;所述第一备用节点根据所述第一指示信息,确定所述第一参考节点与所述第一Master节点处于失联状态;所述第一备用节点检测所述第一Master节点向所述第一备用节点发送的心跳消息是否中断;在检测到所述第一Master节点向所述第一备用节点发送的心跳消息中断的情况下,所述第一备用节点确定所述第一备用节点与所述第一Master节点也处于失联状态;所述第一备用节点确定与所述第一备用节点和所述第一参考节点均失联的所述第一Master节点发生故障。2.根据权利要求1所述的方法,其特征在于,在确定所述第一Master节点发生故障的情况下,所述方法还包括:所述第一备用节点向所述第一分布式集群中所有节点发送广播消息,所述广播消息用于指示所述第一备用节点升级为所述第一Master节点。3.根据权利要求1或2所述的方法,其特征在于,所述第一备用节点检测所述第一Master节点向所述第一备用节点发送的心跳消息是否中断,包括:所述第一备用节点检测在第一时刻与第二时刻之间是否接收到所述第一Master节点发送的心跳消息,所述第一时刻为所述第一备用节点接收到所述第一参考节点发送的包括有所述第一指示信息的心跳消息的时刻,所述第二时刻早于所述第一时刻,所述第一时刻与所述第二时刻之间的时间间隔为所述第一Master节点向所述第一备用节点发送心跳消息的心跳周期的N倍,N为正整数。4.根据权利要求1至3中任一项所述的方法,其特征在于,所述至少一
\t个分布式集群还包括第二分布式集群,所述第二分布式集群中包括第二Master节点,第二Slave节点,第二参考节点,以及作为所述第二Master节点的备份的第二备用节点,所述方法还包括:所述第一备用节点接收所述第二参考节点发送的心跳消息,所述心跳消息包括用于指示所述心跳消息的接收端的节点属性为Slave节点的第二指示信息,所述第二参考节点用于分别向所述第二Slave节点以及所述第一分布式集群中的所有节点发送包括所述第二指示信息的心跳消息,所述第二分布式集群与所述第一分布式集群具有相同的集群标识;所述第一备用节点根据所述第二指示信息,确定所述第二参考节点发送的心跳消息中所指示的所述心跳消息的接收端的节点属性与所述第一备用节点的节点属性不相符,并确定所述第二参考节点所在的第二分布式集群与所述第一备用节点所在的第一分布式集群为一个网络分布式集群分裂后形成的两个子集群;所述第一备用节点与所述第二分布式集群中的第二备用节点进行协商,以便于整合所述第一分布式集群和所述第二分布式集群。5.根据权利要求4所述的方法,其特征在于,所述第一备用节点与所述第二分布式集群中的第二备用节点进行协商,包括:所述第一备用节点向所述第一分布式集群和所述第二分布式集群内所有的节点发送用于指示所述第一备用节点的节点属性为备用节点的广播消息;所述第一备用节点接收所述第二备用节点发送的协商消息,所述协商消息中包括用于指示所述第二备用节点的权重的信息,所述协商消息是所述第二备用节点在检测到所述广播消息指示的节点属性与自身的节点属性相同的情况下向所述第一备用节点发送的;在确定所述第一备用节点的权重大于或等于所述第二备用节点的权重的情况下,所述第一备用节点向所述第二备用节点发送用于指示所述第二备用节点降级为Slave节点的协商响应消息;在确定所述第一备用节点的权重小于所述第二备用节点的权重的情况下,所述第一备用节点向所述第一分布式集群和所述第二分布式集群内所有的节点发送用于指示所述第一备用节点降级为Slave节点的广播消息。6.一种处理至少一个分布式集群中的故障的方法,所述至少一个分布式集群包括第一分布式集群,所述第一分布式集群中包括第一Master节点和第
\t一Slave节点,其特征在于,所述第一分布式集群还包括第一参考节点以及作为所述第一Master节点的备份的第一备用节点,所述方法包括:所述第一Master节点接收所述第一备用节点发送的心跳消息,所述心跳消息包括用于指示所述第一备用节点与所述第一Slave节点处于失联状态的第三指示信息;所述第一Master节点根据所述第三指示信息,确定所述第一备用节点与所述第一Slave节点处于失联状态;所述第一Master节点检测所述第一Slave节点向所述第一Master节点发送的心跳消息是否中断;在检测到所述第一Slave节点向所述第一Master节点发送的心跳消息中断的情况下,所述第一Master节点确定所述第一Master节点与所述第一Slave节点也处于失联状态;所述第一Master节点确定与所述第一Master节点和所述第一备用节点均失联的所述第一Slave节点发生故障。7.根据权利要求6所述的方法,其特征在于,所述第一Master节点检测所述第一Slave节点向所述第一Master节点发送的心跳消息是否中断,包括:所述第一Master节点检测在第三时刻与第四时刻之间是否接收到所述第一Slave节点发送的心跳消息,所述第三时刻为所述第一Master节点接收到所述第一备用节点发送的包括有所述第三指示信息的心跳消息的时刻,所述第四时刻早于所述第三时刻,所述第三时刻与所述第四时刻之间的时间间隔为所述第一Slave节点向所述第一Master节点发送心跳消息的心跳周期的N倍,N为正整数。8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:所述第一Master节点在预设检测周期内检测是否接收到所述第一备用节点发送的心跳消息和所述第一参考节点发送的心跳消息,所述预设检测周期为发送心跳消息的心跳周期的M倍,M为正整数;在所述预设检测周期内既没有接收到所述第一备用节点发送的心跳消息,也没有接收到所述第一参考节点发送的心跳消息的情况下,所述第一Master节点确定所述第一备用节点和所述第一参考节点均发生故障。9.根据权利要求6至8中任一项所述的方法,其特征在于,所述至少一
\t个分布式集群还包括第二分布式集群,所述第二分布式集群中包括第二Master节点,第二Slave节点,第二参考节点,以及作为所述第二Master节点的备份的第二备用节点,所述方法还包括:所述第一Master节点接收所述第二参考节点发送的心跳消息,所述心跳消息包括用于指示所述心跳消息的接收端的节点属性为Slave节点的第四指示信息,所述第二参考节点用于分别向所述第二Slave节点以及所述第一分布式集群中的所有节点发送包括所述第四指示信息的心跳消息,所述第二分布式集群与所述第一分布式集群具有相同的集群标识;所述第一Master节点根据所述第四指示信息,确定所述第二参考节点发送的心跳消息中所指示的所述心跳消息的接收端的节点属性与所述第一Master节点的节点属性不相符,并确定所述第二参考节点所在的第二分布式集群与所述第一Master节点所在的第一分布式集群为一个网络分布式集群分裂后形成的两个子集群;所述第一Master节点与所述第二分布式集群中的第二Master节点进行协商,以便于整合所述第一分布式集群和所述第二分布式集群。10.根据权利要求9所述的方法,其特征在于,所述第一Master节点与所述第二分布式集群中的第二Master节点进行协商,包括:所述第一Master节点向所述第一分布式集群和所述第二分布式集群内所有的节点发送用于指示所述第一Master节点的节点属性为Master节点的广播消息;所述第一Master节点接收所述第二Master节点发送的协商消息,所述协商消息中包括用于指示所述第二Master节点的权重的信息,所述协商消息是所述第二Master节点在检测到所述广播消息指示的节点属性与自身的节点属性相同的情况下向所述第一Master节点发送的;在确定所述第一Master节点的权重大于或等于所述第二Master节点的权重时,所述第一Master节点向所述第二Master节点发送用于指示所述第二Master节点降级为Slave节点的协商响应消息;在确定所述第一Master节点的权重小于所述第二Master节点的权重时,所述第一Master节点向所述第一分布式集群和所述第二分布式集群内所有的节点发送用于指示所述第一Master节点降级为Slave节点的广播消息。11.一种用于处理至少一个分布式集群中的故障的设备,所述至少一个分布式集群包括第一分布式集群,所述第一分布式集群中包括第一Master节点和第一Slave节点,其特征在于,所述分布式集群还包括第一参考节点,以及作为所述第一Master节点的备份的第一备用节点,其中,所述设备为所述第一备用节点,所述设备包括:第一接收模块,用于接收所述第一参考节点发送的包括有所述第一指示信息的心跳消息;第一确定模块,用于根据所述第一接收模块接收的所述第一指示信息,确定所述第一参考节点与所述第一Master节点处于失联状态;检测模块,用于检测所述第一Master节点向所述设备发送的心跳消息是否中断;第二确定模块,用于在所述检测模块检测到所述第一Master节点向所述设备发送的心跳消息中断的情况下,确定所述设备与所述第一Master节点也处于失联状态;第三确定模块,用于根据所述第一确定模块和所述第二确定模块确定的结果,确定所述第一Master节点发生故障。12.根据权利要求11所述的设备,其特征在于,所述设备还包括:发送模块,用于在所述第三确定模块确定所述第一Master节点发生故障的情况下,向所述第一分布式集群中所有节点发送广播消息,所述广播消息用于指示所述设备升级为所述第一Master节点。13.根据权利要求11或12所述的设备,其特征在于,所述检测模块具体用于,检测在第一时刻与第二时刻之间是否接收到所述第一Master节点发送的心跳消息,所述第一时刻为所述设备接收到所述第一参考节点发送的包括有所述第一指示信息的心跳消息的时刻,所述第二时刻早于所述第一时刻,所述第一时刻与所述第二时刻之间的时间间隔为所述第一Master节点向所述设备发送心跳消息的心跳周期的N倍,N为正整数。14.根据权利要求11至13中任一项所述的设备,其特征在于,所述至少一个分布式集群还包括第二分布式集群,所述第二分布式集群中包括第二Master节点,第二Slave节点,第二参考节点,以及作为所述第二Master节点的备份的第二备用节点,所述设备还包括:第二接收模块,用于接收所述第二参考节点发送的心跳消息,所述心跳
\t消息包括用于指示所述心跳消息的接收端的节点属性为Slave节点的第二指示信息,所述第二参考节点用于分别向所述第二Slave节点以及所述第一分布式集群中的所有节点发送包括所述第二指示信息的心跳消息,所述第二分布式集群与所述第一分布式集群具有相同的集群标识;第四确定模块,用于根据所述第二接收模块接收的所述第二指示信息,确定所述第二参考节点发送的心跳消息中所指示的所述心跳消息的接收端的节点属性与所述设备的节点属性不相符,并确定所述第二参考节点所在的第二分布式集群与所述设备所在的第一分布式集群为一个网络分布式集群分裂后形成的两个子集群;协商模块,用于与所述第二分布式集群中的第二备用节点进行协商,以便于整合所述第一分布式集群和所述第二分布式集群。15.根据权利要求14所述的设备,其特征在于,所述协商模块包括:第一发送单元,用于向所述第一分布式集群和所述第二分布式集群内所有的节点发送用于指示所述设备的节点属性为备用节点的广播消息;接收单元,用于接收所述第二备用节点发送的协商消息,所述协商消息中包括用于指示所述第二备用节点的权重的信息,所述协商消息是所述第二备用节点在检测到所述第一发送单元发送的所述广播消息指示的节点属性与自身的节点属性相同的情况下向所述设备发送的;第二发送单元,用于在确定所述设备的权重大于或等于所述第二备用节点的权重的情况下,向所述第二备用节点发送用于指示所述第二备用节点降级为Slave节点的协商响应消息;第三发送单元,用于在确定所述设备权重小于所述第二备用节点的权重的情况下,向所述第一分布式集群和所述第二分布式集群内所有的节点发送用于指示所述设备降级为Slave节点的广播消息。16.一种用于处理至少一个分布式集群中的故障的设备,所述至少一个分布式集群包括第一分布式集群,所述第一分布式集群中包括第一Master节点和第一Slave节点,其特征在于,所述第一分布式集群还包括第一参考节点以及作为所述第一Master节点的备份的第一备用节点,所述设备为所述第一Master节点,所述设备包括:第一接收模块,用于接收所述第一备用节点发送的包括所述第三指示信息的心跳消息;第一确定模块,用于根据所述第一接收模块接收的所述第三指示信息,确定所述第一备用节点与所述第一Slave节点处于失联状态;第...

【专利技术属性】
技术研发人员:袁健清倪绍基
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东;44

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

1