本发明涉及容灾技术领域,特别涉及一种数据复制容灾方法及容灾系统。
背景技术:
随着信息化建设的发展,企业在解决基本的信息化保障后也越来越重视容灾的规划与建设。目前常用的容灾手段有:备份容灾、数据级容灾、应用级容灾。数据级容灾是目前应用最多、最广泛的容灾手段,而其中基于数据卷复制的容灾又是数据级容灾的最常用手段,卷复制主要分为同步数据复制容灾和异步数据复制容灾。
同步复制模式确保在应用程序最终完成写入之前,已经将写入io发送到生产服务器和灾备服务器,一次完整的写入会话包括写入到生产服务器和写入到灾备服务器。在同步复制模式下进行复制时,灾备服务器上的数据完全是最新的,即其与生产服务器上的数据完全一致,如果生产服务器发生灾难,则可以毫无损失地从任何继续正常运行的灾备服务器恢复数据。
如果允许灾备服务器的数据不是最新的,则可以选择异步复制模式。异步复制模式虽然不保证灾备服务器上的数据始终是最新的,但它对应用程序性能的影响较小,因为它不需要同步地完成生产服务器和灾备服务器的io写操作,并且能够使用更具有成本效益的通信链路。异步复制模式可以保证在灾备节点数据卷上进行所有已对主节点卷完成的更新,但会有一些延迟。
同步数据复制对两个站点间的链路要求极高,需要确保两个站点间数据复制的一致性。应用上的每一个写io会同时写入到生产存储和灾备存储,两边的存储都完成写io后,本次应用的写入才算完成。链路条件不佳时会出现生产服务器等待灾备服务器写io完成的情况,会导致应用的写操作延迟很大直接影响生产效率。所以如果选择使用同步复制模式来实现数据容灾需要较高的建设成本、较高的链路要求、复杂的技术实现以及管理。
在没有条件选择同步复制方式实现数据容灾的情况下,通常会选择异步复制方式,传统的异步复制模式在生产服务器突然故障或者损坏的情况下,灾备服务器与生产服务器的数据不一致,通常会有一部分数据丢失。同时也无法利用灾备服务器的数据重新同步恢复生产服务器的原始状态。
技术实现要素:
本发明实施方式的目的在于提供一种数据复制容灾方法及容灾系统,能够在保证数据容灾复制的可靠性的同时,大大提升其可用性。
为解决上述技术问题,本发明的实施方式提供了一种数据复制容灾方法,所述应用于容灾系统中的生产服务器,所述容灾系统包括:灾备服务器以及应急服务器;所述生产服务器、灾备服务器以及所述应急服务器两两之间通信连接;所述方法还包括:
在将数据写请求同步写入所述生产服务器以及所述应急服务器之后返回写完成以响应下一数据写请求;
将所述数据写请求对应的数据异步写入所述生产服务器以及所述灾备服务器,并将异步写入数据时所述生产服务器以及所述灾备服务器上的数据写入状况同步记录至所述生产服务器以及所述应急服务器;
其中,在满足重构条件时,所述灾备服务器根据异步写入的数据以及从所述应急服务器获取的所述数据写请求以及数据写入状况重构出与所述生产服务器一致的数据。
本发明的实施方式还提供了一种数据复制容灾方法,所述方法应用于容灾系统中的灾备服务器,所述容灾系统包括:生产服务器以及应急服务器;所述生产服务器、灾备服务器以及所述应急服务器两两之间通信连接;所述方法还包括:
异步写入来自所述生产服务器的请求写入的数据,并返回所述请求写入的数据的异步写完成状况至所述生产服务器,供所述生产服务器将所述灾备服务器的异步写完成状况同步写入所述生产服务器以及所述应急服务器;
在满足重构条件时,从所述应急服务器获取数据重构信息;所述数据重构信息被所述生产服务器同步写入所述生产服务器以及所述应急服务器,且所述数据重构信息包括:
在返回写完成之前同步写入至所述生产服务器以及所述应急服务器的数据写请求以及异步写入数据时所述生产服务器以及所述灾备服务器上的数据写入状况;
根据异步写入的数据以及所述数据重构信息重构出与所述生产服务器一致的数据。
本发明的实施方式还提供了一种容灾系统,包括:生产服务器、应急服务器以及灾备服务器,所述生产服务器、应急服务器以及灾备服务器两两之间通信连接;
其中,所述生产服务器用于实现如前所述的数据复制容灾方法;
所述灾备服务器用于实现如上所述的数据复制容灾方法;
所述应急服务器用于实现:
与所述生产服务器同步写入数据重构信息,在满足重构条件时传输至所述灾备服务器,供所述灾备服务器根据所述数据重构信息以及异步写入的数据重构出与所述生产服务器一致的数据;
其中,所述数据重构信息包括:在返回写完成之前同步写入至所述生产服务器以及所述应急服务器的数据写请求以及异步写入数据时所述生产服务器以及所述灾备服务器上的数据写入状况。
本发明的实施方式还提供了一种存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行如前所述的数据复制容灾方法。
本发明实施方式相对于现有技术而言,在将数据写请求同步写入生产服务器以及应急服务器之后返回写完成以响应下一数据写请求,然后将数据写请求对应的数据异步写入生产服务器以及灾备服务器,由于在写入数据时,生产服务器和灾备服务器按照异步复制模式进行写入,所以对生产服务器和灾备服务器之间的复制链路要求大大降低,因此大幅提升数据复制容灾的可用性。并将异步写入数据时生产服务器以及灾备服务器上的数据写入状况同步记录至生产服务器以及应急服务器,从而使得灾备服务器可利用应急服务器中同步写入的数据写入请求以及数据写入状况重构出与生产服务器一致的数据,进而使得容灾系统具有与同步复制模式相媲美的可靠性。因此,本实施方式能够在保证数据容灾复制的可靠性的同时,大大提升其可用性。
作为一个实施例,还包括:在将数据写请求同步写入所述生产服务器以及所述应急服务器时,还将所述数据写请求对应的写入顺序同步写入所述灾备服务器,并在所述灾备服务器返回所述写入顺序同步写入完成之后返回写完成。
作为一个实施例,所述应急服务器为与所述生产服务器的距离小于预设距离的轻量级服务器。
作为一个实施例,所述生产服务器配置有第一复制缓冲桶,所述应急服务器配置有第二复制缓冲桶,所述第一复制缓冲桶以及所述第二复制缓冲桶均用于存储所述数据写请求以及所述数据写入状况,且所述第一复制缓冲桶与所述第二复制缓冲桶大小相同。
作为一个实施例,所述第二复制缓冲桶挂载于所述生产服务器或者以存储共享方式导入所述生产服务器。
作为一个实施例,所述生产服务器还配置有异步缓冲卷,所述将所述数据写请求对应的数据异步写入所述生产服务器以及所述灾备服务器,具体包括:
将已写入所述生产服务器的数据依次添加至所述异步缓冲卷,并将所述异步缓冲卷中的数据依次传输至所述灾备服务器,以供所述灾备服务器异步写入数据。
作为一个实施例,所述并将所述异步缓冲卷中的数据依次传输至所述灾备服务器,具体为:
将所述异步缓冲卷中的数据按照数据块粒度进行传输,以发送至所述灾备服务器;其中,所述灾备服务器按照所述写入顺序将接收到的数据块写入所述灾备服务器。从而可以提高传输效率。
作为一个实施例,所述第一复制缓冲桶以及所述第二复制缓冲桶均包括复制状态位图;
所述复制状态位图用于记录以下数据写入状况:
所述数据写请求同步写入所述生产服务器以及所述应急服务器的同步写完成状态;
所述数据写请求对应的各数据块在所述生产服务器中的写完成的状态;
所述各数据块是否添加至所述异步缓冲卷的状态;以及
所述各数据块在所述灾备服务器中的写完成的状态。
作为一个实施例,所述灾备服务器存储有所述灾备服务器的异步写完成状况;
所述根据异步写入的数据以及所述数据重构信息重构出与所述生产服务器一致的数据,具体包括:
根据所述灾备服务器的异步写完成状况以及所述数据重构信息得到挂起的写入;
回滚所述挂起的写入使得所述灾备服务器的数据与所述生产服务器的数据一致。
附图说明
图1是根据本发明第一实施方式基于容灾系统的数据复制容灾方法示意图;
图2是根据本发明第一实施方式数据复制容灾方法的流程图;
图3是根据本发明第一实施方式容灾系统故障时的数据复制容灾方法示意图
图4是根据本发明第二实施方式数据复制容灾方法的流程图;
图5是根据本发明第二实施方式基于容灾系统的数据复制容灾方法示意图;
图6是图5中生产服务器的数据复制容灾方法示意图;
图7是根据本发明第二实施方式数据复制容灾方法的生产服务器中复制状态位示意图;
图8是根据本发明第二实施方式数据复制容灾方法的灾备服务器中复制状态位示意图;
图9是根据本发明第二实施方式数据复制容灾方法的灾备服务器复制状态位图重构示意图;
图10是根据本发明第二实施方式数据复制容灾方法的灾备服务器重构数据示意图;
图11是根据本发明第三实施方式数据复制容灾方法的流程图;
图12是根据本发明第四实施方式生产服务器的结构示意图;
图13是根据本发明第五实施方式灾备服务器的结构示意图;
图14是根据本发明第六实施方式应急服务器的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本发明而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本发明所要求保护的技术方案。
本发明的第一实施方式涉及一种数据复制容灾方法,该方法应用于如图1所示的容灾系统中的生产服务器100,该容灾系统还包括灾备服务器300以及应急服务器200,生产服务器100、灾备服务器300以及应急服务器200两两之间通信连接。本实施方式的数据复制容灾方法包括:在将数据写请求同步写入生产服务器以及应急服务器之后返回写完成以响应下一数据写请求;将数据写请求对应的数据异步写入生产服务器以及灾备服务器,并将异步写入数据时生产服务器以及灾备服务器上的数据写入状况同步记录至生产服务器以及应急服务器;其中,在满足重构条件时,灾备服务器根据异步写入的数据以及从应急服务器获取的数据写请求以及数据写入状况重构出与生产服务器一致的数据。本发明实施方式相对于现有技术而言,在将数据写请求同步写入生产服务器以及应急服务器之后返回写完成以响应下一数据写请求,然后将数据写请求对应的数据异步写入生产服务器以及灾备服务器,由于在写入数据时,生产服务器和灾备服务器按照异步复制模式进行写入,所以对生产服务器和灾备服务器之间的复制链路要求大大降低,因此大幅提升数据复制容灾的可用性。并将异步写入数据时生产服务器以及灾备服务器上的数据写入状况同步记录至生产服务器以及应急服务器,从而使得灾备服务器可利用应急服务器中同步记录的数据写入请求以及数据写入状况重构出与生产服务器一致的数据,进而使得容灾系统具有与同步复制模式相媲美的可靠性。因此,本实施方式能够在保证数据容灾复制的可靠性的同时,大大提升其可用性。
下面结合图2对本实施方式的数据复制容灾方法进行详细说明。该方法包括步骤201至步骤203。
步骤201:在将数据写请求同步写入生产服务器以及应急服务器之后返回写完成以响应下一数据写请求。
本实施方式中,应急服务器可以为与生产服务器的距离小于预设距离的轻量级服务器。预设距离例如为10~100km(千米)之间的数值,然不限于此。比如,应急服务器可以与生产服务器部署在同一园区的不同机房,或者将应急服务器临近于生产服务器部署即可。
在一个例子中,生产服务器挂载有生产存储,且配置有第一复制缓冲桶,应急服务器配置有第二复制缓冲桶,第一复制缓冲桶以及第二复制缓冲桶均用于存储数据写入请求以及异步写入数据时生产服务器和灾备服务器上的数据写入状况。其中,数据写入请求包括:写入顺序以及写入数据。写入顺序比如为如图7中写入序列,写入数据例如为图7中的块变化对应的内容。因此,通过第二复制缓冲桶中存储的数据可实现生产服务器的数据复制容灾。可选地,第一复制缓冲桶与第二复制缓冲桶大小相同,然不限于此。作为举例而非限制,第二复制缓冲桶可以挂载于生产服务器或者以存储共享方式导入生产服务器。这样,生产服务器可以直接访问应急服务器中的第二复制缓冲桶,从而生产服务器在将数据写入请求以及数据写入状况同步写入自身以及应急服务器时,数据同步写入的实时性更高。此外,由于复制缓冲桶用于存储数据写入相关记录以及缓冲写入数据,而非实际写入数据,所以占用存储资源很少,且轻量级的应急服务器对计算能力要求也很低,因此整体成本较低,有利于节约容灾成本。
本实施方式中,灾备服务器上可以配置第三复制缓冲桶。步骤201中,在将数据写请求同步写入生产服务器100以及应急服务器200时,还将数据写请求对应的写入顺序同步写入灾备服务器300,并在灾备服务器300返回写入顺序同步写入完成之后返回写完成。然不限于此,数据写请求的写入顺序也可以异步写入灾备服务器,比如,在步骤202中在异步写入数据写请求对应的数据时一并将数据写请求对应的顺序同时写入灾备服务器,只要保证灾备服务器中的数据写请求的写入顺序与生产服务器中的数据写请求的写入顺序一致即可。其中,数据写请求被同步写入第一复制缓冲桶、第二复制缓冲桶以及第三复制缓冲桶,通过数据写请求对应的写入顺序可以实现数据写入保真,即使得生产服务器在写生产存储,灾备服务器在写灾备存储时能够按照数据写请求的写入顺序落盘(即写入存储介质),同时也可在生产服务器以及灾备服务器在异步写入数据时保证数据写入的一致性。
各复制缓冲桶存储空间采用轮循方式进行写入操作,当写满一遍存储空间后,后续依照之前数据块的先后顺序进行数据块复写操作。
请参阅图1,步骤201中,生产服务器100的本地复制缓冲桶(即第一复制缓冲桶)数据写请求写操作完成、应急服务器200中的第二复制缓冲桶数据写请求写操作完成和灾备服务器300中的复制缓冲桶(即第三复制缓冲桶)数据写请求对应的写入顺序同步写操作也完成后,应用程序得到写操作完成确认,继续进行后续的写io操作。
步骤202:将数据写请求对应的数据异步写入生产服务器以及灾备服务器。
由于生产服务器异步发送数据写请求对应的的数据至灾备服务器,因此两者之间的复制链路可以沿用异步复制模式的复制链路。复制链路包括:采用的具体物理网络连接、复制数据流向、复制承载网络端口、链路状态侦测机制等。异步复制链路相比同步复制链路建设成本低、链路要求低、技术实现以及管理更简单。
步骤203:将异步写入数据时生产服务器以及灾备服务器上的数据写入状况同步记录至生产服务器以及应急服务器。
其中,在满足重构条件时,灾备服务器根据异步写入的数据以及从应急服务器获取的数据写请求以及数据写入状况重构出与所述生产服务器一致的数据,即灾备服务器重构出的数据与生产服务器的数据完全一致,没有任何丢失,因此也可以帮助反向恢复生产服务器的数据。重构条件包括但不限于生产服务器宕机、灾备服务器需要临时接管生产服务器角色等。本实施方式中,生产服务器的数据写入状况例如包括数据写请求写入完成状况、数据写请求对应的数据写入生产存储的状况,数据写请求对应的数据异步发送至灾备服务器的状况。灾备服务器的数据写入状况例如包括数据写请求对应的写入顺序的写入完成状况以及数据写请求对应的数据在灾备服务器上的写入完成状况。
本实施方式中,由于第一复制缓冲桶以及第二复制缓冲桶中的数据是同步写入的,所以两者的数据完全一致。因此,即使生产服务器突发故障或者损坏,还可以通过将第二复制缓冲桶导回应急服务器200而保留与第一复制缓冲桶一致的数据,并借此在灾备服务器上重构出与生产服务器完全一致的数据。请参阅图3,在生产服务器100突发故障时,可以将第二复制缓冲桶应急导回应急服务器200,通过应急服务器200将第二复制缓冲桶中的数据发送至灾备服务器300,供灾备服务器300根据第二复制缓冲桶中的数据以及异步写入的数据重构出与生产服务器一致的数据。具体地,灾备服务器300可以根据第二复制缓冲桶的数据以及第三复制缓冲桶中的数据合并重构得到生产服务器100故障时刻灾备服务器300中挂起的写入,灾备服务器300通过将挂起的写入重新落盘即可得到与生产服务器完全一致的数据。同理,灾备服务器300也可以在任意时刻利用第二复制缓冲桶中的数据重构出与生产服务器100完全一致的数据从而接管生产服务器的角色。
与现有技术相比,本实施方式在写入数据时,在将数据写请求同步写入生产服务器、应急服务器之后返回写完成以响应下一数据写请求,在向应用返回写完成之后,将数据写请求对应的数据异步写入生产服务器以及灾备服务器,由于生产服务器以及灾备服务器之间的数据传输为异步传输模式,所以对两者之间的通信链路要求低,因此可大幅降低容灾系统的成本。并且,将异步写入数据时生产服务器以及灾备服务器上的数据写入状况同步记录至生产服务器的第一复制缓冲桶以及应急服务器的第二复制缓冲桶,因此第二复制缓冲桶与第一复制缓冲桶的数据完全一致,且灾备服务器可根据第二复制缓冲桶中的数据写入请求、数据写入状况以及异步写入的数据重构出与生产服务器一致的数据,从而使得容灾系统具有与同步复制模式相同的容灾效果。因此,本实施方式能够兼得同步复制模式以及异步复制模式的优点,在保证数据复制容灾可靠性的前提下,降低容灾系统成本,提升容灾系统可用性。
本发明的第二实施方式涉及一种数据复制容灾方法。本实施方式在第一实施方式的基础上做出改进,主要改进之处在于,在第二实施方式中,进一步提出以最大努力交付方式将生产服务器中已写入完成的数据发送至灾备服务器,从而可更充分地利用传输链路的带宽,有利于缩短数据传输时间,使得灾备服务器与生产服务器的数据一致性更佳。
请参阅图4,本实施方式的数据复制容灾方法包括步骤401至步骤403。
步骤401:在将数据写请求同步写入生产服务器以及应急服务器之后返回写完成以响应下一数据写请求。
本实施方式中,容灾系统的结构以及配置可以与第一实施方式对应的容灾系统相同,此处不再赘述。
步骤402:将已写入生产服务器的数据依次添加至异步缓冲卷,并将异步缓冲卷中的数据依次传输至灾备服务器,以供灾备服务器异步写入数据。从而实现将数据写请求对应的数据异步写入生产服务器以及灾备服务器。
其中,异步复制到灾备服务器的数据根据当前的网络情况io排队发送到灾备服务器,数据传输按照尽最大努力交付方式以兼顾传输实时性要求,并依照灾备服务器复制缓冲桶中记录的数据写请求将数据落盘,以确保一致性。
本实施方式中,步骤402中可将异步缓冲卷中的数据按照数据块粒度进行传输以发送至灾备服务器。其中,灾备服务器按照写入顺序将接收到的数据块写入灾备服务器。
步骤403:将异步写入数据时生产服务器以及灾备服务器上的数据写入状况同步记录至生产服务器以及应急服务器。其中,在满足重构条件时,灾备服务器根据异步写入的数据以及从应急服务器获取的数据写入请求以及数据写入状况重构出与生产服务器一致的数据。其中,第一复制缓冲桶、第二复制缓冲桶以及第三复制缓冲桶均包括复制状态位图。第一复制缓冲桶以及第二复制缓冲桶的复制状态位图用于记录以下数据写入状况:数据写请求同步写入生产服务器以及应急服务器的同步写完成状态、数据写请求对应的各数据块在生产服务器中的写完成的状态、各数据块是否添加至异步缓冲卷的状态以及各数据块在灾备服务器中的写完成的状态。
下面结合图5~图10对本实施方式的数据复制容灾方法进行详细说明如下:
请参阅图5,步骤401在将数据写请求同步写入生产服务器以及应急服务器之后返回写完成以响应下一数据写请求具体包括图5中的步骤①至步骤④。步骤①:生产服务器100的应用程序发出io写入请求。步骤②:io写请求(即数据写请求)通过操作系统同步写入到生产服务器100的第一复制缓冲桶以及应急服务器200的第二复制缓冲桶,写入完成后向生产服务器100操作系统反馈写入完成通知(即图5中的步骤③)。同时该io写入请求对应的写入顺序通过复制链路,例如广域网(wideareanetwor,简称wan)同步地写入到灾备服务器300的第三复制缓冲桶,待写入操作完成后向灾备服务器300操作系统反馈写入完成通知,该通知通过广域网再返回到生产服务器100的操作系统(即图5中的步骤③)。步骤④:当生产服务器上的io写入请求写入第一复制缓冲桶和第二复制缓冲桶且灾备服务器上的io写入请求对应的写入顺序写入第三复制缓冲桶操作都完成后,生产服务器100的操作系统向应用程序反馈io写入完成通知,本次数据写请求写完成。并更新记录信息到复制状态位图,请参阅图7,即在每个数据写请求被同步写入第一、第二以及第三复制缓冲桶之后,更新复制状态位图数据写请求写入完成状态。
在返回写完成之后,将数据写请求对应的数据写入生产服务器,并异步发送至灾备服务器,以供灾备服务器按照数据写请求的写入顺序落盘。具体地,如图5中的步骤⑤和步骤⑥,按照第一复制缓冲桶中的数据写请求写入顺序将数据写请求对应的数据写入生产服务器的生产存储,该写入操作在生产服务器后台执行,不会对应用程序性能产生影响。请参阅图6,步骤⑦:生产存储写操作完成后,将写完成的数据写入到生产服务器100中的异步缓冲卷准备发送到灾备服务器300,异步缓冲卷起到从生产服务器到灾备服务器之间的异步复制io排队缓冲的作用,异步缓冲卷队列为先进先出堆栈队列。步骤⑦完成后更新复制状态位图记录信息。如果一个数据块已经分别完成复制缓冲桶存储区域和生产存储区域的io写入操作,并且进入到异步缓冲卷进行排队,这个数据块的写入信息将被更新维护到生产服务器的复制状态位图。其中,复制状态位图可以看做复制缓冲桶记录信息的子集。如图7所示,001、0a2、0a3三个数据块已经分别完成复制缓冲桶和生产存储中的io写入操作,并且进入到异步缓冲卷进行排队。
本实施方式中,生产服务器100与灾备服务器300之间的数据传输以尽最大努力方式交付,采用该种传输方式的优势在于数据io在传输过程中无需考虑其写入顺序,同时也不需要灾备服务器的反馈确认,先进入异步缓冲卷的数据优先传输,且是块粒度的传输而非完整的io粒度的传输,极大地利用了传输链路的带宽,有利于缩短传输时间。在wan网络链路良好的情况下,先进入异步缓冲卷复制队列的io请求对应的数据块首先发往远端的灾备服务器;当wan网络不佳或者有阻塞的情况下,io请求对应的数据块会在异步缓冲卷中进行排队等待。步骤⑧复制io请求对应的数据块通过wan网络复制到灾备服务器操作系统,步骤⑨按照灾备服务器300的第三复制缓冲桶中记录的数据写请求的写入顺序落盘到灾备存储。步骤⑩待存储写入完成后反馈到灾备服务器操作系统,然后更新灾备服务器的复制状态位图,如图8所示。表示001、0a2两个数据块在灾备存储已经落盘成功以及完成复制。步骤
如果生产服务器突然故障或者发生灾难,由于灾备服务器中异步写入数据可能会滞后于生产服务器,即某些写入可能被应用程序视为已完成状态,但却尚未复制到灾备服务器,这些写入的写入顺序以及写入状况均被记录在复制缓冲桶中的复制状态位图中,因此通过将第二复制缓冲桶应急导回至应急服务器,并利用其同步于生产服务器的数据记录副本以及灾备服务器上的异步数据即可在灾备服务器上重构出生产服务器故障时刻的完整数据副本,做到数据零丢失。在正常情况下,对应急服务器复制缓冲桶中的写入数据进行完全回滚,可使灾备服务器在不丢失数据的情况下接管生产服务器的角色。当所有挂起的写入都更新到灾备服务器后,灾备服务器的数据即和生产服务器故障前一时刻数据完全一致,而rto(recoverytimeobject,恢复时间目标)取决于将应急服务器复制缓冲桶中的写入记录复制到灾备服务器、以及在灾备服务器进行写入回滚并将挂起的写入落盘所需的时间。因此本实施方式具有较佳的rto。
请参阅图9、图10,应急服务器复制缓冲桶中的数据写入请求以及数据写入状况复制到灾备服务器后,首先和灾备服务器本地的复制缓冲桶记录进行合并重构,重构完成后进行写入记录回滚,灾备服务器根据回滚后的记录来完成挂起的写入重新落盘。重构回滚后的记录维持写入顺序保真,同时利用数据块的最近变化量来保证数据一致性。例如0a3、00t、89r三个数据块只是在完成了复制缓冲桶写入记录的同步,其中0a3和00t已完成写入生产存储,89r尚未完成写入到生产存储,但是均未从生产服务器异步复制到灾备服务器。所以灾难发生后这三个数据块将按照重构的记录直接写入到灾备存储最后一个复制完成的数据块末尾,与灾备服务器已经完成复制的数据块重构出等同于主生产服务器的完整数据。
本实施方式与前述实施方式相比,在异步写入数据时,按照以尽最大努力方式发送传输数据,从而可以缩短数据传输时间,使得灾备服务器与生产服务器的数据一致性更佳。
本发明的第三实施方式涉及一种数据复制容灾方法,请继续参阅图1,该方法应用于容灾系统中的灾备服务器300,该容灾系统还包括生产服务器100以及应急服务器200,生产服务器100、灾备服务器300以及应急服务器200两两之间通信连接。其中,本实施方式的容灾系统与第一实施方式的容灾系统的结构相同,此处不再赘述。请参阅图11,该方法包括步骤1101至步骤1103。
步骤1101:异步写入来自生产服务器的请求写入的数据,并返回请求写入的数据的异步写完成状况至生产服务器,供生产服务器将灾备服务器的异步写完成状况同步写入生产服务器以及应急服务器。
步骤1102:在满足重构条件时,从应急服务器获取数据重构信息。
重构条件例如为生产服务器突然故障、宕机或者灾备服务器需要接管生产服务器的角色等。
该数据重构信息被生产服务器同步写入生产服务器以及应急服务器,且数据重构信息包括:在返回写完成之前同步写入至生产服务器以及应急服务器的数据写请求以及异步写入数据时生产服务器以及灾备服务器上的数据写入状况。
步骤1103:根据异步写入的数据以及数据重构信息重构出与生产服务器一致的数据。
本实施方式中,容灾系统中的数据复制容灾方法与第一实施方式中的容灾系统的数据复制容灾方法相同,此处不再赘述。
与现有技术相比,本实施方式由于生产服务器在写入数据时,是在将各数据写请求同步写入第一复制缓冲桶以及第二复制缓冲桶,并将数据写请求对应的写入顺序同步写入第三复制缓冲桶之后即返回写完成。并且,在将数据写请求对应的数据写入生产服务器之后,再将其异步发送至灾备服务器,供灾备服务器异步写入数据,由于生产服务器以及灾备服务器之间的数据传输为异步传输模式,所以对两者之间的通信链路要求低,因此可大幅降低容灾系统的成本。并且,将生产服务器以及灾备服务器的数据写入状况均同步写入第一复制缓冲桶以及第二复制缓冲桶,因此第二复制缓冲桶与第一复制缓冲桶的数据完全一致。而灾备服务器根据第二复制缓冲桶中的数据以及异步写入的数据能够重构出与生产服务器一致的数据,从而使得容灾系统具有与同步复制模式相同的容灾效果。因此,本实施方式能够兼得同步复制模式以及异步复制模式的优点,在保证数据复制容灾可靠性的前提下,降低容灾系统成本,提升容灾系统可用性。
本发明的第四实施方式涉及一种生产服务器。应用于容灾系统,该容灾系统还包括:灾备服务器以及应急服务器。生产服务器、灾备服务器以及应急服务器两两之间通信连接。该生产服务器包括:存储器1202和处理器1201,存储器1202存储计算机程序,处理器1201运行计算机程序以实现如第一或者第二实施方式所述的数据复制容灾方法。
一个或多个处理器1201以及存储器1202,图12中以一个处理器1201为例。处理器1201、存储器1202可以通过总线或者其他方式连接,图12中以通过总线连接为例。存储器1202作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器1201通过运行存储在存储器1202中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述数据复制容灾方法。
存储器1202可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序。此外,存储器1202可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施方式中,存储器1202可选包括相对于处理器1201远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器1202中,当被一个或者多个处理器1201执行时,执行上述任意方法实施方式中的数据复制容灾方法。
上述设备可执行本发明实施方式所提供的方法,具备执行方法相应的功能模块和有益效果,未在本实施方式中详尽描述的技术细节,可参见本发明实施方式所提供的方法。
与现有技术相比,本实施方式能够兼得同步复制模式以及异步复制模式的优点,在保证数据复制容灾可靠性的前提下,降低容灾系统成本,提升容灾系统可用性。
本发明的第五实施方式涉及一种灾备服务器。应用于容灾系统,该容灾系统还包括:生产服务器以及应急服务器。生产服务器、灾备服务器以及应急服务器两两之间通信连接。请参阅图13该灾备服务器包括:存储器1302和处理器1301,存储器1302存储计算机程序,处理器1301运行计算机程序以实现如第三实施方式所述的数据复制容灾方法。
本发明的第六实施方式涉及一种应急服务器。应用于容灾系统,该容灾系统还包括:生产服务器以及灾备服务器。生产服务器、灾备服务器以及应急服务器两两之间通信连接。请参阅图14,该应急服务器包括:存储器1402和处理器1401,存储器1402存储计算机程序,处理器1401运行计算机程序以实现:
与生产服务器同步写入数据重构信息;
在满足重构条件时传输至灾备服务器,供灾备服务器根据数据重构信息以及异步写入的数据重构出与生产服务器一致的数据;
其中,数据重构信息包括:在返回写完成之前同步写入至生产服务器以及应急服务器的数据写请求以及异步写入数据时生产服务器以及灾备服务器上的数据写入状况。
本发明的第七实施方式涉及一种容灾系统,请继续参阅图1,该容灾系统包括:生产服务器、灾备服务器以及应急服务器,生产服务器、灾备服务器以及应急服务器两两之间通信连接。其中,生产服务器可以为第四实施方式的生产服务器,灾备服务器可以为第五实施方式的灾备服务器,应急服务器可以为第六实施方式的应急服务器。
与现有技术相比,本实施方式的容灾系统在生产服务器写入数据时,是在将数据写请求同步写入第一复制缓冲桶、第二复制缓冲桶以及第三复制缓冲桶之后即返回写完成。在将数据写请求对应的数据写入生产服务器之后,再将其异步发送至灾备服务器,供灾备服务器异步写入数据,由于生产服务器以及灾备服务器之间的数据传输为异步传输模式,所以对两者之间的通信链路要求低,因此可大幅降低容灾系统的成本。并且,将生产服务器以及灾备服务器的数据写入状况均同步写入第一复制缓冲桶以及第二复制缓冲桶,因此第二复制缓冲桶与第一复制缓冲桶的数据完全一致,且灾备服务器可根据第二复制缓冲桶中的数据以及异步写入的数据重构出与生产服务器一致的数据,从而使得容灾系统具有与同步复制模式相同的容灾效果。因此,本实施方式能够兼得同步复制模式以及异步复制模式的优点,在保证数据复制容灾可靠性的前提下,降低容灾系统成本,提升容灾系统可用性。
本发明的第八实施方式涉及一种非易失性存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行上述部分或全部的方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。