一种容灾切换的方法、节点及系统与流程

文档序号:13673548阅读:401来源:国知局

本发明涉及容灾技术领域,尤其涉及一种容灾切换的方法、节点及系统。



背景技术:

目前,为保证本地数据库系统的可靠性和安全性,主要采用主备备份策略结合数据容灾技术,其中,数据容灾技术是指在异地建立的一个数据库容灾系统,至少保存本地数据库系统的关键业务数据,可以是实时针对本地数据库系统的完全复制。在本地数据库系统或本地的关键业务数据发生灾难时,数据库容灾系统可以为本地数据库系统提供修复所需的数据。为了保证数据库容灾系统与本地数据库系统的数据一致性,需要将本地数据库系统中的数据同步到数据库容灾系统中。

数据容灾技术主要包括同步复制方式和异步复制方式,同步复制方式是将生产将数据以完全同步的方式复制到异地的数据库容灾系统,虽然同步复制方式能够确保本地数据库系统与容灾系统之间的数据完全一致,但是本地数据库系统与数据库容灾系统之间的网络延迟可能会降低本地数据库系统的性能。因此在实际部署中,为了减小网络延迟的影响,需要采用高速网络连接本地数据库系统和数据库容灾系统。但为了保证数据库容灾系统的容灾性,本地数据库系统与数据库容灾系统之间往往相距较远,会影响本地数据库系统的性能。

异步复制方式采用后台同步方式复制到异地的数据库容灾系统,不要求本地数据库系统与数据库容灾系统之间的完全的一致性。因此,这种方式并不会因为本地数据库系统与数据库容灾系统之间的网络延迟而对本地数据库系统的性能造成影响。但异步复制方式由于没有保证完全的一致性,当通过数据库容灾系统进行数据恢复时,可能由于数据的差异性而导致差异数据的丢失,特别是当本地数据库系统与数据库容灾系统之间的网络传输质量越差或者网络延迟越高时,可能的数据差异性越大。

通过以上两种同步方式,均不能在保证本地数据库系统的性能稳定的前提下,保证差异数据不丢失。



技术实现要素:

本发明提供了一种容灾切换的方法、节点及系统,能够解决现有机制中容灾切换数据丢失的问题。

第一方面提供一种容灾切换的方法,所述方法应用于容灾切换系统,所述容灾切换系统包括生产节点、容灾节点和记录节点,所述生产节点当前运行第一生产服务,所述方法包括:所述记录节点接收所述生产节点发送的第一恢复信息,所述第一恢复信息是指将所述第一生产服务恢复至所述第一生产服务的最新运行状态所需的信息;在所述记录节点检测到与所述生产节点通信连接异常时,可确定需要在所述容灾节点上对所述第一生产服务进行恢复,那么所述记录节点将第二恢复信息发送至所述容灾节点,所述第二恢复信息是指根据所述第一恢复信息得到的在所述容灾节点上恢复所述第一生产服务所需的信息,以使所述容灾节点根据所述第二恢复信息将所述第一生产服务切换到所述容灾节点。

记录节点通过接收第一恢复信息,并将第二恢复信息发送给容灾节点,使得容灾节点可以恢复第一生产服务在生产节点上的最新运行状态,实现快速的切换生产服务,保证生产服务的稳定性。此外,由于记录节点的容灾性高于生产节点,因此,存在生产节点被破坏时,纪录节点仍能正常工作的可能性,提升了数据容灾性。同时,由于记录节点与生产节点部署于同一位置,因此,无需像现有技术那样在容灾节点与生产节点之间远距离的进行相同的网络架构部署,从而只需要采用较低的网络部署成本即可保证记录节点与生产节点之间的数据传输速率,减小网络传输对于生产节点的性能或者数据一致性的影响。

现有机制的同步复制方式中,为了保证容灾系统的容灾性,将数据同步到相距较远的异地容灾系统时,会因为网络延时而降低容灾系统的性能,相较于现有机制的同步复制方式,本发明由于采用了与生产节点部署在同一位置的记录节点来同步备份第一恢复信息的特征,从而保证生产节点和记录节点之间的恢复信息的一致性,使得在后续需要对第一生产服务进行恢复时,记录节点可以为容灾节点提供第二恢复信息,使得容灾节点由于与生产节点之间的数据保持一致,从而可以在容灾节点上恢复第一生产服务的最新运行状态。相较于现有同步机制,由于生产节点只需要与记录节点之间保持一致性,而无需与容灾节点之间保持一致性,而记录节点与生产节点部署于同一位置,使得网络延时降低,从而避免同步复制方式带来的性能降低的问题;另外,现有机制的同步复制方式中,为了保证容灾系统的容灾性,需要高速网络设备实现同步数据到异地来保证数据的一致性,但会影响容灾系统的性能,而本发明中,由于采用了与生产节点部署在同一位置的记录节点来同步备份第一恢复信息以及通过记录节点为容灾节点提供第二恢复信息的特征,可以不需要高速网络设备,也能够保证生产节点与容灾节点之间数据的一致性。

现有机制中的异步复制方式中,在向异地容灾系统备份数据时,由于网络延迟会导致生产节点与容灾节点之间数据的差异性较大,而本发明由于采用了与生产节点部署在同一位置的记录节点来同步备份第一恢复信息的特征,无需考虑网络延迟就可以保证第一恢复信息的传输速率,从而保证生产节点和记录节点之间的恢复信息的一致性,使得在后续需要对第一生产服务进行恢复时,记录节点可以为容灾节点提供第二恢复信息,使得容灾节点由于与生产节点之间的数据保持一致,并且也能够保证生产节点的性能。

由此可见,本发明既能够保证生产节点的系统性能,又能够保证生产节点和容灾节点之间的差异恢复信息不丢失。

在一种实现方式中,记录节点可以为高稳定设备,由于高稳定性设备容灾性很高,不易受到破坏且容易部署,所以,若使用高稳定性设备来备份生产节点产生的恢复信息,可以进一步提高容灾性,保证生产服务的正常进行。同时,由于记录节点仅需要进行恢复信息的接收、存储和发送,而无需向生产节点或者容灾节点一样运行服务,因此,结构相对更加简单,当设计为高稳定性设备后,相对于生产节点,能够具有更高的容灾性能。

在实际应用场景中,为进一步减少容灾切换系统的数据处理量、差异数据的丢失以及同步效率,可以通过同步日志的方式来实现实时同步,并且也不会因为需要同步大量数据而影响整个容灾切换系统的系统性能。所以,所述第二恢复信息可包括至少一个第一日志,所述第一日志为所述生产节点在异常前运行所述第一生产服务时生成的,且未存储到所述容灾节点中的日志;

相应的,所述记录节点将第二恢复信息发送至所述容灾节点,可以使得所述容灾节点接收并存储所述第二恢复信息中的所述至少一个第一日志,并按照每个所述第一日志的生成顺序将启动的所述第一生产服务切换到目标运行状态,所述目标运行状态为所述至少一个第一日志中生成时间最新的第一日志对应的所述第一生产服务的运行状态。实现容灾节点根据第一日志的生成顺序就可以识别出未存储的至少一个第一日志,减少不必要的日志的接收,从而提高容灾切换效率。

为进一步加快容灾节点识别所需要备份的日志的速度,还可以在所述第二恢复信息携带第一日志的序号,由于日志的序号按照日志的生成顺序从小至大排列,所以第一日志的序号可用于所述容灾节点判断所述第一日志在所述生产节点中的生成顺序。下面针对所述记录节点将第二恢复信息发送至所述容灾节点的过程进行具体说明:

所述记录节点将所述第一日志的序号和所述第一日志发送至所述容灾节点,使得所述容灾节点将所述第一日志的序号与所述容灾节点存储的最新日志的序号进行比对,在确定所述第一日志的序号在所述最新日志的序号之后时,接收并存储所述第一日志中所述第一日志的序号之后的日志,并根据所述第一日志的序号之后的日志,将启动的所述第一生产服务切换到目标运行状态,所述目标运行状态为所述第一日志的序号之后的日志中生成时间最后的日志对应的运行状态,所述目标运行状态可能是或者不是所述第一生产服务在所述生产节点的最后运行状态。

另外,所述记录节点在接收所述生产节点发送的第一恢复信息之后,还会向所述生产节点发送与所述第一恢复信息相对应的同步响应,所述同步响应用于向所述生产节点通知所述记录节点当前存储的最新恢复信息为所述第一恢复信息。假设所述第一恢复信息包括第二日志,由于所述生产节点生成第二日志后,先将生成的第二日志发送到缓存队列中,然后将第二日志同步至记录节点,所述生产节点和所述记录节点之间同步所述第二日志时,主要采用异步传输方式或同步传输方式,从而实现生产节点和记录节点之间日志的同步备份。以下以第二日志由生产节点发送给记录节点为例,分别进行说明:

一、通过异步传输方式实现同步备份:

记录节点在接收所述生产节点发送的第二日志之后,会将标识所述第二日志的序号的同步响应发送给生产节点,不论生产节点是否有收到第二日志对应的同步响应,都会很快接收到所述生产节点发送的在所述第二日志生成时间之后的日志。

在异步传输方式中,生产节点不需要等待记录节点返回的同步响应,直接将第二日志后的日志发送给记录节点,当然,也可以将缓存队列中的第二日志发送给容灾节点。通过异步传输方式,能够提高数据备份的效率,以及提高系统的稳定性。

二、通过同步传输方式实现同步备份:

记录节点接收所述生产节点发送的第二日志之后,可以按照日志的序号顺序存储所述第一日志,并按照日志的生成顺序记录所述第二日志的序号。然后,所述记录节点向所述生产节点发送标识所述第二日志的序号的同步响应,所述同步响应用于向所述生产节点通知所述记录节点当前更新的所述第二日志,以使所述生产节点将所述第二日志发送给所述容灾节点。

之后,所述记录节点会接收到所述生产节点发送的在所述第二日志生成时间之后的日志。

在同步传输方式中,生产节点需要收到记录节点返回的同步响应后,才可以将发送到缓存队列中的第二日志发送给容灾节点,然后将缓存队列中在第二日志之后的日志发送给记录节点,循环往复。通过同步传输方式,能够保证数据不丢失,提高数据的稳定性。

此外,在生产节点将第二日志发送给容灾节点后,为了保证生产节点、容灾节点与记录节点的日志实时同步的准确性,生产节点还可以通知记录节点,以便校对当前的同步状态,。所以,在接收所述生产节点发送的第一恢复信息之后,所述记录节点还会接收到所述生产节点发送的同步确认通知消息,所述同步确认通知消息用于指示所述生产节点存储的日志与所述容灾节点存储的日志已完成同步,以及指示所述容灾节点当前存储的最新恢复信息为所述第一恢复信息。该通知消息中可包括一个用于标识第一恢复信息的字段,使得记录节点可以根据该字段对本地存储的最新恢复信息进行校对。

在有些场景中,在容灾节点端,因为某些因素导致某个生产服务的某些日志失效,故需要重新获取相应的有效的日志,以修复失效的日志,由于记录节点与生产节点同步了相关日志,所以容灾节点可以向记录节点请求获取,具体如下:

所述记录节点接收所述容灾节点发送的请求消息,所述请求消息用于请求获取待修复的日志,该请求消息可携带待修复的日志的序号,该序号可以是单个日志的序号,或者是待修复的日志中生成时间最早的日志的序号,也可以是多个序号。相应的,所述待修复的日志包括某个序号对应的日志,或者包括某个序号之后的序号对应的日志;

所述记录节点将所述待修复的日志发送给所述容灾节点,以使所述容灾节点根据所述待修复的日志修复本地存储的所述第一生产服务的日志。

在有些组网架构中,若记录节点仅仅对生产节点生成的日志做增量备份,而非做中继转发日志的角色时,若第一生产服务异常或生产节点异常时,所述记录节点会通过发送预设频率的连接请求与所述容灾节点建立通信连接,使得容灾节点根据所述连接请求启动第一生产服务,然后以便将容灾节点相对生产节点的差异日志发送给容灾节点,使得容灾节点能够重演日志,并在容灾节点恢复第一生产服务。

另外,所述连接请求还可携带所述生产节点的位置信息,该位置信息可用于系统维护人员准确的定位到所述记录节点,根据所述记录节点的位置信息即可确定配备了所述记录节点的生产节点的节点信息,减少查找时间,并且按照预设频率发送连接请求,可以提高连接请求被容灾节点接收到的概率。

所述位置信息至少用于所述容灾节点确定以下项之一:

处于异常的所述生产节点的节点信息、所述第一生产服务所属的生产节点的节点信息,或者所述第一生产服务的进程号;

其中,节点信息包括生产节点的编号和/或位置信息。

第二方面提供一种容灾切换的方法,所述方法应用于容灾切换系统,所述容灾切换系统包括生产节点、容灾节点和记录节点,所述生产节点当前运行第一生产服务,所述方法包括:

所述生产节点生成所述第一生产服务对应的第一恢复信息,所述第一恢复信息是指将所述第一生产服务恢复至所述第一生产服务的最新运行状态所需的信息;

所述生产节点将所述第一恢复信息同步至所述记录节点,以使所述记录节点以增量存储的方式存储所述第一恢复信息,并在确定需要在所述容灾节点上对所述第一生产服务进行恢复时,将第二恢复信息发送至所述容灾节点,所述第二恢复信息是指根据所述第一恢复信息得到的在所述容灾节点上恢复所述第一生产服务所需的信息,以使所述容灾节点根据所述第二恢复信息将所述第一生产服务切换到所述容灾节点。生产节点通过将恢复信息同步给记录节点,使得在异常情况下,记录节点可以将还未备份到容灾节点的恢复信息发送给容灾节点,使得第一生产服务能够在容灾节点上继续运行,从而保证生产服务正常运行,提高系统的稳定性。

为进一步减少容灾切换系统的数据处理量、差异数据的丢失以及同步效率,可以通过同步日志的方式来实现实时同步,并且也不会因为需要同步大量数据而影响整个容灾切换系统的系统性能。所以,所述第二恢复信息可包括至少一个第一日志,所述第一日志为所述生产节点在异常前运行所述第一生产服务时生成的,且未存储到所述容灾节点中的日志。

在第一恢复信息包括第二日志时,对所述生产节点将所述第二日志同步至所述记录节点的两种同步方式进行说明。

同步传输方式:所述生产节点生成第二日志,将所述第二日志发送至所述记录节点,接收到所述记录节点返回的同步响应后,执行第二日志对应的数据操作,所述同步响应用于向所述生产节点通知所述记录节点当前更新的第二日志,之后还可以将第二日志发送给所述容灾节点,以及将在所述第二日志生成时间之后的日志发送至所述记录节点。通过同步传输方式,能够保证数据不丢失,提高数据的稳定性。

在同步传输方式中,在执行第二日志对应的数据操作之后,生产节点会将第二日志发送给容灾节点,生产节点在接收到容灾节点返回的确认响应(可包括用于指示所述容灾节点当前存储的最新日志为所述第二日志)后,还可以将同步确认消息发送给记录节点,该同步确认消息可用于指示所述生产节点存储的日志与所述容灾节点存储的日志已完成同步,以及指示所述容灾节点当前存储的最新日志为所述第二日志。该同步确认消息中可包括一个用于标识第二日志序号的字段,使得记录节点可以根据该字段对本地存储的最新日志进行校对,以保证生产节点、容灾节点与记录节点的日志实时同步的准确性。

在将同步确认消息发送给记录节点后,生产节点会将在第二日志生成时间之后的日志发送至所述记录节点。

异步传输方式:所述生产节点生成第二日志,执行第二日志对应的数据操作,以及将所述第二日志发送至所述记录节点,之后还可以将在第二日志生成时间之后的日志发送至所述记录节点。通过异步传输方式,能够提高数据备份的效率,以及提高系统的稳定性。

在异步传输方式中,将所述第二日志发送至所述记录节点之后,生产节点会将第二日志发送给容灾节点,生产节点在接收到容灾节点返回的确认响应(可包括用于指示所述容灾节点当前存储的最新恢复信息为所述第一恢复信息)后,还可以将同步确认消息发送给记录节点,该同步确认消息用于指示所述生产节点存储的日志与所述容灾节点存储的日志已完成同步,以及指示所述容灾节点当前存储的最新日志为所述第二日志。该同步确认消息中可包括一个用于标识第二日志的字段,使得记录节点可以根据该字段对本地存储的最新日志进行校对,以保证生产节点、容灾节点与记录节点的日志实时同步的准确性。

在有些场景中,在容灾节点端,因为某些因素导致某个生产服务的某些日志失效,需要重新获取相应的有效的日志,以修复失效的日志,可以向生产节点获取,具体如下:

所述生产节点接收所述容灾节点发送的请求消息,所述请求消息用于请求获取待修复的日志,该请求消息可携带待修复的日志的序号,该序号可以是单个日志的序号,或者是待修复的日志中生成时间最早的日志的序号,也可以是多个序号。相应的,所述待修复的日志包括某个序号对应的日志,或者包括某个序号之后的序号对应的日志。

然后,生产节点将所述待修复的日志发送给所述容灾节点,以使所述容灾节点根据所述待修复的日志修复本地存储的所述第一生产服务的日志。通过修复日志,可以提高数据的稳定性。

第三方面提供一种容灾切换的方法,所述方法应用于容灾切换系统,所述容灾切换系统包括生产节点、容灾节点和记录节点,所述生产节点当前运行第一生产服务,所述方法包括:

所述容灾节点接收所述记录节点发送的根据所述第一恢复信息得到的第二恢复信息,根据所述第二恢复信息将所述第一生产服务切换到所述容灾节点,所述第二恢复信息包括在所述容灾节点上恢复所述第一生产服务所需的信息,所述第一恢复信息是指将所述第一生产服务恢复至所述第一生产服务的最新运行状态所需的信息。通过第二恢复信息恢复第一生产服务在生产节点上的最新运行状态,实现业务的无缝切换,保证业务的稳定性。

为进一步减少容灾切换系统的数据处理量、差异数据的丢失以及同步效率,可以通过同步日志的方式来实现实时同步,并且也不会因为需要同步大量数据而影响整个容灾切换系统的系统性能。所以,所述第二恢复信息可包括至少一个第一日志,所述第一日志为所述生产节点在异常前运行所述第一生产服务时生成的,且未存储到所述容灾节点中的日志。

相应的,所述容灾节点接收所述记录节点发送的根据所述第一恢复信息得到的第二恢复信息,根据所述第二恢复信息将所述第一生产服务切换到所述容灾节点的过程为:

所述容灾节点并存储所述恢复信息中的所述至少一个第一日志,并按照第一日志的生成顺序将启动的所述第一生产服务切换到目标运行状态,所述目标运行状态为所述至少一个第一日志中生成时间最后的第一日志对应的所述第一生产服务的运行状态。实现容灾节点根据第一日志的生成顺序就可以识别出未存储的至少一个第一日志,减少不必要的日志的接收,从而提高容灾切换效率。

具体来说,所述容灾节点接收所述第一序号和所述第一日志发送后,将所述第一序号与所述容灾节点存储的最新日志的序号进行比对;

在确定所述第一序号在所述最新日志的序号之后时,所述容灾节点获取并存储所述第一日志中所述第一序号之后的日志;

所述容灾节点根据所述第一序号之后的日志,将启动的所述第一生产服务切换到目标运行状态,所述目标运行状态为所述第一序号之后的日志中最后的日志对应的运行状态,所述目标运行状态可能是或者不是所述第一生产服务在所述生产节点的最后运行状态。通过在恢复信息中携带日志的序号,可以加快容灾节点识别所需要备份的日志的速度。

在有些场景中,在容灾节点端,可能因为某些因素导致某个生产服务的某些日志失效,故需要重新获取相应的有效的日志,以修复失效的日志,容灾节点可以向记录节点请求获取,也可以向生产节点请求获取。具体如下:

所述容灾节点将请求消息发送至所述记录节点或生产节点,所述请求消息用于请求获取待修复的日志,所述待修复的日志包括第三序号对应的日志,或者包括第四序号之后的序号对应的日志;

所述容灾节点接收所述记录节点或生产节点发送的所述待修复的日志,根据所述待修复的日志修复本地存储的所述第一生产服务的日志。

在所述生产节点异常或所述第一生产服务异常时,所述容灾节点还可以按照预设接收频率接收所述记录节点发送的连接请求,根据所述连接请求与所述记录节点建立通信连接,所述连接请求包括所述生产节点的位置信息。

为了提高接收记录节点的概率即连接请求的稳定性,可以设定与记录节点设置的预设发送频率对应的预设接收频率,使得所述容灾节点可以按照预设接收频率接收所述记录节点发送的连接请求,所述连接请求包括所述生产节点的位置信息,该位置信息可用于系统维护人员准确的定位到所述记录节点,根据所述记录节点的位置信息即可确定配备了所述记录节点的生产节点的节点信息,减少查找时间,并且按照预设频率发送连接请求,可以提高连接请求被容灾节点接收到的概率。

此外,所述容灾节点还根据所述位置信息至少确定以下项之一:

处于异常的所述第一生产节点的节点信息、所述第一生产服务所属的生产节点的节点信息,或者所述第一生产服务的进程号;其中,节点信息包括生产节点的编号和/或位置信息。

本发明第四方面提供一种记录节点,具有实现对应于上述第一方面提供的容灾切换的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。

一种可能的设计中,所述记录节点应用于容灾切换系统,所述容灾切换系统包括生产节点和容灾节点,所述生产节点当前运行第一生产服务,所述记录节点包括:

接收模块,用于接收所述生产节点发送的第一恢复信息,所述第一恢复信息是指将所述第一生产服务恢复至所述第一生产服务的最新运行状态所需的信息;

处理模块,用于确定是否需要在所述容灾节点上对所述第一生产服务进行恢复;

发送模块,用于在所述处理模块确定需要在所述容灾节点上对所述第一生产服务进行恢复时,将第二恢复信息发送至所述容灾节点,所述第二恢复信息是指根据所述第一恢复信息得到的在所述容灾节点上恢复所述第一生产服务所需的信息,以使所述容灾节点根据所述第二恢复信息将所述第一生产服务切换到所述容灾节点。

一种可能的设计中,所述记录节点应用于容灾切换系统,所述容灾切换系统包括生产节点和容灾节点,所述生产节点、所述记录节点以及所述容灾节点三者互相通信连接,所述生产节点当前运行第一生产服务,所述记录节点包括:

至少一个处理器、存储器、接收器和发射器;

其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中的程序代码来执行以下操作:

通过所述接收器接收所述生产节点发送的第一恢复信息,所述第一恢复信息是指将所述第一生产服务恢复至所述第一生产服务的最新运行状态所需的信息;

确定是否需要在所述容灾节点上对所述第一生产服务进行恢复;

在确定需要在所述容灾节点上对所述第一生产服务进行恢复时,通过所述发射器将第二恢复信息发送至所述容灾节点,所述第二恢复信息是指根据所述第一恢复信息得到的在所述容灾节点上恢复所述第一生产服务所需的信息,以使所述容灾节点根据所述第二恢复信息将所述第一生产服务切换到所述容灾节点。

本发明第五方面提供一种生产节点,具有实现对应于上述第二方面提供的容灾切换的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。

一种可能的设计中,所述生产节点应用于容灾切换系统,所述容灾切换系统还包括记录节点以及所述容灾节点,所述生产节点当前运行第一生产服务,所述生产节点包括:

处理模块,用于生成所述第一生产服务对应的第一恢复信息,所述第一恢复信息是指将所述第一生产服务恢复至所述第一生产服务的最新运行状态所需的信息;

发送模块,用于将所述处理模块生成的所述第一恢复信息同步至所述记录节点,以使所述记录节点在确定需要在所述容灾节点上对所述第一生产服务进行恢复时,将第二恢复信息发送至所述容灾节点,所述第二恢复信息是指根据所述第一恢复信息得到的在所述容灾节点上恢复所述第一生产服务所需的信息,以使所述容灾节点根据所述第二恢复信息将所述第一生产服务切换到所述容灾节点。

一种可能的设计中,所述容灾节点包括:

至少一个处理器、存储器、接收器和发射器;

其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中的程序代码来执行以下操作:

生成所述第一生产服务对应的第一恢复信息,所述第一恢复信息是指将所述第一生产服务恢复至所述第一生产服务的最新运行状态所需的信息;

通过所述发射器将生成的所述第一恢复信息同步至所述记录节点,以使所述记录节点在确定需要在所述容灾节点上对所述第一生产服务进行恢复时,将第二恢复信息发送至所述容灾节点,所述第二恢复信息是指根据所述第一恢复信息得到的在所述容灾节点上恢复所述第一生产服务所需的信息,以使所述容灾节点根据所述第二恢复信息将所述第一生产服务切换到所述容灾节点。

本发明第六方面提供一种容灾节点,具有实现对应于上述第三方面提供的容灾切换的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。

一种可能的设计中,所述容灾节点应用于容灾切换系统,所述容灾切换系统还包括生产节点和记录节点,所述生产节点当前运行第一生产服务,所述容灾节点包括:

接收模块,用于接收所述记录节点发送的根据所述第一恢复信息得到的第二恢复信息,所述第二恢复信息包括在所述容灾节点上恢复所述第一生产服务所需的信息,所述第一恢复信息是指将所述第一生产服务恢复至所述第一生产服务的最新运行状态所需的信息;

处理模块,用于根据所述接收模块接收到的所述第二恢复信息将所述第一生产服务切换到所述容灾节点。

一种可能的设计中,所述容灾节点包括:

至少一个处理器、存储器、接收器和发射器;

其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器中的程序代码来执行以下操作:

通过所述接收器接收所述记录节点发送的根据所述第一恢复信息得到的第二恢复信息,所述第二恢复信息包括在所述容灾节点上恢复所述第一生产服务所需的信息,所述第一恢复信息是指将所述第一生产服务恢复至所述第一生产服务的最新运行状态所需的信息;

根据所述接收器接收到的所述第二恢复信息将所述第一生产服务切换到所述容灾节点。

本发明第七方面提供一种容灾切换系统,具有实现上述容灾切换的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块,所述模块可以是软件和/或硬件。所述容灾切换系统包括:

第四方面所述的记录节点、第五方面所述的生产节点、和第六方面所述的容灾节点。

相较于现有技术,本发明提供的方案中,记录节点接收所述生产节点发送的能将所述第一生产服务恢复至所述第一生产服务的最新运行状态所需的信息的第一恢复信息,在确定需要在所述容灾节点上对所述第一生产服务进行恢复时,所述记录节点将根据所述第一恢复信息得到的第二恢复信息发送至所述容灾节点,使得所述容灾节点根据所述第二恢复信息将所述第一生产服务切换到所述容灾节点,恢复到生产节点灾难前的数据时间点,从而实现业务的无缝切换,保证业务正常进行,提高生产服务的稳定性,有效避免生产节点突发灾难时的数据丢失。

附图说明

图1为本实施例中容灾切换系统的一种组网结构示意图;

图2为本实施例中容灾切换系统的另一种组网结构示意图;

图3为本实施例中容灾切换的方法的一种信令交互示意图;

图4为本实施例中容灾切换的方法的一种实施例示意图;

图5为本实施例中容灾切换的方法的另一种实施例示意图;

图6为本实施例中容灾切换的方法的另一种实施例示意图;

图7为本实施例中记录节点的一种结构示意图;

图8为本实施例中生产节点的一种结构示意图;

图9为本实施例中容灾节点的一种结构示意图;

图10为本实施例中容灾切换系统的一种结构示意图;

图11为本实施例中执行容灾切换的方法的实体装置的结构示意图。

具体实施方式

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

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本文中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本文中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本发明实施例方案的目的。

本发明实施例提供了一种容灾切换的方法、节点及系统,用于容灾处理技术领域,能够解决现有机制中容灾切换数据丢失的问题。以下进行详细说明。

本发明实施例中的容灾切换系统包括生产节点、容灾节点和记录节点,所述生产节点与所述记录节点通信连接。

在本发明实施例中,生产节点可以是局域网的办公设备,服务器,控制设备,生产线上的测试设备等,容灾节点可以是对生产节点进行数据级容灾、应用级容灾以及业务级容灾的异地备份设备。

所述生产节点可运行至少一个生产服务,生产节点包括生产主节点和生产备节点,所述生产主节点与所述生产备节点通信连接,所述生产节点与所述记录节点通信连接主要有以下两种方式:

a、所述生产主节点与所述记录节点通信连接,例如图1所示的组网方式,该种组网方式将记录节点放置在生产主节点侧,生产主节点和记录节点可直接进行交互,该种组网方式不会引起差异日志或差异数据的丢失,能够保证差异日志或差异数据的完整,适合生产服务压力不大,对于数据可靠性要求较高的场景。

b、所述生产备节点与所述记录节点通信连接,例如图2所示的组网方式,该种组网方式将记录节点放置在生产备节点侧,使得记录节点和生产备节点可直接进行交互,从而对生产备节点的日志和/或数据进行备份,这种组网方式不影响生产主节点的性能,但是记录节点无法备份生产主节点和生产备节点之间的差异日志和/或差异数据,适合于生产服务压力比较大,且生产主节点与生产备份节点相距较近的场景。

基于上述a和b两种组网方式,可以根据实际应用场景需要来选择,当然也可能存在其他基于本发明的组网方式的变型,具体的组网方式本发明不作限定。

容灾节点用于对生产节点生成的日志、生产服务的数据等进行异地备份,在生产节点异常或生产服务异常时,切换到异常前的生产服务,实现业务的无缝衔接。其中,所述容灾节点包括数据差异组件和容灾组件,容灾组件为为所述生产节点在异地备份的节点,主要用于对生产节点的数据进行备份,在生产节点异常时,将生产节点的生产服务切换过来,保证服务正常进行。

数据差异组件主要用于在生产节点异常时,实现与部署在生产节点侧的记录节点之间的交互,从记录节点处获取需要的修复信息,然后根据修复信息在容灾组件端重演差异日志,使得容灾组件可以将生产节点的生产服务切换到容灾组件来,保证生产服务的持续性和稳定性。

记录节点是指能够对与其通信连接的设备的产生的数据进行记录的一种记录设备,记录节点通过与生产主节点通信连接,或与生产备节点通信连接,实现对生产节点产生的日志进行实时备份,从而保证生产节点与容灾节点之间的差异日志的完整性。

本发明实施例中,生产节点和记录节点部署在同一位置,以保证记录节点与生产节点之间能够实现低延迟的通信。“同一位置”在本发明实施例中是一个相对概念,是指生产节点与记录节点所部署的位置距离相对于生产节点与容灾节点之间的距离而言可以比较微小,从而使得在同样的网络条件下,生产节点与记录节点之间的网络传输成本大大低于生产节点与容灾节点之间的网络传输成本。因此,在生产节点与记录节点之间,相较于生产节点与容灾节点之间,能够建立起低成本、低损耗和低延时网络连接。例如,同一位置可以指记录节点与生产节点部署在同一个机柜内,两者可以通过pcie或者光缆进行高速连接;或者同一位置也可以指记录节点与生产节点位于同一机房内,生产节点所在的机柜引出一个接口,通过线缆或光模块等方式与记录节点高速连接;在一些场景下,同一位置也可以指生产节点与记录节点分别位于同一建筑的相邻或者相近机房中,生产节点与记录节点通过高速有线或无线方式,例如线缆或光模块或者wlan网络进行通信连接。实现记录节点与生产节点之间通信的具体方式或者协议本发明不作限定,能够实现记录节点与生产节点之间进行低延迟通信即可。记录节点与生产节点部署于同一位置,当发生灾难性事件时,往往会同时作用于记录节点和生产节点。而记录节点相比与生产节点是容灾性更高的设备,不易因为灾难性事件而损坏,所以在生产节点异常或生产服务异常时,记录节点可以继续工作,并将差异日志发送给容灾节点,使得容灾节点的日志完整,即保证生产节点与容灾节点的日志的差异减小到最小。

另外,由于记录节点只需要完成恢复信息的接收、存储和发送,而不需要单独运行生产服务,因此记录节点的硬件结构相对于生产节点和容灾节点而言大大简化,可以将记录节点设计成集成度较高、体积较小、便于部署的设备。

可以选择高稳定性记录设备作为本发明中的记录节点,高稳定性记录设备是类似于航空运输中的飞行数据记录仪的一种设备,具有极强的耐冲击振动、抗火、耐压、耐海水浸泡和电磁辐射等功能,一定程度上,可以认为该种设备对于数据的保护是绝对的,不会由于战争、自然灾害等因素而遭受损坏。因此,当记录节点设计为高稳定性设备后,相对于生产节点,能够具有更高的容灾性能。

对于高稳定性记录设备,可配置无线收发装置,当发生灾难时,可以通过无线网络获取其全部数据,极端情况下比如网络瘫痪,可能无法获取数据。因此根据具体情况和可靠性要求可搭载gps定位,在尝试和外源通信前持续发送gps坐标,通过外源组件接收到信号后,可以确定其坐标位置,便于救援人员定位查找。另外,由于记录节点的集成度较高,体积不大,所以即使记录节点遭受损坏,相较于现有机制中容灾切换系统中的设备,是不需要使用大量的人力和物力即可实现回收记录节点。

如果对于高稳定性设备的可靠性仍然存在怀疑,还可考虑高稳定性设备本身的同城灾备,在极端场景下,一个高稳定性设备损坏还可通过另外恢复。

为解决上述技术问题,本发明实施例主要提供以下技术方案:

1、生产节点将生成的日志发送给记录节点保存,以便后续作为恢复信息弥补生产节点与容灾节点之间的差异日志。

2、在确定生产节点异常或生产服务异常时,记录节点将生产服务对应的恢复信息发送至容灾节点,容灾节点根据该恢复信息切换到对应的生产服务。

以上技术方案中,结合重演日志的序号时间点的机制,可以弥补生产节点和容灾节点由于异步同步时延的数据丢失,保证发生灾难时可以通过记录节点恢复差异数据,使得容灾节点可恢复到生产节点灾难前的数据时间点,实现切换的无缝续接,使得rpo趋近于0,有效避免生产节点突发灾难时的数据丢失。

在本发明实施例中,容灾节点的数据恢复是通过恢复信息来实现的。具体而言,容灾节点中运行生产服务,并在需要进行恢复时,通过恢复信息,将容灾节点中的生产服务恢复到生产节点中所运行的生产服务的最新运行状态,从而接替生产节点运行恢复后的生产服务。结合现有技术,恢复信息可以通过多种现有技术实现,例如,通过增量备份的方式,将增量数据作为恢复信息,当进行数据恢复时,根据原始数据和增量数据,即可对生成服务进行恢复;还可以通过日志的方式,将生产节点运行生产服务时所产生的日志作为恢复信息,当进行数据恢复时,容灾节点根据相应的日志对生产服务进行数据操作,从而恢复生产服务。为了方便说明,在后文中本发明实施例均采用日志的方式作为恢复信息,但可以理解的,本领域技术人员也可以参考这些实施例,采用现有技术中的其他方式作为恢复信息,而达到本发明的发明目的。

请参照图3,基于图1和图2的两种组网方式,以下对本发明提供一种容灾切换的方法进行举例说明,预先在生产节点、记录节点和容灾节点部署集群管理监控器,通过该集群管理监控器可以实现对整个集群内的节点、节点上运行的服务进行监控,例如可以检测节点和/或服务是否异常。其中,集群管理监控器可以是部署在生产节点、记录节点和容灾节点上的监控应用。本发明实施例可应用于容灾切换系统,所述容灾切换系统包括生产节点、容灾节点和记录节点,根据生产节点、容灾节点和记录节点三者的组网方式的不同,生产节点可以直接将生成的日志发送给容灾节点实现备份(所述生产节点、所述记录节点以及所述容灾节点三者可互相通信连接),也可以通过记录节点转发给容灾节点(所述生产节点与所述容灾节点可以通信或不通信)。所述生产节点当前运行第一生产服务,所述方法包括:

101、所述生产节点将第一恢复信息发送至所述记录节点。

其中,所述第一恢复信息为将所述第一生产服务恢复至所述第一生产服务的最新运行状态所需的信息。第一恢复信息可包括日志或事件等能够记录第一生产服务运行时的进程实例信息,可以是以快照的形式生成,具体第一恢复信息的类型和记录方式本发明不作限定。

102、所述记录节点接收所述生产节点发送的第一恢复信息。

上述步骤101和步骤102为生产节点和记录节点之间对第一恢复信息的同步过程,同步过程可以采用异步传输方式(可参考图4对应的实施例)或同步传输方式(可参考图5所对应的实施例)实现。

103、在确定需要在所述容灾节点上对所述第一生产服务进行恢复时,所述记录节点将第二恢复信息发送至所述容灾节点。

其中,所述第二恢复信息为根据所述第一恢复信息得到的在所述容灾节点上恢复所述第一生产服务所需的信息。第二恢复信息可以是通过将多个第一恢复信息打包、变形等方式得到,具体方式和信息的类型本发明不作限定。

判断是否需要在所述容灾节点上对所述第一生产服务进行恢复,可以是通过部署的监控应用监测得到,例如监测到生产节点异常或第一生产服务异常等情况,也可以是生产服务主动请求(可能因为监测到当前负荷较重或预警等情况)在容灾节点上恢复第一生产服务,或者可以是与生产节点通信断开。

可选的,若记录节点仅仅对生产节点生成的日志做增量备份,而非做中继转发日志的角色时,若第一生产服务异常或生产节点异常时,所述记录节点还会通过发送连接请求与所述容灾节点建立通信连接,使得容灾节点根据所述连接请求启动第一生产服务,然后记录节点将容灾节点相对生产节点的差异日志发送给容灾节点,使得容灾节点能够重演日志,并在容灾节点恢复第一生产服务。可以理解为:在确定需要在所述容灾节点上对所述第一生产服务进行恢复时,所述记录节点可以自动转化为信号收发器,可以向外界发送信号。

可选的,为提高连接请求被容灾节点接收到的概率,记录节点还可以按照预设发送频率发送连接请求。其次,为减少维护人员定位到异常的生产节点,该连接请求还可包括所述生产节点的位置信息,其中,所述位置信息至少用于所述容灾节点确定以下项之一:

处于异常的所述生产节点的节点信息、所述第一生产服务所属的生产节点的节点信息,或者所述第一生产服务的进程号;

其中,节点信息包括生产节点的编号和/或位置信息。

通过所述生产节点的位置信息,系统维护人员可以准确的定位到所述记录节点,根据所述记录节点的位置信息即可确定配备了所述记录节点的生产节点的节点信息,提高查找效率,相应的,能够对定位到的生产节点进行维修、调整等操作,保证生产服务正常运行,避免生产服务中断。

另外,容灾节点启动第一生产服务,可以先不接入第一生产服务的业务,待后续根据步骤104中接收到的第二恢复信息恢复第一生产服务后接入第一生产服务的业务。

在实际应用场景中,为进一步减少容灾切换系统的数据处理量、差异数据的丢失以及同步效率,可以通过同步日志的方式来实现实时同步,并且也不会因为需要同步大量数据而影响整个容灾切换系统的系统性能。所以,所述第二恢复信息可包括至少一个第一日志,所述第一日志为所述生产节点在异常前运行所述第一生产服务时生成的,且未存储到所述容灾节点中的日志。

另外,为加快容灾节点识别所需要备份的日志的速度,还可以在所述第二恢复信息中携带与所述第一日志对应的第一序号,所述第一序号可用于判断所述第一日志在所述生产节点中的生成顺序。日志的序号一般按照日志的生成顺序从小至大排列,例如第一生产服务的日志包括:日志1、日志2、日志3、…日志n,日志1、日志2、日志3、…日志n的生成时间从左至右,按照从小至大排列。

可以理解的是,第一日志可以是指记录节点存储的第一生产服务的日志集合,相应的,第一序号则是日志集合对应的序号集合;也可以是日志集合中的任意日志,相应的,第一序号则是任意日志对应的序号。即记录节点可以一次性将序号集合和日志集合发送给容灾节点,也可以按照日志的序号顺序,每次发送一个序号和该序号对应的日志给容灾节点。具体的日志和日志对应的序号发送的顺序本发明实施例不作限定,原则上按照日志的序号顺序发送序号和对应的日志,以便容灾节点按照顺序比对。

举例来说,所述记录节点按照日志的序号顺序,先将日志1和日志1的序号发送至容灾节点,再将日志2和日志2的序号发送至容灾节点,…最后将日志n和日志n的序号发送至容灾节点。又举例来说,所述记录节点将日志1、日志2、日志3、…日志n,以及日志1的序号、日志2的序号、…日志n的序号发送至容灾节点。

104、所述容灾节点接收所述记录节点发送的所述第二恢复信息,根据所述第二恢复信息将所述第一生产服务切换到所述容灾节点。

其中,根据所述第二恢复信息将所述第一生产服务切换到所述容灾节点,表明容灾节点已在容灾节点端恢复与生产节点之间的差异日志,因此,所述容灾节点可以接入第一生产服务的业务,从而实现业务的无缝切换,保证业务正常进行,提高生产服务的稳定性。

现有机制的同步复制方式中,为了保证容灾系统的容灾性,将数据同步到相距较远的异地容灾系统时,会因为网络延时而降低容灾系统的性能,相较于现有机制的同步复制方式,本发明由于采用了与生产节点部署在同一位置的记录节点来同步备份第一恢复信息的特征,从而保证生产节点和记录节点之间的恢复信息的一致性,使得在后续需要对第一生产服务进行恢复时,记录节点可以为容灾节点提供第二恢复信息,使得容灾节点由于与生产节点之间的数据保持一致,从而可以在容灾节点上恢复第一生产服务的最新运行状态。相较于现有同步机制,由于生产节点只需要与记录节点之间保持一致性,而无需与容灾节点之间保持一致性,而记录节点与生产节点部署于同一位置,使得网络延时降低,从而避免同步复制方式带来的性能降低的问题;另外,现有机制的同步复制方式中,为了保证容灾系统的容灾性,需要高速网络设备实现同步数据到异地来保证数据的一致性,但会影响容灾系统的性能,而本发明中,由于采用了与生产节点部署在同一位置的记录节点来同步备份第一恢复信息以及通过记录节点为容灾节点提供第二恢复信息的特征,可以不需要高速网络设备,也能够保证生产节点与容灾节点之间数据的一致性。

现有机制中的异步复制方式中,在向异地容灾系统备份数据时,由于网络延迟会导致生产节点与容灾节点之间数据的差异性较大,而本发明由于采用了与生产节点部署在同一位置的记录节点来同步备份第一恢复信息的特征,无需考虑网络延迟就可以保证第一恢复信息的传输速率,从而保证生产节点和记录节点之间的恢复信息的一致性,使得在后续需要对第一生产服务进行恢复时,记录节点可以为容灾节点提供第二恢复信息,使得容灾节点由于与生产节点之间的数据保持一致,并且也能够保证生产节点的性能。

由此可见,本发明既能够保证生产节点的系统性能,又能够保证生产节点和容灾节点之间的差异恢复信息不丢失,能够在容灾节点端将第一生产服务恢复到生产节点灾难前的数据时间点,从而实现业务的无缝切换,保证业务正常进行,提高生产服务的稳定性,有效避免生产节点突发灾难时的数据丢失。

可选的,在一些发明实施例中,在第二恢复信息包括至少一个第一日志时,容灾节点可以通过比对日志的生成顺序来识别出与生产节点之间的差异日志。所述容灾节点接收所述记录节点发送的第二恢复信息,根据所述第二恢复信息将第一生产服务切换到所述容灾节点的过程如下:

所述记录节点将第二恢复信息发送至所述容灾节点,以使所述容灾节点接收并存储所述第二恢复信息中的所述至少一个第一日志,然后按照第一日志的生成顺序将启动的所述第一生产服务切换到目标运行状态,所述目标运行状态为所述至少一个第一日志中生成时间最后的第一日志对应的所述第一生产服务的运行状态。实现容灾节点根据第一日志的生成顺序就可以快速识别出未存储的至少一个第一日志,减少不必要的日志的接收,从而提高容灾切换效率。

具体来说,所述容灾节点接收并存储所述第二恢复信息中的所述至少一个第一日志的过程如下:

所述容灾节点接收到所述第一序号和所述第一日志发送后,根据第一序号判断所述第一日志在所述生产节点中的生成顺序,然后将所述第一序号与所述容灾节点存储的最新日志的序号进行比对,可通过按照序号的编码规则,例如比对序号的大小来判断生成顺序的先后。

在确定所述第一序号在所述最新日志的序号之后时,所述容灾节点获取并存储所述第一日志中所述第一序号之后的日志。可以理解的是,在所述第一序号在所述最新日志的序号之前,表明所述容灾节点已经同步过所述第一序号对应的日志;或者在所述第一序号与所述最新日志的序号相同时,所述容灾节点已经同步过所述第一序号之前的日志。

所述容灾节点根据所述第一序号之后的日志,将启动的所述第一生产服务切换到目标运行状态,所述目标运行状态为所述第一序号之后的日志中最后的日志对应的运行状态,所述目标运行状态可能是或者不是所述第一生产服务在所述生产节点的最后运行状态。

通过比对日志的序号,可以只接收第一序号之后的日志,实现仅接收容灾节点与生产节点之间的差异日志,无需接收已同步过的日志以及识别差异日志,从而减少接收第一生产服务的所有日志之后,还要做差异日志的识别所增加容灾切换的时延。另外,也可以实现切换业务的无缝续接,保证第一生产服务不中断。

在一些应用场景中,由于所述容灾节点包括数据差异组件和容灾组件,则,整个容灾切换流程如下:

所述容灾节点中的所述数据差异组件接收所述记录节点发送的所述第一序号和所述第一日志;

所述容灾节点中的所述数据差异组件将所述第一序号与所述容灾节点存储的最新日志的序号进行比对;

在确定所述第一序号在所述最新日志的序号之后时,所述容灾节点中的所述数据差异组件获取并存储所述第一日志中所述第一序号之后的日志,将所述第一序号之后的日志保存至所述容灾组件的缓存;

所述容灾节点中的所述容灾组件根据所述第一序号之后的日志,将启动的所述第一生产服务切换到目标运行状态,所述目标运行状态为所述第一序号之后的日志中最后的日志对应的运行状态,所述目标运行状态可能是或者不是所述第一生产服务在所述生产节点的最后运行状态。

下面以记录节点按照日志的序号顺序,依次发送一个序号和一个日志为例,如图4所示,记录节点本地存储的第一生产服务的日志包括:日志1、日志2、…日志7,日志1、日志2、…日志7的生成时间从左至右,从小至大排列,日志的序号依次为1、2、3、…7。容灾组件本地存储的第一生产服务的日志包括:日志1、日志2、及日志3,日志的序号依次为1、2及3。

记录节点先将日志1和序号1发送至数据差异组件,数据差异组件将接收到的序号1与数据差异组件本地记录的序号1、2及3进行比对,数据差异组件本地记录的序号1与该序号1相同,序号2及序号3均在序号1之后,则表明该序号1对应的日志1已在数据差异组件备份过,故数据差异组件丢弃记录节点发送的日志1,同理,记录节点将日志2和序号2发送至数据差异组件,通过比对,丢弃日志2;通过比对,数据差异组件本地记录的序号3与该序号3相同,同样丢弃日志3;通过比对,接收到的序号4在数据差异组件本地记录的序号3之后,则表明数据差异组件未备份序号4对应的日志4,则可以以序号3为开始接收点,接收序号3之后的所有序号对应的日志,即数据差异组件接收日志4、日志5、日志6及日志7,接收完成后,在容灾组件以增量存储的方式存储日志4、日志5、日志6及日志7。

可选的,在一些发明实施例中,在生产节点正常运行或第一生产服务正常运行时,运行在生产节点的第一生产服务会产生相应的操作数据,生产节点会以日志的形式将操作数据记录下来,然后将记录的日志发给记录节点和容灾节点,从而实现同步备份。对于生产节点和记录节点之间日志的同步备份主要分异步传输方式和同步传输方式,以下以第一恢复信息包括第二日志为例,分别对异步传输方式实现同步备份和同步传输方式实现同步备份分别进行说明:

一、异步传输方式实现同步备份

所述生产节点生成第二日志,执行第二日志对应的数据操作,以及将所述第二日志发送至所述记录节点,之后还可以将在第二日志生成时间之后的日志发送至所述记录节点。相应的,记录节点在接收所述生产节点发送的第二日志之后,很快会接收到所述生产节点发送的在所述第一日志生成时间之后的恢复信息。通过异步传输方式,能够提高数据备份的效率,以及提高系统的稳定性。

在异步传输方式中,生产节点并不需要等待记录节点返回的同步响应,即可直接将发送到缓存队列中的第二日志发送给容灾节点,以及将第二日志后的日志发送给记录节点。需要说明的是,本发明实施例中的第二日志是指通过同步备份实时同步到容灾节点中的日志,与第一日志不同。

如图5所示,生产节点生成第二日志后,存储到本地,然后将第二日志发送给记录节点,同步备份流程如下:

301、所述生产节点在所述第一生产服务进行事务操作时产生第二日志,并保存所述第二日志对应的操作数据(或者理解为执行第二日志对应的数据操作,例如持久化操作)。

302、所述生产节点将所述第二日志发送给所述记录节点。

303、所述记录节点接收到所述生产节点发送的运行所述第一生产服务时产生的第二日志后,按照日志的序号顺序存储所述第二日志,并将存储的所述第二日志的序号记录为第二序号。

304、所述记录节点将携带所述第二序号的同步响应发送至所述生产节点。

其中,所述同步响应用于指示所述记录节点当前存储的第一生产服务的日志的最新序号已更新为所述第二序号,即针对生产节点的同步响应。

305、所述生产节点接收到所述记录节点发送的所述同步响应后,将所述第二日志和第二序号发送给所述容灾节点。

可以理解的是,不论生产节点是否收到该同步响应,都可以继续执行步骤305中将第二日志和第二序号发送给所述容灾节点的操作,以及继续执行步骤302中发送日志给记录节点的操作,只是,后续发送的日志都为第二日志生成时间之后的日志。步骤301和305中的操作的时序本发明不作限定。

306、所述容灾节点接收所述生产节点发送的第二日志。

307、所述容灾节点发送携带第二序号的确认响应至所述生产节点。

308、所述生产节点将同步确认消息发送至所述记录节点,用于通知容灾节点已完成第二日志的异地备份,该同步确认消息还可包括第二序号,用于指示所述容灾节点当前存储的最新日志为第二日志。该通知消息中可包括一个用于标识第二序号的字段,使得记录节点可以根据该字段对本地存储的最新日志进行校对,以保证生产节点、容灾节点与记录节点的日志实时同步的准确性。

309、所述记录节点接收到生产节点发送的同步确认消息后,继续接收生产节点发送的新日志。

同步骤305中的叙述,记录节点并不需要去等待该同步确认消息,即可连续的接收生产节点发送的新日志。

二、同步传输方式实现同步备份

记录节点接收所述生产节点发送的第二日志之后,所述记录节点向所述生产节点发送同步响应,所述同步响应用于向所述生产节点通知所述记录节点当前更新的所述第二日志,生产节点接收到记录节点返回的同步响应后,执行第二日志对应的数据操作,并将所述第二日志发送给所述容灾节点。之后,所述记录节点会接收到所述生产节点发送的在所述第一恢复信息生成时间之后的恢复信息。

可见,在同步传输方式中,生产节点需要收到记录节点返回的同步响应后,才可以将发送到缓存队列中的第二日志发送给容灾节点,然后将缓存队列中在第二日志之后的日志发送给记录节点,循环往复,通过同步传输方式,能够保证数据不丢失,提高数据的稳定性。

如图6所示,同步备份流程如下:

401、所述生产节点在所述第一生产服务进行事务操作时产生第二日志。

402、所述生产节点将所述第二日志发送给所述记录节点。

403、所述记录节点接收并存储所述生产节点发送的第二日志。

第二日志为所述生产节点在运行所述第一生产服务时产生的日志,记录节点可以按照日志的序号顺序存储所述第二日志,并将存储的所述第二日志的序号记录为第二序号。

404、所述记录节点将携带所述第二序号的同步响应发送至所述生产节点。

405、所述生产节点保存所述第二序号对应的操作数据(或者理解为执行第二日志对应的数据操作,例如持久化操作),并将所述第二日志和所述第二序号发送给所述容灾节点。

406、所述容灾节点接收所述生产节点发送的第二日志。

407、所述容灾节点发送携带第二序号的确认响应至所述生产节点。

在完成上述步骤401-405之后,生产节点才可以继续将缓存队列中第二序号后的日志发送给记录节点。

在上述图5和图6所对应的实施例中,所述记录节点将所述第二序号发送至所述生产节点之后,所述生产节点还可以向所述记录节点发送通知消息,所述通知消息用于指示所述生产节点存储的日志与所述容灾节点存储的日志已完成同步,便于记录节点校对同步信息。每次通过记录节点完成同步备份后,可以将记录节点存储的日志删除,记录节点对日志采用循环写的方式,从而可以保证生产节点和容灾节点之间的差异日志不丢失。

可选的,在一些发明实施例中,在实际应用场景中,虽然容灾节点通过同步备份可实现日志的重演,但可能因为某些因素导致某个生产服务的某些日志失效,故需要重新获取相应的有效的日志,以修复失效的日志,容灾节点可以向记录节点请求获取,也可以向生产节点请求获取。具体过程如下:

所述容灾节点向所述记录节点或生产节点发送请求消息,以请求获取待修复的日志,该请求消息可携带待修复的日志的序号,该序号可以是单个日志的序号,或者是待修复的日志中生成时间最早的日志的序号,也可以是多个序号。相应的,所述待修复的日志包括某个序号对应的日志,或者包括某个序号之后的序号对应的日志。

所述记录节点在接收到所述容灾节点或生产节点发送的请求消息后,将所述待修复的日志发送给所述容灾节点,以使所述容灾节点根据所述待修复的日志修复本地存储的所述第一生产服务的日志,即在本地重演日志。

以上对本发明中一种容灾切换的方法进行说明,以下对执行上述容灾切换的记录节点、生产节点、容灾节点及容灾切换系统分别进行描述,所述容灾切换系统包括生产节点、容灾节点和记录节点,所述生产节点当前运行第一生产服务。

一、参照图7,对记录节点70进行说明,记录节点70包括:

接收模块701,用于接收所述生产节点发送的第一恢复信息,所述第一恢复信息是指将所述第一生产服务恢复至所述第一生产服务的最新运行状态所需的信息。

处理模块702,用于确定是否需要在所述容灾节点上对所述第一生产服务进行恢复。

发送模块703,用于在所述处理模块702确定需要在所述容灾节点上对所述第一生产服务进行恢复时,将第二恢复信息发送至所述容灾节点,所述第二恢复信息是指根据所述第一恢复信息得到的在所述容灾节点上恢复所述第一生产服务所需的信息,以使所述容灾节点根据所述第二恢复信息将所述第一生产服务切换到所述容灾节点。

本发明实施例中,通过接收模块701接收所述生产节点发送的第一恢复信息,在处理模块702确定需要在所述容灾节点上对所述第一生产服务进行恢复时,通过发送模块703将根据所述第一恢复信息得到的第二恢复信息发送至所述容灾节点,使得所述容灾节点根据所述第二恢复信息将所述第一生产服务切换到所述容灾节点,恢复到生产节点灾难前的数据时间点,从而实现业务的无缝切换,保证业务正常进行,提高生产服务的稳定性,有效避免生产节点突发灾难时的数据丢失。

可选的,在一些发明实施例中,所述第二恢复信息包括至少一个第一日志,所述第一日志为所述生产节点在异常前运行所述第一生产服务时生成的,且未存储到所述容灾节点中的日志,日志的序号可按照日志的存储顺序从小至大排列。可选的,所述第二恢复信息中还包括与所述第一日志对应的序号,所述序号用于判断所述第一日志在所述生产节点中的生成顺序。

所述处理模块702具体用于:

通过所述发送模块702第二恢复信息发送至所述容灾节点,以使所述容灾节点接收并存储所述恢复信息中的所述至少一个第一日志,并按照第一日志的生成顺序将启动的所述第一生产服务切换到目标运行状态,所述目标运行状态为所述至少一个第一日志中生成时间最后的第一日志对应的所述第一生产服务的运行状态。

具体来说,通过所述发送模块702将所述第一序号和所述第一日志发送至所述容灾节点,以使所述容灾节点将所述第一序号与所述容灾节点存储的最新日志的序号进行比对,在确定所述第一序号在所述最新日志的序号之后时,接收并存储所述第一日志中所述第一序号之后的日志,并根据所述第一序号之后的日志,将启动的所述第一生产服务切换到目标运行状态,所述目标运行状态为所述第一序号之后的日志中最后的日志对应的运行状态。

可选的,在一些发明实施例中,所述记录节点70还包括接收模块703,所述处理模块701需要在所述容灾节点上对所述第一生产服务进行恢复,包括以下之一:

检测到与所述生产节点通信连接异常;

或者通过所述接收模块703接收到用于指示所述生产节点异常或指示所述第一生产服务异常的第二消息。

可选的,在一些发明实施例中,所述处理模块702在所述接收模块701接收所述生产节点发送的第一恢复信息之后,还可用于通过所述发送模块703向所述生产节点发送与所述第一恢复信息相对应的同步响应,所述同步响应用于向所述生产节点通知所述记录节点当前存储的最新恢复信息为所述第一恢复信息。

可选的,在一些发明实施例中,所述处理模块702在将所述第二序号发送至所述生产节点之后,还用于:

通过所述接收模块701接收所述生产节点发送的同步确认消息,所述同步确认消息用于指示所述生产节点存储的日志与所述容灾节点存储的日志已完成同步。

可选的,在一些发明实施例中,所述处理模块702还用于:

通过所述接收模块701接收所述容灾节点发送的请求消息,所述请求消息用于请求获取待修复的日志,该请求消息可携带待修复的日志的序号,该序号可以是单个日志的序号,或者是待修复的日志中生成时间最早的日志的序号,也可以是多个序号。相应的,所述待修复的日志包括某个序号对应的日志,或者包括某个序号之后的序号对应的日志。

然后,通过所述发送模块703将所述待修复的日志发送给所述容灾节点,以使所述容灾节点根据所述待修复的日志修复本地存储的所述第一生产服务的日志。

可选的,在一些发明实施例中,所述处理模块702在确定需要在所述容灾节点上对所述第一生产服务进行恢复后,所述记录节点将第二恢复信息发送至所述容灾节点之前,还用于:

通过所述发送模块703向所述容灾节点发送连接请求,所述连接请求用于指示所述容灾节点启动所述第一生产服务;

控制所述记录节点与所述容灾节点建立通信连接。

可选的,为提高容灾节点接收到连接请求的概率,可以按照预设发送频率发送所述连接请求。进一步,为减少维护人员定位到记录节点的查找时间,发送的连接请求中还可以携带所述生产节点的位置信息;

所述位置信息至少用于所述容灾节点确定以下项之一:

处于异常的所述生产节点的节点信息、所述第一生产服务所属的生产节点的节点信息,或者所述第一生产服务的进程号;

其中,节点信息包括生产节点的编号和/或位置信息。

二、参照图8,对生产节点80进行说明,生产节点80包括:

处理模块801,用于生成所述第一生产服务对应的第一恢复信息,所述第一恢复信息是指将所述第一生产服务恢复至所述第一生产服务的最新运行状态所需的信息;

发送模块802,用于将所述处理模块801生成的所述第一恢复信息同步至所述记录节点,以使所述记录节点在确定需要在所述容灾节点上对所述第一生产服务进行恢复时,将第二恢复信息发送至所述容灾节点,所述第二恢复信息是指根据所述第一恢复信息得到的在所述容灾节点上恢复所述第一生产服务所需的信息,以使所述容灾节点根据所述第二恢复信息将所述第一生产服务切换到所述容灾节点。

其中,所述第二恢复信息包括至少一个第一日志,所述第一日志为所述生产节点在异常前运行所述第一生产服务时生成的,且未存储到所述容灾节点中的日志。

可选的,所述第二恢复信息中还可以包括:与所述第一日志对应的序号,所述序号用于判断所述第一日志在所述生产节点中的生成顺序。

可选的,在一些发明实施例中,所述生产节点还包括接收模块803,对于生产节点80与记录节点70之间同步备份差异日志,主要通过异步传输方式和同步传输方式实现同步备份:

异步传输方式:所述处理模块801生成第二日志,执行第二日志对应的数据操作,以及通过所述发送模块802将所述第二日志发送至所述记录节点,然后,通过所述发送模块802将第二日志发送给所述容灾节点,以及将在第二日志生成时间之后的日志发送至所述记录节点,在后续的同步过程中,生产节点80还会通过所述接收模块803接收到所述记录节点返回的同步响应,所述同步响应用于向所述生产节点通知所述记录节点当前更新的第二日志。

同步传输方式:所述处理模块801生成第二日志,然后通过所述发送模块802将所述第二日志发送至所述记录节点,之后,还可以将在所述第二日志生成时间之后的日志发送至所述记录节点。

三、参照图9,对容灾节点90进行说明,容灾节点90包括:

接收模块901,用于接收所述记录节点发送的根据所述第一恢复信息得到的第二恢复信息,所述第二恢复信息是指在所述容灾节点上恢复所述第一生产服务所需的信息,所述第一恢复信息是指将所述第一生产服务恢复至所述第一生产服务的最新运行状态所需的信息。

处理模块902,用于根据所述接收模块901接收到的所述第二恢复信息将所述第一生产服务切换到所述容灾节点。

本发明实施例中,在接收模块901接收到记录节点发送的第二恢复信息后,处理模块902根据所述第二恢复信息将所述第一生产服务切换到所述容灾节点,恢复到生产节点灾难前的数据时间点,从而实现业务的无缝切换,保证业务正常进行,提高生产服务的稳定性,有效避免生产节点突发灾难时的数据丢失。

可选的,在一些发明实施例中,所述第二恢复信息包括至少一个第一日志,所述第一日志为所述生产节点在异常前运行所述第一生产服务时生成的,且未存储到所述容灾节点中的日志。

所述处理模块902具体用于:

通过所述接收模块901接收并存储所述第二恢复信息中的所述至少一个第一日志,并按照第一日志的生成顺序将启动的所述第一生产服务切换到目标运行状态,所述目标运行状态为所述至少一个第一日志中生成时间最后的第一日志对应的所述第一生产服务的运行状态。

具体来说,通过所述接收模块901接收所述第一序号和所述第一日志发送后,将所述第一序号与所述容灾节点存储的最新日志的序号进行比对;

在确定所述第一序号在所述最新日志的序号之后时,所述容灾节点获取并存储所述第一日志中所述第一序号之后的日志;

根据所述第一序号之后的日志,将启动的所述第一生产服务切换到目标运行状态,所述目标运行状态为所述第一序号之后的日志中最后的日志对应运行状态,所述目标运行状态可能是或者不是所述第一生产服务在所述生产节点的最后运行状态。

可选的,在一些发明实施例中,所述容灾节点90还包括发送模块903,所述处理模块902还用于:

通过所述发送模块903将请求消息发送至所述记录节点或生产节点,所述请求消息用于请求获取待修复的日志,所述待修复的日志包括第三序号对应的日志,或者包括第四序号之后的序号对应的日志;

通过所述接收模块902接收所述记录节点或生产节点发送的所述待修复的日志,根据所述待修复的日志修复本地存储的所述第一生产服务的日志。

可选的,在一些发明实施例中,所述接收模块901具体用于:

按照预设接收频率接收所述记录节点发送的连接请求,并根据所述连接请求与所述记录节点建立通信连接,所述连接请求可包括所述生产节点的位置信息;

所述处理模块902根据所述位置信息至少可以确定以下项之一:

处于异常的所述第一生产节点的节点信息、所述第一生产服务所属的生产节点的节点信息,或者所述第一生产服务的进程号;其中,节点信息包括生产节点的编号和/或位置信息。

可选的,在一些发明实施例中,所述容灾节点包括数据差异组件和容灾组件,所述数据差异组件与所述容灾组件通信连接。

四、本发明实施例还提供一种通信系统,参考图10,所述通信系统1包括:

如图7所述的记录节点70、生产节点80以及如图9所述的容灾节点90。

需要说明的是,在本发明各实施例(包括图7-9所示的各实施例)中所有的接收模块对应的实体设备可以为接收器,所有的发送模块对应的实体设备可以为发射器,所有的处理模块对应的实体设备可以为处理器。图7-9所示的各装置均可以具有如图11所示的结构,当其中一种装置具有如图11所示的结构时,图11中的处理器、发射器和接收器实现前述对应该装置的装置实施例提供的处理模块、发送模块和接收模块相同或相似的功能,图11中的存储器存储处理器执行上述容灾切换的方法时需要调用的程序代码。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文全称:read-onlymemory,英文简称:rom)、随机存取存储器(英文全称:randomaccessmemory,英文简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1