一种DRBD脑裂的处理方法及装置制造方法及图纸

技术编号:9599217 阅读:173 留言:0更新日期:2014-01-23 04:02
本发明专利技术公开了一种DRBD脑裂的处理方法及装置,所述方法包括:每隔一段时间检测主机Ping网关或第三方IP是否成功,并查询上次检测结果;当本次检测成功,且上次检测结果也成功时,则检测远程主机的DRBD是否为Primary/Secondary或者Secondary/Primary状态;当远程主机的DRBD不是该状态时,检测远程主机的DRBD是否为Secondary/Unknown状态;当远程主机的DRBD状态不为该状态时,则进行正常DRBD切换。本发明专利技术通过添加监控、测试和自动切换等操作来解决网络环境变化造成的脑裂问题,降低了脑裂发生的可能性,使高可用解决方案性能更加稳定、可靠。

【技术实现步骤摘要】
一种DRBD脑裂的处理方法及装置
本专利技术涉及计算机应用领域,具体涉及高可靠性解决方案领域,尤其涉及一种DRBD脑裂的处理方法及装置。
技术介绍
现有的Linux环境下Mysql的高可靠性方案通常为Heartbeat+DRBD。Heartbeat通过冗余通信通道和消息重传机制来保证通信的可靠性。Heartbeat检测主通信链路工作状态的同时也检测备用通信链路状态,并把这一状态报告给系统管理员,这样可以大大减少因为多重失效引起的集群故障不能恢复。例如,某个工作人员不小心拨下了一个备份通信链路,一两个月以后主通信链路也失效了,系统就不能再进行通信了。通过报告备份通信链路的工作状态和主通信链路的状态,可以完全避免这种情况。因为这样在主通信链路失效以前,就可以检测到备份工作链路失效,从而在主通信链路失效前修复备份通信链路。DRBD(DistributedReplicatedBlockDevice)是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。数据镜像:实时、透明、同步(所有服务器都成功后返回)、异步(本地服务器成功后返回)。但是二者都存在“脑裂”问题,即两个节点都以为本机是主节点从而发生抢夺资源的情况。目前的解决方案包括添加第三方“仲裁”来加强,即在向对方主机执行Ping命令失败后再对默认网关做一次Ping。但是这种方法也存在一定的缺陷,当网络断开后(如短暂的拔掉网线)又在很短的时间内恢复了之后,脑裂还是会不可避免的发生。
技术实现思路
有鉴于此,本专利技术实施例提供一种DRBD脑裂的处理方法及装置,来解决以上
技术介绍
部分提到的技术问题。第一方面,本专利技术实施例提供了一种DRBD脑裂的处理方法,所述方法包括:每隔一段时间检测主机Ping网关或者第三方IP是否成功,并查询上次网关检测结果;当本次Ping网关或者第三方IP检测为成功,且上次Ping网关或者第三方IP检测结果为成功时,则检测远程主机的DRBD状态是否为Primary/Secondary或者Secondary/Primary状态;当远程主机的DRBD状态不是Primary/Secondary或者Secondary/Primary状态时,检测远程主机的DRBD状态是否为Secondary/Unknown状态;当远程主机的DRBD状态不为Secondary/Unknown状态时,则进行正常DRBD切换,然后在远程主机上执行DRBD连接操作。进一步地,所述方法还包括:当本次Ping网关或者第三方IP检测为失败,且上次Ping网关或者第三方IP检测结果为成功时,则停止服务,包括Heartbeat、Mysql、DRBD。进一步地,所述方法还包括:当本次Ping网关或者第三方IP检测为成功,且上次Ping网关或者第三方IP检测结果为失败时,则启动DRBD和Heartbeat服务。进一步地,所述检测远程主机的DRBD状态是否为Primary/Secondary或者Secondary/Primary状态还包括:当首次检测到远程主机的DRBD状态不为Primary/Secondary或者Secondary/Primary状态时,进入休眠状态;休眠预设时间后再次检测远程主机的DRBD状态是否为Primary/Secondary或者Secondary/Primary状态。进一步地,所述当远程主机的DRBD状态为Secondary/Unknown状态时,则进行正常DRBD切换包括:当远程主机的DRBD不为Secondary/Unknown状态时,且本地主机为Secondary/Unknown状态,需进行DRBD切换。进一步地,上次Ping网关或者第三方IP成功或者失败的标识,可以持久化到文件,或者设置为进程内变量值。第二方面,本专利技术实施例还提供了一种DRBD脑裂的处理装置,所述装置包括:Ping网关或者第三方IP检测模块,用于每隔一段时间检测主机Ping网关或者第三方IP是否成功,并查询上次网关检测结果;DRBDP/S状态检测模块,用于当本次Ping网关或者第三方IP检测为成功,且上次Ping网关或者第三方IP检测结果为成功时,则检测远程主机的DRBD状态是否为Primary/Secondary或者Secondary/Primary状态;DRBDS/U状态检测模快,用于当远程主机的DRBD状态不是Primary/Secondary或者Secondary/Primary状态时,检测远程主机的DRBD状态是否为Secondary/Unknown状态;DRBD切换模块,用于当远程主机的DRBD状态不为Secondary/Unknown状态时,则进行正常DRBD切换。进一步地,所述装置还包括:服务停止模块,用于当本次Ping网关或者第三方IP检测为失败,且上次Ping网关或者第三方IP检测结果为成功时,则停止服务,包括Heartbeat、Mysql、DRBD。进一步地,所述装置还包括:服务启动模块,用于当本次Ping网关或者第三方IP检测为成功,且上次Ping网关或者第三方IP检测结果为失败时,则启动DRBD和Heartbeat服务。进一步地,所述DRBDP/S状态检测模块包括:休眠单元,用于当首次检测到远程主机的DRBD状态不为Primary/Secondary或者Secondary/Primary状态时,进入休眠状态;DRBDP/S状态检测单元,用于检测远程主机的DRBD状态是否为Primary/Secondary或者Secondary/Primary状态。进一步地,所述DRBD切换模块包括:本地主机DRBD状态检测单元,用于当远程主机的DRBD状态不为Secondary/Unknown状态时,则检测本地主机的DRBD状态是否为Secondary状态;DRBD切换单元,用于当本地主机为Secondary状态时,则进行正常DRBD切换。进一步地,上次Ping网关或者第三方IP成功或者失败的标识,可以持久化到文件,或者设置为进程内变量值。本专利技术通过检测Ping网关或者第三方IP是否成功以及远程主机的DRBD状态,在不直接修改Heartbeat和DRBD等开源软件源码的情况下,添加监控、测试和自动切换等操作来解决由于网络环境变化造成的脑裂问题,很大程度的降低了脑裂发生的可能性,使Heartbeat+DRBD的高可用解决方案性能更加稳定、可靠。附图说明图1是本专利技术第一实施例中的集群脑裂的处理方法的流程图。图2是本专利技术第二实施例中的集群脑裂的处理方法的流程图。图3是本专利技术第三实施例中的集群脑裂的处理装置的结构图。图4是本专利技术第四实施例中的集群脑裂的处理装置的结构图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。在图1中示出了本专利技术的第一实施例。图1是本专利技术第一实施例中的集群脑裂的处理方法的流程图,该实现流程100详述如下:步骤101、每隔一段时间检测主机Ping网关或者第三方IP是否成功,并查询上次网关检测结果。在本实施例中,Ping不仅仅是Windows下的命令,在Unix和Linux下也本文档来自技高网...
一种DRBD脑裂的处理方法及装置

【技术保护点】
一种DRBD脑裂的处理方法,其特征在于,所述方法包括:每隔一段时间检测主机Ping网关或者第三方IP是否成功,并查询上次网关检测结果;当本次Ping网关或者第三方IP检测为成功,且上次Ping网关或者第三方IP检测结果为成功时,则检测远程主机的DRBD状态是否为Primary/Secondary或者Secondary/Primary状态;当远程主机的DRBD状态不是Primary/Secondary或者Secondary/Primary状态时,检测远程主机的DRBD状态是否为Secondary/Unknown状态;当远程主机的DRBD状态不为Secondary/Unknown状态时,则进行正常DRBD切换。

【技术特征摘要】
1.一种DRBD脑裂的处理方法,其特征在于,所述方法包括:每隔一段时间检测主机Ping网关或者第三方IP是否成功,并查询上次网关检测结果;当本次Ping网关或者第三方IP检测为成功,且上次Ping网关或者第三方IP检测结果为成功时,则检测远程主机的DRBD状态是否为Primary/Secondary或者Secondary/Primary状态;当远程主机的DRBD状态不是Primary/Secondary或者Secondary/Primary状态时,检测远程主机的DRBD状态是否为Secondary/Unknown状态;当远程主机的DRBD状态不为Secondary/Unknown状态时,则进行正常DRBD切换。2.根据权利要求1所述的DRBD脑裂的处理方法,其特征在于,所述方法还包括:当本次Ping网关或者第三方IP检测为失败,且上次Ping网关或者第三方IP检测结果为成功时,则停止服务,所述服务包括Heartbeat、Mysql、DRBD。3.根据权利要求1所述的DRBD脑裂的处理方法,其特征在于,所述方法还包括:当本次Ping网关或者第三方IP检测为成功,且上次Ping网关或者第三方IP检测结果为失败时,则启动DRBD和Heartbeat服务。4.根据权利要求1所述的DRBD脑裂的处理方法,其特征在于,所述检测远程主机的DRBD状态是否为Primary/Secondary或者Secondary/Primary状态还包括:当首次检测到远程主机的DRBD状态不为Primary/Secondary或者Secondary/Primary状态时,进入休眠状态;休眠预设时间后再次检测远程主机的DRBD状态是否为Primary/Secondary或者Secondary/Primary状态。5.根据权利要求1所述的DRBD脑裂的处理方法,其特征在于,所述当远程主机的DRBD状态不为Secondary/Unknown状态时,则进行正常DRBD切换包括:当远程主机的DRBD状态不为Secondary/Unknown状态时,则检测本地主机的DRBD状态是否为Secondary状态;当本地主机为Secondary状态时,则进行正常DRBD切换。6.一种DRBD脑裂的处理装置,其特征在于,所述装置...

【专利技术属性】
技术研发人员:李成金郑驰李滕赵建军
申请(专利权)人:北京华胜天成科技股份有限公司
类型:发明
国别省市:

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

1