异步远程复制方法、系统及设备转让专利

申请号 : CN201110132517.2

文献号 : CN102306115B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 高三海罗庆超王飞

申请人 : 华为数字技术(成都)有限公司

摘要 :

本发明提供一种异步远程复制方法、系统及设备。该异步远程复制方法包括:生产中心接收到主机的写请求后,根据当前周期的周期号为所述写请求标记周期号;将已标记周期号的写请求写入本地远程复制主LUN,根据写入所述远程复制主LUN的顺序为所述已标记周期号的写请求标记顺序号;将已标记周期号和顺序号的写请求发送给容灾中心。本发明避免了在同一周期内访问地址冲突的多个写请求到达容灾中心的顺序与在生产中心的写入顺序不一致时,所引起的生产中心的远程复制主LUN中存储的数据与容灾中心的远程复制从LUN中存储的数据不一致的问题。

权利要求 :

1.一种异步远程复制方法,其特征在于,包括:

生产中心接收到主机的写请求后,根据当前周期的周期号为所述写请求标记周期号;

将已标记周期号的写请求写入本地远程复制主LUN,根据写入所述远程复制主LUN的顺序为所述已标记周期号的写请求标记顺序号;

将已标记周期号和顺序号的写请求发送给容灾中心,以使得所述容灾中心根据所述周期号和顺序号将所述写请求写入远程复制从LUN。

2.如权利要求1所述的方法,其特征在于,还包括:

在当前周期结束后,将所述当前周期的周期号和当前周期内接收到的所述主机的写请求数发送给所述容灾中心。

3.如权利要求2所述的方法,其特征在于,生产中心的存储系统包含至少两个生产集群系统,所述根据当前周期的周期号为所述写请求标记周期号,具体包括:每个生产集群系统根据所述写请求中的逻辑地址、以及保存有逻辑地址与物理地址的映射关系的地址映射表,确定所述写请求的物理地址;

判断所述生产集群系统处理的物理地址空间是否包括所述写请求的物理地址;

若所述生产集群系统处理的物理地址空间包括所述写请求的物理地址,则所述生产集群系统获取当前周期的周期号,并将所述当前周期的周期号标记在所述写请求中;否则,忽略该写请求、或向其它生产集群系统转发该写请求;

所述将已标记周期号的写请求写入远程复制主LUN,具体为:

所述生产集群系统将已标记周期号的写请求写入该生产集群系统的远程复制主LUN。

4.如权利要求3所述的方法,其特征在于,所述至少两个生产集群系统为一个主控生产集群系统和至少一个非主控生产集群系统;

所述生产集群系统为非主控生产集群系统,所述生产集群系统获取当前周期的周期号,具体为:所述生产集群系统接收所述主控生产集群系统根据该生产集群系统的请求下发的当前周期的周期号,或者所述生产集群系统接收所述主控生产集群系统周期性下发的当前周期号;

所述生产集群系统为主控生产集群系统,所述生产集群系统获取当前周期的周期号,具体为:所述生产集群系统将自身设置的当前周期的周期号作为当前周期的周期号;

所述在当前周期结束后,将当前周期内接收到的所述主机的写请求数和当前周期的周期号发送给所述容灾中心,具体为:所述主控生产集群系统统计当前周期内接收到所述主机的写请求数;

在当前周期结束后,所述主控生产集群系统将当前周期的周期号和当前周期内接收到的所述主机的写请求数发送给容灾中心。

5.一种异步远程复制方法,其特征在于,包括:

容灾中心接收生产中心发送的写请求,所述写请求中标记有周期号和顺序号;所述周期号是所述生产中心在接收到主机的写请求后,根据当前周期的周期号为所述写请求标记的,所述顺序号是所述生产中心在将已标记周期号的写请求写入本地远程复制主LUN时,根据写入所述远程复制主LUN的顺序为所述已标记周期号的写请求标记的;

判断是否已接收到一个周期号对应的所有写请求;

在判断结果为已接收到一个周期号对应的所有写请求时,根据写请求中标记的周期号和顺序号,将接收到的写请求写入本地远程复制从LUN。

6.如权利要求5所述的方法,其特征在于,在所述判断是否已接收到一个周期号对应的所有写请求之前,还包括:接收生产中心发送的周期号和在该周期号对应的周期内接收到的写请求数;

所述判断是否已接收到一个周期号对应的所有写请求,具体为:

根据所述生产中心发送的周期号和在该周期号对应的周期内接收到的写请求数、以及暂存的已接收到的写请求中标记的周期号和顺序号,判断是否已接收到一个周期号对应的所有写请求。

7.如权利要求5或6所述的方法,其特征在于,所述在判断结果为已接收到一个周期号对应的所有写请求时,所述根据写请求中标记的周期号和顺序号,将接收到的写请求写入远程复制从LUN,具体为:判断所述周期号对应的所有写请求中是否存在访问地址冲突的写请求;

若存在访问地址冲突的写请求,则根据写请求中标记的顺序号将所述周期号对应的写请求依次写入远程复制从LUN;

若不存在访问地址冲突的写请求,则将所述周期号对应的写请求并发写入远程复制从LUN。

8.如权利要求5或6所述的方法,其特征在于,所述容灾中心的存储系统包含至少两个容灾集群系统时,所述容灾中心接收生产中心发送的写请求,具体为:容灾中心中的容灾集群系统接收生产中心中与该容灾集群系统处理的物理地址空间相同的生产集群系统发送的写请求;

所述将接收到的写请求写入本地远程复制从LUN,具体为:

容灾中心中的容灾集群系统将接收到的写请求写入该容灾集群系统的远程复制从LUN。

9.一种生产中心,其特征在于,包括至少一个生产集群系统,所述生产集群系统包括一个第一前端平台和一个第一后端平台,所述第一后端平台包括第一业务处理装置和远程复制主LUN,其中:所述第一前端平台,用于接收到主机的写请求后,根据当前周期的周期号为所述写请求标记周期号,并将已标记周期号的写请求发送给所属生产集群系统中的第一后端平台中的第一业务处理装置;

第一业务处理装置,用于将已标记周期号的写请求写入远程复制主LUN,根据写入所述远程复制主LUN的顺序为所述已标记周期号的写请求标记顺序号,并将已标记周期号和顺序号的写请求发送给容灾中心,以使得所述容灾中心根据所述周期号和顺序号将所述写请求写入远程复制从LUN。

10.如权利要求9所述生产中心,其特征在于,所述生产中心包含至少两个生产集群系统时:所述第一前端平台,还用于在根据当前周期的周期号为所述写请求标记周期号之前,根据接收到的写请求中的逻辑地址、以及保存有逻辑地址与物理地址的映射关系的地址映射表,确定该写请求的物理地址;并判断出所属生产集群系统处理的物理地址空间包括该写请求的物理地址。

11.如权利要求9或10所述生产中心,其特征在于,所述生产中心包含一个主控生产集群系统和至少一个非主控生产集群系统;

所述主控生产集群系统中的第一前端平台,还用于设置当前周期的周期号,并周期性地将设置的当前周期的周期号下发给各非主控生产集群系统;

所述主控生产集群系统中的第一前端平台,还用于将所述主控生产集群系统中的第一前端平台设置的当前周期的周期号标记在所述写请求中;

所述主控生产集群系统中的第一前端平台,还用于统计当前周期内接收到所述主机的写请求数;在当前周期结束后,将当前周期内所述第一前端平台接收到所述主机的写请求数和当前周期的周期号发送给容灾中心;

非主控生产集群系统中的第一前端平台,还用于获取主控生产集群系统中的第一前端平台周期性下发的当前周期的周期号;

所述非主控生产集群系统中的第一前端平台,还用于将所述主控生产集群系统中的第一前端平台周期性下发的当前周期的周期号标记在所述写请求中。

12.一种容灾中心,其特征在于,包括至少一个容灾集群系统,所述容灾集群系统包括一个第二前端平台和一个第二后端平台,所述第二后端平台包括第二业务处理装置和远程复制从LUN,其中:所述第二前端平台,用于接收生产中心发送的写请求,所述写请求中标记有周期号和顺序号;所述周期号是所述生产中心在接收到主机的写请求后,根据当前周期的周期号为所述写请求标记的,所述顺序号是所述生产中心在将已标记周期号的写请求写入本地远程复制主LUN时,根据写入所述远程复制主LUN的顺序为所述已标记周期号的写请求标记的;

所述第二业务处理装置,用于判断所述第二前端平台是否已接收到一个周期号对应的所有写请求,在确定已接收到一个周期号对应的所有写请求时,根据写请求中标记的周期号和顺序号,将接收到的写请求写入远程复制从LUN。

13.如权利要求12所述容灾中心,其特征在于:

所述第二前端平台,还用于接收生产中心发送的周期号和在该周期号对应的周期内接收到的请求数;

所述第二业务处理装置,具体包括:

请求数判断模块,用于根据所述第二前端平台接收到的周期号和写请求数、以及暂存的已接收到的写请求中标记的周期号和顺序号,判断是否已接收到一个周期号对应的所有写请求;

冲突判断模块,用于在请求数判断模块确定出已接收到一个周期号对应的所有写请求时,判断所述周期号对应的所有写请求中是否存在访问地址冲突的写请求;

串行写模块,用于若存在访问地址冲突的写请求,则根据写请求中的顺序号将所述周期号对应的写请求依次写入远程复制从LUN;

并发写模块,用于若不存在访问地址冲突的写请求,则将所述周期号对应的写请求并发写入远程复制从LUN。

14.如权利要求12所述的容灾中心,其特征在于,所述容灾集群系统还包括:远端缓存,用于以链表方式存储第二前端平台接收的写请求,具体为每个周期号对应一个链表,每个周期号对应的链表中的写请求依据顺序号排序;

所述第二业务处理装置,还用于根据所述远端缓存中存储的链表判断第二前端平台是否已接收到一个周期号对应的所有写请求。

15.如权利要求12或13所述容灾中心,其特征在于,所述容灾中心包含至少两个容灾集群系统时:所述第二前端平台,还用于接收生产中心发送的写请求时,确定出该写请求为生产中心中与所属容灾集群系统处理的物理地址空间相同的生产集群系统发送的。

16.一种异步远程复制系统,其特征在于,包括:

生产中心,用于接收到主机的写请求后,根据当前周期的周期号为所述写请求标记周期号;将已标记周期号的写请求写入本地远程复制主LUN,根据写入所述远程复制主LUN的顺序为所述已标记周期号的写请求标记顺序号;将已标记周期号和顺序号的写请求发送给容灾中心;

容灾中心,用于接收生产中心发送的写请求,所述写请求中标记有周期号和顺序号;判断是否已接收到一个周期号对应的所有写请求,在判断结果为已接收到一个周期号对应的所有写请求时,根据写请求中标记的周期号和顺序号,将接收到的写请求写入本地远程复制从LUN。

说明书 :

异步远程复制方法、系统及设备

技术领域

[0001] 本发明涉及计算机技术,尤其涉及一种异步远程复制方法、一种异步远程复制系统、一种生产中心和一种容灾中心。

背景技术

[0002] 容灾系统一般包括两类数据中心:本地生产中心和异地容灾中心,其中异地容灾中心中设有对生产中心的远程复制主逻辑存储对象(简称为LUN)中数据进行备份的远程复制从LUN。当容灾系统遇到灾难性事件时,通过容灾中心远程复制从LUN中的数据对本地源卷生产中心中的远程复制主LUN进行恢复,从而保证重要数据的物理安全,例如不会因为停电,火灾或自然(地震、海啸等)等原因造成数据损失。根据远程复制主LUN中的数据更新远程复制从LUN的过程被称为远程复制过程,根据企业业务环境(如:可用的带宽、网络延时、服务器的数量、复制数据量的大小和主机间的物理距离)、以及用户在灾难发生后,对丢失数据的时间长短(Recovery Point Object,RPO)和恢复应用所需的最长时间(Recovery Time Objectives,RTO)的要求上的差异,可将远程复制过程的类型分为:同步远程复制和异步远程复制。
[0003] 同步远程复制是指生产中心接收到主机中的上层应用发来的写请求后,在向上层应用返回写成功确认消息之前,写请求对应的数据已被成功地发送到生产中心的远程复制主LUN中和容灾中心的远程复制从LUN中。由于发送数据到生产中心的远程复制主LUN和容灾中心的远程复制从LUN会耗费一定时间,因此对上层应用的性能会有一定影响。异步远程复制是指只要写请求对应的数据已被成功地发送到生产中心的远程复制主LUN中后,即可向上层应用返回写成功确认消息,而不必等到数据被发送到容灾中心的远程复制从LUN中才返回写成功确认消息,后续再根据生产中心的远程复制主LUN更新容灾中心的远程复制从LUN。
[0004] 采用异步远程复制可消除同步远程复制存在的性能问题,容灾中心虽有可能滞后于生产中心,但基本上还是实时的复制,并且对上层应用的性能不会产生明显的影响。按照其实现的技术特点来分类,可以异步复制技术分为基于快照的块级别的异步远程复制和基于日志LUN的写请求级别的异步远程复制。其中基于日志LUN的写请求级别的异步远程复制的基本原理为:当写请求从生产中心的主机下发到远程复制主LUN时,会同时被写入到生产中心的日志LUN中并被打上周期性的时间戳(在同一个周期内,所有写请求的时间戳是一致的),从而使得可以由日志LUN来维护写请求的顺序性。生产中心后台的异步远程复制模块读出日志LUN中已写入的写请求,并发送到位于容灾中心的远程复制从LUN。这种方法可以减少容灾系统的恢复时间和数据丢失时间。
[0005] 然而,由于将从日志卷日志LUN中读出的写请求发送到远端备份卷远程复制从LUN时存在的网络延时等原因,有可能会出现对于同一周期内的写请求,写入本地源卷远程复制主LUN中的顺序与写入远端备份卷远程复制从LUN中的顺序不同的情况,如果这些写请求的访问地址冲突,则会导致出现本地源卷远程复制主LUN和远端备份卷远程复制从LUN存储的数据不一致的问题。

发明内容

[0006] 本发明实施例提供一种异步远程复制方法,用以解决现有技术中远程复制主LUN和远程复制从LUN存储的数据不一致的缺陷。
[0007] 对应地,本发明实施例还提供了一种生产中心、一种容灾中心和一种异步远程复制系统。
[0008] 本发明实施例提供一种异步远程复制方法,包括:
[0009] 生产中心接收到主机的写请求后,根据当前周期的周期号为所述写请求标记周期号;
[0010] 将已标记周期号的写请求写入本地远程复制主LUN,根据写入所述远程复制主LUN的顺序为所述已标记周期号的写请求标记顺序号;
[0011] 将已标记周期号和顺序号的写请求发送给容灾中心。
[0012] 本发明实施例提供一种异步远程复制方法,包括:
[0013] 容灾中心接收生产中心发送的写请求,所述写请求中标记有周期号和顺序号;
[0014] 判断是否已接收到一个周期号对应的所有写请求,
[0015] 在判断结果为已接收到一个周期号对应的所有写请求时,根据写请求中标记的周期号和顺序号,将接收到的写请求写入本地远程复制从LUN。
[0016] 本发明实施例提供一种生产中心,包括至少一个生产集群系统,所述生产集群系统包括一个第一前端平台和一个第一后端平台,所述第一后端平台包括第一业务处理装置和远程复制主LUN,其中:
[0017] 所述第一前端平台,用于接收到主机的写请求后,根据当前周期的周期号为所述写请求标记周期号,并将已标记周期号的写请求发送给所属生产集群系统中的第一后端平台中的第一业务处理装置;
[0018] 第一业务处理装置,用于将已标记周期号的写请求写入远程复制主LUN,根据写入所述远程复制主LUN的顺序为所述已标记周期号的写请求标记顺序号,并将已标记周期号和顺序号的写请求发送给容灾中心。
[0019] 本发明实施例提供一种容灾中心,包括:包括至少一个容灾集群系统,所述容灾集群系统包括一个第二前端平台和一个第二后端平台,所述第二后端平台包括第二业务处理装置和远程复制从LUN,其中:
[0020] 所述第二前端平台,用于接收生产中心发送的写请求,所述写请求中标记有周期号和顺序号;
[0021] 所述第二业务处理装置,用于判断所述第二前端平台是否已接收到一个周期号对应的所有写请求,在确定已接收到一个周期号对应的所有写请求时,根据写请求中标记的周期号和顺序号,将接收到的写请求写入远程复制从LUN。
[0022] 本发明实施例提供一种异步远程复制系统,包括:
[0023] 生产中心,用于接收到主机的写请求后,根据当前周期的周期号为所述写请求标记周期号;将已标记周期号的写请求写入本地远程复制主LUN,根据写入所述远程复制主LUN的顺序为所述已标记周期号的写请求标记顺序号;将已标记周期号和顺序号的写请求发送给容灾中心;
[0024] 容灾中心,用于接收生产中心发送的写请求,所述写请求中标记有周期号和顺序号;判断是否已接收到一个周期号对应的所有写请求,在判断结果为已接收到一个周期号对应的所有写请求时,根据写请求中标记的周期号和顺序号,将接收到的写请求写入本地远程复制从LUN。
[0025] 本发明实施例生产中心的生产集群系统接收到主机的写请求时,为该写请求标记周期号,并在写请求写入远程复制主LUN后,为该写请求标记在当前周期内被写入远程复制主LUN的顺序号。生产中心将标记有周期号和顺序号的写请求发送给容灾中心后,对于同一周期的写请求容灾中心可按照顺序号写入远程复制从LUN。从而避免了在同一周期内访问地址冲突的多个写请求到达容灾中心的顺序与在生产中心的写入顺序不一致时,所引起的生产中心的远程复制主LUN中存储的数据与容灾中心的远程复制从LUN中存储的数据不一致的问题。

附图说明

[0026] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0027] 图1为本发明实施例提供的一种异步远程复制方法的流程图;
[0028] 图2A为本发明实施例提供的一种异步远程复制方法应用于分布式存储系统的流程图;
[0029] 图2B为本发明实施例提供的一种生产中心的结构示意图;
[0030] 图2C为本发明实施例提供的一种异步远程复制方法应用于非分布式存储系统的流程图;
[0031] 图3为本发明实施例提供的另一种异步远程复制方法的流程图:
[0032] 图4A为本发明实施例提供的另一种异步远程复制方法应用于分布式存储系统的流程图;
[0033] 图4B为本发明实施例提供的容灾中心实施例结构示意图;
[0034] 图4C为本发明实施例提供的容灾集群系统中的远端缓存中保存的写请求链表的示意图;
[0035] 图5为本发明实施例提供的容灾中心中第二业务处理装置实施例的结构示意图;
[0036] 图6为本发明实施例提供的异步远程复制系统的结构示意图。

具体实施方式

[0037] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0038] 实施例一
[0039] 图1为本发明实施例提供的一种异步远程复制方法的流程图。本实施例从生产中心角度对本发明实施例提供异步远程复制方法的技术方案进行说明。本实施例的执行主体为生产中心的存储系统。如图1所示,本实施例包括:
[0040] 步骤11:生产中心接收到主机的写请求后,根据当前周期的周期号为写请求标记周期号。
[0041] 根据当前周期的周期号为写请求标记周期号,是为了标记生产中心处理该写请求时所处的周期。
[0042] 步骤12:生产中心将已标记周期号的写请求写入本地远程复制主LUN,根据写入远程复制主LUN的顺序为所述已标记周期号的写请求标记顺序号。
[0043] 生产中心将已标记周期号的写请求写入本地远程复制主LUN后,根据写请求写入远程复制主LUN的顺序,为该写请求标记在当前周期内被写入远程复制主LUN的顺序号。因此写请求不仅有标记有该写请求对应的周期号,还标记有该写请求在写入远程复制主LUN时的顺序号。
[0044] 步骤13:生产中心将已标记周期号和顺序号的写请求发送给容灾中心。
[0045] 进一步,在当前周期结束后,生产中心将当前周期的周期号和对应的在当前周期内接收到的主机的写请求数发送给容灾中心。从而以便于容灾中心可根据周期号和对应的写请求数,确定是否已接收到该周期号对应周期的所有写请求,并在确定出已接收到该周期号对应周期的所有写请求时,将该周期内的所有写请求写入远程复制从LUN。
[0046] 本发明实施例,生产中心的存储系统接收到主机的写请求时,为该写请求标记周期号,并在写请求写入远程复制主LUN后,为该写请求标记在当前周期内被写入远程复制主LUN的顺序号。生产中心将标记有周期号和顺序号的写请求发送给容灾中心后,对于同一周期的写请求容灾中心可按照顺序号写入远程复制从LUN。从而避免了在同一周期内访问地址冲突的多个写请求到达容灾中心的顺序与在生产中心的写入顺序不一致时,所引起的生产中心的远程复制主LUN中存储的数据与容灾中心的远程复制从LUN中存储的数据不一致的问题。
[0047] 实施例二
[0048] 在本实施例中分别给出了图1所示的异步远程复制方法在分布式存储系统和非分布式存储系统中的具体应用实例。
[0049] 图2A为本发明实施例提供的一种异步远程复制方法应用于分布式存储系统的流程图。图2B为本发明实施例提供的一种生产中心的结构示意图。本实施例从生产中心角度说明上述异步远程复制方法的技术方案。如图2B所示,本实施例中生产中心的分布式存储系统中包括至少两个生产集群系统。生产集群系统用于处理生产中心的主机下发的写请求。其中,每个生产集群系统包括第一前端平台和第一后端平台,其中第一后端平台包括第一业务处理装置和远程复制主LUN。各生产集群系统中的第一前端平台之间可通过内部网络连接。如图2A所示,本实施例包括:
[0050] 步骤21:生产中心中的每个生产集群系统接收生产中心的主机下发的写请求。
[0051] 可选地,主机与每个生产集群系统中第一前端平台通过SCSI协议通讯,每个生产集群系统的第一前端平台通过SCSI协议接收生产中心的主机下发的写请求。
[0052] 步骤22:每个生产集群系统根据地址映射表确定该写请求的物理地址,并判断该生产集群系统处理的物理地址空间是否包括该写请求的物理地址,若判断结果为该生产集群系统处理的物理地址空间包括该写请求的物理地址,则进入步骤23;否则,忽略该写请求、或向其它生产集群系统的第一前端平台转发该写请求。
[0053] 每个生产集群系统中的第一前端平台接收到主机下发的写请求后,根据写请求中携带的逻辑地址,通过查找地址映射表确定写请求的物理地址,地址映射表中保存有分布式存储系统中逻辑地址与物理地址的映射关系。
[0054] 由于生产中心中每个生产集群系统处理的写请求的物理地址空间与该生产中心中其他生产集群系统处理的写请求的物理地址空间不同(例如,第一生产集群系统用于处理物理地址在00000000~1FFFFFFF物理地址空间内的写请求,第二生产集群系统用于处理物理地址在20000000~3FFFFFFF物理地址空间内的写请求)。在每个生产集群系统中的第一前端平台确定写请求的物理地址不在所属生产集群系统处理的物理地址空间内时,忽略该写请求、或向其它生产集群系统的第一前端平台转发该写请求。
[0055] 步骤23:处理的物理地址空间包括该写请求的物理地址的生产集群系统获取当前周期的周期号,并根据获取的当前周期的周期号为写请求标记周期号,进入步骤24。
[0056] 可选地,所述生产集群系统中的第一前端平台获取当前周期的周期号,并根据获取的当前周期的周期号为写请求标记周期号。
[0057] 其中生产集群系统中的第一前端平台获取当前周期的周期号的方案包括但不限于:
[0058] 方案一、生产集群系统中的第一前端平台从生产中心中一个用于设置周期号的设置装置中获取,具体包括:当接收到写请求时,向所述设置装置发送当前周期号获取请求,并接收所述设置装置反馈的当前周期的周期号;或者,所述设置装置周期性地将当前周期的周期号发送给该生产中心中各生产集群系统中的第一前端平台。第一前端平台周期性接收所述设置装置发送的当前周期的周期号。
[0059] 方案二,预先从生产中心的各生产集群系统中选择一个生产集群系统作为主控生产集群系统,该主控生产集群系统中的第一前端平台可以简称为主控第一前端平台。其中主控第一前端平台用于设置周期号。
[0060] 所述为写请求标记周期号的生产集群系统可以为主控生产集群系统,也可以为非主控生产集群系统。当所述为写请求标记周期号的生产集群系统为主控生产集群系统时,主控第一前端平台可以将自身设置的当前设置的周期号作为获取的当前周期的周期号;当所述为写请求标记周期号的生产集群系统为非主控生产集群系统时,非主控第一前端平台获得当前周期的周期号的方式包括但不限于以下几种:
[0061] 第一方式,主控第一前端平台根据该生产中心非主控第一前端平台的请求,将当前周期号下发给发送请求的非主控第一前端平台。
[0062] 第二方式,主控第一前端平台周期性地将当前周期的周期号发送给该生产中心中的各非主控第一前端平台。非主控第一前端平台周期性接收主控第一前端平台发送的当前周期的周期号。主控第一前端平台和各非主控第一前端平台可以采用内部网络相互连接。
[0063] 相对于第一方式,第二方式通过主控第一前端平台向各非主控生产集群系统中的第一前端平台周期性发送周期号,而不是由多个非主控第一前端平台频繁向主控第一前端平台请求周期号,从而减轻了主控第一前端平台的负载,提高了系统性能。
[0064] 进一步地,主控第一前端平台还统计当前周期内接收到主机的写请求数,在当前周期结束后,主控生产集群系统将当前周期的周期号和对应的在当前周期内接收到的主机的写请求数发送给容灾中心。
[0065] 步骤24,所述生产集群系统将已标记周期号的写请求写入所述生产集群系统的远程复制主LUN。
[0066] 可选地,所述生产集群系统中第一前端平台将已标记当前周期的周期号的写请求下发到该生产集群系统中第一后端平台中的第一业务处理装置,然后由该生产集群系统中第一后端平台中的第一业务处理装置将已标记周期号的写请求写入远程复制主LUN。
[0067] 步骤25:所述生产集群系统根据写入本地远程复制主LUN的顺序为已标记周期号的写请求标记顺序号。
[0068] 可选地,所述生产集群系统中的第一业务处理装置,根据写入本地远程复制主LUN的顺序为已标记周期号的写请求标记顺序号。
[0069] 步骤26:所述生产集群系统将已标记周期号和顺序号的写请求发送给容灾中心。
[0070] 可选地,该生产集群系统中第一业务处理装置,将已标记周期号和顺序号的写请求发送给容灾中心。
[0071] 可选地,上述第一业务处理装置可将已标记周期号和顺序号的写请求写入缓存,通过缓存将写请求发给容灾中心。
[0072] 本发明实施例中生产中心的存储系统为分布式存储系统,其中每个生产集群系统分别用于处理不同物理地址空间的写请求。接收到写请求后,当生产集群系统判断该生产集群系统处理的物理地址空间包括写请求的物理地址时,为该写请求标记周期号,并且根据将该写请求写入远程复制主LUN的顺序为写请求标记顺序号。生产集群系统将已标记周期号和顺序号的写请求发送给容灾中心后,容灾中心接收到标记有周期号和顺序号的写请求后,对于同一周期的写请求容灾中心可按照顺序号写入远程复制从LUN。从而避免了在同一周期内访问地址冲突的多个写请求到达容灾中心的顺序与在生产中心的写入顺序不一致时,所引起的生产中心的远程复制主LUN中存储的数据与容灾中心的远程复制从LUN中存储的数据不一致的问题。
[0073] 需要说明的是,附图1给出的异步远程复制方法也可以应用于非分布式的存储系统,即生产中心存储系统中只包含附图2B中的一个生产集群系统的情况。非分布式存储系统也可以看作是分布式的存储系统的一个特例。图2C为本发明实施例提供的一种异步远程复制方法应用于非分布式存储系统的流程图:
[0074] 步骤201:生产集群系统接收生产中心的主机下发的写请求。
[0075] 可选地,生产集群系统中的第一前端平台接收生产中心的主机下发的写请求。
[0076] 由于在本实例中生产中心的存储系统只包含一个生产集群系统,因此无需执行附图2A中步骤22的判断步骤。
[0077] 步骤202:生产集群系统获取当前周期的周期号,并根据获取的当前周期的周期号为写请求标记周期号。
[0078] 可选地,生产集群系统中的第一前端平台获取当前周期的周期号,并根据获取的当前周期的周期号为写请求标记周期号,所述周期号可以是该生产集群系统中的第一前端平台设置的,也可以是生产平台中用于设置当前周期号的装置设置并周期性的下发给该生产集群系统中的第一前端平台的。
[0079] 步骤203:生产集群系统将已标记当前周期的周期号的写请求写入本地远程复制主LUN。
[0080] 生产集群系统中的第一前端平台将已标记当前周期的周期号的写请求下发到生产集群系统中第一后端平台中的第一业务处理装置,然后由生产集群系统中第一后端平台中的第一业务处理装置将已标记周期号的写请求写入远程复制主LUN。
[0081] 步骤204,生产集群系统根据写入远程复制主LUN的顺序为已标记周期号的写请求标记顺序号。
[0082] 可选地,生产集群系统中的第一业务处理装置,根据写入本地远程复制主LUN的顺序为已标记周期号的写请求标记顺序号。
[0083] 步骤205,生产集群系统将已标记周期号和顺序号的写请求发送给容灾中心。
[0084] 可选地,生产集群系统中第一业务处理装置,将已标记周期号和顺序号的写请求发送给容灾中心。进一步地,生产集群系统中的第一业务处理装置可将已标记周期号和顺序号的写请求写入缓存,通过缓存定期将写请求发给容灾中心。
[0085] 实施例三
[0086] 与实施例一相对应,本实施例从容灾中心角度说明本发明异步远程复制方法的技术方案。图3为本发明实施例提供的另一种异步远程复制方法的流程图。本实施例的执行主体为容灾中心的存储系统。如图3所示,本实施例包括:
[0087] 步骤31:容灾中心接收生产中心发送的写请求,该写请求中标记有周期号和顺序号。
[0088] 步骤32:容灾中心判断是否已接收到一个周期号对应的所有写请求。
[0089] 步骤33:容灾中心在确定已接收到一个周期号对应的所有写请求时,根据写请求中标记的周期号和顺序号,将接收到的写请求写入远程复制从LUN。
[0090] 在步骤32中容灾中心判断是否已接收到一个周期号对应的所有写请求的方式包括但不限于:
[0091] 方式一、对于生产中心的每个周期的时长是等长、而每个周期内接收到的主机发来的写请求的数目不定的情况。每当一个周期结束时,生产中心将当前周期的周期号和对应的所述当前周期内接收到的主机发来的写请求数发送给容灾中心;容灾中心根据生产中心发送的周期号和对应的写请求数,以及步骤31接收到的写请求中标记的周期号和顺序号,判断是否已接收到一个周期号对应的所有写请求。
[0092] 方式二、对于生产中心的每个周期的时长不定、而每个周期内接收到的主机发来的写请求的数目为固定的预设值的情况。容灾中心根据步骤31接收到的写请求中标记的周期号和顺序号,即可判断是否已接收到一个周期号对应的所有写请求,例如当标识有同一个周期号、且不同顺序号的写请求的数量到达所述固定的预设值时,说明已接收到一个周期号对应的所有写请求。
[0093] 本发明实施例,容灾中心接收到的写请求标记有周期号和顺序号,对于同一周期的写请求容灾中心可按照顺序号写入远程复制从LUN。从而避免了在同一周期内访问地址冲突的多个写请求到达容灾中心的顺序与在生产中心的写入顺序不一致时,所引起的生产中心的远程复制主LUN中存储的数据与容灾中心的远程复制从LUN中存储的数据不一致的问题。
[0094] 实施例四
[0095] 在本实施例中分别给出了图3所示的异步远程复制方法在分布式存储系统和非分布式存储系统中的具体应用实例。
[0096] 图4A为本发明实施例提供的另一种异步远程复制方法应用于分布式存储系统的流程图。图4B为本发明实施例提供的容灾中心实施例结构示意图。本实施例从容灾中心角度说明该异步远程复制方法的技术方案。如图4B所示,本实施例中容灾中心的分布式存储系统包括至少两个容灾集群系统。每个容灾集群系统包括第二前端平台和第二后端平台,其中第二后端平台包括第二业务处理装置和远程复制从LUN,可选地第二后端平台还包括远端缓存。在本实施例中容灾中心采用实施例三中的第一种判断是否已接收到一个周期号对应的所有写请求的方式来判断是否已接收到一个周期号对应的所有写请求。如图4A所示,本实施例包括:
[0097] 步骤41:容灾中心中的容灾集群系统接收生产中心发来的写请求,该写请求中标记有周期号和顺序号。该写请求是生产中心中与该容灾集群系统处理的物理地址空间相同的生产集群系统发送的。
[0098] 可选地,容灾集群系统中的第二前端平台接收生产中心中的生产集群系统发送的写请求。
[0099] 也就是说,容灾中心中接收写请求的容灾集群系统所处理的物理地址空间,与生产中心中发送该写请求的生产集群系统处理的物理地址空间相同。
[0100] 步骤42:所述容灾集群系统根据生产中心发送的周期号及对应的写请求数、以及暂存的已接收到的写请求中标记的周期号和顺序号,判断是否已接收到一个周期号对应的所有写请求,若判断结果为已接收到一个周期号对应的所有写请求时,执行步骤43,否则返回步骤41,继续接收生产中心发送的写请求。
[0101] 可选地,该容灾集群系统的第二前端平台接收生产中心的第一业务处理装置发送的写请求后,将该写请求下发给所属容灾集群系统的第二后端平台中第二业务处理装置,第二业务处理装置可将接收到的写请求写入第二后端平台的远端缓存中。具体地,根据写请求中周期号,第二业务处理装置将写请求写入远端缓存中周期号对应的队列中。例如,远端缓存中写请求以链表形式存储,一个周期号对应一个链表,链表中写请求以顺序号排序。第二业务处理装置根据写请求的周期号向远端缓存中链表写入写请求时,按照写请求中标记的顺序号将写请求插入链表中相应位置。图4C为本发明实施例提供的容灾集群系统中的远端缓存中保存的写请求链表的示意图。如图4C所示,每个周期号对应一个链表,链表中写请求以顺序号排序。
[0102] 进一步,该容灾集群系统的第二前端平台还可接收到生产中心发送的周期号和该周期号对应的周期内接收的写请求数,并将接收到的周期号和对应的写请求数发送给所属容灾集群系统中的第二后端平台中第二业务处理装置。所述第二业务处理装置根据第二前端平台发送的周期号及对应的写请求数、以及暂存的已接收到的写请求中标记的周期号和顺序号,判断是否已接收到一个周期号对应的所有写请求。具体地,第二业务处理装置判断已接收的同一周期号、且不同顺序号的写请求的数目与生产中心发来的该周期号对应的写请求数是否相同;若已接收的同一周期号、且不同顺序号的写请求的数目与生产中心发来的该周期号对应的写请求数相同,则确定已接收到该周期号对应的所有写请求;否则,确定未接收到该周期号对应的所有写请求。
[0103] 步骤43:所述容灾集群系统已接收到一个周期号对应的所有写请求时,判断该周期号对应的所有写请求中是否存在访问地址冲突的写请求。如果判断结果为是,执行步骤44,否则执行步骤45。
[0104] 步骤44:若存在访问地址冲突的写请求,该容灾集群系统根据写请求中的顺序号将该周期号对应的写请求依次写入该容灾集群系统的远程复制从LUN。
[0105] 可选地,该容灾集群系统的第二业务处理装置在远端缓存的队列中查找写请求中周期号对应的队列,根据写请求中顺序号将队列中的写请求写入远程复制从LUN中。
[0106] 步骤45:若不存在访问地址冲突的写请求,该容灾集群系统将该周期号对应的写请求并发写入远程复制从LUN。
[0107] 可选地,该容灾集群系统的第二业务处理装置在远端缓存的队列中查找写请求中周期号对应的队列,将该周期号对应的写请求并发写入远程复制从LUN。例如,在T2周期内生产中心的Host1和Host2先后向第一前端平台下发访问逻辑地址LBA1的A写请求和访问逻辑地址LBA1的B写请求,第一后端平台的本地远程复制主LUN中写请求写入的顺序为先A后B。当网络延时等原因造成B写请求先于A写请求到达容灾中心,并先于A写请求写入容灾中心的第二后端平台的远端缓存中时,由于A写请求和B写请求均标记有周期号和顺序号,第二后端平台根据周期号和顺序号,先将A写请求写入远端缓存,再将B请求写入远端缓存,并根据远端缓存中写入远程复制从LUN,从而避免了远程复制主LUN和远程复制从LUN中存储的数据不一致的问题。
[0108] 本发明实施例中容灾中心的存储系统为分布式存储系统,每个容灾集群系统分别用于处理不同物理地址空间的写请求。容灾集群系统接收到生产中心中与该容灾集群系统处理的物理地址空间相同的生产集群系统发送的写请求后,判断是否已接收到一个周期号对应的所有写请求。在确定已接收到所有写请求时,再判断该周期号对应的所有写请求中是否存在物理地址冲突的写请求,以确定将该周期号的写请求按照其中标记的顺序号依次写入远程复制从LUN,还是并发写入远程复制从LUN。
[0109] 需要说明的是,附图3给出的另一种异步远程复制方法也可以应用于非分布式的存储系统,即容灾中心存储系统中只包含附图4B中的一个容灾集群系统的情况。非分布式存储系统也可以看作是分布式的存储系统的一个特例,其处理流程与附图4A也基本类似,只不过在步骤41中,由于只有一个容灾集群系统,因而无需限定接收到的写请求为生产中心中与该容灾集群系统处理的物理地址空间相同的生产集群系统发送的写请求,只需要是生产中心发来的写请求即可。
[0110] 实施例五
[0111] 图2B为本发明实施例提供的生产中心的分布式存储系统结构示意图。如图2B所示,生产中心包括至少一个生产集群系统,每个生产集群系统包括一个第一前端平台51和一个第一后端平台52,第一后端平台包括第一业务处理装置521和远程复制主LUN522。
[0112] 第一前端平台51,用于接收到主机的写请求后,根据当前周期的周期号为写请求标记周期号,并将已标记周期号的写请求发送给所属生产集群系统中的第一后端平台52中的第一业务处理装置521。
[0113] 第一业务处理装置521,用于将已标记周期号的写请求写入远程复制主LUN,根据写入所述远程复制主LUN的顺序为所述已标记周期号的写请求标记顺序号,并将已标记周期号和顺序号的写请求发送给容灾中心。
[0114] 进一步,生产中心包含至少两个生产集群系统,即生产中心的存储系统为分布式存储系统时:第一前端平台51,还用于在根据当前周期的周期号为所述写请求标记周期号之前,根据接收到的写请求中的逻辑地址、以及保存有逻辑地址与物理地址的映射关系的地址映射表,确定该写请求的物理地址,并判断出该写请求的物理地址在所属生产集群系统处理的物理地址空间内。
[0115] 进一步,所述生产中心包含至少两个生产集群系统为一个主控生产集群系统和至少一个非主控生产集群系统;
[0116] 主控生产集群系统中的第一前端平台51,还用于设置当前周期的周期号,并将设置的当前周期的周期号下发给各非主控生产集群系统;
[0117] 所述主控生产集群系统中的第一前端平台51,还用于将自身设置的当前周期的周期号标记在所述写请求中;
[0118] 所述主控生产集群系统中的第一前端平台51,还用于统计当前周期内接收到所述主机的写请求数;在当前周期结束后,将当前周期内所述第一前端平台接收到所述主机的写请求数和当前周期的周期号发送给容灾中心;
[0119] 非主控生产集群系统中的第一前端平台51,还用于获取主控生产集群系统中的第一前端平台周期性下发的当前周期的周期号。
[0120] 所述非主控生产集群系统中的第一前端平台51,还用于将获取的当前周期的周期号标记在所述写请求中。
[0121] 上述各装置的工作机理参见图2A对应实施例中描述,在此不再赘述。
[0122] 在生产中心中包含至少两个生产集群系统时,本发明实施例中生产中心的存储系统为分布式存储系统,每个生产集群系统分别用于处理不同物理地址空间的写请求。处理的物理地址空间包括该写请求的物理地址的生产集群系统,其中的第一前端平台根据主控第一前端平台下发的周期号为写请求标记周期号。上述生产集群系统的第一业务处理装置为根据写请求写入远程复制主LUN的顺序为写请求标记顺序号。容灾中心接收到写请求标记有周期号和顺序号,对于同一周期的写请求容灾中心可按照顺序号写入远程复制从LUN。从而避免了在同一周期内访问地址冲突的多个写请求到达容灾中心的顺序与在生产中心的写入顺序不一致时,所引起的生产中心的远程复制主LUN中存储的数据与容灾中心的远程复制从LUN中存储的数据不一致的问题。
[0123] 实施例六
[0124] 图4B为本发明实施例提供的容灾中心实施例的结构示意图。如图4B所示,容灾中心包括至少一个容灾集群系统,容灾集群系统包括一个第二前端平台61和一个第二后端平台62,第二后端平台62包括第二业务处理装置621和远程复制从LUN622。其中,[0125] 第二前端平台61,用于接收生产中心发送的写请求,写请求中标记有周期号和顺序号。
[0126] 进一步,容灾中心包含至少两个容灾集群系统时:第二前端平台61,具体用于接收生产中心中与该第二前端平台61所属容灾集群系统处理的物理地址空间相同的生产集群系统发送的写请求。
[0127] 第二业务处理装置621,用于判断第二前端平台61是否已接收到一个周期号对应的所有写请求,在确定已接收到一个周期号对应的所有写请求时,根据写请求中标记的周期号和顺序号,将接收到的写请求写入远程复制从LUN622。
[0128] 可选地,所述容灾集群系统还包括远端缓存623。
[0129] 所述远端缓存623用于以链表方式存储第二前端平台61接收的写请求,具体地每个周期号对应一个链表,每个周期号对应的链表中的写请求以顺序号排序,[0130] 所述第二业务处理装置621根据远端缓存623中存储的链表判断第二前端平台61是否已接收到一个周期号对应的所有写请求。
[0131] 上述各装置的工作机理参见图4A对应实施例中描述,在此不再赘述。
[0132] 在容灾中心中包含至少两个容灾集群系统时,本发明实施例中容灾中心的存储系统为分布式存储系统,每个容灾集群系统用于处理的写请求的物理地址空间与该容灾中心中其他容灾集群系统用于处理的写请求的物理地址空间不同。容灾中心中接收写请求的容灾集群系统所处理的物理地址空间,与生产中心中发送该写请求的生产集群系统处理的物理地址空间相同。上述容灾集群系统的第二业务处理装置接收到第二前端平台转发的写请求时,根据第二前端平台转发的写请数和周期号,判断是否已接收到一个周期号对应的所有写请求。在确定已接收到所有写请求时,再判断该周期号对应的所有写请求中是否存在物理地址冲突的写请求,以确定将该周期号的写请求按照其中标记的顺序号依次写入远程复制从LUN,还是并发写入远程复制从LUN。
[0133] 实施例七
[0134] 图5为本发明实施例提供的容灾中心中第二业务处理装置实施例的结构示意图。如图5所示,第二业务处理装置621包括:请求数判断模块6211、冲突判断模块6212、串行写模块6213和并发写模块6214。
[0135] 第二前端平台,还用于接收生产中心发送的周期号和在该周期号对应的周期内接收到的写请求数。
[0136] 请求数判断模块6211,用于根据第二前端平台接收到的生产中心发送的周期号和写请求数、以及暂存的已接收到的写请求中标记的周期号和顺序号,判断是否已接收到一个周期号对应的所有写请求。
[0137] 冲突判断模块6212,用于在请求数判断模块6211确定出已接收到一个周期号对应的所有写请求时,判断周期号对应的所有写请求中是否存在访问地址冲突的写请求。
[0138] 串行写模块6213,用于若冲突判断模块6212判断出存在访问地址冲突的写请求,则根据写请求中的顺序号将周期号对应的写请求依次写入远程复制从LUN。
[0139] 并发写模块6214,用于若冲突判断模块6212判断出不存在访问地址冲突的写请求,则将周期号对应的写请求并发写入远程复制从LUN。
[0140] 实施例八
[0141] 图6为本发明实施例提供的异步远程复制系统的结构示意图。如图6所示,生产中心包括至少一个生产集群系统,每个生产集群系统包括一个第一前端平台51和一个第一后端平台52,第一后端平台52包括第一业务处理装置521和远程复制主LUN522。容灾中心包括至少一个容灾集群系统,容灾集群系统包括一个第二前端平台61和一个第二后端平台62,第二后端平台62包括第二业务处理装置621和远程复制从LUN622。
[0142] 上述各装置的工作机理参见图2B和图4B对应实施例中描述,在此不再赘述。
[0143] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0144] 最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。