集群脑裂处理方法和装置的制作方法

文档序号:7916666阅读:194来源:国知局
专利名称:集群脑裂处理方法和装置的制作方法
技术领域
本发明涉及计算机技术应用领域,尤其涉及一种集群脑裂处理方法和装置。
背景技术
高可用集群技术被广泛的应用于存储技术领域。为了保证高可用集群的正常工作,需要集群内的每个节点在提供对外服务时有正常的活性,从而保证对外提供稳定的服务。在集群提供服务的过程中,由于环境的变化,节点可能会发生这样或者那样的故障,而造成节点从集群中断开,出现脑裂现象。由于在脑裂发生时,断开的节点原提供的服务现在可能不正常,造成集群不能正常工作,所以,快速准确的检测和响应脑裂,可以提高集群的性能。现有响应脑裂和恢复节点的办法主要是直接对断开的节点进行关闭并重启计算机系统,复原断开节点上计算机的初始环境,在复原完成后再将该节点加入集群中重新提供服务,保证该节点上之后提供的服务稳定。该方法能够保证节点计算机的提供服务的稳定性,然而在很多情况下,例如网线的断开等,直接重启计算机系统没有多大的必要性,而且在计算机系统启动后要按照要求重新初始化信息,这将是一个比较耗时的过程,降低了效率。综上,现有技术中对脑裂的处理方式单一,影响了集群工作效率。

发明内容
本发明提供了一种集群脑裂处理方法和装置,解决了对脑裂处理方式单一,影响集群工作效率的问题。一种集群脑裂处理方法,包括集群内各节点检测本节点与集群中其他节点之间的心跳线;在集群内节点检测不到任何心跳线时,该节点中止本节点上的业务。优选的,所述在集群内节点检测不到任何心跳线时,该节点中止本节点上的业务的步骤之后还包括在所述节点检测到与集群中各节点之间的心跳线心跳恢复后,将本节点上的业务重新开放。优选的,所述在集群内节点检测不到任何心跳线时,该节点中止本节点上的业务具体为在集群内节点在预置的检测周期内无法检测到任何心跳线时,该节点中止本节点上的业务。优选的,上述集群脑裂处理方法还包括在集群内节点能够检测到与部分集群中其他节点之间的心跳线时,判定检测不到的心跳线故障。本发明还提供了一种集群脑裂处理装置,包括心跳管理模块,用于检测集群内节点与集群中其他节点之间的心跳线;
集群管理模块,用于在检测不到集群内节点与集群中其他节点之间的任何心跳线时,中止该集群内节点上的业务。优选的,所述集群管理模块,还用于在检测到集群内节点与所述集群中其他节点之间的心跳线心跳恢复后,将该集群内节点上的业务重新开放。优选的,所述心跳管理模块,还用于在能够检测到与部分集群中其他节点之间的心跳线时,判定检测不到的心跳线故障。本发明提供了一种集群脑裂处理方法和装置,集群内各节点检测本节点与集群中其他节点之间的心跳线,在集群内节点检测不到任何心跳线时,该节点中止本节点上的业务,用中止业务代替了现有技术中的直接重启系统,节省了恢复时间,提高了对脑裂现象处理的精确度,保证了系统工作效率。


图1为本发明的实施例一提供的集群脑裂方法对脑裂响应的流程图;图2为本发明的实施例一提供的集群脑裂方法对脑裂恢复响应的流程图;图3为本发明的实施例二提供的一种集群脑裂处理方法流程图;图4为本发明的实施例二提供的一种集群脑裂处理装置结构示意图。
具体实施例方式在很多情况下,例如网线的断开等,直接重启计算机系统没有多大的必要性,而且在计算机系统启动后要按照要求重新初始化信息,这将是一个比较耗时的过程,降低了效率。为了解决上述问题,本发明的实施例提供了一种集群脑裂处理方法和装置,快速检测和响应脑裂,停止本节点上的共享资源、停止本节点提供的业务服务,保证共享资源的安全性;当该节点心跳恢复后,可以直接、快速、高效的恢复节点的服务。不仅保证了资源的安全,同时提高了集群恢复的速度以及高可用系统的性能。下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。首先结合附图,对本发明的实施例一进行说明。本发明实施例提供了一种集群脑裂处理方法和装置,在高可用集群中,节点发现心跳断开后,不会直接停止操作系统,而只是停止本节点上的共享资源、停止本节点提供的业务服务;当该节点心跳恢复后,可以直接、快速、高效的恢复节点的服务。此方法不仅保证了资源的安全,同时提高了集群恢复的速度,提高高可用系统的性能。本发明实施例提供的集群脑裂处理装置包括心跳管理模块、集群管理模块以及本地资源管理模块。结合上述集群脑裂处理装置,使用本发明实施例提供的集群脑裂处理方法,对发生脑裂现象的节点进行处理的流程如下1)心跳管理模块中,心跳模块定期检测集群中所有节点的每条心跳线的信息。在系统预先设置的时间内,如若持续没有检测到心跳线的信息,这判定该心跳线故障。在一个节点中,若所有的心跳线都故障,则判定该节点与集群中其他节点断开。2)在集群管理模块中,当该模块收到心跳模块心跳断开命令时,会进行一系列节点信息判断,最后确定节点的处理方法。若本节点是从集群中断开的节点,本节点将不会直接停止操作系统,而是启动本地资源管理模块C3)停止本节点上的共享资源、停止本节点提供的业务服务。集群中其他正常节点将接管该断开节点上的业务,对外提供服务。3)心跳管理模块在心跳线故障后仍然检测每个节点每条心跳线的信息,当重新检测到故障心跳线的心跳信息后,发送心跳恢复的命令给集群管理模块。4)在接受到心跳恢复的命令后,集群管理模块将根据集群的当前状态,做出不同的操作。如集群正常节点会直接、快速、高效的恢复节点的服务;如集群已是脑裂状态,将快速恢复整个集群的服务。当节点从集群中断开后,不会直接停止操作系统,而只是停止本节点上的共享资源、停止本节点提供的业务服务,保证了共享资源的安全性;同时本发明增加了心跳恢复检测机制,当该节点心跳恢复后,可以直接、快速、高效的恢复节点的服务,提高了集群恢复的速度,提高高可用系统的性能。下面将结合附图对本发明进行更加详细的描述集群管理的主服务器也是集群中的一个节点,该节点会主动分配集群的资源,把集群的各种服务分配到不同的服务器上,对外提供服务;同时,主服务器也直接和用户相关,用户对集群的操作直接由该节点指派到指定的节点上。附图1为本发明实施例所述的脑裂响应流程图。当心跳管理模块检测到某个节点的心跳从集群中断开时发送节点死亡的命令给集群管理模块,集群管理模块首先删除和更新集群节点信息列表,并且计算节点是否为主节点,然后判断节点是否是本节点,假若是本节点从集群中断开,本地资源管理模块将停止本节点上的共享资源、停止本节点提供的业务服务,等待心跳的复活;在断开的节点不是本节点的情况下,计算集群的初始节点数,判断节点数是否为2节点的1+1高可用集群模式,在2节点的高可用集群中,本节点主动PING 第三方IP地址,判断本节点是否也已经从网络中断开,倘若本节点已经从网络中断开,本地资源管理模块将停止本节点上的共享资源、停止本节点提供的业务服务,等待心跳的复活,不然则接管集群管理的主服务器;在多节点的集群情况下,对比集群现存节点数和初始节点数的一半的大小,假如现存节点数小于一半时,本地资源管理模块将停止本节点上的共享资源、停止本节点提供的业务服务,等待复活心跳的节点数大于1/2 ;当现存节点数等于1/2时,判断现存节点中是否存在主服务器;当现存节点大于1/2时,则判断断开的节点是否为主服务器,假如断开的节点是主服务器,本节点将计算本节点的信息,决策是否接管主服务器;若断开节点不是主服务器,则判断本节点是否为主服务器,若是主服务器,则转移断开节点上的业务到其他活动的节点上。图2是心跳恢复响应流程图。当心跳管理模块检测到节点的心跳恢复时发送节点恢复的命令给集群管理模块,集群管理模块首先发送若干次请求加入的消息给集群中所有的节点。对于集群中的所有节点,在接收到请求加入命令后,将把节点信息加入到本节点上的节点列表信息中,集群中所有节点都认知了节点的存在,然后判断本节点是否为主服务器节点,假如节点为主服务器,该节点将回复恢复节点的消息,告知主服务器的存在;对于心跳恢复节点,发送请求加入消息后将等待若干时间等待主服务器的回复消息,假如接收到主服务器的回复消息,则节点加入集群中,可以启动集群中服务;假如没有收到主服务器的回复消息,说明主服务器不存在,该恢复节点将发送重新决策主服器命令给集群中的所有节点,各节点收到该命令后,都计算节点的信息,决策出集群中的新的主服务器,重新开始集群的服务。本发明实施例所提供的集群脑裂处理方法和装置,可以快速的响应心跳断开的命令,停止本地的业务和共享资源,而主服务器将把断开节点上服务分配到其他正常的节点上,保证资源的安全性,同时保证了业务的连续性;同时,在节点心跳恢复时,可以直接、快速、高效的恢复节点的服务,提高了集群恢复的速度,提高高可用系统的性能。下面结合附图,对本发明的实施例二进行说明。 本发明实施例提供了一种集群脑裂处理方法,使用该方法完成对集群内脑裂节点进行处理的流程如图3所示,包括步骤301、集群内各节点检测本节点与集群中其他节点之间的心跳线;步骤302、在集群内节点检测不到任何心跳线时,该节点中止本节点上的业务;在集群内节点在预置的检测周期内无法检测到任何心跳线时,该节点中止本节点上的业务。步骤303、在所述节点检测到与集群中各节点之间的心跳线心跳恢复后,将本节点上的业务重新开放。步骤304、在集群内节点能够检测到与部分集群中其他节点之间的心跳线时,判定检测不到的心跳线故障;在步骤301之后,如果集群内节点能够检测到一条或多条心跳线,但无法检测到全部心跳线时,说明该节点并未发生脑裂,此时,可判定检测不到的心跳线故障。本发明实施例还提供了一种集群脑裂处理装置,其结构如图4所示,包括心跳管理模块401,用于检测集群内节点与集群中其他节点之间的心跳线;集群管理模块402,用于在检测不到集群内节点与集群中其他节点之间的任何心跳线时,中止该集群内节点上的业务。优选的,所述集群管理模块402,还用于在检测到集群内节点与所述集群中其他节点之间的心跳线心跳恢复后,将该集群内节点上的业务重新开放。优选的,所述心跳管理模块401,还用于在能够检测到与部分集群中其他节点之间的心跳线时,判定检测不到的心跳线故障。上述集群脑裂处理装置可集成于集群内各节点上,以完成对各节点的监控及脑裂处理。本发明实施例提供的集群脑裂处理装置,能够与本发明的实施例所提供的一种集群脑裂处理方法相结合,集群内各节点检测本节点与集群中其他节点之间的心跳线,在集群内节点检测不到任何心跳线时,该节点中止本节点上的业务,用中止业务代替了现有技术中的直接重启系统,节省了恢复时间,提高了对脑裂现象处理的精确度,保证了系统工作效率。本领域普通技术人员可以理解上述实施例的全部或部分步骤可以使用计算机程序流程来实现,所述计算机程序可以存储于一计算机可读存储介质中,所述计算机程序在相应的硬件平台上(如系统、设备、装置、器件等)执行,在执行时,包括方法实施例的步骤之一或其组合。可选地,上述实施例的全部或部分步骤也可以使用集成电路来实现,这些步骤可以被分别制作成一个个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。上述实施例中的各装置/功能模块/功能单元可以采用通用的计算装置来实现, 它们可以集中在单个的计算装置上,也可以分布在多个计算装置所组成的网络上。上述实施例中的各装置/功能模块/功能单元以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。上述提到的计算机可读取存储介质可以是只读存储器,磁盘或光盘等。任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求所述的保护范围为准。
权利要求
1.一种集群脑裂处理方法,其特征在于,包括集群内各节点检测本节点与集群中其他节点之间的心跳线;在集群内节点检测不到任何心跳线时,该节点中止本节点上的业务。
2.根据权利要求1人手一册的集群脑裂处理方法,其特征在于,所述在集群内节点检测不到任何心跳线时,该节点中止本节点上的业务的步骤之后还包括在所述节点检测到与集群中各节点之间的心跳线心跳恢复后,将本节点上的业务重新开放。
3.根据权利要求1所述的集群脑裂处理方法,其特征在于,所述在集群内节点检测不到任何心跳线时,该节点中止本节点上的业务具体为在集群内节点在预置的检测周期内无法检测到任何心跳线时,该节点中止本节点上的业务。
4.根据权利要求1所述的集群脑裂处理方法,其特征在于,该方法还包括在集群内节点能够检测到与部分集群中其他节点之间的心跳线时,判定检测不到的心跳线故障。
5.一种集群脑裂处理装置,其特征在于,包括心跳管理模块,用于检测集群内节点与集群中其他节点之间的心跳线;集群管理模块,用于在检测不到集群内节点与集群中其他节点之间的任何心跳线时, 中止该集群内节点上的业务。
6.根据权利要求5所述的集群脑裂处理装置,其特征在于,所述集群管理模块,还用于在检测到集群内节点与所述集群中其他节点之间的心跳线心跳恢复后,将该集群内节点上的业务重新开放。
7.根据权利要求5所述的集群脑裂处理装置,其特征在于,所述心跳管理模块,还用于在能够检测到与部分集群中其他节点之间的心跳线时,判定检测不到的心跳线故障。
全文摘要
本发明提供了一种集群脑裂处理方法和装置。涉及计算机技术应用领域;解决了对脑裂处理方式单一,影响集群工作效率的问题。该方法包括集群内各节点检测本节点与集群中其他节点之间的心跳线;在集群内节点检测不到任何心跳线时,该节点中止本节点上的业务。本发明提供的技术方案适用于高可用集群,实现了灵活高效的脑裂处理。
文档编号H04L29/08GK102394914SQ20111028257
公开日2012年3月28日 申请日期2011年9月22日 优先权日2011年9月22日
发明者张书宁, 王婷 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1