掌桥专利:专业的专利平台
掌桥专利
首页

存储系统中位图同步方法、系统、装置及可读存储介质

文献发布时间:2023-06-19 13:29:16


存储系统中位图同步方法、系统、装置及可读存储介质

技术领域

本发明涉及存储系统领域,特别涉及一种存储系统中位图同步方法、系统、装置及计算机可读存储介质。

背景技术

在存储系统中,为了保证系统的稳定性,一个系统中通常是多个节点存在的。当一个节点故障的时候,系统中有些内容需要持续更新,之前故障的节点在加入集群时需要从对端节点同步内容。在典型场景(单节点故障后重新加入集群),新加入的节点会主动向对端发送申请位图的消息,而后活着的节点会批量向新加入节点发送同步数据包,直到发送完最后一个包后,同步过程完成,而后再运行系统。测试执行的命令不同、场景不同(如双控、双活)、时间不同(多节点重启时间隔长短等),会使节点运行不同的操作流程,并且后续是否还会有更多意想不到的场景,目前也无法完全预知,因此需要从另一个维度来保证位图同步的启动控制能满足所有场景。

发明内容

有鉴于此,本发明的目的在于提供一种存储系统中位图同步方法、系统、装置及计算机可读存储介质。其具体方案如下:

一种存储系统中位图同步方法,应用于第一节点,包括:

当本地位图信息为空时,从公共存储区域中获取业务运行信息,利用所述业务运行信息判断最后运行业务的节点;

若最后运行业务的节点是所述第一节点,则判断本地是否有备份的备份位图信息;

若有所述备份位图信息,则判断对端节点是否在线;

若所述对端节点在线,则利用所述备份位图信息恢复本地的位图信息,并发送恢复支持信息至所述对端节点,以帮助所述对端节点恢复位图信息;

若最后运行业务的节点不是所述第一节点,则判断对端节点是否在线;

若所述对端节点在线,则向所述对端节点发送恢复申请,以等待所述对端节点提供位图信息;

根据所述对端节点反馈的状态信息,标记自身为恢复成功状态或放弃状态。

可选的,所述若有所述备份位图信息,则判断对端节点是否在线之后,还包括:

若所述对端节点不在线,则利用所述备份位图信息恢复本地的位图信息,并标记为恢复完成状态。

可选的,所述若最后运行业务的节点是所述第一节点,则判断本地是否有备份的备份位图信息之后,还包括:

若无所述备份位图信息,则标记自身状态为放弃状态,结束位图同步。

本发明还公开了一种存储系统中位图同步方法,应用于对端节点,包括:

当接收到第一节点发送的恢复申请后,若本地未备份有可用的备份位图信息,则向所述第一节点反馈恢复失败信息,并标记自身状态为放弃状态;

当接收到所述第一节点发送的所述恢复申请后,若本地备份有可用的备份位图信息,则向所述第一节点反馈可恢复状态信息;

当接收到所述第一节点发送的恢复支持信息后,利用所述第一节点的位图信息同步本地位图信息;

当接收到所述第一节点发送的所述恢复支持信息后,已利用本地可用的备份位图信息进行位图同步,则发送拒绝支持信息至所述第一节点。

本发明还公开了一种存储系统中位图同步系统,应用于第一节点,包括:

业务节点判断模块,用于当本地位图信息为空时,从公共存储区域中获取业务运行信息,利用所述业务运行信息判断最后运行业务的节点;

备份确认模块,用于若最后运行业务的节点是所述第一节点,则判断本地是否有备份的备份位图信息;

第一对端判断模块,用于若有所述备份位图信息,则判断对端节点是否在线;

备份恢复模块,用于若所述对端节点在线,则利用所述备份位图信息恢复本地的位图信息,并发送恢复支持信息至所述对端节点,以帮助所述对端节点恢复位图信息;

第二对端判断模块,用于若最后运行业务的节点不是所述第一节点,则判断对端节点是否在线;

恢复申请发送模块,用于若所述对端节点在线,则向所述对端节点发送恢复申请,以等待所述对端节点提供位图信息;

第一状态标记模块,用于根据所述对端节点反馈的状态信息,标记自身为恢复成功状态或放弃状态。

可选的,所述若有所述备份位图信息,则判断对端节点是否在线之后,还包括:

第二状态标记模块,用于若所述对端节点不在线,则利用所述备份位图信息恢复本地的位图信息,并标记为恢复完成状态。

可选的,所述若最后运行业务的节点是所述第一节点,则判断本地是否有备份的备份位图信息之后,还包括:

第三状态标记模块,用于若无所述备份位图信息,则标记自身状态为放弃状态,结束位图同步。

本发明还公开了一种存储系统中位图同步系统,应用于对端节点,包括:

放弃模块,用于当接收到第一节点发送的恢复申请后,若本地未备份有可用的备份位图信息,则向所述第一节点反馈恢复失败信息,并标记自身状态为放弃状态;

恢复信息发送模块,用于当接收到所述第一节点发送的所述恢复申请后,若本地备份有可用的备份位图信息,则向所述第一节点反馈可恢复状态信息;

位图同步模块,用于当接收到所述第一节点发送的恢复支持信息后,利用所述第一节点的位图信息同步本地位图信息;

本地位图同步模块,用于当接收到所述第一节点发送的所述恢复支持信息后,已利用本地可用的备份位图信息进行位图同步,则发送拒绝支持信息至所述第一节点。

本发明还公开了一种存储系统中位图同步装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序以实现如前述的存储系统中位图同步方法。

本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前述的存储系统中位图同步方法。

本发明中,存储系统中位图同步方法,应用于第一节点,包括:当本地位图信息为空时,从公共存储区域中获取业务运行信息,利用业务运行信息判断最后运行业务的节点;若最后运行业务的节点是第一节点,则判断本地是否有备份的备份位图信息;若有备份位图信息,则判断对端节点是否在线;若对端节点在线,则利用备份位图信息恢复本地的位图信息,并发送恢复支持信息至对端节点,以帮助对端节点恢复位图信息;若最后运行业务的节点不是第一节点,则判断对端节点是否在线;若对端节点在线,则向对端节点发送恢复申请,以等待对端节点提供位图信息;根据对端节点反馈的状态信息,标记自身为恢复成功状态或放弃状态。

本发明公开了多种不同情况下节点对于位图信息同步的方法和逻辑,能够适用于各种位图同步场景,有效改善了位图同步逻辑,提高了同步过程的效率和可靠性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例公开的一种存储系统中位图同步方法流程示意图;

图2为本发明实施例公开的另一种存储系统中位图同步方法流程示意图;

图3为本发明实施例公开的一种位图同步方法示意图;

图4为本发明实施例公开的一种应用于对端节点的存储系统中位图同步方法流程示意图;

图5为本发明实施例公开的一种存储系统中位图同步系统结构示意图;

图6为本发明实施例公开的一种应用于对端节点的存储系统中位图同步系统结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种存储系统中位图同步方法,参见图1和图2所示,应用于第一节点,包括:

S11:当本地位图信息为空时,从公共存储区域中获取业务运行信息,利用业务运行信息判断最后运行业务的节点。

具体的,第一节点(NODE A)与对端节点(NODE B),在业务上实现互补,第一节点与对端节点在运行时,无论那个节点接管过业务都将会记录在公共存储区域中进行存储,作为业务运行信息进行保存,因此,在节点重新上线位图信息为空即IDEL状态下为了恢复最新的位图信息,需要判断那个节点最后接管业务,以便确定那个节点中保存有最新的节点信息。

S12:若最后运行业务的节点是第一节点,则判断本地是否有备份的备份位图信息。

具体的,若最后运行业务的节点是第一节点自身,那么说明第一节点中最优可能保存最新的备份位图信息,为此,判断本地是否有备份的备份位图信息,以便后续进行响应的操作。

S13:若有备份位图信息,则判断对端节点是否在线;

S14:若对端节点在线,则利用备份位图信息恢复本地的位图信息,并发送恢复支持信息至对端节点,以帮助对端节点恢复位图信息。

具体的,若本地保存有可用的备份位图信息,那么就可以利用本地的备份位图信息恢复本地的位图信息,如图2中节点执行recover,进入recover状态,同时,如果对端节点在线,也可以发送恢复支持信息(support)至对端节点,以便对端节点在需要恢复位图信息的情况下告知对端节点,帮助对端节点恢复位图信息。

S15:若最后运行业务的节点不是第一节点,则判断对端节点是否在线。

具体的,如果最后运行业务的节点不是第一节点,那么对端节点大概率保存有最新的位图信息,因此,需要判断对端节点是否在线,以便获取最新的位图信息。

S16:若对端节点在线,则向对端节点发送恢复申请,以等待对端节点提供位图信息。

具体的,如果对端节点在线,则第一节点执行disccard,进入DISCARD状态并向对端节点发送恢复申请(apply),以等待对端节点提供位图信息,如果对端节点能够提供位图信息,那么第一节点就可以根据对端节点提供的位图信息,恢复本地的位图信息,实现位图信息的同步。

S17:根据对端节点反馈的状态信息,标记自身为恢复成功状态或放弃状态。

具体的,对端节点在接收到恢复申请后,会根据自身的状态判断是否能够提供有效的位图信息,如果可以,那么第一节点就根据对端节点的位图信息进行恢复,最终恢复成功,则标记自身为恢复成功状态(通过执行disccard由DISCARD状态转变为RECOER_END状态),完成位图同步过程,如果对端节点也同样无可用的位图信息或在同步过程中因通讯线路故障或者对端节点因网络状态(丢包)未接收到恢复申请,又或对端节点还在启动或恢复中暂时无法提供位图信息,那么第一节点在一定时间未能够及时恢复或得到对端节点的相应,则标记自身为放弃状态(DISCARD_END),位图信息同步失败,其中,如果是对端节点无可用的位图信息处于DISCARD或DISCARD_END状态,则第一节点corrupt标记值true,并最终标记自身为放弃状态(DISCARD_END),如果因网络或通信故障导致位图信息同步失败,则可以标记自身状态为panic,以此来区分不同原因导致的同步失败。

可见,本发明实施例公开了多种不同情况下节点对于位图信息同步的方法和逻辑,能够适用于各种位图同步场景,有效改善了位图同步逻辑,提高了同步过程的效率和可靠性。

其中,图3中discard对应节点自身无可用位图信息,寻求其它节点帮助同步位图信息的状态,DISCARD为状态标记信息用于标记节点当前状态为自身无可用位图信息,寻求其它节点帮助同步位图信息的状态,DISCARD_END为表明节点寻求其它节点位图同步失败,已经结束位图同步的状态,recover对应节点本地存储有最新的备份位图信息,节点正在根据备份位图信息同步位图信息的过程,RECOVER用于表明节点正在利用备份位图信息进行位图信息同步过程中,RECOVER_END用于表明节点位图信息同步完成,IDEL表示节点位图信息为空。

本发明实施例公开了一种具体的存储系统中位图同步方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参见图2和图3所示,具体的:

S201:当本地位图信息为空时,从公共存储区域中获取业务运行信息,利用业务运行信息判断最后运行业务的节点;

S202:若最后运行业务的节点是第一节点,则判断本地是否有备份的备份位图信息;

S203:若无备份位图信息,则标记自身状态为放弃状态,结束位图同步。

具体的,可以理解的是,如果自身节点为最后接管业务的节点,而本地又没有备份数据,那么就可以放弃位图恢复,标记自身状态为放弃状态,结束位图同步。

S204:若有备份位图信息,则判断对端节点是否在线;

S205:若对端节点在线,则利用备份位图信息恢复本地的位图信息,并发送恢复支持信息至对端节点,以帮助对端节点恢复位图信息;

S206:若对端节点不在线,则利用备份位图信息恢复本地的位图信息,并标记为恢复完成状态。

具体的,如果对端节点不在线(即看不到对端),那么第一节点只需要负责自身的位图同步过程,因此,可以直接用备份位图信息恢复本地的位图信息后,便可以标记自身节点状态为恢复完成状态(RECOVER_END),结束位图同步过程。

S207:若最后运行业务的节点不是第一节点,则判断对端节点是否在线;

S208:若对端节点在线,则向对端节点发送恢复申请,以等待对端节点提供位图信息;

S209:若对端节点不在线,则标记自身状态为放弃状态,结束位图同步。

具体的,由于对端节点不在线,无法通过对端节点进行位图同步,且自身无备份位图信息的情况下,无法进行位图同步,只能标记自身状态为放弃状态(corrupt标记值true,状态变为DISCARD_END),结束位图同步。

S210:根据对端节点反馈的状态信息,标记自身为恢复成功状态或放弃状态。

具体的,本发明实施例的位图同步方法能够支持如下场景:1、双控或双活,单节点进入discard状态,2、双控或双活,两个节点同时进入recover状态,3、双控或双活,两个节点先后进入recover状态,4、双控或双活,两个节点同时进入discard状态,5、双控或双活,两个节点一前一后分别进入discard状态,6、双控或双活,两个节点中一个节点先进入discard状态,然后另一个节点进入recover状态,7、双控或双活,两个节点中一个节点先进入recover状态,然后另一个节点进入discard状态。

此外,如果最后运行业务的节点是对端节点,且对端节点不在线,而第一节点本地存储有备份位图信息,则第一节点为了快速恢复业务,也可以选择利用本地存储的备份位图信息进行位图同步。另外,如果最后运行业务的节点是对端节点,第一节点与对端节点几乎是同时掉线,且对端节点不在线,若第一节点本地存储有备份位图信息,则第一节点也可以选择利用本地存储的备份位图信息进行位图同步,因为,第一节点中的备份位图信息与对端节点中的备份位图信息很可能一样。

此外,本发明实施例还公开了一种存储系统中位图同步方法,参见图3和图4所示,应用于对端节点,包括:

S31:当接收到第一节点发送的恢复申请后,若本地未备份有可用的备份位图信息,则向第一节点反馈恢复失败信息,并标记自身状态为放弃状态。

具体的,当接收到第一节点的恢复申请(apply)后,对端节点需要判断自身状态,以便确定是否能够为第一节点提供帮助,如果对端节点本地也没有可用的备份位图信息,例如,处于DISCARD或DISCARD_END状态,则向第一节点反馈恢复失败信息,并标记自身状态为放弃状态,位图同步结束,两节点将无法恢复位图信息。

其中,对端节点无可用备份的状态包括DISCARD、DISCARD_END和IDLE三种状态。

S32:当接收到第一节点发送的恢复申请后,若本地备份有可用的备份位图信息,则向第一节点反馈可恢复状态信息。

具体的,如果对端节点保存有备份位图信息,那么对端节点就可以发送位图信息至第一节点,帮助第一节点恢复位图信息,同时发送可恢复状态信息至第一节点,以便第一节点根据可恢复状态信息接收位图信息。

其中,对端节点本地备份有可用的备份位图信息状态信息包括RECOVER和RECOVER_END两种状态。

S33:当接收到第一节点发送的恢复支持信息后,若本地未备份有可用的备份位图信息,则利用第一节点的位图信息同步本地位图信息。

具体的,当对端节点缺失位图信息时即处于DISCARD或DISCARD_END状态时,又接收到第一节点发送的恢复支持信息后,便可以利用第一节点的位图信息来同步本地位图信息完成同步。

S34:当接收到第一节点发送的恢复支持信息后,已利用本地可用的备份位图信息进行位图同步,则发送拒绝支持信息至第一节点。

具体的,由于有可能存在第一节点与对端节点同时下线的可能性,并且对端节点与第一节点若同时存有备份位图信息,那么两者之间的备份位图信息差距不大,因此,对端节点可以在第一节点发送恢复支持信息前,就利用本地存储的备份位图信息进行位图同步过程,因此,也就不再需要第一节点提供位图同步支持。

可见,本发明实施例公开了多种不同情况下节点对于位图信息同步的方法和逻辑,能够适用于各种位图同步场景,有效改善了位图同步逻辑,提高了同步过程的效率和可靠性。

相应的,本发明实施例还公开了一种存储系统中位图同步系统,参见图5所示,应用于第一节点,包括:

业务节点判断模块11,用于当本地位图信息为空时,从公共存储区域中获取业务运行信息,利用业务运行信息判断最后运行业务的节点;

备份确认模块12,用于若最后运行业务的节点是第一节点,则判断本地是否有备份的备份位图信息;

第一对端判断模块13,用于若有备份位图信息,则判断对端节点是否在线;

备份恢复模块14,用于若对端节点在线,则利用备份位图信息恢复本地的位图信息,并发送恢复支持信息至对端节点,以帮助对端节点恢复位图信息;

第二对端判断模块15,用于若最后运行业务的节点不是第一节点,则判断对端节点是否在线;

恢复申请发送模块16,用于若对端节点在线,则向对端节点发送恢复申请,以等待对端节点提供位图信息;

第一状态标记模块17,用于根据对端节点反馈的状态信息,标记自身为恢复成功状态或放弃状态。

可见,本发明实施例公开了多种不同情况下节点对于位图信息同步的方法和逻辑,能够适用于各种位图同步场景,有效改善了位图同步逻辑,提高了同步过程的效率和可靠性。

具体的,若有备份位图信息,则判断对端节点是否在线之后,还包括:

第二状态标记模块,用于若对端节点不在线,则利用备份位图信息恢复本地的位图信息,并标记为恢复完成状态。

具体的,若最后运行业务的节点是第一节点,则判断本地是否有备份的备份位图信息之后,还包括:

第三状态标记模块,用于若无备份位图信息,则标记自身状态为放弃状态,结束位图同步。

相应的,本发明实施例还公开了一种存储系统中位图同步系统,参见图6所示,应用于对端节点,包括:

放弃模块21,用于当接收到第一节点发送的恢复申请后,若本地未备份有可用的备份位图信息,则向第一节点反馈恢复失败信息,并标记自身状态为放弃状态;

恢复信息发送模块22,用于当接收到第一节点发送的恢复申请后,若本地备份有可用的备份位图信息,则向第一节点反馈可恢复状态信息;

位图同步模块23,用于当接收到第一节点发送的恢复支持信息后,利用第一节点的位图信息同步本地位图信息;

本地位图同步模块24,用于当接收到所述第一节点发送的所述恢复支持信息后,已利用本地可用的备份位图信息进行位图同步,则发送拒绝支持信息至所述第一节点。

可见,本发明实施例公开了多种不同情况下节点对于位图信息同步的方法和逻辑,能够适用于各种位图同步场景,有效改善了位图同步逻辑,提高了同步过程的效率和可靠性。

此外,本发明实施例还公开了一种存储系统中位图同步装置,包括:

存储器,用于存储计算机程序;

处理器,用于执行计算机程序以实现如前述的存储系统中位图同步方法。

此外,本发明实施例还公开了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如前述的存储系统中位图同步方法。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

以上对本发明所提供的技术内容进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

相关技术
  • 存储系统中位图同步方法、系统、装置及可读存储介质
  • 分布式块存储系统中数据存储方法、装置及计算机可读存储介质
技术分类

06120113693586