CN106874399B - 一种联网备份***及备份方法 - Google Patents
一种联网备份***及备份方法 Download PDFInfo
- Publication number
- CN106874399B CN106874399B CN201710029694.5A CN201710029694A CN106874399B CN 106874399 B CN106874399 B CN 106874399B CN 201710029694 A CN201710029694 A CN 201710029694A CN 106874399 B CN106874399 B CN 106874399B
- Authority
- CN
- China
- Prior art keywords
- file
- module
- index
- compressed
- warehouse
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/113—Details of archiving
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1748—De-duplication implemented within the file system, e.g. based on file segments
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种联网备份***,包括:文件上传模块,用于计算文件的MD5值,并执行文件由客户端到服务端的传输;文件接收模块,用于接收文件上传模块上传的文件内容以及文件上传模块计算的MD5值,保存文件记录;仓库索引模块,用于记录各个不相同文件的MD5特征信息,供文件接收模块检索;文件记录模块,用于记录上传文件的原始记录信息;磁盘存储模块,用于存储文件内容;文件缓存模块,用于缓存经常被下载应用的压缩文件。此种备份***可利用文件指纹技术消除服务端文件仓库中的冗余文件,节省服务端磁盘空间。本发明还公开一种联网备份方法。
Description
技术领域
本发明属于计算机技术领域,特别涉及一种对客户端文件进行备份的***及方法。
背景技术
目前,随着对企业电子文件安全存储的重视,
为了达成及时收集职员个人办公电脑上的文件,并集中安全存放的目的,越来越多的企事业单位开始应用一种自动化联网备份***,此类***能够自动检测客户端计算机上文件变化,并及时将其传送到服务端的文件仓库中进行存储,从而达到及时可靠备份的目的。
随着企事业单位的电子信息化越来越充分,随着互联网应用用户群体越来越大,现代计算机***中,需要存储的电子文件也越来越多,存储需求陆续从GB、TB的规模,逐步向PB、EB迈进。虽然电子硬件的发展使得提供更多的存储容量成为可能,但基于成本节约的考虑,如何进一步充分、有效地利用这些存储,在任何时候,都是一件可带来可观社会效益和经济效益的活动。
为了节省硬件成本,这一类备份***中,往往都利用了实际工作中存在着的以下规律来节省磁盘存储,这个规律是,个人计算机中总是存储了相当数量的电子文件,而且正在越来越多,但不管是在单位内部,还是整个社会中,都有一个明显的事实是,不同的个体有相当大的可能持有大量相同的电子文档,比如在单位中,多人存有相同的工作文档,互联网中,多人可能存有相同的照片、音视频文件。
对于此类联网备份***而言,应对大量不同职员持有相当数量的相同文件时,如何有效使用存储的问题,目前发展出了一种文件指纹的技术,通常使用从文件内容计算得出的MD5串值来指代一个文件,以此分辨多个文件是否实质上是同一个文件,从而达到将不同个人计算机中的相同文件,备份为服务器端的同一个文件拷贝,来达到节省存储空间的目的。
目前采用文件指纹来节省备份***存储空间的方式,存在着以下缺陷:
(1)现有的通过文件指纹(如MD5串值)来判断文件的异同,用于处置一般类型的文件是比较理想的,但是对于压缩文件而言,效果极差。
(2)在实际工作过程中,不同用户之间传递大量文件,往往考虑操作的便利性、完整性、传输性能,常常会将大量的电子文件压缩打包后进行拷贝传输。此类压缩文件进入备份***,将会消耗大量的存储空间。首先,这些压缩文件中的各个文件往往都是个人计算机中已经存在的电子文件,这些电子文件一般均会进入备份***,而压缩后,大量已经进入备份***的电子文件,又会在新的压缩文件中重复地在服务端存储一次(虽然是压缩形式的);其次,这种压缩,往往具备一定的随意性和临时性,分发这些文件的操作者在分享一批电子文件时,显然不可能每次都会精确地选中完全相同的目录进行压缩,加上待压缩的目录中某些文件随时可能会发生变化,这往往导致就算要分发基本相同的一批目录和文件,压缩而成的压缩文件往往也会产生细微的差别,从而被视作一个完全新的文件进入备份***。
(3)以上分析表明,随处可见的压缩行为,将会给备份***的存储造成相当的浪费,特别是发生在用户常常压缩较大的文件内容时。但是,压缩文件却不能轻易从备份序列中排除,因为,有些情况下,压缩文件可能不是一个临时性的文件,而可能是一个重要的归档文件。
基于以上分析,如何能够有效借助文件指纹技术消除冗余文件,特别是针对压缩文件的冗余处理,是目前联网备份技术需要解决的问题之一。
发明内容
本发明的目的,在于提供一种联网备份***及备份方法,其可利用文件指纹技术消除服务端文件仓库中的冗余文件,节省服务端磁盘空间。
本发明的次要目的,在于提供一种联网备份***及备份方法,其可有效消除冗余的压缩文件,节省服务端磁盘空间存储,节省硬件成本。
为了达成上述目的,本发明的解决方案是:
一种联网备份***,包括:
文件上传模块,用于计算文件的MD5值,并执行文件由客户端到服务端的传输;
文件接收模块,用于接收文件上传模块上传的文件内容以及文件上传模块计算的MD5值,保存文件记录;
仓库索引模块,用于记录各个不相同文件的MD5特征信息,供文件接收模块检索;
文件记录模块,用于记录上传文件的原始记录信息;
磁盘存储模块,用于存储文件内容;
文件缓存模块,用于缓存经常被下载应用的压缩文件。
一种联网备份方法,包括如下步骤:
步骤1,文件上传模块计算客户端待存储文件的MD5值;
步骤2,文件上传模块将包含文件的MD5值和文件大小的特征信息传送至文件接收模块;
步骤3,文件接收模块接收到上述特征信息后,调用仓库索引模块进行检索,判断相同的文件是否存在,若仓库索引模块中未检索到对应特征信息的记录,表示文件仓库中尚不存在该文件,转步骤4,否则转步骤6;
步骤4,文件接收模块返回给文件上传模块“文件不存在”的应答信息,文件上传模块将文件内容流上传,文件接收模块在接收到完整的文件后,将文件名修改为[file_md5]_m的形式送入磁盘存储模块进行存储,此处的m代表[file_md5]这个MD5串下对应编号为m的文件;
步骤5,磁盘存储模块完成存储后,在仓库索引模块中***新的索引记录,将最终存储的文件名和文件特征索引信息相关联,并随同生成文件的索引计数,然后转步骤7;
步骤6,当仓库检索模块中检索到对应特征信息的记录已经存在时,文件接收模块返回信息,通知文件上传模块无需再次重复上传已经存在的文件,并从仓库检索模块中取出文件在磁盘存储模块中最终的文件名[file_md5]_m;
步骤7,文件接收模块获知当前需要存入的文件在磁盘存储模块中对应的真正文件名[file_md5]_m,此时通过文件记录模块***文件记录,将原始文件信息和磁盘存储模块中对应文件名[file_md5]_m进行关联。
上述备份方法还包括如下内容:仓库索引模块为文件[file_md5]_m增加[is_compressed],[is_extracted]两个字段域,其中,[is_compressed]描述文件是否是压缩文件,是为true,否为false,[is_extracted]描述是否已被解压展开提取了其中的各个组成文件,是为true,否为false;仓库索引模块定时执行如下操作:
1)定时扫描仓库索引模块中[is_compressed]为true,[is_extracted]为false的索引记录,获得一个索引记录集合toExtract-Set,求得其集合大小SizeOfSet;
2)设定循环下标变量index,初始化index=0;
3)判断循环下标变量index大于等于SizeOfSet时,结束扫描,否则继续步骤4);
4)从集合toExtract-Set中取出第index个索引记录,假设该索引记录对应的文件名为[file_md5]_m,将其解压至临时目录下,将压缩文件解压得到的所有文件送入仓库索引模块和磁盘存储模块中进行保存;
5)将压缩文件[file_md5]_m的压缩目录结构输出为另一个文件[file-md5]_m.list,并和[file_md5]_m存储在相同目录下;
6)将第index个索引记录的[is_extracted]字段修改为true,修改成功后,从磁盘存储模块中删除[file_md5]_m文件;
7)循环下标变量index递增1,转步骤3),直至扫描结束。
上述步骤4)中,若压缩文件解压得到的所有文件中还存在压缩文件,则不做处理,留待下一次定时扫描时处理。
上述步骤1中,MD5值包含文件的完整MD5值和文件的N等份分段MD5值。
上述步骤1中,文件的N等份分段MD5值的计算方法是:对文件进行N等份,对于文件大小不足N的倍数的,将大小补足为N的倍数进行N等份;N等份后,文件尾部的某些片段数据不足的按实际数据进行计算,最终得到N个文件片段的MD5值。
上述步骤3中,在进行检索时,将文件特征信息定义为一个数据表的多个列,并基于这些列创建联合索引,通过select语句执行快速检索。
上述步骤4中,文件名[file_md5]_m中m的生成规则是:检查仓库索引模块中文件MD5值同样为[file_md5]的文件已经存在的个数,在此基础上增加1,得到m值。
采用上述方案后,本发明具有以下改进:
(1)本发明倒转将压缩文件展开,初看,和通常认知的压缩节省存储空间的理念相悖,但应深刻认识到,该技术主要适用于完整的联网实时备份***,是建立在客户端大部分普通文件也已经自动进行了备份的条件下特别进行设计的。初看不合理,但实际上基于文件压缩解压缩、文件指纹判重这些公知技术,倒转运用压缩文件展开,创造性地解决了备份***中大量临时压缩而成的文件中,可能会大量包含重复的文件,从而对存储空间造成浪费的问题。这一点相比仅仅使用文件压缩来节省存储,更加适用于这一类联网自动备份***,能更加深入地分析文件内部的组成特征,更精细地消除冗余文件对存储空间的侵占。
(2)本发明在运用压缩文件展开的改进型仓库索引模块的基础上,还扩展了一个文件缓存模块,用于对常用的压缩文件反复下载恢复使用时,用于保障访问性能。
附图说明
图1是现有联网备份***的整体架构图;
图2是现有联网备份方法的流程图;
图3是本发明联网备份***的整体架构图;
图4是本发明联网备份方法的流程图。
具体实施方式
以下将结合附图,对本发明的技术方案进行详细说明。
本发明提供一种联网备份***,包括六个组成模块,分别为文件上传模块、文件接收模块、仓库索引模块、文件记录模块、磁盘存储模块和文件缓存模块:
文件上传模块,主要计算文件的各种MD5值,并执行文件到服务端的传输。
文件接收模块,主要接收客户端上传的文件内容以及客户端事先计算的各种MD5值,保存文件记录,执行文件智能排重判断。
仓库索引模块,主要记录各个不相同文件的多个MD5特征信息,以供文件接收模块检索、判断携带指定MD5特征信息的文件,在文件仓库中是否已经存在,引用计数是多少。
文件记录模块,主要用于记录上传文件的原始记录信息,如上传文件的原始文件名、文件所有人,同时关联记录文件最终在磁盘存储模块中如何存放的信息-----简单指文件最终在磁盘存储模块总存储的文件目录和名称。
磁盘存储模块,用于文件内容的最终实际存储,原始文件在最终存入时,文件名将被转换,统一为文件MD5值结合当前同一个MD5值下自1开始逐个递增的数字编号形成的字符串,形如“1a2b3c4d5e6f77889911223344556677_1”。
文件缓存模块,用于缓存经常被下载应用的压缩文件。按照本发明的思路,压缩文件进入备份***后会被解压删除,需要使用时,将会重新从备份***中提取组成文件进行压缩,为了保证效率,可以对经常被访问操作的压缩文件进行一定时间周期内的缓存。
本发明还提供一种联网备份方法,包括如下步骤:
步骤1,文件上传模块计算客户端待存储文件的MD5值,这里不仅计算整个文件的MD5值,还要同时计算文件的分段MD5值;
由于在特殊情况下,两个文件的MD5值会有极低的可能发生碰撞,但根据MD5算法的抗修改性(对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别),发明人认为,如果两个文件内容确实有部分不相同,则虽然整个文件的MD5偶尔发生碰撞,但必定在两个文件中可以找到一段相同的位置区域(数据开始和结束的文件偏移地址相同),对该区域的数据进行MD5计算的结果是不同的。
计算文件的分段MD5值的实现方法是:对文件进行N等份(N凭经验选择,例如取2、3、4、...、10等均可),对于文件大小不足N的倍数的,将大小补足为N的倍数进行N等份;N等份后,文件尾部的某些片段数据不足的按实际数据进行计算(特别是某些片段的数据量为0,就按0长度字节流进行MD5计算),最终得到N个文件片段的MD5值。
特例介绍如下:当文件仅有1个字节时,N等份的结果是,第一个片段仅有1个字节,后续N-1个片段都是空片段,但是0个字节的文件实际上也可以计算得到一个特定的MD5值。因此,不影响各片段的MD5计算。
步骤2,文件上传模块将文件的完整MD5值、文件大小、文件的N等份分段MD5值这三部分信息(暂不包括文件实际的内容流)传送至文件接收模块(可使用远程调用等接口技术,如webservice);
步骤3,文件接收模块接收到上述三部分信息后,首先,开始调用仓库索引模块进行检索,判断相同的文件是否存在,若仓库索引模块中未检索到对应特征信息的记录,表示文件仓库中尚不存在该文件,转步骤4,否则转步骤6;
其中,仓库索引模块所使用的索引信息主要包含:文件完整MD5值[file_md5]、文件大小[file_size]、文件N等份分段MD5值[seg1_md5]、[seg2_md5]、...、[segN_md5],检索过程可用自定义的哈希检索或平衡查找树的方式实现,一个简单的实现方式是,基于关系数据库实现,将上述文件特征信息(file_md5,file_size,seg1_md5,seg2_md5,...,segN_md5)定义为一个数据表的多个列,并基于这些列创建联合索引,即可通过select语句执行快速检索。
步骤4,文件接收模块返回给文件上传模块“文件不存在”的应答信息,文件上传模块将文件内容流上传,文件接收模块在接收到完整的文件后,将文件名修改为[file_md5]_m的形式(此处的m代表[file_md5]这个MD5串下对应编号为m的文件)送入磁盘存储模块进行存储;
文件名[file_md5]_m中的m的生成规则是:检查仓库索引模块中文件md5同样为[file_md5]的文件已经存在的个数,在此基础上增加1,得到m值。
磁盘存储模块存储形如[file_md5]_m这样文件名的文件时,可依次将前8个字符中的每两个字符,作为一层目录的名称创建子目录(最终依次创建4层子目录),以避免单个目录中存储过多的文件,降低磁盘定位、打开文件的性能。
步骤5,磁盘存储模块完成存储后,在仓库索引模块中***新的索引记录(file_md5,file_size,seg1_md5,seg2_md5,....segN_md5,[file_md5]_m,refcount),将最终存储的文件名和文件特征索引信息相关联,并随同生成文件的索引计数refcount,然后转步骤7,;
文件的索引计数refcount,代表欲上传的refcount个原始文件,实际上对应磁盘存储***中的同一个文件,索引计数通常可用于删除的场景。
步骤6,当仓库检索模块中检索到对应特征信息的记录已经存在时,文件接收模块返回信息,通知文件上传模块无需再次重复上传已经存在的文件,并从仓库检索模块中取出文件在磁盘存储模块中最终的文件名[file_md5]_m;
步骤7,文件接收模块已获知当前需要存入的文件在磁盘存储模块中对应的真正文件名[file_md5]_m,此时可通过文件记录模块***文件记录,将原始文件信息和磁盘存储模块中对应文件名[file_md5]_m进行关联,以供后续从文件仓库中调取一个原始文件时,可正确取出磁盘存储模块中对应的文件。
在本发明中,还针对仓库索引模块设计定时任务,定时扫描仓库索引模块中所记录的压缩文件,如果所记录的文件[file_md5]_m没有标记为已解压展开,则对其进行处理,具体实现方法如下:
首先,在仓库索引模块中,为索引信息增加[is_compressed],[is_extracted]两个字段域来描述一个文件是否是压缩文件,是否已被解压展开提取了其中的各个组成文件。当文件接收模块通过仓库索引模块创建索引记录时,可事先判断待进库的文件是否是压缩文件,如果是,则[is_compressed]字段初始化为真(true),[is_extracted]字段初始化为假(false),如果不是压缩文件,则[is_comressed]字段初始化为假(false),[is_extracted]字段也初始化为假(false)。
接下来,将仓库索引模块的定时任务具体设计如下:
1)以十分钟级以上的时间周期,定时扫描仓库索引模块中[is_compressed]为true,[is_extracted]为false的索引记录,获得一个索引记录集合toExtract-Set,求得其集合大小SizeOfSet;
2)设定一个循环下标变量index,初始化index=0;
3)判断循环下标变量index大于等于SizeOfSet时,直接转最后结束步骤8),否则继续步骤4);
4)从集合toExtract-Set中取出第index个索引记录,假设该索引记录对应的文件名为[file_md5]_m,将其解压至临时目录下,对解压得到的所有文件都和通过文件接收模块保存备份文件类似,将压缩文件解压得到的所有文件都使用同样的机制送入仓库索引模块和磁盘存储模块中进行保存(如果压缩文件包含的文件中还存在压缩文件,则当前不做进一步处理,留待下一次定时任务进行处理);
5)然后将压缩文件[file_md5]_m的压缩目录结构,输出为另一个文件[file-md5]_m.list,即在原文件的基础上附加后缀名list以作区分,并和[file_md5]_m存储在相同目录下。该*.list文件内部定义可如下定义(示例):
d:标签表示该行为目录元素,同行记录该目录拥有的子目录个数和子文件个数,f:开头表示该行为文件元素,同行记录该文件在压缩文件内的原始文件名、在文件仓库中被保存的文件名以及该文件的大小。
每个目录也需要递归地记录更低一层的目录信息,直至能反映压缩文件内部所有的目录和文件的组成信息。
6)[file_md5]_m.list文件成功生成后,可以将第index个索引记录的[is_extracted]字段修改为true,修改成功后,可直接从磁盘存储模块中删除[file_md5]_m文件,以释放存储空间。因为此时压缩[file_md5]_m的所有内容物,都被解压展开存入文件仓库,且对应的[file_md5]_m.list文件保存了压缩[file_md5]_m内部所有内容物的组成信息。
7)循环下标变量index递增1,转步骤3);
8)结束。
当需要调取下载在文件仓库中已被解压展开的压缩文件时,遵循以下步骤:
(1)从文件记录模块查找得到待下载文件在磁盘存储模块内的名称[file_md5]_m;
(2)从仓库索引模块中判断该文件的[is_comressed]和[is_extracted],若均为true,则继续,否则继续使用现有技术;
(3)从磁盘存储模块读取[file_md5]_m.list文件,加载压缩文件内部的文件组成信息;
(4)准备一个临时目录[file_md5]_m;
(5)根据[file_md5]_m.list文件加载得到压缩文件组成信息,从磁盘存储模块中递归调取子文件,将其按照[file_md5]_m.list所表达的目录、文件层次结构,拷贝到临时目录[file_md5]_m中对应的子目录中;
(6)对临时目录[file_md5]_m执行压缩,复原压缩文件[file_md5]_m;
综合上述,本发明一种联网备份***及备份方法,应用压缩文件展开技术,使用压缩文件内部目录、文件组成信息文件来取代真实的压缩文件,对备份***内的其他单纯非压缩文件进行复用,有效消除了不同压缩文件内的相同组成文件造成的冗余存储,扭转了只有压缩才能节省空间的思维定势。
由于较大压缩文件的复原耗时、费资源,因此,对于常常需要恢复备份下载的压缩文件,在磁盘存储模块中,扩展一个缓存目录,可用压缩文件[file_md5]_m的一定时间周期内的缓存。进一步设计一个文件缓存模块,跟踪指定文件的最新下载使用时间,在仓库索引模块继续增加一个last_access_time字段,定时检查缓存目录中的压缩文件的最后一次访问时间,在1个月前的予以清理(该时间阈值可以设计可自由配置)。
以上实施例仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
Claims (6)
1.一种联网备份***的联网备份方法,其特征在于,该备份***包括:
文件上传模块,用于计算文件的MD5值,并执行文件由客户端到服务端的传输;文件接收模块,用于接收文件上传模块上传的文件内容以及文件上传模块计算的MD5值,保存文件记录;仓库索引模块,用于记录各个不相同文件的MD5特征信息,供文件接收模块检索;文件记录模块,用于记录上传文件的原始记录信息;磁盘存储模块,用于存储文件内容;文件缓存模块,用于缓存经常被下载应用的压缩文件;
该备份方法,包括如下步骤:
步骤1,文件上传模块计算客户端待存储文件的MD5值;
步骤2,文件上传模块将包含文件的MD5值和文件大小的特征信息传送至文件接收模块;
步骤3,文件接收模块接收到上述特征信息后,调用仓库索引模块进行检索,判断相同的文件是否存在,若仓库索引模块中未检索到对应特征信息的记录,表示文件仓库中尚不存在该文件,转步骤4,否则转步骤6;
步骤4,文件接收模块返回给文件上传模块“文件不存在”的应答信息,文件上传模块将文件内容流上传,文件接收模块在接收到完整的文件后,将文件名修改为[file_md5]_m的形式送入磁盘存储模块进行存储,此处的m代表[file_md5]这个MD5串下对应编号为m的文件;
步骤5,磁盘存储模块完成存储后,在仓库索引模块中***新的索引记录,将最终存储的文件名和文件特征索引信息相关联,并随同生成文件的索引计数,然后转步骤7;
步骤6,当仓库检索模块中检索到对应特征信息的记录已经存在时,文件接收模块返回信息,通知文件上传模块无需再次重复上传已经存在的文件,并从仓库检索模块中取出文件在磁盘存储模块中最终的文件名[file_md5]_m;
步骤7,文件接收模块获知当前需要存入的文件在磁盘存储模块中对应的真正文件名[file_md5]_m,此时通过文件记录模块***文件记录,将原始文件信息和磁盘存储模块中对应文件名[file_md5]_m进行关联;
所述备份方法还包括如下内容:仓库索引模块为文件[file_md5]_m增加[is_compressed],[is_extracted]两个字段域,其中,[is_compressed]描述文件是否是压缩文件,是为true,否为false,[is_extracted]描述是否已被解压展开提取了其中的各个组成文件,是为true,否为false;仓库索引模块定时执行如下操作:
1)定时扫描仓库索引模块中[is_compressed]为true,[is_extracted]为false的索引记录,获得一个索引记录集合toExtract-Set,求得其集合大小SizeOfSet;
2)设定循环下标变量index,初始化index=0;
3)判断循环下标变量index大于等于SizeOfSet时,结束扫描,否则继续步骤4);
4)从集合toExtract-Set中取出第index个索引记录,假设该索引记录对应的文件名为[file_md5]_m,将其解压至临时目录下,将压缩文件解压得到的所有文件送入仓库索引模块和磁盘存储模块中进行保存;
5)将压缩文件[file_md5]_m的压缩目录结构输出为另一个文件[file-md5]_m.list,并和[file_md5]_m存储在相同目录下;
6)将第index个索引记录的[is_extracted]字段修改为true,修改成功后,从磁盘存储模块中删除[file_md5]_m文件;
7)循环下标变量index递增1,转步骤3),直至扫描结束。
2.如权利要求1所述的一种联网备份方法,其特征在于:所述步骤4)中,若压缩文件解压得到的所有文件中还存在压缩文件,则不做处理,留待下一次定时扫描时处理。
3.如权利要求1所述的一种联网备份方法,其特征在于:所述步骤1中,MD5值包含文件的完整MD5值和文件的N等份分段MD5值。
4.如权利要求3所述的一种联网备份方法,其特征在于:所述步骤1中,文件的N等份分段MD5值的计算方法是:对文件进行N等份,对于文件大小不足N的倍数的,将大小补足为N的倍数进行N等份;N等份后,文件尾部的某些片段数据不足的按实际数据进行计算,最终得到N个文件片段的MD5值。
5.如权利要求1所述的一种联网备份方法,其特征在于:所述步骤3中,在进行检索时,将文件特征信息定义为一个数据表的多个列,并基于这些列创建联合索引,通过select语句执行快速检索。
6.如权利要求1所述的一种联网备份方法,其特征在于:所述步骤4中,文件名[file_md5]_m中m的生成规则是:检查仓库索引模块中文件MD5值同样为[file_md5]的文件已经存在的个数,在此基础上增加1,得到m值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710029694.5A CN106874399B (zh) | 2017-01-16 | 2017-01-16 | 一种联网备份***及备份方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710029694.5A CN106874399B (zh) | 2017-01-16 | 2017-01-16 | 一种联网备份***及备份方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106874399A CN106874399A (zh) | 2017-06-20 |
CN106874399B true CN106874399B (zh) | 2020-06-12 |
Family
ID=59157486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710029694.5A Active CN106874399B (zh) | 2017-01-16 | 2017-01-16 | 一种联网备份***及备份方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106874399B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408295A (zh) * | 2018-11-13 | 2019-03-01 | 郑州云海信息技术有限公司 | 一种基于分布式存储***的克隆卷填充方法、装置及设备 |
CN113448768A (zh) * | 2020-03-25 | 2021-09-28 | 华为技术有限公司 | Db文件的备份方法、装置和电子设备 |
CN114546950A (zh) * | 2020-11-27 | 2022-05-27 | 永中软件股份有限公司 | 基于Java实现服务器对相同内容的文件的存储方法 |
CN112905557B (zh) * | 2021-03-03 | 2023-01-24 | 山东兆物网络技术股份有限公司 | 支持异步提交的海量文件整合存储方法及*** |
CN116074128A (zh) * | 2023-04-04 | 2023-05-05 | 北京久安世纪科技有限公司 | 一种基于便携式运维网关的sftp授权方法及*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103873438A (zh) * | 2012-12-12 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | 压缩包上传去重***及方法 |
CN105912622A (zh) * | 2016-04-05 | 2016-08-31 | 重庆大学 | 一种针对无损压缩文件的数据去重方法 |
CN106202173A (zh) * | 2016-06-26 | 2016-12-07 | 厦门天锐科技股份有限公司 | 一种文件仓库存储的智能排重方法及*** |
-
2017
- 2017-01-16 CN CN201710029694.5A patent/CN106874399B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103873438A (zh) * | 2012-12-12 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | 压缩包上传去重***及方法 |
CN105912622A (zh) * | 2016-04-05 | 2016-08-31 | 重庆大学 | 一种针对无损压缩文件的数据去重方法 |
CN106202173A (zh) * | 2016-06-26 | 2016-12-07 | 厦门天锐科技股份有限公司 | 一种文件仓库存储的智能排重方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN106874399A (zh) | 2017-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106874399B (zh) | 一种联网备份***及备份方法 | |
CN102246137B (zh) | 身份副本删除之后的delta压缩 | |
US9262434B1 (en) | Preferential selection of candidates for delta compression | |
You et al. | Deep Store: An archival storage system architecture | |
US9268783B1 (en) | Preferential selection of candidates for delta compression | |
US9317218B1 (en) | Memory efficient sanitization of a deduplicated storage system using a perfect hash function | |
US9798754B1 (en) | Method to efficiently track I/O access history using efficient memory data structures | |
US9430164B1 (en) | Memory efficient sanitization of a deduplicated storage system | |
US8631052B1 (en) | Efficient content meta-data collection and trace generation from deduplicated storage | |
US8694466B2 (en) | Object deduplication and application aware snapshots | |
US7401080B2 (en) | Storage reports duplicate file detection | |
US8825626B1 (en) | Method and system for detecting unwanted content of files | |
CN102567427B (zh) | 一种对象数据处理方法及装置 | |
US8667032B1 (en) | Efficient content meta-data collection and trace generation from deduplicated storage | |
CN110647497A (zh) | 一种基于hdfs的高性能文件存储与管理*** | |
US9026740B1 (en) | Prefetch data needed in the near future for delta compression | |
US8756249B1 (en) | Method and apparatus for efficiently searching data in a storage system | |
CN103955530A (zh) | 一种在线重复数据删除***的数据重建优化方法 | |
US11429658B1 (en) | Systems and methods for content-aware image storage | |
US10509769B1 (en) | Method to efficiently track I/O access history | |
US8090925B2 (en) | Storing data streams in memory based on upper and lower stream size thresholds | |
CN110888837B (zh) | 对象存储小文件归并方法及装置 | |
WO2008001094A1 (en) | Data processing | |
Tan et al. | Improving restore performance in deduplication-based backup systems via a fine-grained defragmentation approach | |
US11093453B1 (en) | System and method for asynchronous cleaning of data objects on cloud partition in a file system with deduplication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |