《数据拷贝管理装置及其数据拷贝方法.pdf》由会员分享,可在线阅读,更多相关《数据拷贝管理装置及其数据拷贝方法.pdf(18页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103559143 A (43)申请公布日 2014.02.05 CN 103559143 A (21)申请号 201310557278.4 (22)申请日 2013.11.08 G06F 12/02(2006.01) G06F 3/06(2006.01) (71)申请人 华为技术有限公司 地址 518129 广东省深圳市龙岗区坂田华为 总部办公楼 (72)发明人 任努努 金添福 李明君 (74)专利代理机构 深圳市威世博知识产权代理 事务所 ( 普通合伙 ) 44280 代理人 何青瓦 (54) 发明名称 数据拷贝管理装置及其数据拷贝方法 (57) 摘要 本发明提供。
2、一种数据拷贝管理装置及其数据 拷贝方法。该数据拷贝方法包括 : 采用哈希算法 获得由源数据分块成的多个源数据块的哈希值 ; 将哈希值发送至目标存储侧, 以使目标存储侧基 于接收的哈希值判断是由目标存储侧直接生成 源数据块还是由源存储侧发送源数据块至目标存 储侧 ; 在接收目标存储侧反馈的第一反馈时, 忽 略源数据块 ; 在接收目标存储侧反馈的第二反馈 时, 发送源数据块至目标存储侧。通过上述方式, 本发明能够提高对特殊数据块的拷贝速度, 从而 节省 CPU 和网络资源, 减少拷贝时间。 (51)Int.Cl. 权利要求书 3 页 说明书 9 页 附图 5 页 (19)中华人民共和国国家知识产权。
3、局 (12)发明专利申请 权利要求书3页 说明书9页 附图5页 (10)申请公布号 CN 103559143 A CN 103559143 A 1/3 页 2 1. 一种数据拷贝方法, 用于将源存储侧的源数据拷贝至目标存储侧, 其特征在于, 所述 方法包括 : 将所述源存储侧的源数据分块成多个源数据块 ; 采用哈希算法获得每一所述源数据块的哈希值 ; 将所述哈希值发送至所述目标存储侧, 以使所述目标存储侧基于接收的所述哈希值判 断是由所述目标存储侧直接生成所述源数据块还是由所述源存储侧发送所述源数据块至 所述目标存储侧 ; 接收所述目标存储侧的反馈 ; 若所述反馈为由所述目标存储侧直接生成所述。
4、源数据块的第一反馈, 则忽略所述源数 据块 ; 若所述反馈为由所述源存储侧发送所述源数据块至所述目标存储侧的第二反馈, 则发 送所述源数据块至所述目标存储侧。 2. 根据权利要求 1 所述的拷贝方法, 其特征在于, 所述采用哈希算法获得每一所述源 数据块的哈希值的步骤之后包括 : 根据所述哈希值生成所述源数据对应的哈希文件, 其中所述哈希文件为多个所述源数 据块的哈希值的集合 ; 将所述哈希值发送至目标存储侧的步骤包括 : 将所述哈希文件发送至目标存储侧。 3. 根据权利要求 1 所述的拷贝方法, 其特征在于, 将所述哈希值发送至所述目标存储 侧的步骤包括 : 将所述哈希值发送至所述目标存储侧。
5、, 以使所述目标存储侧判断接收的所述哈希值与 预先定义的特殊数据块的哈希值是否相同, 若相同, 则判断为由所述目标存储侧直接生成 所述源数据块, 若不相同, 则判断为由所述源存储侧发送所述源数据块至所述目标存储侧。 4.根据权利要求3所述的拷贝方法, 其特征在于, 所述预先定义的特殊数据块为全0数 据块或全 1 数据块。 5. 根据权利要求 1 所述的拷贝方法, 其特征在于, 将所述哈希值发送至所述目标存储 侧的步骤包括 : 将所述哈希值发送至所述目标存储侧, 以使所述目标存储侧判断接收的所述哈希值与 所述目标存储侧已经存储的本地数据块的哈希值是否相同, 若相同, 则判断为由所述目标 存储侧直。
6、接生成所述源数据块, 若不相同, 则判断为由所述源存储侧发送所述源数据块至 所述目标存储侧。 6. 一种数据拷贝管理装置, 用于将源存储侧的源数据拷贝至目标存储侧, 其特征在于, 所述装置包括 : 分块模块, 用于将所述源存储侧的源数据分块成多个源数据块 ; 哈希计算模块, 用于采用哈希算法获得每一所述源数据块的哈希值 ; 发送模块, 用于将所述哈希值发送至所述目标存储侧, 以使所述目标存储侧基于所述 哈希值判断是由所述目标存储侧直接生成所述源数据块还是由所述源存储侧发送所述源 数据块至所述目标存储侧 ; 接收模块, 用于接收所述目标存储侧的反馈 ; 权 利 要 求 书 CN 10355914。
7、3 A 2 2/3 页 3 拷贝管理模块, 若所述反馈为由所述目标存储侧直接生成所述源数据块的第一反馈, 则所述拷贝管理模块忽略所述源数据块, 若所述反馈为由所述源存储侧发送所述源数据块 至所述目标存储侧的第二反馈, 则所述拷贝管理模块控制所述发送模块发送所述源数据块 至目标存储侧。 7. 根据权利要求 6 所述的装置, 其特征在于, 所述哈希计算模块还用于根据获得的所 述哈希值生成所述源数据对应的哈希文件, 其中所述哈希文件为多个所述源数据块的哈希 值的集合, 所述发送模块用于将所述哈希文件发送至目标存储侧。 8. 一种数据拷贝方法, 用于将源存储侧的源数据拷贝至目标存储侧, 其特征在于, 。
8、所述 方法包括 : 接收所述源存储侧的源数据分块成的源数据块的哈希值 ; 基于接收的所述哈希值判断是由所述目标存储侧直接生成所述源数据块还是由所述 源存储侧发送所述源数据块至所述目标存储侧 ; 若判断为由所述目标存储侧直接生成所述源数据块, 则由所述目标存储侧直接生成所 述源数据块, 并发送第一反馈至所述源存储侧, 以指示所述源存储侧忽略所述源数据块 ; 若所述判断为由所述源存储侧发送所述源数据块至所述目标存储侧, 则发送第二反馈 至所述源存储侧, 以指示所述源存储侧发送所述源数据块至所述目标存储侧。 9. 根据权利要求 8 所述的拷贝方法, 其特征在于, 所述接收所述源存储侧的源数据分 块成。
9、的源数据块的哈希值的步骤包括 : 接收一哈希文件, 其中所述哈希文件为所述源存储侧的源数据分块成的多个所述源数 据块的哈希值的集合。 10. 根据权利要求 8 所述的拷贝方法, 其特征在于, 所述基于接收的所述哈希值判断是 由所述目标存储侧直接生成所述源数据块还是由所述源存储侧发送所述源数据块至所述 目标存储侧的步骤包括 : 判断接收的所述哈希值与预先定义的特殊数据块的哈希值是否相同, 若相同, 则判断 为由所述目标存储侧直接生成所述源数据块, 若不相同, 则判断为由所述源存储侧发送所 述源数据块至所述目标存储侧。 11.根据权利要求10所述的拷贝方法, 其特征在于, 所述预先定义的特殊数据块。
10、为全0 数据块或全 1 数据块。 12. 根据权利要求 10 所述的拷贝方法, 其特征在于, 所述基于接收的所述哈希值判断 是由所述目标存储侧直接生成所述源数据块还是由所述源存储侧发送所述源数据块至所 述目标存储侧的步骤包括 : 判断接收的所述哈希值与所述目标存储侧已经存储的本地数据块的哈希值是否相同, 若相同, 则判断为由所述目标存储侧直接生成所述源数据块, 若不相同, 则判断为由所述源 存储侧发送所述源数据块至所述目标存储侧。 13. 根据权利要求 10-12 任意一项所述的拷贝方法, 其特征在于, 所述由所述目标存储 侧直接生成所述源数据块的步骤包括 : 将所述预先定义的特殊数据块或所述。
11、已经存储的本地数据块复制至所述源数据块的 预定存储区, 或修改所述目标存储侧的去重数据记录中的元数据信息, 以记录所述源数据 块的预定存储区与所述预先定义的特殊数据块的映射关系, 或记录所述源数据块的预定存 权 利 要 求 书 CN 103559143 A 3 3/3 页 4 储区与所述已经存储的本地数据块的映射关系。 14. 一种数据拷贝管理装置, 用于将源存储侧的源数据拷贝至目标存储侧的预定存储 区, 其特征在于, 所述装置包括 : 接收模块, 用于接收所述源存储侧的源数据分块成的源数据块的哈希值 ; 处理模块, 用于基于所述接收模块接收的所述哈希值判断是由所述目标存储侧直接生 成所述源数。
12、据块还是由所述源存储侧发送所述源数据块至所述目标存储侧 ; 发送模块, 用于向所述源存储侧发送反馈 ; 拷贝管理模块, 用于所述处理模块判断由所述目标存储侧直接生成所述源数据块时, 直接生成所述源数据块, 并控制所述发送模块向所述源存储侧发送第一反馈, 以指示所述 源存储侧忽略所述源数据块 ; 在所述处理模块判断由所述源存储侧发送所述源数据块至所 述目标存储侧时, 控制所述发送模块向所述源存储侧发送第二反馈, 以指示所述源存储侧 发送所述源数据块至所述接收模块。 15. 根据权利要求 14 所述的装置, 其特征在于, 所述接收模块还用于接收哈希文件, 其 中所述哈希文件为所述源存储侧的源数据分。
13、块成的多个所述源数据块的哈希值的集合。 16. 根据权利要求 14 所述的装置, 其特征在于, 所述处理模块还用于判断接收的所述 哈希值与预先定义的特殊数据块的哈希值是否相同, 若相同, 则判断为由所述目标存储侧 直接生成所述源数据块, 若不相同, 则判断为由所述源存储侧发送所述源数据块至所述目 标存储侧。 17.根据权利要求16所述的装置, 其特征在于, 所述预先定义的特殊数据块为全0数据 块或全 1 数据块。 18. 根据权利要求 14 所述的装置, 其特征在于, 所述处理模块还用于判断接收的所述 哈希值与所述目标存储侧已经存储的本地数据块的哈希值是否相同, 若相同, 则判断为由 所述目标。
14、存储侧直接生成所述源数据块, 若不相同, 则判断为由所述源存储侧发送所述源 数据块至所述目标存储侧。 19. 根据权利要求 16-18 所述的装置, 其特征在于, 所述处理模块还用于将所述预先定 义的特殊数据块或所述已经存储的本地数据块复制至所述源数据块的预定存储区, 或修改 所述目标存储侧的去重数据记录中的元数据信息, 以记录所述源数据块的预定存储区与所 述预先定义的数据块的映射关系, 或记录所述源数据块的预定存储区与所述已经存储的本 地数据块的映射关系。 权 利 要 求 书 CN 103559143 A 4 1/9 页 5 数据拷贝管理装置及其数据拷贝方法 技术领域 0001 本发明涉及数。
15、据拷贝技术领域, 特别是涉及一种数据拷贝管理装置及其数据拷贝 方法。 背景技术 0002 目前, 随着各种终端及通信业务的日益增长需求, 将源数据由一个物理存储拷贝 到另一个物理存储, 或由一个虚拟存储拷贝到另一个虚拟存储的数据拷贝已变得越来越频 繁, 基于多个数据拷贝过程同时进行时物理存储的 CPU (Central Processing Unit, 中央处 理器) 和 IOPS(Input/Output Operations Per Second, 每秒读写操作次数) 的局限性, 如 何减少由此导致的拷贝时间, 已成为各运营商提升竞争力的重要手段。 0003 现有技术中通过在源存储侧和目标。
16、存储侧之间采用阵列集成应用接口技术 (vStorage API for Array Integration, VAAI) 已被普遍采用, 其主要通过在源存储侧和 目标存储侧之间实现 VAAI 特定接口以供上层应用调用, 从而将数据拷贝等存储操作交由 存储阵列实现, 以降低主机侧的资源消耗。 然而, 上述技术直接对源存储侧的所有数据进行 直接拷贝, 导致数据拷贝时拷贝速度较低, 拷贝时间较长。 发明内容 0004 有鉴于此, 本发明实施例提供了一种数据拷贝管理装置及其数据拷贝方法, 以提 高对特殊数据块的拷贝速度, 减少拷贝时间。 0005 第一方面提供一种数据拷贝方法, 用于将源存储侧的源数据。
17、拷贝至目标存储侧, 该方法包括 : 将源存储侧的源数据分块成多个源数据块 ; 采用哈希算法获得每一源数据块 的哈希值 ; 将哈希值发送至目标存储侧, 以使目标存储侧基于接收的哈希值判断是由目标 存储侧直接生成源数据块还是由源存储侧发送源数据块至目标存储侧 ; 接收目标存储侧的 反馈 ; 若反馈为由目标存储侧直接生成源数据块的第一反馈, 则忽略源数据块 ; 若反馈为 由源存储侧发送源数据块至目标存储侧的第二反馈, 则发送源数据块至目标存储侧。 0006 结合第一方面的实现方式, 在第一种可能的实现方式中, 采用哈希算法获得每一 源数据块的哈希值的步骤之后包括 : 根据哈希值生成源数据对应的哈希文。
18、件, 其中哈希文 件为多个源数据块的哈希值的集合 ; 将哈希值发送至目标存储侧的步骤包括 : 将哈希文件 发送至目标存储侧。 0007 结合第一方面的实现方式, 在第二种可能的实现方式中, 将哈希值发送至目标存 储侧的步骤包括 : 将哈希值发送至目标存储侧, 以使目标存储侧判断接收的哈希值与预先 定义的特殊数据块的哈希值是否相同, 若相同, 则判断为由目标存储侧直接生成源数据块, 若不相同, 则判断为由源存储侧发送源数据块至目标存储侧。 0008 结合第一方面的第二种可能的实现方式, 在第三种可能的实现方式中, 预先定义 的特殊数据块为全 0 数据块或全 1 数据块。 0009 结合第一方面的。
19、实现方式, 在第四种可能的实现方式中, 将哈希值发送至目标存 说 明 书 CN 103559143 A 5 2/9 页 6 储侧的步骤包括 : 目标存储侧判断接收的哈希值与目标存储侧已经存储的本地数据块的哈 希值是否相同, 若相同, 则判断为由目标存储侧直接生成源数据块, 若不相同, 则判断为由 源存储侧发送源数据块至目标存储侧。 0010 第二方面提供一种数据拷贝管理装置, 用于将源存储侧的源数据拷贝至目标存 储侧, 该装置包括 : 分块模块, 用于将源存储侧的源数据分块成多个源数据块 ; 哈希计算模 块, 用于采用哈希算法获得每一源数据块的哈希值 ; 发送模块, 用于将哈希值发送至目标存 。
20、储侧, 以使目标存储侧基于哈希值判断是由目标存储侧直接生成源数据块还是由源存储侧 发送源数据块至目标存储侧 ; 接收模块, 用于接收目标存储侧的反馈 ; 拷贝管理模块, 若反 馈为由目标存储侧直接生成源数据块的第一反馈, 则拷贝管理模块忽略源数据块, 若反馈 为由源存储侧发送源数据块至目标存储侧的第二反馈, 则拷贝管理模块控制发送模块发送 源数据块至目标存储侧。 0011 结合第二方面的实现方式, 在第一种可能的实现方式中, 哈希计算模块还用于根 据获得的哈希值生成源数据对应的哈希文件, 其中哈希文件为多个源数据块的哈希值的集 合, 发送模块用于将哈希文件发送至目标存储侧。 0012 第三方面。
21、提供一种数据拷贝方法, 用于将源存储侧的源数据拷贝至目标存储侧, 该方法包括 : 接收源存储侧的源数据分块成的源数据块的哈希值 ; 基于接收的哈希值判断 是由目标存储侧直接生成源数据块还是由源存储侧发送源数据块至目标存储侧 ; 若判断为 由目标存储侧直接生成源数据块, 则由目标存储侧直接生成源数据块, 并发送第一反馈至 源存储侧, 以指示源存储侧忽略源数据块 ; 若判断为由源存储侧发送源数据块至目标存储 侧, 则发送第二反馈至源存储侧, 以指示源存储侧发送源数据块至目标存储侧。 0013 结合第三方面的实现方式, 在第一种可能的实现方式中, 接收源存储侧的源数据 分块成的源数据块的哈希值的步骤。
22、包括 : 接收一哈希文件, 其中哈希文件为源存储侧的源 数据分块成的多个数据块的哈希值的集合。 0014 结合第三方面的实现方式, 在第二种可能的实现方式中, 基于接收的哈希值判断 是由目标存储侧直接生成源数据块还是由源存储侧发送源数据块至目标存储侧的步骤包 括 : 判断接收的哈希值与预先定义的特殊数据块的哈希值是否相同, 若相同, 则判断为由目 标存储侧直接生成源数据块, 若不相同, 则判断为由源存储侧发送源数据块至目标存储侧。 0015 结合第三方面的第二种可能的实现方式, 在第三种可能的实现方式中, 预先定义 的特殊数据块为全 0 数据块或全 1 数据块。 0016 结合第三方面的第二种。
23、可能的实现方式, 在第四种可能的实现方式中, 基于接收 的哈希值判断是由目标存储侧直接生成源数据块还是由源存储侧发送源数据块至目标存 储侧的步骤包括 : 判断接收的哈希值与目标存储侧已经存储的本地数据块的哈希值是否相 同, 若相同, 则判断为由目标存储侧直接生成源数据块, 若不相同, 则判断为由源存储侧发 送源数据块至目标存储侧。 0017 结合第三方面的第二种可能的、 第三种可能的或第四种可能的实现方式, 在第五 种可能的实现方式中, 由目标存储侧直接生成源数据块的步骤包括 : 将预先定义的特殊数 据块或已经存储的本地数据块复制至源数据块的预定存储区, 或修改目标存储侧的去重数 据记录中的元。
24、数据信息, 以记录源数据块的预定存储区与预先定义的数据块的映射关系, 或记录源数据块的预定存储区与已经存储的本地数据块的映射关系。 说 明 书 CN 103559143 A 6 3/9 页 7 0018 第四方面提供一种数据拷贝管理装置, 用于将源存储侧的源数据拷贝至目标存储 侧的预定存储区, 该装置包括 : 接收模块, 用于接收源存储侧的源数据分块成的源数据块的 哈希值 ; 处理模块, 用于基于接收模块接收的哈希值判断是由目标存储侧直接生成源数据 块还是由源存储侧发送源数据块至目标存储侧 ; 发送模块, 用于向源存储侧发送反馈 ; 拷 贝管理模块, 用于处理模块判断由目标存储侧直接生成源数据。
25、块时, 直接生成源数据块, 并 控制发送模块向源存储侧发送第一反馈, 以指示源存储侧忽略源数据块 ; 在处理模块判断 由源存储侧发送源数据块至目标存储侧时, 控制发送模块向源存储侧发送第二反馈, 以指 示源存储侧发送源数据块至接收模块。 0019 结合第四方面的实现方式, 在第一种可能的实现方式中, 接收模块还用于接收哈 希文件, 其中哈希文件为源存储侧的源数据分块成的多个源数据块的哈希值的集合。 0020 结合第四方面的实现方式, 在第二种可能的实现方式中, 处理模块还用于判断接 收的哈希值与预先定义的特殊数据块的哈希值是否相同, 若相同, 则判断为由目标存储侧 直接生成源数据块, 若不相同。
26、, 则判断为由源存储侧发送源数据块至目标存储侧。 0021 结合第四方面的第二种可能的实现方式, 在第三种可能的实现方式中, 预先定义 的特殊数据块为全 0 数据块或全 1 数据块。 0022 结合第四方面的实现方式, 在第四种可能的实现方式中, 处理模块还用于判断接 收的哈希值与目标存储侧已经存储的本地数据块的哈希值是否相同, 若相同, 则判断为由 目标存储侧直接生成源数据块, 若不相同, 则判断为由源存储侧发送源数据块至目标存储 侧。 0023 结合第四方面的第二种可能的、 第三种可能的或第四种可能的实现方式, 在第五 种可能的实现方式中, 处理模块还用于将预先定义的特殊数据块或已经存储的。
27、本地数据块 复制至源数据块的预定存储区, 或修改目标存储侧的去重数据记录中的元数据信息, 以记 录源数据块的预定存储区与预先定义的数据块的映射关系, 或记录源数据块的预定存储区 与已经存储的本地数据块的映射关系。 0024 本发明的有益效果是 : 区别于现有技术的情况, 本发明采用哈希算法获得由源数 据分块成的多个源数据块的哈希值, 并将哈希值发送至目标存储侧, 以使其基于接收的哈 希值判断是由目标存储侧直接生成源数据块还是由源存储侧发送源数据块至目标存储侧, 若接收到目标存储侧反馈的直接生成源数据块的第一反馈, 则忽略源数据块, 若接收到目 标存储侧反馈的由源存储侧发送源数据块的第二反馈, 。
28、则发送源数据块至目标存储侧, 通 过对源数据分类拷贝, 从而提高拷贝速度, 减少拷贝时间。 附图说明 0025 为了更清楚地说明本发明实施例中的技术方案, 下面将对实施例描述中所需要使 用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本发明的一些实施例, 对于 本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以根据这些附图获得其他 的附图。其中 : 0026 图 1 是本发明第一实施例的数据拷贝方法的流程图 ; 0027 图 2 是本发明第一实施例的数据拷贝管理装置的原理框图 ; 0028 图 3 是本发明第四实施例的数据拷贝管理装置的原理框图 ; 说 明 书 CN 1。
29、03559143 A 7 4/9 页 8 0029 图 4 是本发明第五实施例的数据拷贝管理装置的原理框图 ; 0030 图 5 是本发明第六实施例的数据拷贝管理装置的原理框图。 具体实施方式 0031 下面将结合本发明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完 整地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部实施例。基于本 发明中的实施例, 本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他 实施例, 例如各实施例之间技术特征的相互结合, 都属于本发明保护的范围。 0032 本发明提供一种数据拷贝方法, 请参见图 1 的本发明第一实施例的数。
30、据拷贝方法 的流程图。本实施例的数据拷贝方法用于将源存储侧的源数据拷贝至目标存储侧, 其中源 存储侧和目标存储侧既可以为实体的物理存储介质, 也可以为其经过虚拟机管理系统对应 部署的虚拟存储, 两者之间既可以在跨越物理存储介质时通过无线网络 (IP网络) 和存储网 络进行指令和源数据的拷贝, 也可以在同一物理存储介质时仅通过存储网络进行源数据的 拷贝。 另外, 本实施例的方法与物理存储所在的物理机没有必然的联系, 即本实施例适用于 同一物理机中同一物理存储介质中的多个虚拟存储之间的源数据拷贝、 不同物理机之间同 一物理存储介质中的多个虚拟存储之间的源数据拷贝、 同一物理机中不同物理存储介质中 。
31、的多个虚拟存储之间的源数据拷贝、 不同物理机之间的不同物理存储介质中的多个虚拟存 储之间的源数据拷贝。 0033 如图 1 所示, 本实施例所揭示的数据拷贝方法包括 : 0034 步骤 S11 : 源存储侧将源数据分块成多个源数据块。 0035 在拷贝开始时, 源存储侧首先确定目标存储侧所要拷贝的源数据, 然后在其自身 存储中调用该源数据, 随后采用分块查找算法、 依赖 OS(Operating System, 操作系统) 的 存储机制和存储设定等方法对源数据进行数据分块, 以得到多个源数据块。 0036 其中, 多个源数据块的字节长度可以相等也可以不相等, 具体的字节长度可根据 实际需要进行。
32、设定, 例如为 4k 或 8k 等。另外, 本实施例源数据是一段连续的数据内容, 鉴 于当前计算机普遍采用二进制算法, 故优选源数据的数据内容为二进制数据, 对应的每一 源数据块的数据内容也为二进制数据。 0037 步骤 S12 : 源存储侧采用哈希算法获得每一源数据块的哈希值。 0038 对于步骤 S11 得到的每个源数据块, 即每段任意长度的二进制数据, 采用哈希算 法 (Hash) 将其映射为固定长度的较小的二进制数据或二进制值, 即哈希值。采用哈希算法 的过程实质上是一种将较长数据编码为较短数据的过程, 以便于数据拷贝过程中的快速传 输、 查找和比对, 并且基于哈希算法的唯一对应性, 。
33、任意两个或两个以上的源数据块只有在 数据内容相同时其哈希值才相同, 在其数据内容不相同时每一源数据块仅对应有唯一的哈 希值。 0039 步骤 S13 : 源存储侧将哈希值发送至目标存储侧。 0040 在源存储侧将多个源数据块的哈希值发送至目标存储侧时, 由于哈希值的数量不 止一个, 因此优选需要遵循多个源数据块组成源数据的顺序或某种协议规则, 本实施例优 选对各个源数据块按照组成源数据的顺序进行编号, 如下表所示 : 0041 说 明 书 CN 103559143 A 8 5/9 页 9 源数据块的编号哈希值 0000ABC123 0001DEF456 0002BCD789 N-2BCD789。
34、 N-1CDE345 NDEF456 0042 在步骤 S11 的数据分块时, 将待拷贝的源数据分成的多个源数据块按照分块顺序 编码为 0000、 0001、 0002、 、 N-2、 N-1、 N, 对应的哈希值依次为 ABC123、 DEF456、 BCD789、 、 BCD789、 CDE345、 DEF456。 在哈希值发送时, 根据上表可以逐个先后发送, 也可以用列表的方 式一次性全部发送。 0043 需要说明的是, 本实施例揭示的上述编号及对应的哈希值, 以及上表中相应的具 体数值, 仅供说明举例, 在其他实施例中, 本领域技术人员可以根据实际需要进行其他设 置, 只需满足多个源数。
35、据块与多个哈希值的一一对应关系即可。 0044 步骤 S14 : 目标存储侧基于接收的哈希值判断是由目标存储侧直接生成源数据块 还是由源存储侧发送源数据块至目标存储侧。 0045 对应地, 目标存储侧依次接收多个源数据块, 也可以一次性全部接收。 0046 在接收完成后, 目标存储侧判断接收到的哈希值与预先定义的特殊数据块的哈希 值是否相同。其中, 预先定义的特殊数据块是在数据拷贝前根据需求定义的具有一定数据 格式的源数据块, 本实施例优选特殊数据块为全 0 数据块或全 1 数据块, 当然也可以为半 0 半 1 数据块等。 0047 若目标存储侧接收到的哈希值与特殊数据块的哈希值相同, 例如全。
36、 0 数据的哈希 值为DEF456, 与表1中编号为0001的源数据块的哈希值DEF456相同, 则目标存储侧做出由 目标存储侧直接生成该哈希值对应的特殊数据块的判断结果, 并优选据此判断结果生成第 一反馈。 0048 若目标存储侧接收到的哈希值与特殊数据块的哈希值不相同, 例如全 1 数据的哈 希值为 DFG789, 与表 1 中任何编号的源数据块的哈希值均不相同, 则目标存储侧做出由源 存储侧发送该哈希值对应的源数据块至目标存储侧的判断结果, 并优选据此判断结果生成 第二反馈。 0049 步骤 S15 : 源存储侧接收目标存储侧的反馈。 0050 其中, 该反馈包括步骤 S13 中的第一反。
37、馈和第二反馈。 0051 步骤 S16 : 若反馈为由目标存储侧直接生成源数据块的第一反馈, 则源存储侧忽 略源数据块。 说 明 书 CN 103559143 A 9 6/9 页 10 0052 源存储侧在接收到第一反馈后忽略该相同哈希值对应的源数据块, 即不将该源数 据块发送给目标存储侧。需要说明的是, 此时目标存储侧虽然是直接生成该相同哈希值对 应的特殊数据块, 但是其仍需要按照数据分块时的顺序或协议规则将特殊数据块插入未拷 贝的源数据块对应的存储位置, 以便于目标存储侧进行数据组块时得到正确的源数据。 0053 步骤 S17 : 若反馈为由源存储侧发送源数据块至目标存储侧的第二反馈, 则。
38、源存 储侧发送源数据块至目标存储侧。 0054 目标存储侧在接收到源存储侧发送的多个源数据块后, 根据数据分块时的顺序或 协议规则将多个源数据块进行数据组块, 以得到需要拷贝的源数据。 0055 基于上述, 相比较于现有技术中在源存储侧和目标存储侧之间采用的阵列集成应 用接口技术, 由于需要在源存储侧和目标存储侧同时设置对应的特定接口, 即开发的一致 性, 由此增加了开发的复杂度。而本实施例通过将待拷贝的源数据进行分块并得到各个源 数据块的哈希值, 即不需要考虑源存储侧和目标存储侧之间的接口, 因此开发复杂度较低。 0056 进一步地, 现有技术中的阵列集成应用接口技术在数据拷贝时存储阵列直接。
39、将源 存储侧的源数据全部复制, 而不对源数据的内容进行检测, 当源数据中包括全 0 数据或全 1 数据等特殊定义数据时, 对这些可在目标存储侧直接生成的数据的复制与拷贝仍然会影响 拷贝速度, 增加拷贝时间。而本实施例的步骤 S14 中将特殊数据块从多个源数据块中分类 出来, 且不进行拷贝而是在目标存储侧直接生成, 简化了需要拷贝的数据量, 从而能够提高 拷贝速度, 减少拷贝时间。 并且由于所要拷贝的数据量减少, 因此在跨越物理机时还可以节 省网络资源和 CPU 资源。 0057 本发明还提供第二实施例的数据拷贝方法, 其在第一实施例所揭示的数据拷贝方 法的基础上进行详细描述。本实施例与图 1 。
40、所示第一实施例的不同之处在于 : 0058 在步骤 S12 中, 在采用哈希算法获得每一源数据块的哈希值之后, 源存储侧根据 哈希值生成源数据对应的哈希文件, 该哈希文件为多个源数据块的哈希值的集合。 对应地, 在步骤 S13 中, 源存储侧将哈希文件发送至目标存储侧, 即源存储侧将多个哈希值一次性 全部发送至目标存储侧。在步骤 S14 中, 目标存储侧是基于接收哈希文件中的哈希值, 判断 是由目标存储侧直接生成源数据块还是由源存储侧发送源数据块至目标存储侧。 0059 本发明还提供第三实施例的数据拷贝方法, 其在第一实施例所揭示的数据拷贝方 法的基础上进行详细描述。本实施例与图 1 所示第一。
41、实施例的不同之处在于 : 0060 在步骤 S14 中, 目标存储侧本身已经存储有一个或多个数据块, 即本地数据块。在 接收到来自源存储侧发送的多个源数据块的哈希值后, 采用哈希算法获得本地数据块的哈 希值。需要说明的是, 本实施例采用的哈希算法和第一实施例的步骤 S12 中获得源数据块 的哈希值的哈希算法是相同的。 0061 然后, 目标存储侧判断接收到的哈希值与本地数据块的哈希值是否相同。 若相同, 则目标存储侧做出由目标存储侧直接生成该哈希值对应的源数据块的判断结果, 并据此判 断结果生成第一反馈。对应地, 在步骤 S16 中, 目标存储侧直接将已经存储的本地数据块复 制至待拷贝的源数据。
42、块的预定存储区。 0062 若不相同, 则目标存储侧做出由源存储侧发送该哈希值对应的源数据块至目标存 储侧的判断结果, 并据此判断结果生成第二反馈。 0063 应理解, 本领域技术人员还可以根据实际需要将本实施例与上述第二实施例的数 说 明 书 CN 103559143 A 10 7/9 页 11 据拷贝方法相结合, 其同样可达到对源数据的多个源数据块进行分类, 以对其中的特殊数 据块不进行拷贝, 简化需要拷贝的数据量, 从而提高拷贝速度, 减少拷贝时间。 0064 本发明进一步提供第四实施例的数据拷贝方法, 其在第一实施例所揭示的数据拷 贝方法的基础上进行详细描述。本实施例与图 1 所示第一。
43、实施例的不同之处在于 : 0065 本实施例的目标存储侧具有基于哈希值的数据去重功能, 即目标存储侧在接收到 源存储侧发送的多个源数据块的哈希值后, 会自动对多个哈希值进行数据去重操作, 例如, 对上表中具有相同哈希值 BCD789 的源数据块 0002 和源数据块 N-2 进行数据去重。 0066 对应地, 在步骤S16和S17中, 目标存储侧修改数据去重操作时数据记录中的元数 据信息, 从而记录待拷贝的源数据块的在目标存储侧中的预定存储区与预先定义的特殊数 据块的映射关系, 以便根据该映射关系将待拷贝的源数据块拷贝至指定的预定存储区, 进 而进行数据组块得到所要拷贝的源数据。 0067 应。
44、理解, 本领域技术人员还可以根据实际需要将本实施例与上述第三实施例的数 据拷贝方法相结合, 即在步骤 S16 和 S17 中记录待拷贝的源数据块的在目标存储侧中的预 定存储区与已经存储的本地数据块的映射关系, 继而根据该映射关系拷贝源数据块。 0068 本发明还提供了第一实施例的一种数据拷贝管理装置, 如图 2 所示, 本实施例所 揭示的数据拷贝管理装置200包括源存储侧210和目标存储侧220, 两者既可以为实体的物 理存储介质, 也可以为物理存储介质经过虚拟机管理系统对应部署的虚拟存储, 两者之间 既可以在跨越物理存储介质时通过无线网络和存储网络进行指令和源数据的拷贝, 也可以 在同一物理。
45、存储介质时仅通过存储网络进行源数据的拷贝。 0069 其中, 源存储侧210包括分块模块211、 哈希计算模块212、 第一发送模块213、 第一 接收模块 214 和第一拷贝管理模块 215, 目标存储侧 220 包括第二接收模块 221、 处理模块 222、 第二发送模块 223 和第二拷贝管理模块 224。 0070 在本实施例中, 分块模块 211 用于将源存储侧 210 存储的源数据分块成多个源数 据块。 0071 哈希计算模块212用于采用哈希算法获得经分块模块211得到的每一源数据块的 哈希值。 0072 第一发送模块 213 用于将哈希计算模块 212 得到的哈希值发送至目标存。
46、储侧 220 的第二接收模块 221。 0073 目标存储侧 220 的处理模块 222 基于第二接收模块 221 接收到的哈希值判断是由 目标存储侧220直接生成源数据块还是由源存储侧210发送源数据块至目标存储侧220, 并 相应的做出第一反馈和第二反馈。其中, 处理模块 222 做出第一反馈和第二反馈的依据可 参见本发明第一实施例的数据拷贝方法, 此处不再赘述。 0074 第二发送模块 223 用于将第一反馈和 / 或第二反馈发送至源存储侧 210 的第一接 收模块 214。 0075 若处理模块222判断由目标存储侧220直接生成源数据块, 第二拷贝管理模块224 直接生成源数据块, 。
47、并控制第二发送模块 223 向源存储侧 210 的第一接收模块 214 发送第 一反馈, 第一拷贝管理模块 215 根据第一反馈忽略该源数据块。 0076 若处理模块222判断由源存储侧210发送源数据块至目标存储侧220, 第二拷贝管 理模块 224 控制第二发送模块 223 向源存储侧 210 的第一接收模块 214 发送第二反馈, 第 说 明 书 CN 103559143 A 11 8/9 页 12 一拷贝管理模块 215 根据第二反馈控制第一发送模块 213 发送源数据块至目标存储侧 220 的第二接收模块 221。 0077 本发明还提供第二实施例的数据拷贝管理装置, 其在第一实施例。
48、所揭示的数据拷 贝管理装置的基础上进行详细描述。本实施例与图 2 所示第一实施例的不同之处在于 : 0078 在本实施例中, 哈希计算模块 212 还用于根据获得的哈希值生成源数据对应的哈 希文件, 其中哈希文件为多个源数据块的哈希值的集合。相应地, 第一发送模块 213 用于将 该哈希文件发送至目标存储侧 220 的第二接收模块 221。处理模块 222 基于第二接收模块 221 接收到的哈希文件中的哈希值判断是由目标存储侧 220 直接生成源数据块还是由源存 储侧 210 发送源数据块至目标存储侧 220, 并相应的做出第一反馈和第二反馈。 0079 本发明还提供第三实施例的数据拷贝管理装。
49、置, 其在第一实施例所揭示的数据拷 贝管理装置的基础上进行详细描述。本实施例与图 2 所示第一实施例的不同之处在于 : 0080 在本实施例中, 处理模块 222 还用于判断第二接收模块 221 接收到的哈希值与预 先定义的特殊数据块的哈希值是否相同。 若相同, 则处理模块222判断为由目标存储侧220 直接生成该哈希值对应的源数据块 (特殊数据块) , 并做出第一反馈。若不相同, 则处理模块 222 判断为由源存储侧 210 发送源数据块至目标存储侧 220, 并做出第二反馈。 0081 其中, 预先定义的特殊数据块为全0数据块或全1数据块, 并优选存储于目标存储 侧 220 的处理模块 222 中。 0082 本发明还提供第四实施例的数据拷贝管理装置, 其在第一实施例所揭示的数据拷 贝管理装置的基础上进行详细描述。如图 3 所示, 本实施例与图 2 所示第一实施例的不同 之处在于 : 0083 目标存储侧220还包括存储区225, 用于存储目。