CN103092533B - 一种数据远程同步的方法和系统 - Google Patents
一种数据远程同步的方法和系统 Download PDFInfo
- Publication number
- CN103092533B CN103092533B CN201310026041.3A CN201310026041A CN103092533B CN 103092533 B CN103092533 B CN 103092533B CN 201310026041 A CN201310026041 A CN 201310026041A CN 103092533 B CN103092533 B CN 103092533B
- Authority
- CN
- China
- Prior art keywords
- data
- medium
- mirror image
- chunk size
- units chunk
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Abstract
本申请公开了一种数据远程同步的方法,包括:A、创建并初始化同步介质对,所述同步介质对由一个源介质与一个镜像介质组成,源介质为本地存储系统中的一个存储设备,而镜像介质为远端存储系统中的一个存储设备;初始化后的同步介质对中的源介质和镜像介质存储的数据一致;B、拦截对源介质的操作请求,如果该操作请求为写数据请求,则执行步骤C;否则不作任何操作;C、将包含写数据请求的写入位置、所要写入的数据以及数据长度的同步请求发送到镜像介质,完成发送操作后,在源介质完成写入操作;D、镜像介质在接收到所述同步请求时,从中提取出写入位置以及数据长度信息,然后将所要写入的数据写入到镜像介质的对应位置。
Description
技术领域
本申请涉及数据存储技术,尤其涉及一种数据远程同步的方法和系统。
背景技术
随着信息技术的发展,数据已经成为信息技术中最为关键的元素。如在线购物网站中的财富记录,产品信息,以及用户交易信息等是这些购物网站的核心资产,一旦丢失,企业将直接面临倒闭,而用户的财产则面临巨大的损失风险。又如企业的日常运营生产的数据,图表信息以及智力产品的记录等等,这些数据一旦丢失可能意味着业务的停顿、工厂的停产、公司的倒闭,通信的中断等,而这些结果无疑都会导致各种各样的财产损失。因此对于数据的保护技术,伴随着信息技术的发展也在不断发展。
随着存储技术的发展,存储物理器件的升级降低了数据丢失的风险,数据安全及保护的技术也得到快速的开发和应用。但是引起数据丢失或者损坏的情况多种多样,如自然灾害、人为损坏、机械故障、电力失效等等都可能会造成数据丢失的问题。数据保护的最好办法就是生成冗余备份,即对于同样的数据存储多个副本,这样就避免了存储的单点故障而导致丢失所有的数据的悲剧。
但是,数据的多副本存储只是在理论上给数据保护的问题提供了一个指导思想,在实际应用中,要防止各种破坏事件对数据造成的威胁,则需要针对不同的情况应用不同的策略。例如,在分离的磁盘上进行数据的冗余备份,解决了一到两块磁盘失效时的数据安全问题;对整个物理存储设备进行数据的冗余备份,则是解决了单个设备损坏的情况下的数据安全问题。为了数据保护能够对抗更大范围的灾难事件(如洪水、地震、战争等),除了在物理上利用冗余的存储进行数据保护,还需要在地理上对数据冗余复本进行远程分离,以达到将数据损坏事件局部化的结果,保证在任何时候,都至少有一个可用的副本。
为了保证多个副本之间数据的一致性,需要采用一定的同步策略,将源数据实时同步到多个副本。传统的同步策略是对源数据直接进行复制操作,这需要大量复制重复数据,导致在远程复制数据时严重占用网络及系统资源。同时,远程位置之间的有限带宽连接,常常会导致数据传输速度存在限制,使得远程同步策略的应用受到相当大的制约。而在文件级别使用增量的同步策略,仍然具有较大的数据粒度,因此其最终需要同步的数据量依然相当大。因此,两种方案均无法对数据进行有效的实时同步保护。
发明内容
本申请提供了一种数据远程同步的方法和系统,可以仅占用较小网络数据带宽的情况下,实现远程实时数据同步。
本申请实施例提供的一种数据远程同步的方法,包括:
A、创建并初始化同步介质对,所述同步介质对由一个源介质与一个镜像介质组成,源介质为本地存储系统中的一个存储设备,而镜像介质为远端存储系统中的一个存储设备;初始化后的同步介质对中的源介质和镜像介质存储的数据一致;
B、拦截对源介质的操作请求,如果该操作请求为写数据请求,则执行步骤C;否则不作任何操作;
C、将包含写数据请求的写入位置、所要写入的数据以及数据长度的同步请求发送到镜像介质,完成发送操作后,在源介质完成写入操作;
D、镜像介质在接收到所述同步请求时,从中提取出写入位置以及数据长度信息,然后将所要写入的数据写入到镜像介质的对应位置。
较佳地,存在至少一个源介质,针对该源介质创建一个以上同步介质对;任何一个镜像介质对应唯一一个同步介质对。
较佳地,存在至少一个存储设备,该存储设备在第一同步介质对中作为镜像介质,同时在第二同步介质对中作为源介质。
较佳地,所述初始化同步介质对包括:
A1、源介质通知镜像介质对其存储的数据进行摘要计算;
A2、镜像介质从本存储介质的开始位置顺序依次读取单位块大小的数据块,对于每一个所读取的单位块大小的数据块分别计算一个数据摘要,并将数据摘要与对应数据块的存储位置、单位块大小发送到源介质;
A3、源介质将接收到的数据摘要与本地存储的对应数据块的数据摘要进行比较,如果摘要值相同,则不作处理,否则,源介质将所述本地存储的数据块的数据、存储位置、单位块大小发送到镜像介质;
A4、镜像介质接收来自源介质的数据块的数据、存储位置、单位块大小,根据所述存储位置和单位块大小,将数据写到镜像介质的对应存储位置。
较佳地,所述单位块大小的最小值为512个字节。
较佳地,步骤A3进一步包括:源介质计算同步介质对的数据相似度,所述数据相似度为相同时期内已接收到数据摘要比较相同的数量与所有数据摘要数量之间的比值;源介质根据所计算出的相似度确定其相似度等级,从设置的相似度等级和单位块大小之间的对应关系查找到对应的单位块大小,将该单位块大小通知镜像介质,镜像介质采用所通知的单位块大小,并返回A2。
较佳地,步骤A3进一步包括:
源介质计算同步介质对的数据相似度,根据所计算出的相似度确定其相似度等级;所述数据相似度为相同时期内已接收到数据摘要比较相同的数量与所有数据摘要数量之间的比值;
源介质对当前的单位块大小对应的相似度等级与所计算出的相似度等级进行比较,如果发现当前的单位块大小对应的相似度等级小于所计算出的相似度等级,则通知镜像介质增大单位块大小,如果发现当前的单位块大小对应的相似度等级大于所计算出的相似度等级,则通知镜像介质减小单位块大小;
当镜像介质接收到增大单位块大小的通知时,如果当前单位块大小未到上限,则在当前单位块大小的基础上增加一倍,并从最近读取的位置之后的位置使用新的单位块大小,返回步骤A2;如果镜像介质接收到减少单位块大小的通知时,如果当前单位块大小未到下限,则在当前单位块大小的基础上缩小一倍,并从最近读取的位置之后的位置使用新的单位块大小,返回步骤A2。
较佳地,所述单位块大小的上限为512千字节。
本申请实施例还提供了一种数据远程同步系统,该系统包括彼此具备数据通信连接的本地存储系统和远端存储系统,该数据远程同步系统还包括:
同步介质对管理模块,用于创建并初始化同步介质对,所述同步介质对由一个源介质与一个镜像介质组成,源介质为本地存储系统中的一个存储设备,而镜像介质为远端存储系统中的一个存储设备;初始化后的同步介质对中的源介质和镜像介质存储的数据一致;
拦截模块,位于源介质侧,用于拦截对源介质的操作请求,如果该操作请求为写数据请求,则将该写数据请求发送至通知模块,否则不作任何操作;
通知模块,位于源介质侧,用于接收来自拦截模块的写数据请求,将包含写数据请求的写入位置、所要写入的数据以及数据长度的同步请求发送到镜像介质;所述源介质在通知模块完成发送操作后完成写入操作;
同步写模块,位于镜像介质侧,用于在接收到所述同步请求时,从中提取出写入位置以及数据长度信息,然后将所要写入的数据写入到镜像介质的对应位置。
较佳地,存在至少一个源介质,针对该源介质创建一个以上同步介质对;任何一个镜像介质对应唯一一个同步介质对。
较佳地,存在至少一个存储设备,该存储设备在第一同步介质对中作为镜像介质,同时在第二同步介质对中作为源介质。
较佳地,所述同步介质对管理模块包括:
第一单元,用于通知镜像介质对其存储的数据进行摘要计算;
第二单元,用于从镜像介质的开始位置顺序依次读取单位块大小的数据块,对于每一个所读取的单位块大小的数据块分别计算一个数据摘要,并将数据摘要与对应数据块的存储位置、单位块大小发送到第三单元;
第三单元,用于将接收到的数据摘要与源介质存储的对应数据块的数据摘要进行比较,如果摘要值相同,则不作处理,否则,将所述源介质存储的数据块的数据、存储位置、单位块大小发送到第四单元;
第四单元,用于接收来自第三单元的数据块的数据、存储位置、单位块大小,根据所述存储位置和单位块大小,将数据写到镜像介质的对应存储位置。
较佳地,所述单位块大小的最小值为512个字节。
较佳地,第三单元进一步用于:计算同步介质对的数据相似度,所述数据相似度为相同时期内已接收到数据摘要比较相同的数量与所有数据摘要数量之间的比值;根据所计算出的相似度确定其相似度等级,从设置的相似度等级和单位块大小之间的对应关系查找到对应的单位块大小,将该单位块大小通知镜像介质;
所述镜像介质采用所通知的单位块大小。
较佳地,第三单元进一步用于:
计算同步介质对的数据相似度,根据所计算出的相似度确定其相似度等级;所述数据相似度为相同时期内已接收到数据摘要比较相同的数量与所有数据摘要数量之间的比值;
对当前的单位块大小对应的相似度等级与所计算出的相似度等级进行比较,如果发现当前的单位块大小对应的相似度等级小于所计算出的相似度等级,则通知镜像介质增大单位块大小;如果发现当前的单位块大小对应的相似度等级大于所计算出的相似度等级,则通知镜像介质减小单位块大小;
所述镜像介质接收到增大单位块大小的通知时,如果当前单位块大小未到上限,则在当前单位块大小的基础上增加一倍,并从最近读取的位置之后的位置使用新的单位块大小;如果镜像介质接收到减少单位块大小的通知时,如果当前单位块大小未到下限,则在当前单位块大小的基础上缩小一倍,并从最近读取的位置之后的位置使用新的单位块大小。
较佳地,所述单位块大小的上限为512千字节。
从以上技术方案可以看出,同步介质对在实现初始化后,通过拦截对源介质的写操作,将该写操作所要写的数据写入远端的镜像介质,实现既实时同步数据,但是又只在网络上传输小粒度变化的数据(即差异数据)。本申请实施例中通过利用自适应的计算方法,使得数据在初始同步阶段时可以动态地采用不同大小的块,以减少传输的网络数据量,从而加快同步过程。因此使得本方法能够做到智能、实时地同步数据,起到快速有效地保护数据的作用。
附图说明
图1本申请提供的数据远程同步的方法流程;
图2为两种典型的同步介质对结构示意图;
图3为本申请提供的源介质与镜像介质进行初始化数据同步的过程流程图;
图4为本申请实施例提供的一种远程数据同步的流程图;
图5为本申请实施例提供的重新启动原有的同步介质对流程图;
图6为本申请实施例提供的新建一个同步介质对流程图;
图7为本申请实施例提供的初始化数据同步中源介质的处理流程图;
图8为本申请实施例提供的初始化数据同步中镜像介质的处理流程图。
具体实施方式
本申请提供了一种数据远程同步的方法,通过拦截向存储介质发起的所有写数据请求,并将这些数据实时地发送到位于网络远端的作为冗余备份的存储介质上。以下将被拦截写数据的存储介质称为“源介质”,而网络远端作为冗余备份的存储介质称为镜像介质。
本申请提供的数据远程同步的方法流程如图1所示,包括:
步骤101:创建同步介质对。
同步介质对由一个源介质与一个镜像介质组成。源介质就是本地存储系统中的一个存储设备,而镜像介质就是一个远端存储系统中的一个存储设备。创建同步介质对的目的在于绑定源介质的差异数据的同步目的地。针对同一个源介质可以创建多个同步介质对,即一个源介质可以对应多个镜像介质,但是一个镜像介质只能对应唯一一个同步介质对,即一个镜像介质只能对应唯一一个源介质。一对多的关系可以使得对同一份源数据能够生成多份数据复本,增强数据的保护能力。但是一个源介质不能绑定过多的镜像介质,因为过多的镜像介质会严重影响存储系统的性能以及同步性能,同时也增大了系统维护的成本。建议一个源介质对应的镜像介质的数量以5个做为上限。
通过将镜像介质作为源介质与另一端的存储系统建立同步介质对,依次执行下去,可以形成串联式同步介质对。需要指出的是,串联式同步介质对中的一些存储设备在前一级同步介质对中作为镜像介质,在后一级同步介质对中作为源介质,在两个同步介质对中所扮演的角色不同,与前述“一个镜像介质只能对应一个同步介质对”并不冲突。串联的链条也不应超过合理且必要的长度,否则存储系统的同步性能将急剧下降,并且存储系统成本成倍上升。作为建议,串联的存储介质数量的上限为5个。
上述两种典型的同步介质对结构如图2所示。这两种结构也可以相互结合存在于同一个远程数据同步的系统中。
在同步介质对中,镜像介质的存储空间容量必须不小于源介质的存储空间容量,否则会导致源介质的某些存储空间不能进行保护。
步骤102:初始化同步介质对。
在创建了同步介质对后,由于介质对的两端的介质存储的数据一般来说是不相同的。所以,首先要做的工作是对源介质与镜像介质进行初始化数据同步。数据同步的目的是使得源介质与镜像介质的数据处于一致状态。
步骤103:拦截对源介质的操作请求,如果该操作请求为写数据请求,则执行步骤104;否则不作任何操作。
由于只有写数据才会导致数据的变化,导致同步介质对之间出现数据差异。因此在拦截请求时,只需要处理输出请求,也就是写数据请求。
步骤104:将包含写数据请求的位置、数据以及数据长度的同步请求发送到镜像介质,完成发送操作后,在源介质完成写入操作。
步骤105:镜像介质在接收到所述同步请求时,从中提取出位置以及长度信息,然后将数据写入到镜像介质的对应位置。这样一个差异同步过程就完成了。
以上所述的源介质与镜像介质进行初始化数据同步的过程如图3所示,包括如下步骤:
步骤301:源介质通知镜像介质对其存储的数据进行摘要计算,镜像介质从本存储介质的开始位置顺序依次读取单位块大小的数据块,对于每一个所读取的单位块大小的数据块分别计算一个数据摘要,并将数据摘要与对应数据块的存储位置、单位块大小发送到源介质。
其中,数据摘要是数据独特的指纹信息,相同的数据具有相同的指纹信息,而不同的数据在绝大部分情况下是不同的(不同的数据产生相同的摘要称为冲突)。数据摘要的长度一般在几个字节到几十个字节不等,但远小于原始数据的长度,但同一个摘要算法的摘要长度是固定的。选择合适的摘要算法,完全可以使摘要计算不会产生冲突。通过对摘要进行比较来判定数据是否相等,使同步时不必发送相同的数据,这样可以大大减少网络数据的传输量。
所述单位块大小的最小值为512个字节,即磁盘一个扇区的大小,也是磁盘读写的最小单位;最大值可以根据实际需要设定,例如设置为512千字节(KB)。
较佳地,源介质在接收到摘要数据时,会根据摘要的比较情况动态地计算数据的相似度,并且根据计算结果通知镜像介质对单位块大小进行调整。
所述根据摘要的比较情况动态地计算数据的相似度具体为:在源介质接收到摘要数据并进行比较后,计算同步介质对的数据相似度。数据相似度是相同时期内接收到的数据摘要比较相同的数量与所有数据摘要数量之间的比值。所述相同时期可以是指从同步开始的时到当前时刻的时期。因此,相似度在0-1之间。当为0时,表示数据完全不同。在为1时表示数据完全相同。数据越接近1,表示相似度越高。在高度相似的同步介质对之间采用更大的块来计算摘要,有助于减少IO次数,从而加快数据的读写与计算,加快同步过程。因此可以将相似度划分为若干个等级,对于每一个等级设置对应的单位块大小,例如将相似度以每0.1为单位,将其划分为10个等级。即相似度每增加0.1,则单位块大小增大一倍。相反,当相似度每减小0.1,则通知单位块大小减小一倍。由于最小块大小为512字节,因此最大的块大小为512KB。
所述调整采用如下方式:
方式一:源介质根据所计算出的相似度确定其相似度等级,从设置的相似度等级和单位块大小之间的对应关系查找到对应的单位块大小,将该单位块大小通知镜像介质,镜像介质则采用所通知的单位块大小对其存储的尚未进行摘要计算的数据继续进行摘要计算。
方式二:源介质发现当前的单位块大小对应的相似度等级小于所计算出的相似度等级,则通知镜像介质增大单位块大小,源介质发现当前的单位块大小对应的相似度等级大于所计算出的相似度等级,则通知镜像介质减小单位块大小。当镜像介质接收到增大单位块大小的通知时,则在当前单位块大小的基础上增加一倍,并从最近读取的位置之后的位置使用新的单位块大小进行读取并计算摘要,并将块摘要数据以及块大小,块起始位置发送到源介质。直到单位块大小达到上限(512KB)时,不再增大单位块大小;反之,如果镜像介质接收到减少单位块大小的通知时,则在当前单位块大小的基础上缩小一倍,直到单位块大小达到512字节,就不再减少。
通过这种动态调整块大小的方式,可以自适应地加快同步的过程。因此当相似度提高,更大的块可以成倍地提高数据处理的速度。当相似度低时采用小一点的块,则小数据块相同的可能性更大。因此这样来处理可以减少同步的时间以及网络传输的数据量。特别是对于一些已经曾经同步过的介质同步对,则这样的过程会使处理非常高效。
步骤302:源介质将接收到的数据摘要与本地存储的对应数据块的数据摘要进行比较,如果摘要值相同,则不作处理,否则,源介质则将所述本地存储的数据块的数据、存储位置、单位块大小发送到镜像介质。
源介质接收到摘要数据后,从中提取出块位置、块长度以及摘要数据,并从本存储介质中读取相应位置,相应长度的数据,然后计算这些数据的摘要值。将计算的摘要结果与接收到的摘要结果进行比较。如果摘要值相同,说明两个数据块相同,则不需要将源介质的数据传递到镜像介质。反之,则表明数据是不相同的
步骤303:镜像介质接收来自源介质的数据块的数据、存储位置、单位块大小,根据所述存储位置和单位块大小,将数据写到镜像介质的对应存储位置。当整个同步过程结束时,初始化的操作就完成,此时同步介质对上的数据一致。
为使本申请技术方案的技术原理、特点以及技术效果更加清楚,以下结合具体实施例对本申请技术方案进行详细阐述。
本申请实施例提供的一种远程数据同步的过程如图4所示,包括如下步骤:
步骤401:在镜像介质端启动通信模块。通信模块的功能是接收相应源介质发送过来的请求或者数据,针对不同请求类型执行相应的处理,或计算数据摘要,或将数据写入到对应的镜像介质中,或者调整计算数据摘要的块大小。启动成功后则一直循环等待源介质发送过来的请求以及数据,然后进入步骤402。
步骤402:在源介质端启动输出拦截模块。拦截模块的作用是收集差异数据,并向镜像介质发送同步请求与差异数据,同时接收镜像介质的回复。如果需要新建同步介质对,则执行步骤404,如果是重新启动原有的同步介质对,则执行步骤403。
步骤403的重新启动原有的同步介质对流程如图5所示,包括如下子步骤:
子步骤403-1:判断配置文件中是否还存在未启动的同步介质对,若是,执行步骤403-2,否则结束启动,进入步骤407。
步骤403-2:从配置文件中读取下一个之前已经生成的同步介质对的记录。
子步骤403-3:尝试向镜像介质发送初始化同步请求。
步骤403-4:判断是否收到回复,若是,如果得到回复则进入子步骤403-5,如果未及时得到回复,执行步骤403-6。
子步骤403-5:执行到这一步说明已经得到镜像介质的回复,镜像介质已经做好了接收请求与数据的准备,则启动一个异步的同步过程(所谓异步,是指两个过程之间没有先后依赖关系,各自独立地运行。采用异步是为了充分利用存储设备的计算能力,使各自过程尽可能快地执行)。每一个同步介质对都有一个初始化的数据同步过程,该数据同步过程与图7所示数据同步过程类似。成功启动同步过程后,返回子步骤403-1。
子步骤403-6:判断尝试发送请求次数是否超过设定次数,若是,发出错误提示信息,并返回到子步骤403-1。
步骤404:当需要创建一个新的同步介质对时,如图6所示,执行以下子步骤:
子步骤404-1:将源介质与镜像介质的标识符发送给源介质的截取模块,截取模块会记录同步介质对的对应关系,并进入子步骤404-2。
子步骤404-2:尝试向镜像介质发送匹配请求并接收回复。
子步骤404-3:判断是否及时得到回复,若是,执行子步骤404-4,否则执行子步骤404-7。
子步骤404-4:判断是否镜像介质的存储空间大于或等于源介质,若是,执行子步骤404-5,否则执行子步骤404-6。
子步骤404-5:向镜像介质发送初始化同步请求,如果得到回复则启动一个异步的数据同步过程,结束步骤404。该数据同步过程如图7所示。
子步骤404-6:输出错误提示信息表明镜像介质小于源介质,并结束步骤404。
子步骤404-7:判断尝试发送请求次数是否超过设定次数,若是,执行子步骤404-8,否则返回子步骤404-2。
子步骤404-8:输出错误提示信息,并结束步骤404。
当同步介质对重新启动,或者新建同步介质对,都要对源介质与目标进行初始化数据同步,以保证数据的一致性。数据同步过程与启动同步介质对过程是异步进行的。每一个同步介质对都会启动一个新的同步过程来完成,因此相互之间不会交叉影响。初始化数据同步中源介质的处理过程如图7所示,包括如下步骤:
步骤701:启动一个接收过程接收从镜像介质发送来过的数据摘要,然后进入步骤702。
步骤702:当接收到一个数据摘要时,从中提取出摘要对应的存储位置以及长度信息,并从源介质中对应的位置读取数据,并计算摘要值。
步骤703:比较计算出的摘要值与接收到的摘要值是否相同。如果相同则进入步骤704,,否则进行步骤705。
步骤704:执行到本步骤,表示摘要值相同,则相应的数据也是相同的,因此不需要传送对应的数据,给相同摘要的计数器加1后,并计算与接收摘要的计数器的比值,即相似度。然后执行步骤706。
步骤705:执行到本步骤,表示摘要值不相同,即相应的数据也不相同,因此需要将本块数据发送到镜像介质。同时给相同摘要的计数器减1后,并计算与接收摘要的计数器的比值,即相似度。然后执行步骤707。
步骤706:判断相似度是否增加到下一个相似度等级,若是执行步骤708,否则执行步骤710。
步骤707:判断相似度是否减小到前一个相似度等级,若是执行步骤709,否则执行步骤710。
步骤708:通知镜像介质增大计算摘要的单位块大小。然后进入步骤710。
步骤709:通知镜像介质减小计算摘要的单位块大小。然后进入步骤710。
步骤710:判断是否还有新的摘要数据,若是,返回步骤701,否则结束本次数据同步。
初始化数据同步中镜像介质的处理过程如图8所示,包括如下步骤:
步骤801:镜像介质的通信模块在启动后,就一直处于等待接收源介质的请求或者源介质发送过来的同步数据的状态中。
步骤802:镜像介质收到初始化同步请求,首先启动一个异步的同步过程,并指定单位块大小为512字节。
步骤803:以指定的单位块大小读取本地存储介质中的数据并计算摘要,并将这些摘要与摘要所应对的数据位置以及长度发送到源介质。
步骤804:如果已经处理完所有的介质数据,则发送同步结束提示信息到源介质,并结束本过程。
在执行步骤803的过程中,如果接收到更改单位块大小的请求,首先判断是增大还是减少。如果是增加则使单位块大小增加1倍,如果大小已经大于512KB,则指定为512KB。否则减小单位块大小,如果单位块大小小于512字节,则指定为512字节。
步骤405:源介质和镜像介质进行差异数据同步过程。
差异数据同步过程中,源介质的处理过程包括:
步骤901:截取发向源介质的所有读写请求。
步骤902:判断所截取的读写请求是否为读请求,若是则返回步骤901,否则进入步骤903。
步骤903:将写请求的位置、数据以及数据长度携带在差异数据同步请求中一同发送到镜像介质,并返回步骤901。
差异数据同步过程中,镜像介质的处理过程包括:
镜像介质收到差异数据同步请求,从该请求中提取位置信息、数据及数据长度,并将数据写入到相应位置。然后再等待下一个请求的到来。
本申请实施例还提供了一种数据远程同步系统,该系统包括彼此具备数据通信连接的本地存储系统和远端存储系统,该数据远程同步系统还包括:
同步介质对管理模块,用于创建并初始化同步介质对,所述同步介质对由一个源介质与一个镜像介质组成,源介质为本地存储系统中的一个存储设备,而镜像介质为远端存储系统中的一个存储设备;初始化后的同步介质对中的源介质和镜像介质存储的数据一致;
拦截模块,位于源介质侧,用于拦截对源介质的操作请求,如果该操作请求为写数据请求,则将该写数据请求发送至通知模块,否则不作任何操作;
通知模块,位于源介质侧,用于接收来自拦截模块的写数据请求,将包含写数据请求的写入位置、所要写入的数据以及数据长度的同步请求发送到镜像介质;所述源介质在通知模块完成发送操作后完成写入操作;
同步写模块,位于镜像介质侧,用于在接收到所述同步请求时,从中提取出写入位置以及数据长度信息,然后将所要写入的数据写入到镜像介质的对应位置。
较佳地,存在至少一个源介质,针对该源介质创建一个以上同步介质对;任何一个镜像介质对应唯一一个同步介质对。
较佳地,存在至少一个存储设备,该存储设备在第一同步介质对中作为镜像介质,同时在第二同步介质对中作为源介质。
其中,所述同步介质对管理模块可以进一步包括:
第一单元,用于通知镜像介质对其存储的数据进行摘要计算;
第二单元,用于从镜像介质的开始位置顺序依次读取单位块大小的数据块,对于每一个所读取的单位块大小的数据块分别计算一个数据摘要,并将数据摘要与对应数据块的存储位置、单位块大小发送到第三单元;
第三单元,用于将接收到的数据摘要与源介质存储的对应数据块的数据摘要进行比较,如果摘要值相同,则不作处理,否则,将所述源介质存储的数据块的数据、存储位置、单位块大小发送到第四单元;
第四单元,用于接收来自第三单元的数据块的数据、存储位置、单位块大小,根据所述存储位置和单位块大小,将数据写到镜像介质的对应存储位置。
所述单位块大小的最小值为512个字节。
较佳地,第三单元进一步用于:计算同步介质对的数据相似度,所述数据相似度为相同时期内已接收到数据摘要比较相同的数量与所有数据摘要数量之间的比值;根据所计算出的相似度确定其相似度等级,从设置的相似度等级和单位块大小之间的对应关系查找到对应的单位块大小,将该单位块大小通知镜像介质;
所述镜像介质采用所通知的单位块大小。
或者,第三单元进一步用于:
计算同步介质对的数据相似度,根据所计算出的相似度确定其相似度等级;所述数据相似度为相同时期内已接收到数据摘要比较相同的数量与所有数据摘要数量之间的比值;
对当前的单位块大小对应的相似度等级与所计算出的相似度等级进行比较,如果发现当前的单位块大小对应的相似度等级小于所计算出的相似度等级,则通知镜像介质增大单位块大小;如果发现当前的单位块大小对应的相似度等级大于所计算出的相似度等级,则通知镜像介质减小单位块大小;
所述镜像介质接收到增大单位块大小的通知时,如果当前单位块大小未到上限,则在当前单位块大小的基础上增加一倍,并从最近读取的位置之后的位置使用新的单位块大小;如果镜像介质接收到减少单位块大小的通知时,如果当前单位块大小未到下限,则在当前单位块大小的基础上缩小一倍,并从最近读取的位置之后的位置使用新的单位块大小。
所述单位块大小的上限为512千字节。
通过本申请提供的数据同步方案,可以达到如下的效果:
1.由于只对写请求的数据块进行同步,也就是只针对差异的数据块进行同步,做到真正的差异同步,减少了无效数据的传输,有效地利用了网络带宽,提高了同步的速度。
2.对数据进行的是实时的截取,因此可以将数据即时地同步到远端的镜像介质,缩小数据不一致的时间窗口,降低数据丢失的风险。
3.由于采用了数据摘要的比较方法,使同步介质对之间只要传输不同的数据,因此节省了数据在网络上的传输量,也就是缩短了同步时间,减少了网络资源的占用。这样做的另一个好处是,对数据进行恢复时,也只需要恢复差异的数据,缩短了恢复时间。
4.由于采用于相似度计算调整方法来动态的调整摘要块大小,系统会根据数据的相似度自动地调整块大小,在数据高度相似时增加块大小以取得更快的同步性能。在相似度变小时,也减小摘要块的大小,以提高小数据块数据相同的可能性,尽力增大处理性能,减少了同步时间以及资源的利用。
5.由于可以采用一对多,或者一对一的方式来创建同步介质对,因此可以实现对数据生成多个复本,提高保护的能力。并且在发送写数据时,不需要等待镜像介质写完数据再执行本地的写操作,因此本地的写操作的性能受的影响最小。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请的保护范围,凡在本申请技术方案的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (14)
1.一种数据远程同步的方法,其特征在于,包括:
A、创建并初始化同步介质对,所述同步介质对由一个源介质与一个镜像介质组成,源介质为本地存储系统中的一个存储设备,而镜像介质为远端存储系统中的一个存储设备;初始化后的同步介质对中的源介质和镜像介质存储的数据一致;所述初始化同步介质对包括:
A1、源介质通知镜像介质对其存储的数据进行摘要计算;
A2、镜像介质从本存储介质的开始位置顺序依次读取单位块大小的数据块,对于每一个所读取的单位块大小的数据块分别计算一个数据摘要,并将数据摘要与对应数据块的存储位置、单位块大小发送到源介质;
A3、源介质将接收到的数据摘要与本地存储的对应数据块的数据摘要进行比较,如果摘要值相同,则不作处理,否则,源介质将所述本地存储的数据块的数据、存储位置、单位块大小发送到镜像介质;
源介质根据摘要的比较情况动态地计算数据的相似度,并且根据计算结果通知镜像介质对单位块大小进行调整,数据相似度越高则单位块大小越大;所述数据相似度为相同时期内已接收到数据摘要比较相同的数量与所有数据摘要数量之间的比值;
A4、镜像介质接收来自源介质的数据块的数据、存储位置、单位块大小,根据所述存储位置和单位块大小,将数据写到镜像介质的对应存储位置;
B、拦截对源介质的操作请求,如果该操作请求为写数据请求,则执行步骤C;否则不作任何操作;
C、将包含写数据请求的写入位置、所要写入的数据以及数据长度的同步请求发送到镜像介质,完成发送操作后,在源介质完成写入操作;
D、镜像介质在接收到所述同步请求时,从中提取出写入位置以及数据长度信息,然后将所要写入的数据写入到镜像介质的对应位置。
2.根据权利要求1所述的方法,其特征在于,存在至少一个源介质,针对该源介质创建一个以上同步介质对;任何一个镜像介质对应唯一一个同步介质对。
3.根据权利要求2所述的方法,其特征在于,存在至少一个存储设备,该存储设备在第一同步介质对中作为镜像介质,同时在第二同步介质对中作为源介质。
4.根据权利要求1所述的方法,其特征在于,所述单位块大小的最小值为512个字节。
5.根据权利要求1所述的方法,其特征在于,步骤A3所述源介质根据摘要的比较情况动态地计算数据的相似度,并且根据计算结果通知镜像介质对单位块大小进行调整包括:源介质计算同步介质对的数据相似度;源介质根据所计算出的相似度确定其相似度等级,从设置的相似度等级和单位块大小之间的对应关系查找到对应的单位块大小,将该单位块大小通知镜像介质,镜像介质采用所通知的单位块大小,并返回A2。
6.根据权利要求4所述的方法,其特征在于,步骤A3所述源介质根据摘要的比较情况动态地计算数据的相似度,并且根据计算结果通知镜像介质对单位块大小进行调整包括:
源介质计算同步介质对的数据相似度,根据所计算出的相似度确定其相似度等级;
源介质对当前的单位块大小对应的相似度等级与所计算出的相似度等级进行比较,如果发现当前的单位块大小对应的相似度等级小于所计算出的相似度等级,则通知镜像介质增大单位块大小,如果发现当前的单位块大小对应的相似度等级大于所计算出的相似度等级,则通知镜像介质减小单位块大小;
当镜像介质接收到增大单位块大小的通知时,如果当前单位块大小未到上限,则在当前单位块大小的基础上增加一倍,并从最近读取的位置之后的位置使用新的单位块大小,返回步骤A2;如果镜像介质接收到减少单位块大小的通知时,如果当前单位块大小未到下限,则在当前单位块大小的基础上缩小一倍,并从最近读取的位置之后的位置使用新的单位块大小,返回步骤A2。
7.根据权利要求6所述的方法,其特征在于,所述单位块大小的上限为512千字节。
8.一种数据远程同步系统,该系统包括彼此具备数据通信连接的本地存储系统和远端存储系统,其特征在于,该数据远程同步系统还包括:
同步介质对管理模块,用于创建并初始化同步介质对,所述同步介质对由一个源介质与一个镜像介质组成,源介质为本地存储系统中的一个存储设备,而镜像介质为远端存储系统中的一个存储设备;初始化后的同步介质对中的源介质和镜像介质存储的数据一致;所述同步介质对管理模块包括:
第一单元,用于通知镜像介质对其存储的数据进行摘要计算;
第二单元,用于从镜像介质的开始位置顺序依次读取单位块大小的数据块,对于每一个所读取的单位块大小的数据块分别计算一个数据摘要,并将数据摘要与对应数据块的存储位置、单位块大小发送到第三单元;
第三单元,用于将接收到的数据摘要与源介质存储的对应数据块的数据摘要进行比较,如果摘要值相同,则不作处理,否则,将所述源介质存储的数据块的数据、存储位置、单位块大小发送到第四单元;第三单元还用于根据摘要的比较情况动态地计算数据的相似度,并且根据计算结果通知镜像介质对单位块大小进行调整,数据相似度越高则单位块大小越大;所述数据相似度为相同时期内已接收到数据摘要比较相同的数量与所有数据摘要数量之间的比值;
第四单元,用于接收来自第三单元的数据块的数据、存储位置、单位块大小,根据所述存储位置和单位块大小,将数据写到镜像介质的对应存储位置;
拦截模块,位于源介质侧,用于拦截对源介质的操作请求,如果该操作请求为写数据请求,则将该写数据请求发送至通知模块,否则不作任何操作;
通知模块,位于源介质侧,用于接收来自拦截模块的写数据请求,将包含写数据请求的写入位置、所要写入的数据以及数据长度的同步请求发送到镜像介质;所述源介质在通知模块完成发送操作后完成写入操作;
同步写模块,位于镜像介质侧,用于在接收到所述同步请求时,从中提取出写入位置以及数据长度信息,然后将所要写入的数据写入到镜像介质的对应位置。
9.根据权利要求8所述的数据远程同步系统,其特征在于,存在至少一个源介质,针对该源介质创建一个以上同步介质对;任何一个镜像介质对应唯一一个同步介质对。
10.根据权利要求9所述的数据远程同步系统,其特征在于,存在至少一个存储设备,该存储设备在第一同步介质对中作为镜像介质,同时在第二同步介质对中作为源介质。
11.根据权利要求8所述的数据远程同步系统,其特征在于,所述单位块大小的最小值为512个字节。
12.根据权利要求11所述的数据远程同步系统,其特征在于,所述第三单元用于根据摘要的比较情况动态地计算数据的相似度,并且根据计算结果通知镜像介质对单位块大小进行调整为:计算同步介质对的数据相似度,所述数据相似度为相同时期内已接收到数据摘要比较相同的数量与所有数据摘要数量之间的比值;根据所计算出的相似度确定其相似度等级,从设置的相似度等级和单位块大小之间的对应关系查找到对应的单位块大小,将该单位块大小通知镜像介质;
所述镜像介质采用所通知的单位块大小。
13.根据权利要求11所述的数据远程同步系统,其特征在于,所述第三单元用于根据摘要的比较情况动态地计算数据的相似度,并且根据计算结果通知镜像介质对单位块大小进行调整为:
计算同步介质对的数据相似度,根据所计算出的相似度确定其相似度等级;所述数据相似度为相同时期内已接收到数据摘要比较相同的数量与所有数据摘要数量之间的比值;
对当前的单位块大小对应的相似度等级与所计算出的相似度等级进行比较,如果发现当前的单位块大小对应的相似度等级小于所计算出的相似度等级,则通知镜像介质增大单位块大小;如果发现当前的单位块大小对应的相似度等级大于所计算出的相似度等级,则通知镜像介质减小单位块大小;
所述镜像介质接收到增大单位块大小的通知时,如果当前单位块大小未到上限,则在当前单位块大小的基础上增加一倍,并从最近读取的位置之后的位置使用新的单位块大小;如果镜像介质接收到减少单位块大小的通知时,如果当前单位块大小未到下限,则在当前单位块大小的基础上缩小一倍,并从最近读取的位置之后的位置使用新的单位块大小。
14.根据权利要求13所述的数据远程同步系统,其特征在于,所述单位块大小的上限为512千字节。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310026041.3A CN103092533B (zh) | 2013-01-24 | 2013-01-24 | 一种数据远程同步的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310026041.3A CN103092533B (zh) | 2013-01-24 | 2013-01-24 | 一种数据远程同步的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103092533A CN103092533A (zh) | 2013-05-08 |
CN103092533B true CN103092533B (zh) | 2016-04-27 |
Family
ID=48205163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310026041.3A Expired - Fee Related CN103092533B (zh) | 2013-01-24 | 2013-01-24 | 一种数据远程同步的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103092533B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107566139A (zh) * | 2016-06-30 | 2018-01-09 | 中兴通讯股份有限公司 | 虚拟机容灾方法、装置及系统 |
CN108462679B (zh) * | 2017-02-21 | 2021-06-04 | 杭州海康威视数字技术股份有限公司 | 数据传输方法及装置 |
CN113535465A (zh) * | 2020-04-17 | 2021-10-22 | 广东中兴新支点技术有限公司 | 磁盘镜像的基线的建立方法、装置和存储介质 |
CN114500565A (zh) * | 2021-12-28 | 2022-05-13 | 奇安盘古(上海)信息技术有限公司 | 一种远程服务器磁盘镜像的制作方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216791A (zh) * | 2008-01-04 | 2008-07-09 | 华中科技大学 | 基于指纹的文件备份方法 |
CN101441582A (zh) * | 2007-11-20 | 2009-05-27 | 北京和力记易科技有限公司 | 计算机数据对象的备份和恢复方法及实现该方法的系统和程序产品 |
CN101739313A (zh) * | 2009-11-27 | 2010-06-16 | 华中科技大学 | 一种连续数据保护和恢复方法 |
CN102096615A (zh) * | 2011-01-25 | 2011-06-15 | 上海爱数软件有限公司 | 远程增量备份方法及系统 |
CN102591749A (zh) * | 2011-12-30 | 2012-07-18 | 华中科技大学 | 一种连续数据存储方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI514249B (zh) * | 2009-01-23 | 2015-12-21 | Infortrend Technology Inc | 遠端非同步資料卷複製的方法及執行該方法的儲存系統 |
-
2013
- 2013-01-24 CN CN201310026041.3A patent/CN103092533B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101441582A (zh) * | 2007-11-20 | 2009-05-27 | 北京和力记易科技有限公司 | 计算机数据对象的备份和恢复方法及实现该方法的系统和程序产品 |
CN101216791A (zh) * | 2008-01-04 | 2008-07-09 | 华中科技大学 | 基于指纹的文件备份方法 |
CN101739313A (zh) * | 2009-11-27 | 2010-06-16 | 华中科技大学 | 一种连续数据保护和恢复方法 |
CN102096615A (zh) * | 2011-01-25 | 2011-06-15 | 上海爱数软件有限公司 | 远程增量备份方法及系统 |
CN102591749A (zh) * | 2011-12-30 | 2012-07-18 | 华中科技大学 | 一种连续数据存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103092533A (zh) | 2013-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9563517B1 (en) | Cloud snapshots | |
US9749300B1 (en) | Method and system for immediate recovery of virtual machines encrypted in the cloud | |
US9588703B1 (en) | Method and apparatus for replicating the punch command | |
US9323750B2 (en) | Storage array snapshots for logged access replication in a continuous data protection system | |
US7134044B2 (en) | Method, system, and program for providing a mirror copy of data | |
US9110914B1 (en) | Continuous data protection using deduplication-based storage | |
US7958372B1 (en) | Method and apparatus to convert a logical unit from a first encryption state to a second encryption state using a journal in a continuous data protection environment | |
US9600553B1 (en) | Distributed replication in cluster environments | |
US9189341B1 (en) | Method and apparatus for multi-copy replication using a multi-splitter | |
US9026696B1 (en) | Using I/O track information for continuous push with splitter for storage device | |
US9471579B1 (en) | Replicating selected snapshots from one storage array to another, with minimal data transmission | |
US10223023B1 (en) | Bandwidth reduction for multi-level data replication | |
US8996460B1 (en) | Accessing an image in a continuous data protection using deduplication-based storage | |
US10101943B1 (en) | Realigning data in replication system | |
US8898409B1 (en) | Journal-based replication without journal loss | |
US8745004B1 (en) | Reverting an old snapshot on a production volume without a full sweep | |
US9081754B1 (en) | Method and apparatus for cascaded replication using a multi splitter | |
US8769336B1 (en) | Method and apparatus for preventing journal loss on failover in symmetric continuous data protection replication | |
US7149858B1 (en) | Synchronous replication for system and data security | |
US8214612B1 (en) | Ensuring consistency of replicated volumes | |
US10223007B1 (en) | Predicting IO | |
US7761431B2 (en) | Consolidating session information for a cluster of sessions in a coupled session environment | |
US10592128B1 (en) | Abstraction layer | |
WO2009048729A1 (en) | Block based access to a dispersed data storage network | |
US7979651B1 (en) | Method, system, and computer readable medium for asynchronously processing write operations for a data storage volume having a copy-on-write snapshot |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 201112 Shanghai, Minhang District, United Airlines route 1188, building second layer A-1 unit 8 Applicant after: SHANGHAI EISOO INFORMATION TECHNOLOGY CO., LTD. Address before: 200072 room 3, building 840, No. 101 Middle Luochuan Road, Shanghai, Zhabei District Applicant before: Shanghai Eisoo Software Co.,Ltd. |
|
COR | Change of bibliographic data | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160427 Termination date: 20200124 |