数据复制方法及装置、计算机存储介质与流程

文档序号:29922534发布日期:2022-05-07 09:35阅读:78来源:国知局
数据复制方法及装置、计算机存储介质与流程

1.本技术涉及数据存储领域,特别涉及一种数据复制方法及装置、计算机存储介质。


背景技术:

2.随着数据规模的增大以及对数据可靠性与一致性需求的增强,数据复制技术在数据存储领域尤为重要。数据复制系统通常包括主端存储设备和从端存储设备。主端存储设备每间隔一段时间生成一个快照,并将快照复制给从端存储设备,使得从端存储设备与主端存储设备存储的数据一致。其中,每个快照对应有一个指纹表。指纹表中存储有多个指纹,每个指纹可以是一个数据块的哈希值,用于标识该数据块。两个数据块的指纹不同,表示该两个数据块不同。
3.目前,当主端存储设备生成的第一快照中的数据相较于第二快照中的数据具有增量数据,主端存储设备将该增量数据中各个数据块的指纹与第一快照对应的指纹表中的指纹一一进行匹配。如果增量数据中的一个数据块的指纹与第一快照对应的指纹表中的其它数据块的指纹相同,主端存储设备将该数据块的指纹发送至从端存储设备,从端存储设备根据该数据块的指纹恢复该数据块。其中,第一快照的生成时刻在时序上位于第二快照的生成时刻之后。
4.但是在目前的数据复制过程中,主端存储设备只能针对重复的数据块进行缩减,向从端存储设备发送的数据量仍较大,因此数据复制所需占用的网络带宽较高,网络开销较大。


技术实现要素:

5.本技术提供了一种数据复制方法及装置、计算机存储介质,可以解决目前数据复制所需占用的网络带宽较高,网络开销较大的问题。
6.第一方面,提供了一种数据复制方法。该方法包括:首先,第一存储设备获取第一存储设备中的逻辑卷的第一快照相对于逻辑卷的第二快照的修改数据块,第一快照的生成时刻在时序上位于第二快照的生成时刻之后。其次,第一存储设备根据修改数据块在逻辑卷中的目标存储地址,在第二快照中确定目标数据分段,第二快照包括基于存储地址划分的多个数据分段,目标数据分段对应的存储地址中包括目标存储地址。然后,第一存储设备在目标数据分段中查找修改数据块对应的相似数据块,相似数据块中的数据与修改数据块中的数据至少部分相同。当目标数据分段中包括相似数据块,第一存储设备向第二存储设备发送修改数据块的复制信息,复制信息包括相似数据块的存储地址描述信息以及修改数据块相对于相似数据块的差量信息。
7.本技术中,第一存储设备可以获取第一存储设备中的逻辑卷的第一快照相对于该逻辑卷的第二快照的修改数据块,并根据该修改数据块在逻辑卷中的目标存储地址在第二快照中确定目标数据分段,然后在该目标数据分段中查找与该修改数据块对应的相似数据块,当该目标数据分段包含该修改数据块对应的相似数据块时,第一存储设备可以向第二
存储设备发送包含的相似数据块的存储地址描述信息以及修改数据块相对于相似数据块的差量信息的复制信息。由于复制信息的数据量小于修改数据块的数据量,因此可以降低复制过程中传输增量数据中的修改数据所占用的网络带宽,从而降低网络开销。另外,第一存储设备只需在修改数据块对应的目标数据分段中查找修改数据块对应的相似数据块,而无需全局搜索第二快照中的所有数据块,在保证较高数据缩减率的前提下,使得搜索空间较小,既能实现较高的搜索效率,又能使得数据搜索开销较小,节约了第一存储设备的计算资源。
8.可选地,第二快照中的每个数据分段分别对应一个弱指纹集合,弱指纹集合包括对应数据分段中多个数据块的弱指纹,第一存储设备在目标数据分段中查找修改数据块对应的相似数据块,包括:第一存储设备计算修改数据块的第一弱指纹;第一存储设备在目标数据分段对应的弱指纹集合中查找第二弱指纹,第二弱指纹与第一弱指纹相同;方法还包括:当目标数据分段对应的弱指纹集合中包括第二弱指纹,第一存储设备确定目标数据分段中包括相似数据块,相似数据块为第二弱指纹对应的数据块。
9.本技术中,由于第二快照中的多个数据分段对应有多个弱指纹集合,第一存储设备只需在修改数据块对应的目标数据分段所对应的弱指纹集合中查找与修改数据块的弱指纹相同的弱指纹,而无需全局搜索第二快照中所有数据块的弱指纹,在保证较高数据缩减率的前提下,使得搜索空间较小,既能实现较高的搜索效率,又能使得数据搜索开销较小,节约了第一存储设备的计算资源。
10.可选地,数据块的弱指纹为数据块的哈希值。
11.可选地,当目标数据分段中包括相似数据块,方法还包括:第一存储设备对修改数据块进行基于相似数据块的差量压缩,得到差量信息。
12.本技术中,第一存储设备将相似数据块的存储地址描述信息以及得到的修改数据块相对于相似数据块的差量信息发送至第二存储设备,而不是将修改数据块直接发送至第二存储设备,降低了复制过程中修改数据块所占用的网络带宽,从而降低了网络开销。
13.可选地,第一快照和第二快照为相邻生成的两个快照,第一存储设备获取第一存储设备中的逻辑卷的第一快照相对于逻辑卷的第二快照的修改数据块,包括:第一存储设备将第一快照中采用覆盖写的数据块确定为修改数据块。
14.第二方面,提供了一种数据复制装置。该数据复制装置包括多个功能模块,多个功能模块相互作用,实现上述第一方面及其各实施方式中的方法。多个功能模块可以基于软件、硬件或软件和硬件的结合实现,且多个功能模块可以基于具体实现进行任意组合或分割。
15.第三方面,提供了一种存储设备,包括:处理器和存储器;
16.存储器,用于存储计算机程序,计算机程序包括程序指令;
17.处理器,用于调用计算机程序,实现上述第一方面及其各实施方式中的方法。
18.第四方面,提供了一种计算机存储介质,计算机存储介质上存储有指令,当指令被处理器执行时,实现上述第一方面及其各实施方式中的方法。
19.本技术提供的技术方案带来的有益效果至少包括:
20.本技术中,第一存储设备获取第一存储设备中的逻辑卷的第一快照相对于该逻辑卷的第二快照的修改数据块,并根据该修改数据块在逻辑卷中的目标存储地址在第二快照
中确定目标数据分段,然后在该目标数据分段中查找与该修改数据块对应的相似数据块,当该目标数据分段包含该修改数据块对应的相似数据块时,第一存储设备向第二存储设备发送包含的相似数据块的存储地址描述信息以及修改数据块相对于相似数据块的差量信息的复制信息。由于复制信息的数据量小于修改数据块的数据量,因此可以降低复制过程中传输增量数据中的修改数据所占用的网络带宽,从而降低网络开销。另外,由于第二快照中的多个数据分段对应有多个弱指纹集合,第一存储设备只需在修改数据块对应的目标数据分段所对应的弱指纹集合中查找与修改数据块的弱指纹相同的弱指纹,而无需全局搜索第二快照中所有数据块的弱指纹,在保证较高数据缩减率的前提下,使得搜索空间较小,既能实现较高的搜索效率,又能使得数据搜索开销较小,节约了第一存储设备的计算资源。
附图说明
21.图1是本技术实施例提供的一种数据复制系统的结构示意图;
22.图2是相关技术中提供的一种数据复制过程的场景示意图;
23.图3是本技术实施例提供的一种数据复制方法的流程示意图;
24.图4是本技术实施例提供的一种数据复制过程的场景示意图;
25.图5是本技术实施例提供的一种数据复制装置的结构示意图;
26.图6是本技术实施例提供的另一种数据复制装置的结构示意图;
27.图7是本技术实施例提供的又一种数据复制装置的结构示意图;
28.图8是本技术实施例提供的一种存储设备的框图。
具体实施方式
29.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
30.为了便于读者对本技术方案的理解,以下首先对一些名词进行解释。
31.卷:本技术实施例中的卷应作广义上的理解,既可以是物理上的硬盘(例如磁盘、记忆棒、固态硬盘或者其他非易失性存储介质),或者硬盘中的一个分区,也可以是由硬盘提供的物理空间虚拟化而成的一段逻辑空间,例如逻辑卷(logical volume)。
32.数据块:指数据处理的基本单位。在存储系统中,一般会把数据切分成固定长度的块,以便于系统处理。数据块的长度通常为8千字节(k),16k,32k或64k等。
33.快照:指关于数据集合的一个完全可用拷贝。快照中包括对应数据集合在某个时间点(拷贝的开始时刻)的映像,基于数据集合在某个时刻的快照可以查询到该数据集合在该时刻对应的数据。快照可以看作是数据的副本,也可以看作是数据的复制品。
34.指纹:数据块的指纹用于反映该数据块的本质特征。数据块本身的数据量往往较大(千字节),数据块的指纹旨在采用较小的数据量(例如16、32、64或128字节等)来区别不同数据块。数据块的指纹的位数越大,数据块的指纹越能体现对数据块的唯一标识性。数据块的指纹可以通过对该数据块的内容进行相关数学运算获得。目前一般采用哈希函数对数据块进行运算,并将数据块的哈希值作为该数据块的指纹。常用的哈希函数包括消息摘要5(message digest 5,md5)算法、安全散列算法1(secure hash algorithm 1,sha1)、sha-256或sha-512等。其中,md5是128位的,sha1是160位的,sha-x中的x表示位数。
35.本技术实施例中,数据块的指纹包括强指纹和弱指纹这两种。强指纹是指通过强校验计算得到的校验值,强校验能够保证不同的数据块一定得不到相同的校验值;弱指纹是指通过弱校验计算得到的校验值,弱校验下可能不同的数据块会得到相同的校验值。强校验的计算量通常大于弱校验的计算量,强指纹的位数通常大于弱指纹的位数。若两个数据块的强指纹相同,则表示这两个数据块相同;若两个数据块的弱指纹相同,则表示这两个数据块相似,即这两个数据块中至少部分数据相同。
36.指纹表:存储有数据块的指纹与数据块的映射关系。在获取数据块的指纹后,通过查询指纹表可以获取对应数据块的内容。
37.图1是本技术实施例提供的一种数据复制系统的结构示意图。如图1所示,该数据复制系统包括:第一存储设备101和第二存储设备102。第一存储设备101与第二存储设备102之间通过有线网络或无线网络连接。
38.第一存储设备101可以是源数据中心,第一存储设备101也可称为主端存储设备。第二存储设备102可以是目标数据中心,第二存储设备102也可称为从端存储设备。在一种应用场景中,第一存储设备101是生产中心,为用户提供数据访问服务;第二存储设备102是灾备中心,当生产中心发生灾难时,第二存储设备102中的数据副本可以继续为用户提供数据访问服务。
39.第一存储设备101中包括逻辑卷。本技术实施例中,将第一存储设备101中的逻辑卷称为第一逻辑卷。第一逻辑卷供用户存储数据之用,第一逻辑卷的实际存储空间可以来自于第一存储设备101本身的存储介质,或者也可以来自于第一存储设备101外接的其它存储设备,第一逻辑卷也可称为源卷。用户写入第一存储设备的数据可以采用持久化存储,例如可以在磁盘中存储用户写入的数据,使得第一存储设备掉电时,用户写入的数据不会丢失。
40.第二存储设备102中包括逻辑卷。本技术实施例中,将第二存储设备102中的逻辑卷称为第二逻辑卷。第二逻辑卷的实际存储空间可以来自于第二存储设备102本身的存储介质,或者也可以来自于第二存储设备102外接的其它存储设备,第二逻辑卷也可称为目标卷。
41.本技术实施例中,第二存储设备102中的第二逻辑卷用于和第一存储设备101中的第一逻辑卷之间保持数据同步。当第一逻辑卷发生灾难时,第二逻辑卷中的数据副本可以继续为用户提供服务。第二存储设备102中由第一存储设备复制过来的数据可以采用持久化存储,例如可以在磁盘中存储复制数据,使得第二存储设备掉电时,该复制数据不会丢失。
42.目前,数据复制系统通常采用全量复制和增量复制来保证第一存储设备101的第一逻辑卷和第二存储设备102的第二逻辑卷的数据一致性。首先,在系统启动拷贝时,第一存储设备101将第一逻辑卷的数据全部拷贝到第二存储设备102的第二逻辑卷中,该过程被称为全量复制。其次,全量复制后,第一逻辑卷仍会继续接收用户写入的数据,因此需要定期将第一逻辑卷的增量数据发送给第二逻辑卷,该过程被称为增量复制。
43.可选地,增量数据包括修改数据、删减数据或新增数据中的一种或多种。修改数据包括在一个已经写入数据的存储地址重新写入的数据,例如修改数据可以是采用覆盖写的方式在一个存储地址中写入的数据。删减数据包括在一个已经写入数据的存储地址删除的
数据。新增数据包括在一个未写入数据的存储地址新写入的数据。其中,存储地址可以是逻辑块地址(logical block address,lba)。逻辑卷中的每个数据块都有各自的lba。
44.可选地,第一存储设备101和第二存储设备102均能够提供快照功能。可选地,第一存储设备101周期性地生成第一逻辑卷的快照,在一个周期生成的第一逻辑卷的快照相对于前一个周期生成的第一逻辑卷的快照的变化内容,即第一逻辑卷在该周期相对于前一个周期的增量数据。可选地,第二存储设备102也可以周期性地生成第二逻辑卷的快照。第二存储设备生成第二逻辑卷的快照的周期与第一存储设备生成第一逻辑卷的快照的周期相同。
45.在数据复制系统中,主端存储设备向从端存储设备进行增量复制时所产生的增量数据的数据量通常较大,为了减小主端存储设备向从端存储设备发送的数据量从而降低数据复制所占用的网络带宽,目前主端存储设备将增量数据中各个数据块的强指纹与当前快照对应的指纹表中的强指纹一一进行匹配。如果增量数据中的数据块的强指纹与当前快照对应的指纹表中的其它数据块的强指纹相同,表示当前快照中存在与该数据块相同的其它数据块,此时主端存储设备只需向从端存储设备发送该数据块的强指纹。
46.示例地,图2是相关技术中提供的一种数据复制过程的场景示意图。如图2所示,主端存储设备针对主端存储设备中的逻辑卷生成有相邻的两个快照,包括快照m和快照n,快照n的生成时刻在时序上位于快照m的生成时刻之后。主端存储设备基于快照n生成指纹表f,即指纹表f中包括快照n中所有数据块的强指纹。快照n相对于快照m具有增量数据z。从端存储设备针对从端存储设备中的逻辑卷生成有快照m’,快照m’与快照m一致。
47.主端存储设备需要将增量数据z复制到从端存储设备。对于增量数据z中的每个数据块,主端存储设备通过查询指纹表f,确定快照n中是否存在与该数据块相同的其它数据块,若存在,则主端存储设备向从端存储设备复制该数据块的强指纹,若不存在,则主端存储设备向从端存储设备复制该数据块。从端存储设备基于主端存储设备发送的复制内容更新快照m’对应的指纹表,得到指纹表f’,然后根据指纹表f’恢复该复制内容中的强指纹对应的数据块,最终得到相对于快照m’的增量数据z’。最后,从端存储设备根据快照m’和增量数据z’得到更新后的快照n’,快照n’与快照n一致。
48.然而,在上述复制过程中,由于指纹表f中的指纹为强指纹,因此主端存储设备只能匹配到重复数据块,而无法匹配到相似数据块,也即是,主端存储设备只能针对增量数据z中的重复数据块进行网络带宽缩减,而无法针对增量数据z中的相似数据块进行网络带宽缩减。但是很多应用场景下,增量数据通常包括较多的修改数据。例如,用户对一个8k的数据块中的1k数据进行了修改,而没有对其余7k数据进行修改,在如图2所示的复制过程中,主端存储设备会将这个8k的数据块直接发送给从端存储设备。由于主端存储设备无法对相似数据块进行网络带宽缩减,因此目前主端存储设备向从端存储设备发送的数据量仍较大,数据复制所需占用的网络带宽较高,网络开销较大。
49.基于此,本技术实施例提供了一种数据复制方法,通过对相似数据块进行网络带宽缩减,减少了主端存储设备向从端存储设备发送的数据量,从而降低了数据复制所需占用的网络带宽,减小了网络开销。
50.图3是本技术实施例提供的一种数据复制方法的流程示意图。该方法应用于如图1所示的数据复制系统中。如图3所示,该方法包括:
51.步骤301、第一存储设备获取该第一存储设备中的第一逻辑卷的第一快照和该第一逻辑卷的第二快照。
52.该第一快照的生成时刻在时序上位于第二快照的生成时刻之后。可选地,第一快照和第二快照为相邻生成的两个快照。例如,第一快照为针对第一逻辑卷生成的第n+1个快照,第二快照为针对第一逻辑卷生成的第n个快照,n为正整数。或者,第一快照和第二快照也可以不是相邻生成的两个快照。例如,第一快照为针对第一逻辑卷生成的第n+m个快照,第二快照为针对第一逻辑卷生成的第n个快照,m为大于1的整数。
53.可选地,第一存储设备可以周期性地生成第一逻辑卷的快照,或者,第一存储设备也可以在某些触发条件下生成第一逻辑卷的快照。该触发条件可以是接收到外部输入的快照生成指令,或者也可以是接收到用户写入请求的次数达到预设阈值,等等。第一存储设备可以存储生成的第一逻辑卷的多个快照。
54.步骤302、第一存储设备获取第一快照相对于第二快照的修改数据块。
55.该修改数据块为增量数据中发生数据修改的数据块。
56.可选地,当第一快照和第二快照为相邻生成的两个快照,步骤302的实现过程包括:第一存储设备将第一快照中采用覆盖写的数据块确定为修改数据块。
57.步骤303、第一存储设备根据修改数据块在第一逻辑卷中的目标存储地址,在第二快照中确定目标数据分段。
58.该第二快照包括基于存储地址划分的多个数据分段。目标数据分段对应的存储地址中包括目标存储地址。第一存储设备可以基于第一逻辑卷的存储地址对第二快照中的数据块进行分段,得到多个数据分段。其中,数据块在逻辑卷中的存储地址可以是lba。
59.可选地,第二快照包括的每个数据分段的存储空间大小为128兆、256兆或512兆等。示例地,表1示出了第二快照中基于存储地址划分的多个数据分段。
60.表1
61.数据分段存储地址范围010~12702128~255
……
62.参见表1,数据分段01对应存储地址范围0~127(即数据分段01包括存储地址处于0~127的数据块),数据分段02对应存储地址范围128~255(即数据分段02包括存储地址处于128~255的数据块),依次类推,将第二快照划分成多个数据分段。示例地,假设修改数据块在第一逻辑卷中的存储地址为存储地址25,结合表1可以确定该修改数据块在第二快照中对应的目标数据分段为数据分段01。
63.可选地,第二快照中的每个数据分段分别对应一个弱指纹集合,该弱指纹集合包括第二快照中对应数据分段中多个数据块的弱指纹。该弱指纹集合可以采用指纹表的形式存储,该弱指纹集合中的每个弱指纹与该弱指纹集合对应的数据分段中的一个数据块具有映射关系。
64.可选地,数据块的弱指纹为数据块的哈希值。例如可以通过md5、sha-1或者sha-256的哈希函数来计算第二快照中的数据块的哈希值,并将该哈希值作为数据块的弱指纹。
65.示例地,第二快照对应有多个弱指纹集合。表2示出了第二快照中的多个数据分段
对应的多个弱指纹集合。
66.表2
[0067][0068]
参见表2,数据分段01对应弱指纹集合1,该弱指纹集合1包括弱指纹11、弱指纹12和弱指纹13等,数据分段02对应弱指纹集合2,该弱指纹集合2包括弱指纹21、弱指纹22和弱指纹23等。其中,每个数据块的弱指纹都与该数据块的存储地址对应。例如,第二快照的数据分段01中的数据块11的弱指纹11与该数据块11的存储地址11对应。
[0069]
步骤304、第一存储设备在目标数据分段中查找修改数据块对应的相似数据块。
[0070]
该相似数据块中的数据与修改数据块中的数据至少部分相同。
[0071]
可选地,步骤304的实现过程包括:第一存储设备计算修改数据块的第一弱指纹。第一存储设备在目标数据分段对应的弱指纹集合中查找第二弱指纹。该第二弱指纹与第一弱指纹相同,即第二弱指纹对应的数据块为该修改数据块对应的相似数据块。
[0072]
可选地,当目标数据分段对应的弱指纹集合中包括第二弱指纹,第一存储设备确定目标数据分段中包括修改数据块对应的相似数据块,该相似数据块为第二弱指纹对应的数据块。当目标数据分段对应的弱指纹集合中不包括第二弱指纹,第一存储设备确定目标数据分段中不存在修改数据块对应的相似数据块。
[0073]
示例地,假设修改数据块的存储地址为存储地址25,结合表1可以确定该修改数据块在第二快照中对应的目标数据分段为数据分段01。结合表2可知,数据分段01对应弱指纹集合1,进一步在弱指纹集合1中查找与第一弱指纹相同的弱指纹,假设弱指纹集合1中的弱指纹12与第一弱指纹相同,则弱指纹12对应的数据块12为修改数据块在第二快照中对应的相似数据块。
[0074]
本技术实施例中,由于第二快照中的多个数据分段对应有多个弱指纹集合,第一存储设备只需在修改数据块对应的目标数据分段所对应的弱指纹集合中查找与修改数据块的弱指纹相同的弱指纹,而无需全局搜索第二快照中所有数据块的弱指纹,在保证较高数据缩减率的前提下,使得搜索空间较小,既能实现较高的搜索效率,又能使得数据搜索开销较小,节约了第一存储设备的计算资源。
[0075]
步骤305、当目标数据分段中包括相似数据块,第一存储设备向第二存储设备发送修改数据块的复制信息。
[0076]
该复制信息包括相似数据块的存储地址描述信息以及修改数据块相对于相似数据块的差量信息。其中,相似数据块的存储地址描述信息可以是相似数据块的lba元数据信息。
[0077]
可选地,当目标数据分段中包括相似数据块,第一存储设备先对修改数据块进行基于相似数据块的差量压缩,得到差量信息,再向第二存储设备发送包含相似数据块的存储地址描述信息以及该差量信息的复制信息。本技术实施例中,第一存储设备可以基于相似数据块对修改数据块进行delta压缩,则修改数据块相对于相似数据块的差量信息可以是修改数据块相对于相似数据块的delta压缩信息;或者,第一存储设备也可以基于相似数据块对修改数据块进行差异(difference,可简称为diff)压缩,本技术实施例对差量压缩的具体方式不做限定。
[0078]
示例地,参见表2,假设弱指纹集合1中的弱指纹12对应的数据块12是修改数据块对应的相似数据块,第一存储设备对修改数据块进行基于数据块12的差量压缩以得到差量信息,第一存储设备将数据块12的存储地址12以及该差量信息发送至第二存储设备。
[0079]
本技术实施例中,当目标数据分段中包括相似数据块时,第一存储设备将包含相似数据块的存储地址描述信息以及修改数据块相对于相似数据块的差量信息的复制信息发送至第二存储设备,由于复制信息的数据量小于修改数据块的数据量,因此可以降低复制过程中传输增量数据中的修改数据所占用的网络带宽,从而降低网络开销。
[0080]
步骤306、第二存储设备根据接收到的修改数据块的复制信息在第二逻辑卷中恢复修改数据块。
[0081]
可选地,复制信息中相似数据块的存储地址描述信息可以是该相似数据块的lba元数据信息。由于第二存储设备中的第二逻辑卷与第一存储设备中的第一逻辑卷保持同步,因此每次复制完成后,相同的lba在第一逻辑卷和第二逻辑卷中对应的数据是相同的。第二存储设备接收到修改数据块的复制信息后,可以根据相似数据块的lba,在第二存储设备中与第一逻辑卷的第二快照相同的快照中查找该lba对应的目标数据块,然后根据该目标数据块以及该差量信息恢复得到修改数据块,从而实现对第二逻辑卷的更新,使得更新后的第二逻辑卷中的数据与第一逻辑卷中的数据保持一致。
[0082]
步骤307、第二存储设备根据更新后的第二逻辑卷更新该第二逻辑卷的快照。
[0083]
可选地,第二存储设备根据恢复的修改数据块更新第二逻辑卷的数据,并根据更新后的第二逻辑卷中的数据生成与第一存储设备中第一快照相同的快照,使得第二逻辑卷的快照与第一逻辑卷的快照保持一致,进而实现了数据的复制。
[0084]
示例地,图4为本技术实施例提供的一种数据复制过程的场景示意图。如图4所示,第一存储设备101针对第一存储设备101的第一逻辑卷生成有快照q和快照p,快照p的生成时刻在时序上位于快照q的生成时刻之后,例如快照p可以是上述第一逻辑卷的第一快照,快照q可以是上述第一逻辑卷的第二快照。快照q包括多个数据分段,包括数据分段1,数据分段2,等等。第一存储设备101基于该多个数据分段生成多个弱指纹集合,包括弱指纹集合1,弱指纹集合2,等等。该多个弱指纹集合的全集包括快照q中所有数据块的弱指纹。快照p相对于快照q具有修改数据w,修改数据w为快照p中采用覆盖写的数据块。第二存储设备102针对第二存储设备102中的第二逻辑卷生成有快照q’,快照q’与快照q一致。第二存储设备102基于快照q’生成指纹表e’,即指纹表e’中包括快照q’中所有数据块的弱指纹。
[0085]
第一存储设备101需要将修改数据w复制到第二存储设备102。假设第一存储设备101根据修改数据w中的修改数据块的目标存储地址在第二快照中确定的目标数据分段为数据分段1,然后基于修改数据块的第一弱指纹在数据分段1对应的弱指纹集合1中查询与
第一弱指纹相同的弱指纹。当该弱指纹集合1中包括与第一弱指纹相同的第二弱指纹,第一存储设备101将该第二弱指纹对应的数据块确定为修改数据块对应的相似数据块,然后第一存储设备101将相似数据块的复制信息(包括相似数据块的存储地址描述信息以及修改数据块相对于相似数据块的差量信息)发送至第二存储设备102。第二存储设备102基于第一存储设备101发送的复制信息以及指纹表e’恢复该复制信息中的弱指纹对应的数据块,最终得到相对于快照q’的修改数据w’。另外,对于快照p相对于快照q的修改数据中在对应的数据分段不存在相似数据块的修改数据块或者快照p相对于快照q的新增数据,其复制方法可以参考如图2所示的复制过程,在此不再赘述。最后,第二存储设备102根据快照q’以及包括修改数据w’的增量数据,得到更新后的快照p’,快照p’与快照p一致。
[0086]
本技术实施例提供的数据复制方法的步骤先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本技术的保护范围之内,例如本技术提供的数据复制方法还可以应用于数据备份场景等,在此不再赘述。
[0087]
综上所述,本技术实施例提供的数据复制方法中,第一存储设备可以获取第一存储设备中的第一逻辑卷的第一快照相对于该第一逻辑卷的第二快照的修改数据块,并根据该修改数据块在逻辑卷中的目标存储地址在第二快照中确定目标数据分段,然后在该目标数据分段中查找与该修改数据块对应的相似数据块,当该目标数据分段包含该修改数据块对应的相似数据块时,第一存储设备可以向第二存储设备发送包含的相似数据块的存储地址描述信息以及修改数据块相对于相似数据块的差量信息的复制信息。由于复制信息的数据量小于修改数据块的数据量,因此可以降低复制过程中传输增量数据中的修改数据所占用的网络带宽,从而降低网络开销。另外,由于第二快照中的多个数据分段对应有多个弱指纹集合,第一存储设备只需在修改数据块对应的目标数据分段所对应的弱指纹集合中查找与修改数据块的弱指纹相同的弱指纹,而无需全局搜索第二快照中所有数据块的弱指纹,在保证较高数据缩减率的前提下,使得搜索空间较小,既能实现较高的搜索效率,又能使得数据搜索开销较小,节约了第一存储设备的计算资源。
[0088]
图5是本技术实施例提供的一种数据复制装置的结构示意图。该装置可以应用于如图1所示的数据复制系统中的第一存储设备101。如图5所示,该装置50包括:
[0089]
获取模块501,用于获取逻辑卷的第一快照相对于逻辑卷的第二快照的修改数据块,第一快照的生成时刻在时序上位于第二快照的生成时刻之后。
[0090]
第一确定模块502,用于根据修改数据块在逻辑卷中的目标存储地址,在第二快照中确定目标数据分段,第二快照包括基于存储地址划分的多个数据分段,目标数据分段对应的存储地址中包括目标存储地址。
[0091]
查找模块503,用于在目标数据分段中查找修改数据块对应的相似数据块,相似数据块中的数据与修改数据块中的数据至少部分相同。
[0092]
发送模块504,用于当目标数据分段中包括相似数据块,向第二存储设备发送修改数据块的复制信息,复制信息包括相似数据块的存储地址描述信息以及修改数据块相对于相似数据块的差量信息。
[0093]
可选地,第二快照中的每个数据分段分别对应一个弱指纹集合,弱指纹集合包括对应数据分段中多个数据块的弱指纹,查找模块503,用于:计算修改数据块的第一弱指纹;
在目标数据分段对应的弱指纹集合中查找第二弱指纹,第二弱指纹与第一弱指纹相同。相应地,如图6所示,装置50还包括:
[0094]
第二确定模块505,用于当目标数据分段对应的弱指纹集合中包括第二弱指纹,确定目标数据分段中包括相似数据块,相似数据块为第二弱指纹对应的数据块。
[0095]
可选地,数据块的弱指纹为数据块的哈希值。
[0096]
可选地,当目标数据分段中包括相似数据块,如图7所示,装置50还包括:
[0097]
差量压缩模块506,用于对修改数据块进行基于相似数据块的差量压缩,得到差量信息。
[0098]
可选地,第一快照和第二快照为相邻生成的两个快照,获取模块501,用于:将第一快照中采用覆盖写的数据块确定为修改数据块。
[0099]
综上所述,在本技术提供的数据复制装置中,第一存储设备可以通过发送模块向第二存储设备发送修改数据块的复制信息,由于复制信息中包含的相似数据块的存储地址描述信息以及修改数据块相对于相似数据块的差量信息的数据量小于修改数据块的数据量,因此采用该方法可以降低复制过程中修改数据块所占用的网络带宽,从而降低网络开销。另外,由于第二快照中的多个数据分段对应有多个弱指纹集合,第一存储设备只需通过查找模块在修改数据块对应的目标数据分段所对应的弱指纹集合中查找与修改数据块的弱指纹相同的弱指纹,而无需全局搜索第二快照中所有数据块的弱指纹,在保证较高数据缩减率的前提下,使得搜索空间较小,既能实现较高的搜索效率,又能使得数据搜索开销较小,节约了第一存储设备的计算资源。
[0100]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0101]
图8为本技术实施例提供的一种存储设备的框图。如图8所示,存储设备80包括:处理器801和存储器802。
[0102]
处理器801,用于存储计算机程序,计算机程序包括程序指令;
[0103]
存储器802,用于调用计算机程序,实现如上述方法实施例中第一存储设备101执行的动作。
[0104]
可选地,该存储设备80还包括通信总线803和通信接口804。
[0105]
其中,处理器801包括一个或者一个以上处理核心,处理器801通过运行计算机程序,执行各种功能应用以及数据处理。
[0106]
存储器802可用于存储计算机程序。可选地,存储器802可存储操作系统和至少一个功能所需的应用程序单元。操作系统可以是实时操作系统(real time executive,rtx)、linux、unix、windows或os x之类的操作系统。
[0107]
通信接口804可以为多个,通信接口804用于与其它存储设备或网络设备进行通信。
[0108]
存储器802与通信接口804分别通过通信总线803与处理器801连接。
[0109]
本技术实施例还提供了一种计算机存储介质,所述计算机存储介质上存储有指令,当所述指令被存储设备的处理器执行时,实现如图3所示的数据复制方法中第一存储设备执行的动作。
[0110]
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件
来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0111]
在本技术实施例中,术语“第一”、“第二”和“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
[0112]
本技术中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0113]
以上所述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的构思和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1