一种异步远程复制的方法、装置和系统与流程

文档序号:13482883阅读:333来源:国知局

本发明涉及数据保护技术,尤其涉及一种异步远程复制的方法、装置和系统。



背景技术:

远程复制是在存储领域一种常用的数据保护方法,通过在本地设备与远端设备进行远程复制操作,可以对一份数据生成多份相同的数据拷贝。远程复制过程的类型可以包括同步远程复制和异步远程复制;其中,本地设备所创建本地卷叫主卷,远程设备所创建的远程卷叫从卷。

同步远程复制是指本地数据以完全同步的方式复制到远程,因此,本地设备的每个输入/输出(i/o,input/output)均需等待远程设备返回的完成确认信息。这样会导致发送数据到远程设备会消耗一定时间,从而对本地设备的上层应用性能有一定的影响,存在往返传播造成延时较长的缺点,因此,同步远程复制只限于本地设备和远程设备之间处于相对较近的距离上应用。

异步远程复制保证在更新远端设备存储数据前完成向本地存储系统的写入,只要写请求对应的数据已经被成功写入本地设备的主卷后,即可向本地设备的上层应用返回写成功确认消息,并且,远程的数据复制是以后台同步的方式进行的,这使本地设备的系统性能受到的影响很小,因此,异步远程复制的传输距离长,对网络带宽要求小。

当前异步远程复制的具体实现是基于快照的块级别的异步远程复制,具体原理是:远程复制同步周期启动时,主从卷分别创建快照。本地设备从主卷快照中读取数据并发送到从卷,主卷快照可以保证同步过程中读取到的主卷数据具备一致性,并使同步过程与本地设备主机(后续部分均简称为主机)对主卷的写过程可以同时进行。从卷快照用于备份从卷在同步开始前的数据,避免同步过程发生异常导致从卷的数据不可用。

而当前主卷收到写io数据时,有时需要进行写时复制(cow,copyonwrite)的处理,导致写io数据的处理时延不同,存在一定的性能波动问题。



技术实现要素:

为解决上述技术问题,本发明实施例期望提供一种异步远程复制的方法、装置和系统,能够实现主机对写入数据的快速响应。

本发明的技术方案是这样实现的:

第一方面,本发明实施例提供了一种异步远程复制的方法,应用于本地设备的磁盘阵列,所述磁盘阵列除了设置有主卷外,还额外设置有增量数据区,所述方法包括:

所述主卷接收所述主机发送的写入请求;其中,所述写入请求中包括待写入的新数据以及所述新数据写入所述主卷的目标数据块。

所述主卷确定当前所述目标数据块已处于异步远程复制过程中时,所述磁盘阵列将所述主卷设置为内部只读状态,并将所述新数据写入到所述增量数据区中数据块;

所述磁盘阵列建立所述新数据在所述增量数据区中数据块与所述主卷中数据块之间的地址映射;

在异步远程复制过程中,所述磁盘阵列根据所述新数据在所述增量数据区中数据块与所述主卷中数据块之间的地址映射将所述主卷中的数据块和所述增量数据区中的数据块组成差异数据,并将差异数据发送至从卷。

在上述方案中,所述增量数据区具体选用高速存储介质;所述高速存储介质包括固态硬盘ssd。

在上述方案中,所述新数据在所述增量数据区中数据块与所述主卷中数据块之间的地址映射,具体包括:

所述新数据写入所述主卷的目标数据块标识、所述目标数据块中需更新数据的起始地址以及所述新数据长度之间的对应关系。

在上述方案中,所述磁盘阵列将所述新数据写入到所述增量数据区中数据块,具体包括:

所述磁盘阵列对所述写入的新数据以及增量数据区中的数据的写入顺序进行整理。

在上述方案中,磁盘阵列还可以包括历史数据区,相应地,所述方法还包括:

在将所述增量数据区的新数据块写入所述主卷时,将所述主卷中的历史数据保存至所述历史数据区,再将所述新数据块拷贝至主卷中对应的数据块。

在上述方案中,所述将所述主卷中的历史数据保存至所述历史数据区,再将所述新数据块拷贝至主卷中对应的数据块,包括:

将所述新数据写入所述增量数据区;

将所述新数据存于所述增量数据区的新数据块传输至所述主卷;

所述主卷将被新数据块替换的原数据块拷贝至所述历史数据区;

所述主卷将所述新数据块保存至对应的数据块。

在上述方案中,所述方法还包括:

将所述数据块的差异标识修改为扇区级别,对应的所述差异数据为所述增量数据区中的新数据。

第二方面,本发明实施例提供了一种磁盘阵列,所述磁盘阵列设置于本地设备,所述磁盘阵列包括:主卷、增量数据区、接收模块、写入模块、映射模块和发送模块;其中,

所述接收模块,用于接收所述主机向所述主卷发送的写入请求;其中,所述写入请求中包括待写入的新数据以及所述新数据写入所述主卷的目标数据块。

所述写入模块,用于确定当前所述目标数据块已处于异步远程复制过程中时,将所述主卷设置为内部只读状态,并将所述新数据写入到所述增量数据区中数据块;

所述映射模块,用于建立所述新数据在所述增量数据区中数据块与所述主卷中数据块之间的地址映射;

所述发送模块,用于根据所述新数据在所述增量数据区中数据块与所述主卷中数据块之间的地址映射将所述主卷中的数据块和所述增量数据区中的数据块组成差异数据,并将差异数据发送至从卷。

在上述方案中,所述增量数据区具体选用高速存储介质;所述高速存储介质包括固态硬盘ssd。

在上述方案中,所述新数据在所述增量数据区中数据块与所述主卷中数据块之间的地址映射,具体包括:

所述新数据写入所述主卷的目标数据块标识、所述目标数据块中需更新数据的起始地址以及所述新数据长度之间的对应关系。

在上述方案中,所述写入模块,具体用于对所述写入的新数据以及增量数据区中的数据的写入顺序进行整理。

在上述方案中,磁盘阵列还包括历史数据区,用于在将所述增量数据区的新数据块写入所述主卷时,将所述主卷中的历史数据进行保存,

所述写入模块,还用于将所述新数据块拷贝至主卷中对应的数据块。

在上述方案中,所述写入模块,用于:

将所述新数据写入所述增量数据区;

以及将所述新数据存于所述增量数据区的新数据块传输至所述主卷;

所述历史数据区,用于接收所述主卷将被新数据块替换的原数据块的传输;

所述主卷,用于将所述新数据块保存至对应的数据块。

在上述方案中,所述增量数据区,用于将所述数据块的差异标识修改为扇区级别;

相应地,所述差异数据为所述增量数据区中的新数据。

第三方面,本发明实施例提供了一种异步远程复制的系统,所述系统包括本地设备和远端设备从卷;其中,所述本地设备包括主机和磁盘阵列;所述磁盘阵列除了设置有主卷外,还额外设置有增量数据区;

所述主卷用于,接收所述主机发送的写入请求;其中,所述写入请求中包括待写入的新数据以及所述新数据写入所述主卷的目标数据块。

所述主卷用于确定当前所述目标数据块已处于异步远程复制过程;

所述磁盘阵列用于,将所述主卷设置为内部只读状态,并将所述新数据写入到所述增量数据区中数据块;

所述磁盘阵列用于,建立所述新数据在所述增量数据区中数据块与所述主卷中数据块之间的地址映射;

所述磁盘阵列用于,在异步远程复制过程中,根据所述新数据在所述增量数据区中数据块与所述主卷中数据块之间的地址映射将所述主卷中的数据块和所述增量数据区中的数据块组成差异数据,并将差异数据发送至从卷。

本发明实施例提供了一种异步远程复制的方法、装置和系统,在异步远程复制过程中,当主卷接收到写入请求时,将新数据写入到增量数据区,并通过建立新数据在增量数据区中数据块与主卷中数据块之间的地址映射,能够在异步远程复制中,无需进行cow,避免由于cow导致的主机的写入延时,提升了主机写入性能,并且能够实现主机对写入数据的快速响应。

附图说明

图1为当前基于快照的块级别的异步远程复制流程示意图;

图2为本发明实施例提供的一种异步远程复制的方法流程示意图;

图3为本发明实施例提供的一种映射表的结构示意图;

图4为本发明实施例提供的一种顺序写入的流程示意图;

图5为本发明实施例提供的一种历史数据保存流程示意图;

图6为本发明实施例提供的一种异步远程复制的流程示意图;

图7为本发明实施例提供的另一种异步远程复制的流程示意图;

图8为本发明实施例的一种位于本地设备的磁盘阵列结构示意图;

图9为本发明实施例的另一种位于本地设备的磁盘阵列结构示意图;

图10为本发明实施例的一种异步远程复制的系统结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

参见图1,其示出了当前基于快照的块级别的异步远程复制流程,可以包括:

s11:主机下发写请求至主卷;

s12:主卷将写结果返回主机;

当远程复制同步周期启动时,主从卷的快照被激活;

此时,执行步骤s13:主卷快照将数据复制到从卷中;

s14:从卷写入数据完成后向主卷快照返回结果;

需要说明的是,当主机向主卷写入数据块a时,被写入的数据块a没有做cow,此时,若将新数据块b写入数据块a时还会进行cow过程,如图1所示,还包括:

s15:主机向主卷写入数据块a;值得注意的是,写入数据块a之后,并没有针对该数据块a进行cow;

此时,若在数据块a的位置,比如lbax处写入新数据块b时,需要执行步骤s16:将数据块a拷贝到快照中;

s17:将数据块b写入数据块a的位置。

由此可以看出,主机将数据块a更新为数据块b的过程只是一次写入过程,但是由于cow的触发,会导致该过程在实际实现过程中变成了主机先同步读出数据块a,再将数据块a写入快照数据区之后,最后主机再将新数据块b写入主卷,也就是相当于主机一次写入过程变成了一次读出和二次写入过程。因此,当前基于快照的块级别的异步远程复制流程机制在数据写入的过程中,增加了将已写入的数据块进行cow拷贝的时延,从而影响了主机的写性能,并且增加了主机的写入时延。

针对图1所示的方案,本发明实施例的基本思想是:在本地设备主机端,额外设置增量数据区,当进行异步远程复制的过程中,将主卷设置为只读,主机写入的数据直接如入增量数据区,并建立写入数据与主卷地址的映射关系,从而在异步远程复制过程中,当主卷需要写入数据的时候,避免由于cow导致的主机的写入延时。

基于上述基本思想,提出本发明的以下实施例。

实施例一

参见图2,其示出了本发明实施例提供的一种异步远程复制的方法,该方法应用于本地设备的磁盘阵列,该磁盘阵列除了设置有主卷外,还额外设置有增量数据区,所述方法包括:

s201:主卷接收主机发送的写入请求;

其中,写入请求中包括待写入的新数据以及新数据写入主卷的目标数据块。

s202:主卷确定当前目标数据块已处于异步远程复制过程中时,将主卷设置为内部只读状态,并将新数据写入到所述增量数据区中数据块;

s203:磁盘阵列建立新数据在增量数据区中数据块与主卷中数据块之间的地址映射。

s204:在异步远程复制过程中,磁盘阵列根据新数据在增量数据区中数据块与主卷中数据块之间的地址映射将主卷中的数据块和增量数据区中的数据块组成差异数据,并将差异数据发送至从卷。

对于上述方案,需要说明的是,磁盘阵列将新数据写入到增量数据区中数据块之后,就可以直接向主机返回写入成功响应,增量数据区中的数据可以后续异步地保存至主卷,从而将图1所示的现有的需要进行同步完成的两步操作变成了异步操作,提高了主机的写入性能,降低了主机的写入延时。

还需要说明的是,当主卷接收主机发送的写入请求之后,若确定当前目标数据块不处于异步远程复制过程中时,则直接将新数据写入到主卷中。

通过图1所示的方案,在异步远程复制过程中,当主卷接收到写入请求时,将新数据写入到增量数据区,并通过建立新数据在增量数据区中数据块与主卷中数据块之间的地址映射,能够在异步远程复制中,无需进行cow,避免由于cow导致的主机的写入延时,提升了主机写入性能。

基于图2所示的方案,示例性地,除了传统的机械硬盘之外,增量数据区具体可以选用高速存储介质,例如固态硬盘(ssd,solidstatedrives),虽然ssd单位gb的成本要比传统机械硬盘高很多,但是由于增量数据区使用的空间比较小,因此,可以通过由高速存储介质,如ssd来替代传统机械硬盘,使得ssd快速接收写入的数据使得写操作尽可能快的返回,从而进一步地提升异步远程复制时主机的写入性能。对于用户来说,此时主机的写入性能相当于ssd的写入性能。

对于图2所示的技术方案,示例性地,新数据在增量数据区中数据块与主卷中数据块之间的地址映射,如图3所示,具体可以包括:

新数据写入主卷的目标数据块标识、目标数据块中需更新数据的起始地址以及新数据长度(即偏移量)之间的对应关系。

上述的对应关系在具体实现过程中可以以图3所示的映射表形式进行保存作为示例,本实施例对此不作具体限定。

优选地,当完成主机写请求之后,为了方便数据的查询及下一次的数据写请求,本技术方案还可以包括:对写入的新数据以及增量数据区中的数据的写入顺序进行整理,以使数据存储更加合理,此后的数据操作更加简便。

具体地,为了实现主机数据写入的快速响应,并且可以将主机随机写入的数据经过数据区重新排序之后尽可能变成顺序写,尤其是在数据库随机小io场景可以有效的提升数据区刷新的效率。详细过程参见图4,

s41:增量数据区接收主机的写入请求;

s42:增量数据区快速响应写入请求;

s43:在预设的时间后,增量数据区再将主机随机写入的数据顺序地刷新到主卷的数据区。

对于图2所示的技术方案,示例性地,磁盘阵列还可以包括历史数据区,相应地,本实施例的技术方案还可以包括:

在将增量数据区的新数据块写入主卷时,将主卷中的历史数据保存至历史数据区,再将新数据块拷贝至主卷中对应的数据块。

可以理解地,历史数据可以是被新数据块替换的原数据块。不同时期的增量数据区和从卷合并可以生成特定时间的复制卷。从而实现支持恢复到任一个时间点而无需预先从主节点产生拷贝。

在具体实现过程中,如图5所示,上述示例可以包括:

s51:将新数据写入增量数据区;

s52:将新数据存于增量数据区的新数据块传输至主卷;

s53:主卷将被新数据块替换的原数据块拷贝至历史数据区;

s54:主卷将新数据块保存至对应的数据块。

对应地,当需要访问增量数据区某个时间点的数据时,对没有改变过的数据块直接从主卷中读取,对已经改变并被复制的块则从历史数据区读取。当需要访问最新数据时,查看元数据,如果在增量数据区中有对应的数据块,则优先从数据区中读取,否则从主卷中读取,利用ssd提升热点数据的访问速度。

对于图2所示的技术方案中的步骤s204,需要说明的是,当远程复制启动时,主卷将差异数据发送到从卷,其中差异数据由增量数据区数据和主卷数据区中的数据组成,这里将涉及数据块粒度的选择,如附图6的示意图,以一个扇区512字节为单位,假设设置数据块大小是4k,所占用的扇区块为8个。主机新写入实际数据只有2块,实际发生数据写只有两块的变化,基于快照的块级别的异步远程复制在发送差异数据时是以数据块大小4k标记差异的,所以存在补齐读的问题,本例中从数据卷中读取123457这六个数据与数据区中的68数据组成一个数据块发送到从卷,这里由于多了一次补齐读影响了异步复制的性能,而且在链路上传输了整个数据块包含了一些旧数据,增加了链路的负担,而本发明实施例中,步骤s203中,还可以包括:

将数据块的差异标识修改为扇区级别,对应的差异数据为增量数据区中的新数据。具体以图6为例,在ssd加速系统中改造ssd的闪存转换层来有效减少元数据规模,使元数据差异标识可以做到扇区级别,这样在传输时可以只传送变化的数据,如图6中只需要传送2块扇区,减少实际传送的字节数,这样进一步地减少了实际网络上数据传输量,也就是减少带宽占用。

实施例二

对于上述实施例的具体实现,需要说明的是,如图7中所示主卷中数据块包含数据a和数据b,主机数据写入请求将数据b更新为数据c。

此时,如图7中的左图所示:按照传统的基于快照的块级别的异步远程复制流程,可以包括:

s71:当主卷已经建立了快照,此时快照状态1中的数据ab是指向主卷ab的指针。

s72:当快照建立之后的主卷第一次接收到数据写入的请求,则首先将包含数据a和数据b的数据块全部拷贝到快照区的存储区域,即快照状态2;

s73:将数据c写入数据块中原本数据b所在存储的位置。

与图7的左图相比较而言,通过上述实施例的技术方案,如图7中的右图所示,把数据c直接写在增量数据区的数据区中,然后建立数据a与增量数据区中的数据c的地址映射从而对主机形成已经更新的新数据索引。当主机需要访问更新后的数据时,将主卷中数据a和增量数据区中数据c进行访问返回,此时对主机来说数据已经实现了更新。同时主卷中的数据块实际上并未更新,完整的保留了历史数据b。

实施例三

基于前述实施例相同的技术构思,参见图8,其示出了本发明实施例的一种位于本地设备的磁盘阵列80,该磁盘阵列80可以包括:主卷801、增量数据区802、接收模块803、写入模块804、映射模块805和发送模块806;其中,

所述接收模块803,用于接收所述主机向所述主卷801发送的写入请求;其中,所述写入请求中包括待写入的新数据以及所述新数据写入所述主卷801的目标数据块。

所述写入模块804,用于确定当前所述目标数据块已处于异步远程复制过程中时,将所述主卷801设置为内部只读状态,并将所述新数据写入到所述增量数据区802中数据块;

所述映射模块805,用于建立所述新数据在所述增量数据区802中数据块与所述主卷801中数据块之间的地址映射;

所述发送模块806,用于根据所述新数据在所述增量数据区802中数据块与所述主卷801中数据块之间的地址映射将所述主卷801中的数据块和所述增量数据区802中的数据块组成差异数据,并将差异数据发送至从卷。

在上述方案中,所述增量数据区802具体选用高速存储介质;所述高速存储介质包括固态硬盘ssd。

在上述方案中,所述新数据在所述增量数据区802中数据块与所述主卷801中数据块之间的地址映射,具体包括:

所述新数据写入所述主卷801的目标数据块标识、所述目标数据块中需更新数据的起始地址以及所述新数据长度之间的对应关系。

在上述方案中,所述写入模块804,具体用于对所述写入的新数据以及增量数据区802中的数据的写入顺序进行整理。

在上述方案中,参见图9,磁盘阵列80还包括历史数据区807,用于在将所述增量数据区802的新数据块写入所述主卷801时,将所述主卷801中的历史数据进行保存,

所述写入模块804,还用于将所述新数据块拷贝至主卷801中对应的数据块。

在上述方案中,所述写入模块804,用于:

将所述新数据写入所述增量数据区802;

以及将所述新数据存于所述增量数据区802的新数据块传输至所述主卷801;

所述历史数据区,用于接收所述主卷801将被新数据块替换的原数据块的传输;

所述主卷801,用于将所述新数据块保存至对应的数据块。

在上述方案中,所述增量数据区802,用于将所述数据块的差异标识修改为扇区级别;

相应地,所述差异数据为所述增量数据区802中的新数据。

实施例四

基于前述实施例相同的技术构思,参见图10,其示出了本发明实施提供的一种异步远程复制的系统100,所述系统100包括本地设备110和远端设备从卷120;其中,所述本地设备110包括主机1101和磁盘阵列1102;所述磁盘阵列1102除了设置有主卷11021外,还额外设置有增量数据区11022;

所述主卷11021用于,接收所述主机1101发送的写入请求;其中,所述写入请求中包括待写入的新数据以及所述新数据写入所述主卷11021的目标数据块。

所述主卷11021用于确定当前所述目标数据块已处于异步远程复制过程;

所述磁盘阵列1102用于,将所述主卷11021设置为内部只读状态,并将所述新数据写入到所述增量数据区11022中数据块;

所述磁盘阵列1102用于,建立所述新数据在所述增量数据区11022中数据块与所述主卷11021中数据块之间的地址映射;

所述磁盘阵列1102用于,在异步远程复制过程中,根据所述新数据在所述增量数据区11022中数据块与所述主卷11021中数据块之间的地址映射将所述主卷11021中的数据块和所述增量数据区11022中的数据块组成差异数据,并将差异数据发送至从卷120。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

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