CN103532748B - 一种drbd脑裂的处理方法及装置 - Google Patents

一种drbd脑裂的处理方法及装置 Download PDF

Info

Publication number
CN103532748B
CN103532748B CN201310464715.8A CN201310464715A CN103532748B CN 103532748 B CN103532748 B CN 103532748B CN 201310464715 A CN201310464715 A CN 201310464715A CN 103532748 B CN103532748 B CN 103532748B
Authority
CN
China
Prior art keywords
drbd
state
primary
party
distance host
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310464715.8A
Other languages
English (en)
Other versions
CN103532748A (zh
Inventor
李成金
郑驰
李滕
赵建军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Teamsun Technology Co Ltd
Original Assignee
Beijing Teamsun Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Teamsun Technology Co Ltd filed Critical Beijing Teamsun Technology Co Ltd
Priority to CN201310464715.8A priority Critical patent/CN103532748B/zh
Publication of CN103532748A publication Critical patent/CN103532748A/zh
Application granted granted Critical
Publication of CN103532748B publication Critical patent/CN103532748B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

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

Description

一种DRBD脑裂的处理方法及装置
技术领域
本发明涉及计算机应用领域,具体涉及高可靠性解决方案领域,尤其涉及一种DRBD脑裂的处理方法及装置。
背景技术
现有的Linux环境下Mysql的高可靠性方案通常为Heartbeat+DRBD。Heartbeat通过冗余通信通道和消息重传机制来保证通信的可靠性。Heartbeat检测主通信链路工作状态的同时也检测备用通信链路状态,并把这一状态报告给系统管理员,这样可以大大减少因为多重失效引起的集群故障不能恢复。例如,某个工作人员不小心拨下了一个备份通信链路,一两个月以后主通信链路也失效了,系统就不能再进行通信了。通过报告备份通信链路的工作状态和主通信链路的状态,可以完全避免这种情况。因为这样在主通信链路失效以前,就可以检测到备份工作链路失效,从而在主通信链路失效前修复备份通信链路。DRBD(Distributed Replicated Block Device)是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。数据镜像:实时、透明、同步(所有服务器都成功后返回)、异步(本地服务器成功后返回)。
但是二者都存在“脑裂”问题,即两个节点都以为本机是主节点从而发生抢夺资源的情况。目前的解决方案包括添加第三方“仲裁”来加强,即在向对方主机执行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是否成功,并查询上次网关检测结果;
DRBD P/S状态检测模块,用于当本次Ping网关或者第三方IP检测为成功,且上次Ping网关或者第三方IP检测结果为成功时,则检测远程主机的DRBD状态是否为Primary/Secondary或者Secondary/Primary状态;
DRBD S/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服务。
进一步地,所述DRBD P/S状态检测模块包括:休眠单元,用于当首次检测到远程主机的DRBD状态不为Primary/Secondary或者Secondary/Primary状态时,进入休眠状态;DRBD P/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下也有这个命令,Ping只是一个通信协议,是IP协议的一部分,TCP/IP协议的一部分,Ping在Windows系统下是自带的一个可执行命令,利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障。
步骤102、当本次Ping网关或者第三方IP检测为成功,且上次Ping网关或者第三方IP检测结果为成功时,则检测远程主机的DRBD状态是否为Primary/Secondary状态或者Secondary/Primary状态。
在本实施例中,DRBD是一种块设备,可以被用于高可用(HA)之中。当你将数据写入本地文件系统时,数据还将会被发送到网络中另一台主机上,以相同的形式记录在一个文件系统中。本地(主节点)与远程主机(备节点)的数据可以保证实时同步。当本地系统出现故障时,远程主机上还会保留有一份相同的数据可以继续使用。在高可用(HA)中使用DRBD功能可以代替使用一个共享盘阵。因为数据同时存在于本地主机和远程主机上,切换时远程主机只要使用它上面的那份备份数据就可以继续进行服务了。本地(主节点)与远程主机(备节点)两个节点中,同一时刻只能有一台处于Primary状态,另一台处于Secondary状态。
步骤103、当远程主机的DRBD状态不是Primary/Secondary状态或者Secondary/Primary状态时,检测远程主机的DRBD是否为Secondary/Unknown状态。
步骤103又包括以下步骤:
步骤1031、当首次检测到远程主机的DRBD状态不为Primary/Secondary状态或者Secondary/Primary状态时,进入休眠状态。
在本实施例中,当远程主机的DRBD状态不是Primary/Secondary或者Secondary/Primary状态,即代表DRBD可能会出现脑裂问题,休眠一段时间,保证本监控程序不会影响到DRBD的正常功能,再次进行远程主机的DRBD状态检测。
步骤1032、休眠预设时间后再次检测远程主机的DRBD状态是否为Primary/Secondary状态或者Secondary/Primary状态。
在本实施例中,所述预设时间可以为30s,在首次检测完远程主机的DBRB状态不是Primary/Secondary状态或者Secondary/Primary状态时,再隔30s再次检测,进一步地确定远程主机的DRBD状态是否为Secondary/Unknown状态,,如果是,则进程睡眠一段时间后,重新执行步骤101;否则执行步骤104。由于设置的预设时间较Heartbeat周期长,如果一个Heartbeat周期过去了,远程主机状态仍然不为Primary/Secondary状态,才对其进行DBRD切换操作。
步骤104、当远程主机的DRBD状态不为Secondary/Unknown状态时,则进行正常DRBD切换。
步骤104包括以下步骤:
步骤1041、当远程主机的DRBD状态不为Secondary/Unknown状态时,则本地主机的DRBD状态为Secondary状态。
步骤1042、当本地主机为Secondary状态时,则进行正常DRBD切换,然后在远程主机上进行DRBD连接。
在本实施例中,当本地主机为Secondary状态即为备节点时,我们进行正常的DBRD切换,使本地主机为Primary节点(主节点),远程主机为Secondary节点(备节点)。
本发明第一实施例通过检测Ping网关或者第三方IP是否成功以及远程主机的DRBD状态,在不直接修改Heartbeat和DRBD等开源软件源码的情况下,添加监控、测试和自动切换等操作来解决由于网络环境变化造成的脑裂问题,很大程度的降低了脑裂发生的可能性。
在图2中示出了本发明的第二实施例。
图2是本发明第二实施例中的集群脑裂的处理方法的流程图。该实现流程200详述如下:
步骤201、每隔一段时间检测主机Ping网关或者第三方IP是否成功,并查询上次网关检测结果。
在本实施例中,Ping不仅仅是Windows下的命令,在Unix和Linux下也有这个命令,Ping只是一个通信协议,是IP协议的一部分,TCP/IP协议的一部分,Ping在Windows系统下是自带的一个可执行命令,利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障。上次Ping网关或者第三方IP成功或者失败的标识,可以持久化到文件,或者设置为进程内变量值。
步骤202、当本次Ping网关或者第三方IP检测为失败,而上次检测为失败时,在睡眠一段时间,再次进行检测。
步骤203、当本次Ping网关或者第三方IP检测为成功,而上次检测也为成功时,则进行步骤204。
步骤204、检测远程主机的DRBD状态是否为Primary/Secondary或者Secondary/Primary状态。
在本实施例中,DRBD是一种块设备,可以被用于高可用(HA)之中。当你将数据写入本地文件系统时,数据还将会被发送到网络中另一台主机上,以相同的形式记录在一个文件系统中。本地(主节点)与远程主机(备节点)的数据可以保证实时同步。当本地系统出现故障时,远程主机上还会保留有一份相同的数据可以继续使用。在高可用(HA)中使用DRBD功能可以代替使用一个共享盘阵。因为数据同时存在于本地主机和远程主机上,切换时远程主机只要使用它上面的那份备份数据就可以继续进行服务了。本地(主节点)与远程主机(备节点)两个节点中,同一时刻只能有一台处于Primary状态,另一台处于Secondary状态。
步骤205、当远程主机的DRBD状态是Primary/Secondary或者Secondary/Primary状态时,则进程睡眠一段时间,重新执行步骤201。
步骤206、当远程主机的DRBD状态不是Primary/Secondary或者Secondary/Primary状态时,检测远程主机的DRBD是否为Secondary/Unknown状态。
步骤206又包括以下步骤:
步骤2061、当首次检测到远程主机的DRBD状态不为Primary/Secondary或者Secondary/Primary状态时,进入休眠状态。
在本实施例中,当远程主机的DRBD状态不是Primary/Secondary或者Secondary/Primary状态,即代表DRBD可能会出现脑裂问题,休眠一段时间,保证本监控程序不会影响到DRBD的正常功能,再次进行远程主机的DRBD状态检测。
步骤2062、休眠预设时间后再次检测远程主机的DRBD状态是否为Primary/Secondary或者Secondary/Primary状态。
在本实施例中,所述预设时间可以为30s,在首次检测完远程主机的DBRB状态不是Primary/Secondary或者Secondary/Primary状态时,再隔30s再次检测,进一步地确定远程主机的DRBD状态是否为Secondary/Unknown状态,如果是,则进程睡眠一段时间后,重新执行步骤201;否则执行步骤207。由于设置的预设时间较Heartbeat周期长,如果一个Heartbeat周期过去了,远程主机状态仍然不为Primary/Secondary状态,才对其进行DBRD切换操作。
步骤207、当远程主机的DRBD状态不为Secondary/Unknown状态时,则进行正常DRBD切换。
步骤207包括以下步骤:
步骤2071、当远程主机的DRBD状态不为Secondary/Unknown状态时,则本地主机的DRBD为Secondary状态。
步骤2072、当本地主机为Secondary状态时,则进行正常DRBD切换。
在本实施例中,当本地主机为Secondary状态即为备节点时,我们进行正常的DBRD切换,使本地主机为Primary节点(主节点),远程主机为Secondary节点(备节点),然后在远程主机上进行DRBD连接。
步骤208、当本次Ping网关或者第三方IP检测为失败,而上次检测为成功时,则停止服务,所述服务包括Heartbeat、Mysql、DRBD。
在本实施例中,当本次Ping网关或者第三方IP检测为失败且上次网关检测也为失败时,即当两次检测网络都不通时,停止服务。
步骤209、当本次Ping网关或者第三方IP检测为成功,而上次检测为失败时,重启DRBD、Heartbeat服务。
在本实施例中,当本次Ping网关或者第三方IP检测为成功且上次网关检测也为失败时,即当本次检测网络连通,上次检测网络不通时,重新启动DRBD和Heartbeat服务。
本发明第二实施例通过检测Ping网关或者第三方IP是否成功以及远程主机的DRBD状态,在不直接修改Heartbeat和DRBD等开源软件源码的情况下,添加监控、测试和自动切换等操作来解决由于网络环境变化造成的脑裂问题,很大程度的降低了脑裂发生的可能性。与本发明第一实施例相比,增加了检测Ping网关或者第三方IP结果的处理方法,使Heartbeat+DRBD的高可用解决方案性能更加稳定、可靠。
在图3中示出了本发明的第三实施例。
图3是本发明第三实施例中的集群脑裂的处理装置的结构图,所述装置包括Ping网关或者第三方IP检测模块301、DRBD P/S状态检测模块302、DRBDS/U状态检测模快303和DRBD切换模块304。
其中,Ping网关或者第三方IP检测模块301用于每隔一段时间检测主机Ping网关或者第三方IP是否成功,并查询上次网关检测结果。
在本实施例中,Ping只是一个通信协议,是IP协议的一部分,TCP/IP协议的一部分,利用它可以检查网络是否能够连通。上次Ping网关或者第三方IP成功或者失败的标识,可以持久化到文件,或者设置为进程内变量值。
DRBD P/S状态检测模块302用于当本次Ping网关或者第三方IP检测为成功,且上次Ping网关或者第三方IP检测结果为成功时,则检测远程主机的DRBD状态是否为Primary/Secondary状态。
在本实施例中,DRBD是一种块设备,可以被用于高可用(HA)之中。当你将数据写入本地文件系统时,数据还将会被发送到网络中另一台主机上,以相同的形式记录在一个文件系统中。本地(主节点)与远程主机(备节点)的数据可以保证实时同步。本地(主节点)与远程主机(备节点)两个节点中,同一时刻只能有一台处于Primary状态,另一台处于Secondary状态。
DRBD S/U状态检测模快303用于当远程主机的DRBD状态不是Primary/Secondary状态时,检测远程主机的DRBD状态是否为Secondary/Unknown状态。DRBD S/U状态检测模快303又包括休眠单元3031和DRBD P/S状态检测单元3032,其中,休眠单元用于当首次检测到远程主机的DRBD状态不为Primary/Secondary状态时,进入休眠状态;DRBD P/S状态检测单元3032用于检测远程主机的DRBD状态是否为Primary/Secondary状态。
在本实施例中,当DRBD S/U状态检测模快检测到远程主机的DRBD状态不是Primary/Secondary状态,即代表本地主机为Primary节点(主节点),远程主机为Secondary节点(备节点)时,休眠30s,再次进行远程主机的DRBD状态检测,进一步地确定远程主机的DRBD状态是否为Secondary/Unknown状态。
DRBD切换模块304用于当远程主机的DRBD状态不为Secondary/Unknown状态时,则进行正常DRBD切换。DRBD切换模块304又包括本地主机DRBD状态检测单元3041和DRBD切换单元3042,其中,本地主机DRBD状态检测单元3041用于当远程主机的DRBD状态不为Secondary/Unknown状态时,则检测本地主机的DRBD状态是否为Secondary状态;DRBD切换单元3042用于当本地主机为Secondary状态时,则进行正常DRBD切换。
在本实施例中,当远程主机的DRBD状态不为Secondary/Unknown状态时,本地主机DRBD状态检测单元进一步地检测本地主机的DRBD状态是否为Secondary状态;当检测到本地主机的DRBD状态为Secondary状态时,进行DRBD切换,使本地主机为主节点,远程主机为备节点。
本发明第三实施例通过Ping网关或者第三方IP检测模块检测网络连通状况,DRBDP/S状态检测模块和DRBD S/U状态检测模快检测远程主机的DRDB状态,DRBD切换模块实现自动切换DRBD状态,解决由于网络环境变化造成的脑裂问题,很大程度的降低了脑裂发生的可能性。
在图4中示出了本发明的第四实施例。
图4是本发明第四实施例中的集群脑裂的处理装置,所述装置包括Ping网关或者第三方IP检测模块401、DRBD P/S状态检测模块402、DRBD S/U状态检测模快403、DRBD切换模块404、服务停止模块405和服务启动模块406。
其中,Ping网关或者第三方IP检测模块401用于每隔一段时间检测主机Ping网关或者第三方IP是否成功,并查询上次网关检测结果。
在本实施例中,Ping只是一个通信协议,是IP协议的一部分,TCP/IP协议的一部分,利用它可以检查网络是否能够连通。上次Ping网关或者第三方IP成功或者失败的标识,可以持久化到文件,或者设置为进程内变量值。
DRBD P/S状态检测模块402用于当本次Ping网关或者第三方IP检测为成功,且上次Ping网关或者第三方IP检测结果为成功时,则检测远程主机的DRBD状态是否为Primary/Secondary状态。
在本实施例中,DRBD是一种块设备,可以被用于高可用(HA)之中。当你将数据写入本地文件系统时,数据还将会被发送到网络中另一台主机上,以相同的形式记录在一个文件系统中。本地(主节点)与远程主机(备节点)的数据可以保证实时同步。本地(主节点)与远程主机(备节点)两个节点中,同一时刻只能有一台处于Primary状态,另一台处于Secondary状态。
DRBD S/U状态检测模快403用于当远程主机的DRBD状态不是Primary/Secondary状态时,检测远程主机的DRBD状态是否为Secondary/Unknown状态。DRBD S/U状态检测模快403又包括休眠单元4031和DRBD P/S状态检测单元4032,其中,休眠单元4031用于当首次检测到远程主机的DRBD状态不为Primary/Secondary状态时,进入休眠状态;DRBD P/S状态检测单元4032用于检测远程主机的DRBD状态是否为Primary/Secondary状态。
在本实施例中,当远程主机的DRBD状态不是Primary/Secondary状态,即代表本地主机为Primary节点(主节点),远程主机为Secondary节点(备节点)时,休眠30s,再次进行远程主机的DRBD状态检测,进一步地确定远程主机的DRBD状态是否为Secondary/Unknown状态。
DRBD切换模块404用于当远程主机的DRBD状态不为Secondary/Unknown状态时,则进行正常DRBD切换。DRBD切换模块404又包括本地主机DRBD状态检测单元4041和DRBD切换单元4042,其中,本地主机DRBD状态检测单元4041用于当远程主机的DRBD状态不为Secondary/Unknown状态时,则检测本地主机的DRBD状态是否为Secondary状态;DRBD切换单元4042用于当本地主机为Secondary状态时,则进行正常DRBD切换。
在本实施例中,当远程主机的DRBD状态不为Secondary/Unknown状态时,进一步地本地主机DRBD状态检测单元检测本地主机的DRBD状态是否为Secondary状态;当检测到本地主机的DRBD状态为Secondary状态时,进行DRBD切换,使本地主机为主节点,远程主机为备节点。
服务停止模块405用于当本次Ping网关或者第三方IP检测为失败,且上次Ping网关或者第三方IP检测结果为失败时,则停止服务,所述服务包括Heartbeat、Mysql、DRBD。
服务启动模块406用于当本次Ping网关或者第三方IP检测为成功,且上次Ping网关或者第三方IP检测结果为失败时,则启动DRBD和Heartbeat服务。
本发明第四实施例通过Ping网关或者第三方IP检测模块检测网络连通状况,DRBDP/S状态检测模块和DRBD S/U状态检测模快检测远程主机的DRDB状态,DRBD切换模块实现自动切换DRBD状态,解决由于网络环境变化造成的脑裂问题,很大程度的降低了脑裂发生的可能性。与第三实施例相比,本发明增加了服务停止模块和服务启动模块,用来处理其他检测到的Ping网关或者第三方IP结果,使Heartbeat+DRBD的高可用解决方案性能更加稳定、可靠。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (10)

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脑裂的处理装置,其特征在于,所述装置包括:
Ping网关或者第三方IP检测模块,用于每隔一段时间检测主机Ping网关或者第三方IP是否成功,并查询上次网关检测结果;
DRBD P/S状态检测模块,用于当本次Ping网关或者第三方IP检测为成功,且上次Ping网关或者第三方IP检测结果为成功时,则检测远程主机的DRBD状态是否为Primary/Secondary或者Secondary/Primary状态;
DRBD S/U状态检测模快,用于当远程主机的DRBD状态不是Primary/Secondary或者Secondary/Primary状态时,检测远程主机的DRBD状态是否为Secondary/Unknown状态;
DRBD切换模块,用于当远程主机的DRBD状态不为Secondary/Unknown状态时,则进行正常DRBD切换。
7.根据权利要求6所述的DRBD脑裂的处理装置,其特征在于,所述装置还包括:
服务停止模块,用于当本次Ping网关或者第三方IP检测为失败,且上次Ping网关或者第三方IP检测结果为成功时,则停止服务,所述服务包括Heartbeat、Mysql、DRBD。
8.根据权利要求6所述的DRBD脑裂的处理装置,其特征在于,所述装置还包括:
服务启动模块,用于当本次Ping网关或者第三方IP检测为成功,且上次Ping网关或者第三方IP检测结果为失败时,则启动DRBD和Heartbeat服务。
9.根据权利要求6所述的DRBD脑裂的处理装置,其特征在于,所述DRBDP/S状态检测模块包括:
休眠单元,用于当首次检测到远程主机的DRBD状态不为Primary/Secondary或者Secondary/Primary状态时,进入休眠状态;
DRBD P/S状态检测单元,用于休眠预设时间后再次检测远程主机的DRBD状态是否为Primary/Secondary或者Secondary/Primary状态。
10.根据权利要求6所述的DRBD脑裂的处理装置,其特征在于,所述DRBD切换模块包括:
本地主机DRBD状态检测单元,用于当远程主机的DRBD状态不为Secondary/Unknown状态时,则检测本地主机的DRBD状态是否为Secondary状态;
DRBD切换单元,用于当本地主机为Secondary状态时,则进行正常DRBD切换。
CN201310464715.8A 2013-10-08 2013-10-08 一种drbd脑裂的处理方法及装置 Active CN103532748B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310464715.8A CN103532748B (zh) 2013-10-08 2013-10-08 一种drbd脑裂的处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310464715.8A CN103532748B (zh) 2013-10-08 2013-10-08 一种drbd脑裂的处理方法及装置

Publications (2)

Publication Number Publication Date
CN103532748A CN103532748A (zh) 2014-01-22
CN103532748B true CN103532748B (zh) 2017-01-25

Family

ID=49934449

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310464715.8A Active CN103532748B (zh) 2013-10-08 2013-10-08 一种drbd脑裂的处理方法及装置

Country Status (1)

Country Link
CN (1) CN103532748B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016106682A1 (zh) 2014-12-31 2016-07-07 华为技术有限公司 一种集群脑裂后仲裁处理方法、仲裁存储装置以及系统
CN105515838A (zh) * 2015-11-26 2016-04-20 青岛海信传媒网络技术有限公司 一种服务配置方法及ha集群系统
CN114138208B (zh) * 2022-02-07 2022-04-29 苏州浪潮智能科技有限公司 一种防止drbd裂脑的处理方法及相关组件

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356046B2 (en) * 2004-02-09 2008-04-08 Metretek, Inc. Method and apparatus for remotely monitoring and controlling devices
CN102932118A (zh) * 2012-11-05 2013-02-13 中国铁道科学研究院 一种双机主备裁决的方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356046B2 (en) * 2004-02-09 2008-04-08 Metretek, Inc. Method and apparatus for remotely monitoring and controlling devices
CN102932118A (zh) * 2012-11-05 2013-02-13 中国铁道科学研究院 一种双机主备裁决的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于DRBD的Linux高可用集群;巩天宁;《电脑与信息技术》;20120215;第1-2页,图1 *

Also Published As

Publication number Publication date
CN103532748A (zh) 2014-01-22

Similar Documents

Publication Publication Date Title
CN108847982B (zh) 一种分布式存储集群及其节点故障切换方法和装置
CN103744809B (zh) 基于vrrp的车辆信息管理系统双机热备方法
CN105933407B (zh) 一种实现Redis集群高可用的方法及系统
CN106789306B (zh) 通信设备软件故障检测收集恢复方法和系统
CN102394914A (zh) 集群脑裂处理方法和装置
CN112506702B (zh) 数据中心容灾方法、装置、设备及存储介质
CN107911238A (zh) 一种基于ipsan服务器双机备份方法和系统
CN108429629A (zh) 设备故障恢复方法和装置
CN109286529A (zh) 一种恢复RabbitMQ网络分区的方法及系统
CN102902615B (zh) 一种Lustre并行文件系统错误报警方法及其系统
CN103414916A (zh) 一种故障诊断系统及方法
CN103532748B (zh) 一种drbd脑裂的处理方法及装置
CN112218321B (zh) 主备链路切换方法、装置、通信设备和存储介质
CN103812697B (zh) 一种分布式通信网络的异地容灾方法和系统
CN116185697B (zh) 容器集群管理方法、装置、系统、电子设备及存储介质
JP6421516B2 (ja) サーバ装置、冗長構成サーバシステム、情報引継プログラム及び情報引継方法
CN113055203B (zh) Sdn控制平面的异常恢复方法及装置
CN110677316A (zh) 一种分布式存储服务器网卡检测方法和系统
CN115314361B (zh) 一种服务器集群管理方法及其相关组件
CN110572292B (zh) 基于单向传输链路的高可用系统及方法
CN112667449B (zh) 一种集群管理方法及装置
CN116708528B (zh) 节点间tcp长连接的监控方法及装置
CN112511356B (zh) 一种多节点集群的故障修复方法、装置、设备及介质
WO2024061219A1 (zh) 一种信息更新方法、装置、设备、存储介质及程序产品
CN118012700A (zh) 异构设备管理方法、服务端、设备及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant