一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种文件数据备份方法、系统及存储介质与流程

2022-04-14 03:13:56 来源:中国专利 TAG:


1.本发明属于计算机数据处理领域,涉及一种文件数据备份方法、系统及存储介质。


背景技术:

2.元数据(metadata),又称中介数据、中继数据,是文件数据的组成部分,为描述数据的数据(data about data),主要是描述数据属性(property)的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。
3.小文件数据是指文件大小小于或等于1mb的用户文件,常见的小文件有图片、日志和电子邮件等。为了保证数据安全,往往需要对各种文件数据进行备份,包括海量的小文件数据,以便于在日后发生灾难时能及时恢复业务。
4.目前,在对小文件数据进行备份的过程中,往往需要先对文件元数据进行扫描,扫描的文件元数据会储存在磁盘中,待完成磁盘存储,再将扫描结果传输到服务器,以实现小文件数据的备份,这样的串行备份方式能够降低数据备份的风险,但是,小文件数据的数量是庞大的,随着元数据量的不断增加,会不断地占用磁盘的空间,当磁盘额外空间不足时,则不能够完成扫描操作,即不能完成小文件数据备份;同时,在小文件数量过多的情况下,由于单个小文件数据很小,却要占用一次网络传输,导致网络传输效率急剧下降,即备份时间大幅增加。
5.因此,如何帮助用户持续稳定快速地备份文件数据,特别是海量的小文件数据,成为当前急需解决的技术问题。


技术实现要素:

6.本发明为了解决上述背景技术中的技术问题,提供一种文件数据备份方法、系统及存储介质。所述技术方案如下:第一个方面,提供了一种文件数据备份方法,所述方法包括步骤:进程创建步骤,创建位于数据来源端的第一进程和位于数据处理储存端的第二进程,两者并行处理数据;目标元数据打包发送步骤,所述第一进程创建预设大小的内存缓冲区,通过所述内存缓冲区打包目标元数据,并将目标元数据包发给第二进程;目标文件信息获取发送步骤,所述第二进程通过所述目标元数据包获取目标文件信息,并将所述目标文件信息发给第一进程;目标文件数据读取步骤,根据所述目标文件信息,所述第一进程通过目标元数据包读取目标文件数据,再将所述目标文件数据发给第二进程。
7.在其中一个实施例中,所述目标元数据打包发送步骤,包括:内存缓冲区创建步骤,创建内存缓冲区,其中所述内存缓冲区大小为m,目标元数据大小为n,m与n的关系满足:m≧n;目标元数据写入步骤,将目标元数据写入所述内存缓冲区;
第一判断步骤,判断写入目标元数据后的所述内存缓冲区是否产生溢出;若是,则将所述内存缓冲区内的目标元数据打包发给第二进程,并创建一个新的内存缓冲区;若否,则允许所述目标元数据写入所述内存缓冲区;第二判断步骤,判断全部的目标元数据是否被发送到第二进程,若是,则将所述内存缓冲区内的目标元数据打包发给第二进程;若否,则重复目标元数据写入步骤和第一判断步骤,直至遍历完全部目标目录及其下的所有子文件。
8.在其中一个实施例中,所述内存缓冲区大小为2-10兆。
9.在其中一个实施例中,在所述进程创建步骤中,所述第一进程包括元数据扫描线程和元数据管理发送线程;在所述目标元数据打包发送步骤中,所述元数据扫描线程用于执行内存缓冲区创建步骤和目标元数据写入步骤;所述元数据管理发送线程用于执行第一判断步骤和第二判断步骤。
10.在其中一个实施例中,所述判断写入目标元数据后的所述内存缓冲区是否产生溢出步骤,包括:计算所述目标元数据占用空间的大小,得到k1;计算所述内存缓冲区当前占用空间的大小,得到k2;将k1和k2相加,得到k3;比较k3与m,若k3大于m,则判断所述内存缓冲区产生溢出;若k3小于或等于m,则判断所述内存缓冲区不产生溢出。
11.在其中一个实施例中,在所述进程创建步骤中,所述第二进程包括元数据接收处理线程和若干文件数据读取线程;目标文件信息获取发送步骤,包括:目标元数据包分组处理步骤,所述元数据接收处理线程接收并分组处理所述目标元数据包,再将分组处理后的目标元数据包发给文件数据读取线程;目标文件信息获取发送步骤,所述文件数据读取线程通过所述分组处理后的目标元数据包获取目标文件信息,并将所述目标文件信息发给第一进程。
12.在其中一个实施例中,在所述进程创建步骤中,所述第一进程还包括若干文件数据传输线程;目标文件数据读取步骤,包括:接收步骤,所述文件数据传输线程接收所述目标文件信息;解析读取步骤,根据所述目标文件信息,所述文件数据传输线程解析所述目标元数据包,并根据解析结果,读取目标文件数据;第三判断步骤,所述文件数据传输线程判断所述目标文件数据的大小是否满足预设的发送阈值,若是,则将所述目标文件数据发送给所述第二进程;若否,则将所述目标文件数据加入到打包队列,直至所述打包队列内的文件数据大小满足所述发送阈值,再将所述打包队列内的文件数据打包发送给所述第二进程。
13.第二个方面,提供了一种文件数据备份系统,所述系统包括:进程创建模块,用于创建位于数据来源端的第一进程和位于数据处理储存端的第二进程,两者并行处理数据;
目标元数据打包发送模块,用于所述第一进程创建预设大小的内存缓冲区,通过所述内存缓冲区打包目标元数据,并将目标元数据包发给第二进程;目标文件信息获取发送模块,用于所述第二进程通过所述目标元数据包获取目标文件信息,并将所述目标文件信息发给第一进程;目标文件数据读取模块,用于根据所述目标文件信息,所述第一进程通过目标元数据包读取目标文件数据,再将所述目标文件数据发给第二进程。
14.在其中一个实施例中,所述目标元数据打包发送模块,包括:内存缓冲区创建单元,用于创建内存缓冲区,其中所述内存缓冲区大小为m,目标元数据大小为n,m与n的关系满足:m≧n;目标元数据写入单元,用于将目标元数据写入所述内存缓冲区;第一判断单元,用于所述元数据管理发送线程程判断写入目标元数据后的所述内存缓冲区是否产生溢出;若是,则将所述内存缓冲区内的目标元数据打包发给第二进程,并创建一个新的内存缓冲区;若否,则允许所述目标元数据写入所述内存缓冲区;第二判断单元,用于判断全部的目标元数据是否被发送到第二进程,若是,则将所述内存缓冲区内的目标元数据打包发给第二进程;若否,则重复目标元数据写入单元和第一判断单元,直至遍历完全部目标目录及其下的所有子文件。
15.在其中一个实施例中,在所述进程创建模块中,所述第一进程还包括若干文件数据传输线程;目标文件数据读取模块,包括:接收单元,用于所述文件数据传输线程接收所述目标文件信息;解析读取单元,用于根据所述目标文件信息,所述文件数据传输线程解析所述目标元数据包,并根据解析结果,读取目标文件数据;第三判断单元,用于所述文件数据传输线程判断所述目标文件数据的大小是否满足预设的发送阈值,若是,则将所述目标文件数据发送给所述第二进程;若否,则将所述目标文件数据加入到打包队列,直至所述打包队列内的文件数据大小满足所述发送阈值,再将所述打包队列内的文件数据打包发送给所述第二进程。
16.第三个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述的文件数据备份方法。
17.采用上述进一步方案的有益效果是:(1)本发明无需额外磁盘空间,无需多余的磁盘读写,通过利用极少量内存来置换巨量的磁盘空间和频繁的磁盘i/o,资源利用合理化;(2)本发明通过第一进程提供获取元数据,可以将现有技术中串行化的备份过程并行化,元数据扫描传输与文件数据备份能够同时进行,有效缩短了备份时间;(3)本发明通过预设大小的内存缓冲区实现了元数据的打包传输,整个处理过程稳定,传输可靠,极大的减少了网络的使用次数,提高了网络的利用率,特别适合小文件数据备份和增量备份。
附图说明
18.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使
用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附图。
19.图1为本发明文件数据备份方法的流程图。
20.图2为本发明实施例二中文件数据备份系统的结构图。
21.图3为本发明实施例二中目标元数据打包发送模块的结构图。
22.图4为本发明实施例二中整理发送模块的结构图。
具体实施方式
23.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
24.术语解释:(1)目标元数据:是指待备份文件数据的元数据,即需要扫描传输的文件元数据;(2)目标文件信息:是指文件的大小、路径,以及读取数据需要的偏移地址等相关信息,用于实现从数据获取端准确的获取目标文件数据;(3)目标文件数据:是指目标目录及其下的所有子文件的文件数据,即需要备份的文件数据。
25.实施例一如图1所示,本实施例提供一种文件数据备份方法,包括步骤:s1.创建位于客户端的第一进程和位于服务器端的第二进程,两者并行处理数据,其中,所述第一进程包括元数据扫描线程、元数据管理发送线程和若干文件数据传输线程;所述第二进程包括元数据接收处理线程和若干文件数据读取线程。
26.s2.所述第一进程创建8兆的内存缓冲区,通过所述内存缓冲区打包目标元数据,并将目标元数据包发给第二进程。
27.可选的,所述s2步骤,包括:s21.所述元数据扫描线程创建内存缓冲区,其中所述内存缓冲区大小为8兆;s22.所述元数据扫描线程将目标元数据写入所述内存缓冲区;s23.所述元数据管理发送线程判断写入目标元数据后的所述内存缓冲区是否产生溢出;若是,则将所述内存缓冲区内的目标元数据打包发给服务器端,并创建一个新的内存缓冲区;若否,则允许所述目标元数据写入所述内存缓冲区;s24.所述元数据管理发送线程判断全部的目标元数据是否被发送到服务器端,若是,则将所述内存缓冲区内的目标元数据打包发给服务器端;若否,则重复目标元数据写入步骤和第一判断步骤,直至遍历完全部目标目录及其下的所有子文件。
28.需要说明的是,上述全部的目标元数据是指全部需要扫描传输的目标元数据,目标元数据来源于全部目标目录及其下的所有子文件。
29.还可选的,所述内存缓冲区大小为2-10兆。
30.还再可选的,所述判断写入目标元数据后的所述内存缓冲区是否产生溢出步骤,具体的操作为:
计算所述目标元数据占用空间的大小,得到k1;计算所述内存缓冲区当前占用空间的大小,得到k2;将k1和k2相加,得到k3;比较k3与m,若k3大于m,则判断所述内存缓冲区产生溢出;若k3小于或等于m,则判断所述内存缓冲区不产生溢出。
31.为了便于理解,下面我们提供一个具体操作实施例:s200.提供目录c:/test1,其中,目录c:/test1下存在c:/test1/test2 和c:/test1/test3.txt;目录c:/test1/test2下存在:c:/test1/test2 /test4.txt;s201.创建一个内存buffer,该内存buffer的大小为8兆。通过系统api函数findnextfilew扫描文件,扫描顺序为:c:/test1;c:/test1/test2;c:/test1/test3.txt;c:/test1/test2/test4.txt。获取文件的元数据信息,并按照扫描顺序将得到的元数据信息依次写入内存buffer;s202.计算元数据信息占用空间大小与内存buffer当前大小的相加值;若该相加值不超过内存buffer最大值则允许元数据信息放入内存buffer,若该相加值超过最大值,则先发送内存buffer的数据,再从头放入元数据信息;s203,检查是否已经扫描完所有的文件,若否,则重复步骤s201和s202;若是,即c:/test1/test2/test4.txt已经被扫描和获取到元数据内容,则发送内存buffer内的剩余内容,释放资源并且退出。
32.值得说明的是,上述创建一个新的内存缓冲区的操作,可以是再创建一个新的内存缓冲区来覆盖原内存缓冲区;也可以是,直接清空原内存缓冲区,得到一个新的内存缓冲区;还可以是,在撤销原内存缓冲区后创建一个新的内存缓冲区。内存缓冲区是在内存中创建的空间,不需要用户的本地磁盘提供额外的存储空间,因此可以在磁盘剩余空间不足的情况下进行备份,方便高效。
33.还值得说明的是,元数据的传输需要内存缓冲区写满后才可进行,例如限定内存缓冲区的大小为8兆,通过在内存缓冲区打包元数据,避免了频繁的发送元数据,占用大量的网络资源,这样打包传输的方式为并行处理元数据和文件数据奠定了基础,并提高了备份速度。
34.s3.所述第二进程通过所述目标元数据包获取目标文件信息,并将所述目标文件信息发给第一进程。
35.可选的,所述步骤s3,包括:s31.所述元数据接收处理线程接收并分组处理所述目标元数据包,再将分组处理后的目标元数据包发给文件数据读取线程;s32.所述文件数据读取线程通过所述分组处理后的目标元数据包获取目标文件信息,并将所述目标文件信息发给第一进程。
36.在元数据接收处理线程对目标元数据包进行分组处理的过程中,能够实现包括不但限于计算md5、构建快照路径的处理操作,为实现目标文件数据读取奠定了基础,也确保了整个备份过程顺利完成。
37.s4.根据所述目标文件信息,所述第一进程通过目标元数据包读取目标文件数据,再将所述目标文件数据发给第二进程进行处理和储存。
38.可选的,所述s4步骤,包括:s41.所述文件数据传输线程接收所述目标文件信息;s42.根据所述目标文件信息,所述文件数据传输线程解析所述目标元数据包,并根据解析结果,读取目标文件数据;s43.所述文件数据传输线程判断所述目标文件数据的大小是否满足预设的发送阈值,若是,则将所述目标文件数据发送给所述第二进程;若否,则将所述目标文件数据加入到打包队列,直至所述打包队列内的文件数据大小满足所述发送阈值,再将所述打包队列内的文件数据打包发送给所述第二进程。
39.值得说明的是,在步骤s41中,目标文件传输线程可以是接收目标文件信息包,目标文件信息包包含了最少一个目标文件信息,该目标文件信息包含了:文件的绝对路径、文件的大小和文件读取的偏移值。
40.其中,文件的绝对路径可能是快照路径,也可能是非快照路径,具体的,非快照的路径可以表现为“d:/1.txt”;快照的路径可以表现为“\globalroot\device\harddiskvolumeshadowcopy1\1.txt”。
41.还值得说明的是,若每次发送文件数据需要占用一次网络,在面对只有几kb大小到几十kb大小的小文件时,会导致网络的频繁低效率使用,从而减慢了处理速度,而步骤s43通过预设的发送阈值,能够实现打包传输文件数据,避免了上述网络频繁使用的情况,进一步提高了备份速度。
42.本实施例的技术方案,通过创建有内存缓冲区的第一进程和第二进程,使元数据扫描传输与文件数据备份能够同时进行,整个处理过程稳定,传输可靠,备份时间短,备份效率较高。
43.实施例二如图2所示,提供了一种文件数据备份系统,所述系统包括:进程创建模块1001,用于创建位于客户端的第一进程和位于服务器端的第二进程,两者并行处理数据;目标元数据打包发送模块1002,用于所述第一进程创8兆的内存缓冲区,通过所述内存缓冲区打包目标元数据,并将目标元数据包发给第二进程;目标文件信息获取发送模块1003,用于所述第二进程通过所述目标元数据包获取目标文件信息,并将所述目标文件信息发给第一进程;目标文件数据读取模块1004,用于根据所述目标文件信息,所述第一进程通过目标元数据包读取目标文件数据,再将所述目标文件数据发给第二进程进行处理和储存。
44.可选的,如图3所示,在所述进程创建模块1001中,所述第一进程包括元数据扫描线程和元数据管理发送线程;所述目标元数据打包发送模块1002,包括:内存缓冲区创建单元10021,用于所述元数据扫描线程创建内存缓冲区,其中所述内存缓冲区大小为8兆;目标元数据写入单元10022,用于所述元数据扫描线程将目标元数据写入所述内存缓冲区;第一判断单元10023,用于所述元数据管理发送线程判断写入目标元数据后的所
述内存缓冲区是否产生溢出;若是,则将所述内存缓冲区内的目标元数据打包发给第二进程,并创建一个新的内存缓冲区;若否,则允许所述目标元数据写入所述内存缓冲区;第二判断单元10024,用于所述元数据管理发送线程判断全部的目标元数据是否被发送到第二进程,若是,则将所述内存缓冲区内的目标元数据打包发给第二进程;若否,则重复目标元数据写入单元和第一判断单元,直至遍历完全部目标目录及其下的所有子文件。
45.可选的,如图4所示,在所述进程创建模块1001中,所述第一进程还包括若干文件数据传输线程;目标文件数据读取模块1004,包括:接收单元10041,用于所述文件数据传输线程接收所述目标文件信息;解析读取单元10042,用于根据所述目标文件信息,所述文件数据传输线程解析所述目标元数据包,并根据解析结果,读取目标文件数据;第三判断单元10043,用于所述文件数据传输线程判断所述目标文件数据的大小是否满足预设的发送阈值,若是,则将所述目标文件数据发送给所述第二进程;若否,则将所述目标文件数据加入到打包队列,直至所述打包队列内的文件数据大小满足所述发送阈值,再将所述打包队列内的文件数据打包发送给所述第二进程进行处理和储存。
46.下面,我们提供一组对比实验,便于进一步阐述本实施例, 实验环境如表1所示:本实验分别对100万、500万和1000万的小文件目录进行发送测试,目录下的小文件数据大小在1千字节至10千字节之间。对比例1使用传统的磁盘扫描方式,且元数据按照单个方式发送。具体测试结果,如表2:从表2可知,在进行海量的小文件数据备份时,若采用传统的磁盘扫描方式进行数据传输,网络资源浪费是巨大;相比较,本实施例的打包传输方式能够有效缩短发送时间,
实现了网络资源的高效利用。
47.本实施例的技术方案,进程创建模块1001,用于创建第一进程和第二进程,两者并行处理数据;目标元数据打包发送模块1002,用于第一进程创建预设大小的内存缓冲区,通过内存缓冲区打包目标元数据,并将目标元数据包发给第二进程;目标文件信息获取发送模块1003,用于第二进程通过目标元数据包获取目标文件信息,并将目标文件信息发给第一进程;目标文件数据读取模块1004,用于根据目标文件信息,第一进程通过目标元数据包读取目标文件数据,再将目标文件数据发给第二进程。本发明无需额外磁盘空间,无需多余的磁盘读写,通过利用极少量内存来置换巨量的磁盘空间和频繁的磁盘i/o,资源利用合理化。
48.实施例三在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如实施例一的文件数据备份方法。
49.本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
50.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
51.以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献