一种宕机检测方法及设备的制作方法

文档序号:7835323阅读:347来源:国知局
一种宕机检测方法及设备的制作方法
【专利摘要】本发明涉及心跳检测技术,公开了基于心跳检测技术的宕机检测方法以及设备,其中宕机检测方法由宕机检测节点执行,包括:获得被检测节点的历史心跳时间间隔,所述历史心跳时间间隔为所述宕机检测节点接收到的所述被检测节点的相邻心跳消息的接收时刻的时间间隔;获得所述被检测节点的误判概率上限值,所述误判概率上限值为将所述被检测节点误判为宕机的概率上限值;根据所述误判概率上限值和所述历史心跳时间间隔计算所述被检测节点的心跳超时时长;如果在所述心跳超时时长内未收到来自所述被检测节点的心跳消息,判定所述被检测节点宕机。使用本发明,可以保证系统的高可用性。
【专利说明】一种宕机检测方法及设备

【技术领域】
[0001] 本发明涉及心跳检测技术,具体涉及一种基于心跳检测技术的宕机检测方法以及 设备。

【背景技术】
[0002] 企业中的关键应用,如邮件服务、文件服务、数据库服务等,通常会被要求不间断 连续提供服务并且不能表现出故障切换,这就要求承载关键应用的系统具有高可用性(HA, High Availability)。高可用性是指通过尽量缩短系统停机时间(因日常的维护操作或突 发的系统崩溃等),以提高系统的可用性。通常高可用性表现为系统能够自动快速判断故 障,并提供故障恢复的能力,通常用高可用率来衡量高可用性,高可用率为系统中断时间占 工作时间的比例。
[0003] 自动判断故障通常为利用心跳(Heartbeat)检测检测系统中的节点是否宕机,传 统的心跳检测方法是设定一个心跳超时时长(timeout),只要在心跳超时时长之内没有接 收到被检测节点的心跳消息便认为被检测节点宕机。在传统的心跳检测方式下,被检测 节点通常会每间隔t秒向宕机检测节点发送心跳消息,而宕机检测节点采用心跳超时时长 T (t〈T)来判断目标是否宕机。在宕机检测节点判定被检测节点宕机后,宕机检测节点可以 向被检测节点发送重启命令或是故障切换消息进行故障恢复。
[0004] 但从理论上来说,心跳检测无法真正检测被检测节点是否宕机,主要困难在于无 法真正区别被检测节点宕机与被检测节点的心跳消息还没到达这两种情况,当判定没有宕 机的被检测节点为宕机时就造成了误判。在实际中往往会通过测试或估计的方式为T赋一 个上限值。然而靠测试或估计很难设定一个合适的心跳超时时长T以便精确满足系统对误 判概率的要求,从而无法保证系统的高可用性。


【发明内容】

[0005] 本发明实施例提供了一种宕机检测方法及设备,用以解决很难设定一个合适的心 跳超时时长T以便精确满足系统对误判概率的要求的问题,从而提高系统的高可用性。
[0006] 第一方面,本发明实施例提供了一种宕机检测方法,由宕机检测节点执行,所述方 法包括:获得被检测节点的历史心跳时间间隔,所述历史心跳时间间隔为所述宕机检测节 点接收到所述被检测节点的相邻心跳消息的接收时刻的时间间隔;获得所述被检测节点的 误判概率上限值,所述误判概率上限值为将所述被检测节点误判为宕机的概率上限值;根 据所述误判概率上限值和所述历史心跳时间间隔计算所述被检测节点的心跳超时时长;如 果在所述心跳超时时长内未收到来自所述被检测节点的心跳消息,判定所述被检测节点宕 机。
[0007] 结合第一方面,在第一方面第一种可能的实现方式中,所述获得所述被检测节点 的误判概率值包括:获得接收到所述被检测节点的心跳消息的次数的预测值;获得所述被 检测节点的与所述预测值对应的将所述被检测节点误判为宕机的次数的上限值;根据所述 预测值和所述将所述被检测节点误判为宕机的次数的上限值获得所述被检测节点的误判 概率上限值。
[0008] 结合上述第一方面可能的实现方式,在第一方面第二种可能的实现方式中,所述 根据所述预测值和所述将所述被检测节点误判为宕机的次数的上限值获得所述被检测节 点的误判概率上限值包括:将所述被检测节点的误判概率上限值设置为所述将所述被检测 节点误判为宕机的次数的上限值与所述预测值的比值。
[0009] 结合上述第一方面可能的实现方式,在第一方面第三种可能的实现方式中,所述 预测值为一段有效期内的所述被检测节点的接收到所述被检测节点的心跳消息的次数的 预测值,所述获得所述被检测节点的接收到所述被检测节点的心跳消息的次数的预测值包 括:获得所述被检测节点的单次心跳时间间隔和所述预测值的有效期的时长;根据所述有 效期的时长与所述单次心跳时间间隔的比值获得所述预测值。
[0010] 结合上述第一方面可能的实现方式,在第一方面第四种可能的实现方式中,所述 获得所述被检测节点的与所述预测值对应的将所述被检测节点误判为宕机的次数的上限 值包括:获得所述被检测节点的误判最大时长和所述被检测节点的单次中断时长,所述误 判最大时长为所述预测值的有效期内由所有误判造成的业务中断时长之和的上限,所述单 次中断时长为所述被检测节点单次宕机造成的业务中断时长;根据所述误判最大时长与所 述单次中断时长的比值获得所述将所述被检测节点误判为宕机的次数的上限值。
[0011] 结合上述第一方面可能的实现方式,在第一方面第五种可能的实现方式中,所述 根据所述误判概率上限值和所述历史心跳时间间隔计算所述被检测节点的心跳超时时长 包括:根据所述历史心跳时间间隔获得所述被检测节点的心跳时间间隔的概率分布;根据 所述误判概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长。
[0012] 结合上述第一方面可能的实现方式,在第一方面第六种可能的实现方式中,所述 根据所述误判概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长包括:根 据如下数学方程计算所述心跳超时时长:

【权利要求】
1. 一种宕机检测方法,由宕机检测节点执行,其特征在于,所述方法包括: 获得被检测节点的历史心跳时间间隔,所述历史心跳时间间隔为接收到的所述被检测 节点的相邻心跳消息的接收时刻的时间间隔; 获得所述被检测节点的误判概率上限值,所述误判概率上限值为将所述被检测节点误 判为宕机的概率上限值; 根据所述误判概率上限值和所述历史心跳时间间隔计算所述被检测节点的心跳超时 时长; 如果在所述心跳超时时长内未收到来自所述被检测节点的心跳消息,判定所述被检测 节点宕机。
2. 根据权利要求1所述的宕机检测方法,其特征在于,所述获得所述被检测节点的误 判概率值包括: 获得接收到所述被检测节点的心跳消息的次数的预测值; 获得与所述预测值对应的将所述被检测节点误判为宕机的次数的上限值; 根据所述预测值和所述将所述被检测节点误判为宕机的次数的上限值获得所述被检 测节点的误判概率上限值。
3. 根据权利要求2所述的宕机检测方法,其特征在于,所述根据所述预测值和所述 将所述被检测节点误判为宕机的次数的上限值获得所述被检测节点的误判概率上限值包 括: 将所述被检测节点的误判概率上限值设置为所述将所述被检测节点误判为宕机的次 数的上限值与所述预测值的比值。
4. 根据权利要求2或3所述的宕机检测方法,其特征在于,所述预测值为一段有效期内 接收到所述被检测节点的心跳消息的次数的预测值,所述获得接收到所述被检测节点的心 跳消息的次数的预测值包括: 获得所述被检测节点的单次心跳时间间隔和所述预测值的有效期的时长; 根据所述有效期的时长与所述单次心跳时间间隔的比值获得所述预测值。
5. 根据权利要求4所述的宕机检测方法,其特征在于,所述获得与所述预测值对应的 将所述被检测节点误判为宕机的次数的上限值包括: 获得所述被检测节点的误判最大时长和所述被检测节点的单次中断时长,所述误判最 大时长为所述预测值的有效期内由所有误判造成的业务中断时长之和的上限,所述单次中 断时长为所述被检测节点单次宕机造成的业务中断时长; 将所述将所述被检测节点误判为宕机的次数的上限值设置为所述误判最大时长与所 述单次中断时长的比值。
6. 根据权利要求1至5任一所述的宕机检测方法,其特征在于,所述根据所述误判概率 上限值和所述历史心跳时间间隔计算所述被检测节点的心跳超时时长包括: 根据所述历史心跳时间间隔获得所述被检测节点的心跳时间间隔的概率分布,所述心 跳时间间隔为来自所述被检测节点的相邻心跳消息的接收时刻的时间间隔; 根据所述误判概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长。
7. 根据权利要求6所述的宕机检测方法,其特征在于,所述根据所述误判概率上限值 和所述心跳时间间隔的概率分布获得所述心跳超时时长包括: 根据如下数学方程计算所述心跳超时时长:
其中,?为所述误判概率上限值,t为所述心跳超时时长,f(x)为所述心跳时间间隔的 概率分布的函数,X为所述心跳时间间隔。
8. 根据权利要求7所述的宕机检测方法,其特征在于,所述根据所述历史心跳时间间 隔获得所述被检测节点的心跳时间间隔的概率分布包括: 使用所述被检测节点的历史心跳时间间隔获得f(x)的系数的值,从而获得表示所述 被检测节点的心跳时间间隔的概率分布的函数。
9. 根据权利要求8所述的宕机检测方法,其特征在于,所述被检测节点的历史心跳时 间间隔为所述被检测节点的最近n次心跳时间间隔的集合,
所述使用所述被检测节点的历史心跳时间间隔获得f(x)的系数的值包括: 设置{Xl,x2,……,xj的值分别为所述被检测节点的最近n次心跳时间间隔的值。
10. 根据权利要求5至9任一所述的宕机检测方法,其特征在于,在所述判定所述被检 测节点宕机之后,所述方法还包括: 执行所述被检测节点的宕机恢复策略,所述宕恢复机策略用于将所述被检测节点恢复 为正常工作状态; 在所述被检测节点被误判为宕机时,获得由所述宕机恢复策略造成的业务中断时长, 根据所述误判最大时长以及所述宕机恢复策略造成的业务中断时长更新所述误判最大时 长。
11. 根据权利要求5至10任一所述的宕机检测方法,其特征在于,当所述预测值的有效 期届满时,所述方法还包括: 重置所述预测值的有效期; 根据重置后的有效期重置所述误判最大时长。
12. 根据权利要求11所述的宕机检测方法,其特征在于,所述根据所述重置后的有效 期重置所述误判最大时长包括: 将所述误判最大时长的值设置为所述重置后的有效期的时长、预设的高可用率和误判 率的乘积,所述误判率的值为统计获得的一段时间内的所有误判造成的业务中断时长之和 在所有业务中断时长之和中所占的比例,所述预设的高可用率为预设的一段时间内的所有 业务中断时长之和占所述一段时间的时长的比例。
13. 根据权利要求6至12任一所述的宕机检测方法,其特征在于,在所述根据所述误判 概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长之前还包括: 在预设的探测心跳超时时长内未收到来自所述被检测节点的心跳消息时,才根据所述 误判概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长。
14. 一种宕机检测节点,其特征在于,所述宕机检测节点包括: 间隔获得模块,用于获得被检测节点的历史心跳时间间隔,所述历史心跳时间间隔为 接收到所述被检测节点的相邻心跳消息的接收时刻的时间间隔; 概率获得模块,用于获得所述被检测节点的误判概率上限值,所述误判概率上限值为 将所述被检测节点误判为宕机的概率上限值; 时长计算模块,用于根据所述概率获得模块获得的所述误判概率上限值和所述间隔获 得模块获得的历史心跳时间间隔计算所述被检测节点的心跳超时时长; 宕机判定模块,用于在所述时长计算模块获得心跳超时时长内未收到来自所述被检测 节点的心跳消息时,判定所述被检测节点宕机。
15. 根据权利要求14所述的宕机检测节点,其特征在于,所述概率获得模块具体用于: 获得接收到所述被检测节点的心跳消息的次数的预测值; 获得与所述预测值对应的将所述被检测节点误判为宕机的次数的上限值; 根据所述预测值和所述将所述被检测节点误判为宕机的次数的上限值获得所述被检 测节点的误判概率上限值。
16. 根据权利要求15所述的宕机检测节点,其特征在于,所述概率获得模块根据所述 预测值和所述将所述被检测节点误判为宕机的次数的上限值获得所述被检测节点的误判 概率上限值包括: 所述概率获得模块将所述被检测节点的误判概率上限值设置为所述将所述被检测节 点误判为宕机的次数的上限值与所述预测值的比值。
17. 根据权利要求15或16所述的宕机检测节点,其特征在于,所述预测值为一段有效 期内接收到所述被检测节点的心跳消息的次数的预测值,所述概率获得模块获得接收到所 述被检测节点的心跳消息的次数的预测值包括: 所述概率获得模块获得所述被检测节点的单次心跳时间间隔和所述预测值的有效期 的时长; 所述概率获得模块根据所述有效期的时长与所述单次心跳时间间隔的比值获得所述 预测值。
18. 根据权利要求17所述的宕机检测节点,其特征在于,所述概率获得模块获得与所 述预测值对应的将所述被检测节点误判为宕机的次数的上限值包括: 所述概率获得模块获得所述被检测节点的误判最大时长和所述被检测节点的单次中 断时长,所述误判最大时长为所述预测值的有效期内由所有误判造成的业务中断时长之和 的上限,所述单次中断时长为所述被检测节点单次宕机造成的业务中断时长; 所述阈值获得模块根据所述误判最大时长与所述单次中断时长的比值获得所述将所 述被检测节点误判为宕机的次数的上限值。
19. 根据权利要求14至18任一所述的宕机检测节点,其特征在于,所述时长计算模块 具体用于: 根据所述历史心跳时间间隔获得所述被检测节点的心跳时间间隔的概率分布,所述心 跳时间间隔为来自所述被检测节点的相邻心跳消息的接收时刻的时间间隔; 根据所述误判概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长。
20. 根据权利要求19所述的宕机检测节点,其特征在于,所述时长计算模块根据所述 误判概率上限值和所述心跳时间间隔的概率分布获得所述心跳超时时长包括: 所述时长计算模块根据如下数学方程计算所述心跳超时时长:
其中,?为所述误判概率上限值,t为所述心跳超时时长,f(x)为所述心跳时间间隔的 概率分布的函数,X为所述心跳时间间隔。
21. 根据权利要求20所述的宕机检测节点,其特征在于,所述时长计算模块根据所述 历史心跳时间间隔获得所述被检测节点的心跳时间间隔的概率分布包括: 所述时长计算模块使用所述被检测节点的历史心跳时间间隔获得f(x)的系数的值, 从而获得表示所述被检测节点的心跳时间间隔的概率分布的函数。
22. 根据权利要求21所述的宕机检测节点,其特征在于,所述被检测节点的历史心跳 时间间隔为所述被检测节点的最近n次心跳时间间隔的集合,
所述时长计算模块使用所述被检测节点的历史心跳时间间隔获得f(x)的系数的值包 括: 所述时长计算模块确定{Xi,x2,......,X1J的值分别为所述被检测节点的最近n次心跳 时间间隔的值。
23. 根据权利要求18至22任一所述的宕机检测节点,其特征在于,所述宕机检测节点 还包括: 宕机恢复模块,在所述被检测节点被所述宕机判定模块判定为宕机时,执行所述被检 测节点的宕机恢复策略,所述宕恢复机策略用于将所述被检测节点恢复为正常工作状态; 第二更新模块,在所述被检测节点被所述宕机判定模块判定为宕机时,检测所述被检 测节点是否被误判为宕机,在所述被检测节点被误判为宕机时,根据所述误判最大时长以 及所述宕机恢复模块执行所述宕机恢复策略造成的业务中断时间更新所述误判最大时长。
24. 根据权利要求18至23任一所述的宕机检测节点,其特征在于,所述宕机检测节点 还包括: 重置模块,用于在所述预测值的有效期届满时重置所述预测值的有效期,并根据重置 后的有效期重置所述误判最大时长。
25. 根据权利要求24所述的宕机检测节点,其特征在于,所述重置模块据重置后的有 效期重置所述误判最大时长包括: 所述重置模块将所述误判最大时长的值设置为所述重置后的有效期的时长、预设的高 可用率和误判率的乘积,所述误判率的值为统计获得的一段时间内的所有误判造成的业务 中断时长之和在所有业务中断时长之和中所占的比例,所述预设的高可用率为预设的一段 时间内的所有业务中断时长之和占所述一段时间的时长的比例。
26. 根据权利要求18至25任一所述的宕机检测节点,其特征在于,所述宕机检测节点 还包括: 时长计算触发模块,用于在预设的探测心跳超时时长内未收到来自所述被检测节点的 心跳消息时,通知所述时长计算模块根据所述误判概率上限值和所述心跳时间间隔的概率 分布获得所述心跳超时时长。
【文档编号】H04L12/26GK104506392SQ201510003754
【公开日】2015年4月8日 申请日期:2015年1月4日 优先权日:2015年1月4日
【发明者】于璠, 吴伟, 樊瑞 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1