CN103118019B - 一种基于去重的文件网络复制方法 - Google Patents
一种基于去重的文件网络复制方法 Download PDFInfo
- Publication number
- CN103118019B CN103118019B CN201310026865.0A CN201310026865A CN103118019B CN 103118019 B CN103118019 B CN 103118019B CN 201310026865 A CN201310026865 A CN 201310026865A CN 103118019 B CN103118019 B CN 103118019B
- Authority
- CN
- China
- Prior art keywords
- file
- fingerprint
- computer
- copied
- local
- 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.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于去重的文件网络复制方法,包括:文件请求方计算机和文件服务方计算机各自对本地文件进行多粒度块、多指纹算法的分块指纹计算并存储在本地指纹库中;文件请求方向文件服务方发送请求获取指定文件以及分块指纹协议;文件服务方以特定指纹协议计算待传输文件的块指纹序列,并发送给文件请求方;文件请求方针对指纹信息序列依次查找本地指纹库,将所有不存在的指纹序列所对应的数据块编号序列发送给文件服务方,文件服务方只需依次将这些数据块发送给文件客户方;文件客户方将依次接收这些数据块并结合本地重复存储数据块最终完成文件网络复制。本发明能够有效地减少文件网络复制时的不必要的网络流量。
Description
技术领域
本发明属于计算机领域,主要关注减少文件网络复制时的网络流量。
背景技术
目前基于去重的文件网络复制主要包括文件粒度的去重,和数据块粒度的去重,其中后者应用时往往采用特定的数据块大小和特定的指纹算法。本发明引入分块指纹协议动态确认指纹,从而可更有效地减少文件网络复制时网络流量。
发明内容
本发明目的是为了减少文件网络复制时的网络流量。本发明给出一种基于去重的文件网络复制方法,通过采用多数据块粒度、多指纹算法的分块指纹协议来确定具体的指纹序列,以及文件数据实际复制前待传输数据块编号序列确认机制。
本发明提供的基于去重的文件网络复制方法,包括具体步骤如下:
第1、文件请求方计算机和文件服务方计算机各自对本地文件进行多粒度块、多指纹算法的分块指纹计算并存储在本地指纹库中;
第2、文件请求方计算机向文件服务方计算机发起请求,请求传输待复制文件的全路径文件名以及分块指纹协议;
第3、文件服务方计算机接收到待复制文件名以及分块指纹协议;
第4、文件服务方计算机选择分块指纹协议中规定的分块大小和指纹算法,对待复制文件计算指纹序列,若文件服务方计算机中的本地指纹库中存在待复制文件的指纹序列,则直接获取待复制文件指纹序列;
第5、文件服务方计算机向文件请求方计算机发送待复制文件的大小、指纹序列及特定指纹协议;
第6、文件请求方计算机从文件服务方计算机接收到待复制文件的大小、指纹序列及特定指纹协议;
第7、文件请求方计算机根据特定指纹协议中的指纹算法,查找文件请求方计算机本地指纹库,统计出所有不在本地指纹库中的待复制文件的指纹序列以及对应的数据块编号;
第8、文件请求方计算机将所有不在本地指纹库中的待复制文件的指纹序列所对应的数据块编号序列发送给文件服务方计算机;
第9、文件服务方计算机从文件请求方计算机接收到待复制文件中需要实际传输的数据块编号序列;
第10、文件服务方计算机向文件请求方计算机依次发送待复制文件中需要实际传输的数据块给文件请求方计算机;
第11、文件请求方计算机在本地建立待复制文件的副本文件;
第12、文件请求方计算机依次从文件服务方计算机接收待复制文件中需要实际传输的数据块,并存储到文件请求方计算机本地副本文件的相应数据块中;
第13、文件请求方计算机依次将本地指纹库存在的待复制文件指纹所对应的本地文件系统中的数据块读取到内存,并进一步存储到文件请求方计算机本地副本文件的相应数据块中;
第14、文件复制结束。
其中,
按照本发明提供的建立方法,第1步骤所述的“多粒度块、多指纹算法”的分块指纹,即同一个文件按照多个数据块大小及多种指纹算法进行分块指纹计算,并存储在本地指纹库中;块粒度默认包括文件粒度。
按照本发明提供的建立方法,第2步骤所述的“分块指纹协议”,包括分块大小集合、指纹算法集合;文件请求方计算机向文件服务方计算机发送用来计算指纹的分块大小和指纹算法;文件服务方计算机根据自身情况选择其中的一种分块大小和指纹算法,即为第5步、第6步中的特定指纹协议。
按照本发明提供的建立方法,文件请求方计算机和文件服务方计算机在实际数据块传输之前需要根据待传输文件的指纹序列和文件请求方计算机端指纹库来确定具体的待传输数据块编号序列;“指纹序列”由多个“分块指纹值”组成;单个“分块指纹值”由数据块编号和指纹组成的二元组。
附图说明
图1是本发明中文件网络复制流程图。
具体实施方式
本发明提供了一种基于去重的文件网络复制方法。
为能进一步了解本发明的技术内容、特点及功效,兹列举以下应用实例,并配合附图详细说明。本发明所提供的基于一种基于去重的文件网络复制方法具体步骤如下:
第1、文件请求方计算机和文件服务方计算机各自对本地文件进行多粒度块、多指纹算法的分块指纹计算并存储在本地指纹库中;
粒度大小可以选择1K,4K,8K,1M,32M等,根据本地文件大小分布来确定若干个分块粒度大小;
指纹算法包括MD5,SHA-1,SHA-256等,并且可以引入新的指纹算法。
第2、文件请求方计算机向文件服务方计算机发起请求,请求传输待复制文件的全路径文件名以及分块指纹协议;
分块指纹协议实例:{(1K,MD5),(4K,MD5),(1M,SHA-1)}
文件请求方计算机向文件服务方计算机发送的文件传输请求实例:
{{/shared/abc.tgz},{(1K,MD5),(4K,MD5),(1M,SHA-1)}}
第3、文件服务方计算机接收到待复制文件名以及分块指纹协议;
具体到本实例,待复制文件的全路径文件名为/shared/abc.tgz;分块指纹协议为{(1K,MD5),(4K,MD5),(1M,SHA-1)}
第4、文件服务方计算机选择分块指纹协议中规定的分块大小和指纹算法,对待复制文件计算指纹序列,若文件服务方计算机中的本地指纹库中存在待复制文件的指纹序列,则直接获取待复制文件指纹序列;
文件服务方计算机结合文件请求方计算机发过来的分块指纹协议实例{(1K,MD5),(4K,MD5),(1M,SHA-1)},以及文件服务方计算机端已有指纹库情况,可以选择特定指纹协议,例如特定指纹协议{(1M,SHA-1)}
第5、文件服务方计算机向文件请求方计算机发送待复制文件的大小、指纹序列及特定指纹协议;
“指纹序列”由多个“分块指纹值”组成;单个“分块指纹值”由数据块编号和指纹组成的二元组。
单个“分块指纹值”格式为(数据块编号,指纹)实例如下:
{(1,指纹1),(2,指纹2),(3,指纹3),…}
具体到本实例,文件服务方计算机向文件请求方计算机发送的信息如下:
{{4M},{(1,指纹1),(2,指纹2),(3,指纹3),(4,指纹4)},{(1M,SHA-1)}}
其中,{4M}为待复制文件的大小;{(1,指纹1),(2,指纹2),(3,指纹3),(4,指纹4)}为“指纹序列”;{(1M,SHA-1)}为特定指纹协议。
第6、文件请求方计算机从文件服务方计算机接收到待复制文件的大小、指纹序列及特定指纹协议;
具体到本实例,文件请求方计算机从文件服务方计算机接收到信息如下:
{{4MB},{(1,指纹1),(2,指纹2),(3,指纹3),(4,指纹4)},{(1M,SHA-1)}}
其中,{4MB}为待复制文件的大小;{(1,指纹1),(2,指纹2),(3,指纹3),(4,指纹4)}为“指纹序列”;{(1M,SHA-1)}为特定指纹协议。
第7、文件请求方计算机根据特定指纹协议中的指纹算法,查找文件请求方计算机本地指纹库,统计出所有不在本地指纹库中的待复制文件的指纹序列以及对应的数据块编号;
具体到本实例,文件请求方计算机本地指纹库中存在指纹2、指纹4;文件请求方计算机本地指纹库中不存在待复制文件中编号1的数据块的指纹1、待复制文件中编号3的数据块的指纹3。
第8、文件请求方计算机将所有不在本地指纹库中的待复制文件的指纹序列所对应的数据块编号序列发送给文件服务方计算机;
具体到本实例,文件请求方计算机将所有不在本地指纹库中的待复制文件的指纹序列所对应的数据块编号序列发送给文件服务方计算机的信息如下:{1,3}
第9、文件服务方计算机从文件请求方计算机接收到待复制文件中需要实际传输的数据块编号序列;
具体到本实例,文件服务方计算机从文件请求方计算机接收到的数据块编号序列实例:{1,3}
第10、文件服务方计算机向文件请求方计算机依次发送待复制文件中需要实际传输的数据块给文件请求方计算机;
具体到本实例,文件服务方计算机向文件请求方计算机依次发送待复制文件中数据块编号为1,3的数据块。
第11、文件请求方计算机在本地建立待复制文件的副本文件;
文件请求方计算机在本地计算机上建立待复制文件的副本文件,副本文件的大小为待复制文件大小。
具体到本实例,文件请求方计算机在本地计算机上建立副本文件abc.tgz;副本文件abc.tgz的大小为4MB。
第12、文件请求方计算机依次从文件服务方计算机接收待复制文件中需要实际传输的数据块,并存储到文件请求方计算机本地副本文件的相应数据块中;
文件请求方计算机从文件服务方计算机依次接收数据块编号为1,3的数据块,并将这些数据块存放到“本地副本文件”abc.tgz的相应位置,每个数据块在“本地待复制文件”的起始位置由“数据块编号”和“分块大小”(具体到本实例为1MB)决定,数据块大小由实际接收到的数据块大小决定。
第13、文件请求方计算机依次将本地指纹库存在的待复制文件指纹所对应的本地文件系统中的数据块读取到内存,并进一步存储到文件请求方计算机本地副本文件的相应数据块中;
文件请求方计算机依次将本地指纹库存在的待复制文件指纹所对应的本地文件系统中的数据块读取到内存,具体到本实例,即待复制文件中的数据编号2、4。文件请求方计算机将这些数据块存放到“本地副本文件”abc.tgz的相应位置,每个数据块在“本地待复制文件”的起始位置由“数据块编号”和“分块大小”(具体到本实例为1MB)决定。
第14、文件复制结束。
文件请求方计算机关闭“本地副本文件”abc.tgz,完成将文件服务方计算机中/shared/abc.tgz拷贝到文件请求方计算机的abc.tgz。
考虑到在此公开的对本发明的描述和特例的实施例,本发明的其他实施例对于本领域的技术人员来说是显而意见的。这些说明和实施例仅作为例子来考虑,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种基于去重的文件网络复制方法,其特征在于,所述方法包括具体步骤如下:
第1、文件请求方计算机和文件服务方计算机各自对本地文件进行多粒度块、多指纹算法的分块指纹计算并存储在本地指纹库中;
第2、文件请求方计算机向文件服务方计算机发起请求,请求传输待复制文件的全路径文件名以及分块指纹协议;
第3、文件服务方计算机接收到待复制文件名以及分块指纹协议;
第4、文件服务方计算机选择分块指纹协议中规定的分块大小和指纹算法,对待复制文件计算指纹序列,若文件服务方计算机中的本地指纹库中存在待复制文件的指纹序列,则直接获取待复制文件指纹序列;
第5、文件服务方计算机向文件请求方计算机发送待复制文件的大小、指纹序列及特定指纹协议;
第6、文件请求方计算机从文件服务方计算机接收到待复制文件的大小、指纹序列及特定指纹协议;
第7、文件请求方计算机根据特定指纹协议中的指纹算法,查找文件请求方计算机本地指纹库,统计出所有不在本地指纹库中的待复制文件的指纹序列以及对应的数据块编号;
第8、文件请求方计算机将所有不在本地指纹库中的待复制文件的指纹序列所对应的数据块编号序列发送给文件服务方计算机;
第9、文件服务方计算机从文件请求方计算机接收到待复制文件中需要实际传输的数据块编号序列;
第10、文件服务方计算机向文件请求方计算机依次发送待复制文件中需要实际传输的数据块给文件请求方计算机;
第11、文件请求方计算机在本地建立待复制文件的副本文件;
第12、文件请求方计算机依次从文件服务方计算机接收待复制文件中需要实际传输的数据块,并存储到文件请求方计算机本地副本文件的相应数据块中;
第13、文件请求方计算机依次将本地指纹库存在的待复制文件指纹所对应的本地文件系统中的数据块读取到内存,并进一步存储到文件请求方计算机本地副本文件的相应数据块中;
第14、文件复制结束。
2.根据权利要求1所述的方法,其特征在于,第1步骤所述的“多粒度块、多指纹算法”的分块指纹,即同一个文件按照多个数据块大小及多种指纹算法进行分块指纹计算,并存储在本地指纹库中;块粒度默认包括文件粒度。
3.根据权利要求1所述的方法,其特征在于,第2步骤所述的“分块指纹协议”,包括分块大小集合、指纹算法集合;文件请求方计算机向文件服务方计算机发送用来计算指纹的分块大小和指纹算法;文件服务方计算机根据自身情况选择其中的一种分块大小和指纹算法,即为第5步、第6步中的特定指纹协议。
4.根据权利要求1所述的方法,其特征在于,文件请求方计算机和文件服务方计算机在实际数据块传输之前需要根据待传输文件的指纹序列和文件请求方计算机端指纹库来确定具体的待传输数据块编号序列;“指纹序列”由多个“分块指纹值”组成;单个“分块指纹值”由数据块编号和指纹组成的二元组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310026865.0A CN103118019B (zh) | 2013-01-24 | 2013-01-24 | 一种基于去重的文件网络复制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310026865.0A CN103118019B (zh) | 2013-01-24 | 2013-01-24 | 一种基于去重的文件网络复制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103118019A CN103118019A (zh) | 2013-05-22 |
CN103118019B true CN103118019B (zh) | 2016-03-16 |
Family
ID=48416293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310026865.0A Active CN103118019B (zh) | 2013-01-24 | 2013-01-24 | 一种基于去重的文件网络复制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103118019B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103609091B (zh) * | 2013-06-24 | 2017-01-11 | 华为技术有限公司 | 一种数据传输的方法和装置 |
CN104468028B (zh) * | 2013-09-25 | 2018-11-16 | 华为技术有限公司 | 一种数据编解码方法及设备 |
CN103631933B (zh) * | 2013-12-06 | 2017-04-12 | 中国科学院计算技术研究所 | 一种面向分布式去重系统的数据路由方法 |
CN105653984B (zh) * | 2015-12-25 | 2019-04-19 | 北京奇虎科技有限公司 | 文件指纹校验方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033962B (zh) * | 2010-12-31 | 2012-05-30 | 中国传媒大学 | 一种快速去重的文件数据复制方法 |
CN102065098A (zh) * | 2010-12-31 | 2011-05-18 | 网宿科技股份有限公司 | 网络节点之间数据同步的方法和系统 |
-
2013
- 2013-01-24 CN CN201310026865.0A patent/CN103118019B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN103118019A (zh) | 2013-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103944988A (zh) | 一种适用于云存储的重复数据删除系统和方法 | |
US20200374288A1 (en) | Block chain-based multi-chain management method and system, electronic device, and storage medium | |
CN107273213B (zh) | 一种计算控制方法、网卡及电子设备 | |
CN109543455B (zh) | 一种区块链的数据归档方法及装置 | |
CN103118019B (zh) | 一种基于去重的文件网络复制方法 | |
CN103873505B (zh) | 向云存储服务器离线上传的方法、系统与装置 | |
CN105933376A (zh) | 一种数据操作方法,服务器及存储系统 | |
CN103116615B (zh) | 一种基于版本矢量的数据索引方法及服务器 | |
CN109857710A (zh) | 文件存储方法及终端设备 | |
CN101313495A (zh) | 数据同步方法、系统及装置 | |
CN103227818A (zh) | 终端、服务器、文件传输方法、文件存储管理系统和方法 | |
CN104866430B (zh) | 结合主从备份和纠删码的内存计算系统高可用优化方法 | |
CN103095843A (zh) | 一种基于版本矢量的数据备份方法及客户端 | |
CN108268216B (zh) | 数据处理方法、装置及服务器 | |
WO2017107948A1 (zh) | 文件的写聚合、读聚合方法及系统和客户端 | |
CN107819891A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN103198100B (zh) | 一种多设备间文件同步的重命名处理方法及系统 | |
CN108345643A (zh) | 一种数据处理方法及装置 | |
CN110363017A (zh) | 混合云环境下基于客户端加密的数据安全共享方法及系统 | |
CN104010042A (zh) | 一种云服务的重复数据删除的备份机制 | |
CN111209120A (zh) | 微服务的数据同步方法、装置及计算机可读存储介质 | |
CN105653209A (zh) | 一种对象存储数据传输方法及装置 | |
CN103248674B (zh) | 跨域云平台的共享文件管理方法 | |
CN110618790B (zh) | 基于重复数据删除的雾存储数据去冗余方法 | |
CN106936917A (zh) | 一种云存储方法及装置、电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |