[发明专利]一种分布式心跳检测方法、装置及系统有效
申请号: | 201310039942.6 | 申请日: | 2013-02-01 |
公开(公告)号: | CN103117901A | 公开(公告)日: | 2013-05-22 |
发明(设计)人: | 刘叙友;张烽 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | H04L12/26 | 分类号: | H04L12/26;H04L29/08 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 唐华明 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 心跳 检测 方法 装置 系统 | ||
技术领域
本发明涉及通信技术领域,尤其涉及一种分布式心跳检测方法、装置及系统。
背景技术
随着信息的爆炸式增长,对存储系统的容量和扩展性都提出了更高的要求,因此涌现出了云存储、大数据等一批新兴的概念和产品。云存储系统通常有大量存储节点组成,并且能够进行大规模的扩展,存储节点之间通过相互的数据复制备份来提高系统的可靠性和可用性,存储节点在进行数据复制备份时,需要知道对应的节点状态,因此,节点故障检测技术就成为构建大型存储系统的一项重要技术。分布式技术是构建规模云存储系统的基础,目前分布式系统中的节点故障检测主要是基于心跳消息的心跳检测。
现有技术中,分布式心跳检测方法中节点系统结构示意图如图1所示,没有中心节点,各个数据节点的地位完全相同,它们通过Gossip协议维护节点系统的状态。通过Gossip协议,每个数据节点都可知道节点系统中包含哪些数据节点,以及这些数据节点的状态。各数据节点根据Gossip协议向节点系统内其他数据节点发送心跳消息(心跳消息未在图2中全部标出),并接收处理来自其他数据节点的心跳消息。数据节点随机选择另一个数据节点作为接收节点发送心跳消息,在心跳消息中携带记录的其他数据节点的心跳状态,该接收节点接收到心跳消息后,更新其记录的其他节点的心跳状态,当节点系统中一个数据节点记录的其他数据节点的心跳状态超过预置的时长而没有进行更新时,则认为心跳状态超过预置的时长而没有进行更新的数据节点发生了故障。
但在上述现有技术中,数据节点随机接收其他数据节点的心跳消息,再次接收来自同一个数据节点的心跳消息的时间都不确定,因此难以确定判断其他数据节点是否发生故障的心跳检测时长。如果数据节点再次接收来自同一个数据节点的心跳消息的时间比较长,那么若该心跳检测时长设置得比较短,则容易造成故障的误检,但是若该心跳检测时长设置得比较长,则检测到故障的时间比较长,可能已不具备实效性,对业务的处理影响比较大。
发明内容
本发明实施例提供了一种分布式心跳检测方法、装置及系统,用以提高节点间检测故障的效率。
第一方面,本发明提供一种分布式心跳检测方法,可包括:
中心节点根据节点系统的拓扑结构为每个数据节点生成一个对应的心跳视图,任一个数据节点的所述心跳视图用于标识该数据节点与不同数据节点所组成的心跳检测关系;
将每个所述心跳视图发送给对应数据节点,使得所述对应的数据节点根据所述心跳视图发送心跳消息。
在第一方面的第一种可能的实现方式中,所述根据节点系统的拓扑结构为每个数据节点生成一个对应的心跳视图包括:按照每个数据节点所处的机架及服务器的位置选取数据节点,所述心跳视图中具有心跳检测关系的不同数据节点分布在不同的服务器或机架中;
根据所选取的数据节点的ID生成所述心跳视图。
结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:
若在预先设置的心跳检测时长内,没有接收到所述第一数据节点对应的心跳视图中所指示的发送节点所发送的心跳消息,则判定所述发送节点故障,所述第一数据节点为所述节点系统中任意一个数据节点,所述发送节点为所述第一数据节点对应的心跳视图中标识的向所述第一数据节点发送心跳消息的数据节点。
结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述方法还包括:
若接收到所述节点系统中任一数据节点发送的故障汇报信息,所述故障汇报信息中包含有上报的故障节点,则根据除去所述故障汇报信息中汇报的故障节点之外的节点系统的拓扑结构,为所述节点系统中除故障节点外的每个数据节点生成对应的新的心跳视图,将每个所述新的心跳视图分别发送给对应的数据节点;
若接收到所述节点系统中任一数据节点发送的心跳视图查询信息,则查询该数据节点对应的最新的心跳视图,并将所述最新的心跳视图发送给该数据节点。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述将每个所述新的心跳视图分别发送给对应的数据节点,包括:
将每个新的心跳视图与对应数据节点最近一次的历史心跳视图进行比较获得至少一个第一数据节点,所述第一数据节点为最近一次历史心跳视图和第一数据节点对应的新的心跳视图不同的数据节点;
将所述第一数据节点对应的新的心跳视图发送给所述第一数据节点。
第二方面,本发明提供一种分布式心跳检测方法,可包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310039942.6/2.html,转载请声明来源钻瓜专利网。