一种防止DRBD裂脑的处理方法及相关组件技术

技术编号:32558734 阅读:23 留言:0更新日期:2022-03-05 12:01
本申请公开了一种防止DRBD裂脑的处理方法及相关组件,该方案中,在第一节点上电后获取开机时间;从心跳盘中的第一心跳数据区域中获取最新的第一GI值和最新的第一GI值的产生时间;在判定开机时间与最新的第一GI值的产生时间的时间差大于预设时间时,判断第二心跳数据区域中是否包含最新的第一GI值和基于最新的第一GI值产生的GI值;若是,则不开启DRBD服务。本方案在第一节点开启DRBD服务前,首先通过时间差大于预设时间且第二心跳数据区域中包含最新的第一GI值和基于最新的第一GI值产生的GI值来判定心跳盘中存储的第一节点的第一GI值为旧数据,此时停止开启DRBD服务,防止旧数据导致的DRBD裂脑。旧数据导致的DRBD裂脑。旧数据导致的DRBD裂脑。

【技术实现步骤摘要】
一种防止DRBD裂脑的处理方法及相关组件


[0001]本专利技术涉及防止DRBD裂脑的
,特别是涉及一种防止DRBD裂脑的处理方法及相关组件。

技术介绍

[0002]DRBD(Distributed Replicated Block Device,分布式块设备复制)是一个开源的纯软件设计的基于网络的块复制存储解决方案,用于在服务器之间,对块设备(硬盘,分区,逻辑卷等)进行镜像。当某一个应用程序完成写操作后,DRBD不仅会将写入的数据保存在一个节点(例如本地服务器)的块设备上,也会将该数据进行复制并通过网络传输到另一个节点(例如远端服务器)的块设备上,因此两个节点的块设备上的数据将会保存一致,也就是镜像功能。
[0003]DRBD在写入数据时会通过元数据中的GI(Generation Identifier,生成标识符)值来记录写入数据的信息,在节点掉电后其GI值不再更新。当一个节点先掉电较长时间后另一个节点也掉电,如果重启先掉电的节点,其GI值相较于后掉电的节点的GI值可能为旧数据,则此时开启DRBD服务就可能导致DRBD裂脑,使数据损坏。

技术实现思路

[0004]本申请的目的是提供一种防止DRBD裂脑的处理方法及相关组件,该方案在第一节点开启DRBD服务前,首先通过时间差大于预设时间且第二心跳数据区域中包含最新的第一GI值和基于最新的第一GI值产生的GI值来判定心跳盘中存储的第一节点的第一GI值为旧数据,此时停止开启DRBD服务,防止旧数据导致的DRBD裂脑。
[0005]为解决上述技术问题,本申请提供了一种防止DRBD裂脑的处理方法,应用于第一节点,包括:在所述第一节点上电后获取开机时间;从心跳盘中的第一心跳数据区域中获取最新的第一GI值和所述最新的第一GI值的产生时间,所述心跳盘的数据格式包括第一心跳数据区域和第二心跳数据区域,所述第一心跳数据区域中存储有所述第一节点的第一GI值和所述第一GI值的产生时间,所述第二心跳数据区域中存储有第二节点的第二GI值和所述第二GI值的产生时间;在判定所述开机时间与所述最新的第一GI值的产生时间的时间差大于预设时间时,判断所述第二心跳数据区域中是否包含所述最新的第一GI值和基于所述最新的第一GI值产生的GI值;若是,则不开启DRBD服务。
[0006]优选的,所述第一心跳数据区域包括第一头部区域和N个第一数据区域,N为正整数,所述第一数据区域用于存储所述第一数据区域的编号、一个所述第一节点的第一GI值和所述第一GI值的产生时间,所述第一数据区域与所述编号一一对应;所述第一头部区域用于存储最新的所述编号;
从心跳盘中的第一心跳数据区域中获取最新的第一GI值和所述最新的第一GI值的产生时间,包括:从心跳盘中的第一心跳数据区域中的第一头部区域中获取最新的所述编号;获取与最新的所述编号对应的第一数据区域中的第一GI值和所述第一GI值的产生时间。
[0007]优选的,所述第一头部区域还用于存储所述第一节点的标识,从心跳盘中的第一心跳数据区域中获取最新的第一GI值和所述最新的第一GI值的产生时间,包括:根据所述第一节点的标识确定从心跳盘中的第一心跳数据区域中获取最新的第一GI值和所述最新的第一GI值的产生时间。
[0008]优选的,所述心跳盘的数据格式还包括元数据区域,用于存储所述心跳盘的magic、version和label。
[0009]优选的,从心跳盘中的第一心跳数据区域中获取最新的第一GI值和所述最新的第一GI值的产生时间之后,还包括:在判定所述开机时间与所述最新的第一GI值的产生时间的时间差小于预设时间时,判断所述第二心跳数据区域中是否包含所述最新的第一GI值和基于所述最新的第一GI值产生的GI值;若是,则开启DRBD服务;若否,则从所述第二心跳数据区域中获取最新的第二GI值并在判定所述第一心跳数据区域中包含所述最新的第二GI值和基于所述最新的第二GI值产生的GI值时,开启DRBD服务。
[0010]优选的,判断所述第二心跳数据区域中是否包含所述最新的第一GI值和基于所述最新的第一GI值产生的GI值之后,还包括:若否,则从所述第二心跳数据区域中获取最新的第二GI值并在判定所述第一心跳数据区域中包含所述最新的第二GI值和基于所述最新的第二GI值产生的GI值时,开启DRBD服务。
[0011]优选的,所述第一心跳数据区域包括第一头部区域和N个第一数据区域,N为正整数,所述第一数据区域用于存储所述第一数据区域的编号、一个所述第一节点的第一GI值和所述第一GI值的产生时间,所述第一数据区域与所述编号一一对应;所述第一头部区域用于存储最新的所述编号,还包括:从存储区域中获取所述第一节点的实时的第一GI值和所述实时的第一GI值的产生时间;获取所述心跳盘中的第一头部区域中最新的所述编号;获取与最新的所述编号对应的第一数据区域中的已有的第一GI值和所述已有的第一GI值的产生时间;若所述实时的第一GI值与所述已有的第一GI值相同,则将所述已有的第一GI值的产生时间更新为所述实时的第一GI值的产生时间;若所述实时的第一GI值与所述已有的第一GI值不同,则将所述心跳盘中的第一头部区域中存储的最新的所述编号进行加一得到更新后的编号;将所述更新后的编号、所述实时的第一GI值和所述实时的第一GI值的产生时间存
储至一个空白的第一数据区域中。
[0012]优选的,从存储区域中获取所述第一节点的实时的第一GI值和所述实时的第一GI值的产生时间,包括:每隔预设周期从存储区域中获取所述第一节点的实时的第一GI值和所述实时的第一GI值的产生时间。
[0013]为解决上述技术问题,本申请还提供了一种节点,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序以实现所述防止DRBD裂脑的处理方法的步骤。
[0014]为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现所述防止DRBD裂脑的处理方法的步骤。
[0015]本申请提供了一种防止DRBD裂脑的处理方法及相关组件,该方案中,在第一节点上电后获取开机时间;从心跳盘中的第一心跳数据区域中获取最新的第一GI值和最新的第一GI值的产生时间;在判定开机时间与最新的第一GI值的产生时间的时间差大于预设时间时,判断第二心跳数据区域中是否包含最新的第一GI值和基于最新的第一GI值产生的GI值;若是,则不开启DRBD服务。本方案在第一节点开启DRBD服务前,首先通过时间差大于预设时间且第二心跳数据区域中包含最新的第一GI值和基于最新的第一GI值产生的GI值来判定心跳盘中存储的第一节点的第一GI值为旧数据,此时停止开启DRBD服务,防止旧数据导致的DRBD裂脑。
附图说明
[0016]为了更清楚地说明本申请实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种防止DRBD裂脑的处理方法,其特征在于,应用于第一节点,包括:在所述第一节点上电后获取开机时间;从心跳盘中的第一心跳数据区域中获取最新的第一GI值和所述最新的第一GI值的产生时间,所述心跳盘的数据格式包括第一心跳数据区域和第二心跳数据区域,所述第一心跳数据区域中存储有所述第一节点的第一GI值和所述第一GI值的产生时间,所述第二心跳数据区域中存储有第二节点的第二GI值和所述第二GI值的产生时间;在判定所述开机时间与所述最新的第一GI值的产生时间的时间差大于预设时间时,判断所述第二心跳数据区域中是否包含所述最新的第一GI值和基于所述最新的第一GI值产生的GI值;若是,则不开启DRBD服务。2.如权利要求1所述的防止DRBD裂脑的处理方法,其特征在于,所述第一心跳数据区域包括第一头部区域和N个第一数据区域,N为正整数,所述第一数据区域用于存储所述第一数据区域的编号、一个所述第一节点的第一GI值和所述第一GI值的产生时间,所述第一数据区域与所述编号一一对应;所述第一头部区域用于存储最新的所述编号;从心跳盘中的第一心跳数据区域中获取最新的第一GI值和所述最新的第一GI值的产生时间,包括:从心跳盘中的第一心跳数据区域中的第一头部区域中获取最新的所述编号;获取与最新的所述编号对应的第一数据区域中的第一GI值和所述第一GI值的产生时间。3.如权利要求2所述的防止DRBD裂脑的处理方法,其特征在于,所述第一头部区域还用于存储所述第一节点的标识,从心跳盘中的第一心跳数据区域中获取最新的第一GI值和所述最新的第一GI值的产生时间,包括:根据所述第一节点的标识确定从心跳盘中的第一心跳数据区域中获取最新的第一GI值和所述最新的第一GI值的产生时间。4.如权利要求1所述的防止DRBD裂脑的处理方法,其特征在于,所述心跳盘的数据格式还包括元数据区域,用于存储所述心跳盘的magic、version和label。5.如权利要求1所述的防止DRBD裂脑的处理方法,其特征在于,从心跳盘中的第一心跳数据区域中获取最新的第一GI值和所述最新的第一GI值的产生时间之后,还包括:在判定所述开机时间与所述最新的第一GI值的产生时间的时间差小于预设时间时,判断所述第二心跳数据区域中是否包含所述最新的第一GI值和基于所述最新的第一GI值产生的GI值;若是,则开启DRBD服务;若否,则从所述第二...

【专利技术属性】
技术研发人员:方浩
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1