一种文件备份方法、装置及计算设备转让专利

申请号 : CN202111291528.5

文献号 : CN113742140B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 高冲叶青龙贺毅涛潘晨博贾镇源

申请人 : 统信软件技术有限公司

摘要 :

本发明公开了一种文件备份方法、装置及计算设备,其中,方法包括步骤:将磁盘中的原文件读取到内存,得到缓存文件;接收对缓存文件的一次或多次写入操作,根据所述写入操作对所述缓存文件进行修改,得到新缓存文件;将所述新缓存文件写入磁盘,以生成与当前时间点相对应的文件快照;以及将所述新缓存文件回写到磁盘中的原文件。根据本发明的技术方案,实现了自动对文件修改过程以及对初始文件的双重备份,适用于各种文件系统。

权利要求 :

1.文件备份方法,在计算设备的操作系统中执行,所述计算设备中包括磁盘,所述磁盘上包括快照存储装置,所述方法包括步骤:将磁盘中的原文件读取到内存,得到缓存文件;

接收对缓存文件的一次或多次写入操作,根据所述写入操作对所述缓存文件进行修改,得到新缓存文件;

确定当前时间点与上一个文件快照对应的时间点之间的间隔时间,判断所述间隔时间是否超过预定时间,如果超过预定时间,则将所述新缓存文件写入磁盘,以生成与当前时间点相对应的文件快照;

将所述文件快照、当前时间点、以及所述原文件的索引节点建立关联,以生成文件快照与时间关系表,并将所述文件快照与时间关系表存储在所述快照存储装置中,其中,所述文件快照与时间关系表中包括多个时间点,每个时间点关联一个或多个原文件的快照,以便根据文件快照与时间关系表确定原文件在各个时间点的快照,所述快照存储装置还适于存储每个目录对应的目录快照信息,所述目录快照信息包括一个或多个目录快照对应的时间点和索引节点;

将所述新缓存文件回写到磁盘中的原文件;

接收基于目录名称对目标目录快照的访问请求;

基于所述目录名称从快照存储装置中获取相应的目录快照信息;

基于所述目录快照信息中的每个索引节点获取相应的文件信息,并基于一个或多个目录快照对应的时间点以及对应的文件信息,来生成目录文件与时间关系表;

基于所述目录文件与时间关系表、所述文件快照与时间关系表,来生成目标目录快照与时间关系表,并返回所述目标目录快照与时间关系表。

2.如权利要求1所述的方法,其中,在将所述新缓存文件写入磁盘,生成与当前时间点相对应的文件快照之前,还包括步骤:在磁盘中拷贝所述原文件的副本。

3.如权利要求2所述的方法,其中,在磁盘中拷贝所述原文件的副本的步骤包括:判断磁盘中是否已存在至少一个文件快照,如果否,则在磁盘中拷贝所述原文件的副本。

4.一种备份装置,驻留在计算设备的操作系统中,所述计算设备中包括磁盘,所述磁盘上包括快照存储装置,所述备份装置包括:读取模块,适于将磁盘中的原文件读取到内存,得到缓存文件;

写入模块,适于接收对缓存文件的一次或多次写入操作,根据所述写入操作对所述缓存文件进行修改,得到新缓存文件;

快照生成模块,适于确定当前时间点与上一个文件快照对应的时间点之间的间隔时间,判断所述间隔时间是否超过预定时间,如果超过预定时间,则将所述新缓存文件写入磁盘,以生成与当前时间点相对应的文件快照;并适于将所述文件快照、当前时间点、以及所述原文件的索引节点建立关联,以生成文件快照与时间关系表,并将所述文件快照与时间关系表存储在所述快照存储装置中,其中,所述文件快照与时间关系表中包括多个时间点,每个时间点关联一个或多个原文件的快照,以便根据文件快照与时间关系表确定原文件在各个时间点的快照,所述快照存储装置还适于存储每个目录对应的目录快照信息,所述目录快照信息包括一个或多个目录快照对应的时间点和索引节点;以及回写模块,适于将所述新缓存文件回写到磁盘中的原文件;

其中,所述备份装置还适于:

接收基于目录名称对目标目录快照的访问请求;

基于所述目录名称从快照存储装置中获取相应的目录快照信息;

基于所述目录快照信息中的每个索引节点获取相应的文件信息,并基于一个或多个目录快照对应的时间点以及对应的文件信息,来生成目录文件与时间关系表;

基于所述目录文件与时间关系表、所述文件快照与时间关系表,来生成目标目录快照与时间关系表,并返回所述目标目录快照与时间关系表。

5.一种计算设备,包括:

至少一个处理器;以及

存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1‑3中任一项所述的方法的指令。

6.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1‑3中任一项所述方法。

说明书 :

一种文件备份方法、装置及计算设备

技术领域

[0001] 本发明涉及计算机和操作系统技术领域,特别涉及一种文件备份方法、备份装置及计算设备。

背景技术

[0002] 计算机作为信息系统的终端设备,其操作系统之上往往存在大量的文件数据。为了防止系统文件意外丢失或修改,操作系统通常会提供备份工具,用于对目录或者文件进
行备份。
[0003] 现有技术中有一种技术方案,是通过文件系统提供的快照功能来实现对文件备份,例如,btrfs文件系统可通过子卷的方式来生成快照,将快照文件作为备份文件。这种技
术方案,通过文件系统本身提供的快照功能,只能实现对该文件系统中的文件进行备份,导
致快照功能只局限某个特定的文件系统,例如在Linux系统下,仅btrfs文件系统支持快照
功能,但ext3、ext4、xfs、fat、vfat等文件系统并不支持快照功能。而在OS操作系统中,文件
系统通常是多种文件系统混合,从而不能通过这种方案来实现对文件备份。另外,上述技术
方案需要人为通过工具来创建备份文件,备份文件不能实时自动地生成。
[0004] 还有一种技术方案,是通过cp、rsync等复制工具来对整个文件进行拷贝,基于第一次的完整拷贝,对只发生变化的文件做增量拷贝,将拷贝的文件作为备份文件。这种方
案,备份占用空间大,也需要人为通过工具来创建备份文件,备份文件不能实时产生,而且,
备份目录和备份文件是单一的对应关系,对文件和目录的备份没有形成系统化。
[0005] 为此,需要一种文件备份方法来解决上述技术方案中存在的问题。

发明内容

[0006] 为此,本发明提供一种文件备份方法和装置,以力图解决或者至少缓解上面存在的问题。
[0007] 根据本发明的一个方面,提供了一种文件备份方法,在计算设备的操作系统中执行,所述方法包括步骤:将磁盘中的原文件读取到内存,得到缓存文件;接收对缓存文件的
一次或多次写入操作,根据所述写入操作对所述缓存文件进行修改,得到新缓存文件;将所
述新缓存文件写入磁盘,以生成与当前时间点相对应的文件快照;以及将所述新缓存文件
回写到磁盘中的原文件。
[0008] 可选地,在根据本发明的文件备份方法中,将所述新缓存文件写入磁盘,以生成与当前时间点相对应的文件快照的步骤包括:确定当前时间点与上一个文件快照对应的时间
点之间的间隔时间;判断所述间隔时间是否超过预定时间;如果超过预定时间,则将所述新
缓存文件写入磁盘,以生成与当前时间点相对应的文件快照。
[0009] 可选地,在根据本发明的文件备份方法中,在将所述新缓存文件写入磁盘,生成与当前时间点相对应的文件快照之前,还包括步骤:在磁盘中拷贝所述原文件的副本。
[0010] 可选地,在根据本发明的文件备份方法中,在磁盘中拷贝所述原文件的副本的步骤包括:判断磁盘中是否已存在至少一个文件快照,如果否,则在磁盘中拷贝所述原文件的
副本。
[0011] 可选地,在根据本发明的文件备份方法中,在生成与当前时间点相对应的文件快照之后,包括步骤:将所述文件快照、当前时间点、以及所述原文件的索引节点建立关联,以
生成文件快照与时间关系表;其中,所述文件快照与时间关系表中包括多个时间点,每个时
间点关联一个或多个原文件的快照。
[0012] 可选地,在根据本发明的文件备份方法中,所述磁盘上包括快照存储装置,所述文件快照与时间关系表适于存储在所述快照存储装置中;所述快照存储装置还适于存储每个
目录对应的目录快照信息,所述目录快照信息包括一个或多个目录快照对应的时间点和索
引节点。
[0013] 可选地,在根据本发明的文件备份方法中,还包括步骤:接收基于目录名称对目标目录快照的访问请求;基于所述目录名称从快照存储装置中获取相应的目录快照信息;基
于所述目录快照信息中的每个索引节点获取相应的文件信息,并基于一个或多个目录快照
对应的时间点以及对应的文件信息,来生成目录文件与时间关系表;基于所述目录文件与
时间关系表、所述文件快照与时间关系表,来生成目标目录快照与时间关系表,并返回所述
目标目录快照与时间关系表。
[0014] 可选地,在根据本发明的文件备份方法中,基于所述目录文件与时间关系表、所述文件快照与时间关系表,来生成目标目录快照与时间关系表的步骤,包括:基于目录文件与
时间关系表中的每个时间点对应的文件信息、在所述文件快照与时间关系表中进行过滤,
以获取与每个时间点相对应的一个或多个文件快照,得到与每个时间点相对应的目录快
照;基于与每个时间点相对应的目录快照,来生成所述目标目录快照与时间关系表。
[0015] 根据本发明的一个方面,提供了一种备份装置,驻留在操作系统中,包括:读取模块,适于将磁盘中的原文件读取到内存,得到缓存文件;写入模块,适于接收对缓存文件的
一次或多次写入操作,根据所述写入操作对所述缓存文件进行修改,得到新缓存文件;快照
生成模块,适于将所述新缓存文件写入磁盘,以生成与当前时间点相对应的文件快照;以及
回写模块,适于将所述新缓存文件回写到磁盘中的原文件。
[0016] 根据本发明的一个方面,提供了一种计算设备,包括:至少一个处理器;以及存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述
程序指令包括用于执行如上所述的文件备份方法的指令。
[0017] 根据本发明的一个方面,提供了一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如上所述方法。
[0018] 根据本发明的技术方案,提供了一种文件备份方法和装置,针对用户在各个时间点的写入操作分别生成文件快照,这样可以记录在各个时间点对文件的修改过程数据,而
且,通过在磁盘中拷贝原文件的副本,使得磁盘中永久保留初始的原文件数据。这样,实现
了自动对文件修改过程以及对初始文件的双重备份。应当指出,本发明的备份方法在操作
系统中执行,适用于各种文件系统,不局限于特定文件系统。
[0019] 此外,根据本发明的技术方案,在写入操作与上一次写入操作之间的间隔时间超过预定时间时,才会根据对缓存文件的写入操作来生成文件快照作为备份文件,以避免生
成大量不必要的快照数据而占用磁盘空间。
[0020] 上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够
更明显易懂,以下特举本发明的具体实施方式。

附图说明

[0021] 为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面
旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述
以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的
部件或元素。
[0022] 图1示出了根据本发明一个实施例的计算设备100的示意图;
[0023] 图2示出了根据本发明一个实施例的文件备份方法200的流程图;
[0024] 图3示出了根据本发明一个实施例的生成文件快照的过程图;
[0025] 图4示出了根据本发明一个实施例的文件快照与时间关系表的示意图;
[0026] 图5示出了根据本发明一个实施例的目录文件与时间关系表的示意图;
[0027] 图6示出了根据本发明一个实施例的目标目录快照与时间关系表的示意图;以及
[0028] 图7示出了根据本发明一个实施例的备份装置700示意图。

具体实施方式

[0029] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例
所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围
完整的传达给本领域的技术人员。
[0030] 图1是示例计算设备100的示意框图。
[0031] 如图1所示,在基本配置102中,计算设备100典型地包括系统存储器106和一个或者多个处理器104。存储器总线108可以用于在处理器104和系统存储器106之间的通信。
[0032] 取决于期望的配置,处理器104可以是任何类型的处理,包括但不限于:微处理器(UP)、微控制器(UC)、数字信息处理器(DSP)或者它们的任何组合。处理器104可以包括诸如
一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心
114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、
数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器118可以与处理器
104一起使用,或者在一些实现中,存储器控制器118可以是处理器104的一个内部部分。
[0033] 取决于期望的配置,系统存储器106可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储
器106可以包括操作系统120、一个或者多个应用122以及程序数据124。在一些实施方式中,
应用122可以布置为在操作系统上由一个或多个处理器104利用程序数据124执行指令。
[0034] 计算设备100还包括储存设备132,储存设备132包括可移除储存器136和不可移除储存器138。
[0035] 计算设备100还可以包括储存接口总线134。储存接口总线134实现了从储存设备132(例如,可移除储存器136和不可移除储存器138)经由总线/接口控制器130到基本配置
102的通信。操作系统120、应用122以及数据124的至少一部分可以存储在可移除储存器136
和/或不可移除储存器138上,并且在计算设备100上电或者要执行应用122时,经由储存接
口总线134而加载到系统存储器106中,并由一个或者多个处理器104来执行。
[0036] 计算设备100还可以包括有助于从各种接口设备(例如,输出设备142、外设接口144和通信设备146)到基本配置102经由总线/接口控制器130的通信的接口总线140。示例
的输出设备142包括图像处理单元148和音频处理单元150。它们可以被配置为有助于经由
一个或者多个A/V端口152与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外
设接口144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于
经由一个或者多个I/O端口158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸
输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设
备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口164与一
个或者多个其他计算设备162通过网络通信链路的通信。
[0037] 网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可
以包括任何信息递送介质。“调制数据信号”可以是这样的信号,它的数据集中的一个或者
多个或者它的改变可以在信号中以编码信息的方式进行。作为非限制性的示例,通信介质
可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红
外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括
存储介质和通信介质二者。
[0038] 计算设备100可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。当然,计算设备100也可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设备可
以是诸如蜂窝电话、数码照相机、个人数字助理(PDA)、个人媒体播放器设备、无线网络浏览
设备、个人头戴设备、应用专用设备、或者可以包括上面任何功能的混合设备。甚至可以被
实现为服务器,如文件服务器、数据库服务器、应用程序服务器和WEB服务器等。本发明的实
施例对此均不做限制。
[0039] 在根据本发明的实施例中,计算设备100被配置为执行根据本发明的文件备份方法200。其中,计算设备100的操作系统120中包含用于执行本发明的文件备份方法200的多
条程序指令,这些程序指令可以指示处理器执行本发明的文件备份方法200,以便计算设备
100通过执行本发明的文件备份方法200来实现对各个文件系统的文件进行备份。
[0040] 根据本发明的一个实施例,操作系统120中驻留有备份装置700,备份装置700中包含用于执行本发明的文件备份方法200的多条程序指令,使得本发明的文件备份方法200可
以在备份装置700中执行,以便备份装置700通过执行本发明的文件备份方法来实现对各个
文件系统的文件进行备份。
[0041] 图2示出了根据本发明一个实施例的文件备份方法200的流程图。文件备份方法200可以在计算设备(例如前述计算设备100)的操作系统中执行。操作系统例如可以实现为
Linux操作系统。
[0042] 需要说明的是,在具体实施例中,本发明仅以Linux操作系统为例对文件备份方法200进行了具体说明。但,应当理解,本发明的文件备份方法200并不受限于执行该方法的操
作系统的具体种类,本领域技术人员都能理解该方法同样能在其他种类的操作系统,例如
Windows操作系统上实现,而不需要付出创造性的劳动。任何能通过本发明的方法来实现对
各个文件系统的文件进行备份的操作系统的种类均在本发明的保护范围之内。
[0043] 在本发明的实施例中,计算设备100中包括适于存储文件数据的磁盘,操作系统的内核与磁盘相连,可以读取磁盘中的数据。
[0044] 图2所示,方法200始于步骤S210。
[0045] 在步骤S210中,操作系统的内核读取磁盘中的原文件,将磁盘中的原文件读取到计算设备的内存,得到缓存文件。这里,未经修改的初始的缓存文件与原文件数据相同。
[0046] 在步骤S220中,接收对缓存文件的一次或多次写入操作,根据写入操作对缓存文件进行修改,得到新缓存文件。
[0047] 这里,需要说明的是,对缓存文件的写入操作可以执行一次或多次,每次写入操作的时间不同,并且,在每次写入操作后得到的新缓存文件中的数据、相对于在本次写入操作
之前的缓存文件中的数据有所变化。
[0048] 随后,在步骤S230中,将新缓存文件写入磁盘,以生成与当前时间点相对应的文件快照。这里,文件快照对应的时间点也即是生成文件快照的时间点。在一种实现方式中,通
过内核中的回写队列或sync系统将缓存文件写入磁盘,回写队列或sync系统可以调用内核
中的do_writepages()将内存中的数据(缓存文件)写入磁盘。
[0049] 根据一个实施例,可以预先设置一个预定时间,在写入操作与上一次写入操作之间的间隔时间超过预定时间时,才会根据对缓存文件的写入操作来生成文件快照作为备份
文件,以避免生成大量不必要的快照数据而占用磁盘空间。
[0050] 具体地说,在生成与当前时间点相对应的文件快照之前,可以从快照存储装置中获取上一个文件快照对应的时间点。随后确定当前时间点与上一个文件快照对应的时间点
之间的间隔时间,并判断该间隔时间是否超过预定时间。如果超过预定时间,则将新缓存文
件写入磁盘,以生成与当前时间点相对应的文件快照。如果未超过预定时间,说明间隔时间
较短,则不执行将新缓存文件写入磁盘、生成文件快照的操作,不会生成与当前时间点相对
应的文件快照,这样,有利于节省存储空间。
[0051] 最后,在步骤S240中,将新缓存文件回写到磁盘中的原文件。
[0052] 另外,在一个实施例中,在执行步骤S230之前,可以在磁盘中拷贝原文件的副本。具体而言,在执行步骤S230之前,判断磁盘的快照数据存储装置中是否已存在至少一个文
件快照,如果不存在文件快照(说明是对缓存文件的第一次写入操作),在磁盘中拷贝原文
件的副本。
[0053] 如果已存在至少一个文件快照,说明本次写入操作不是对该缓存文件的第一次写入操作,也说明先前已经执行过在磁盘中拷贝原文件副本的操作,从而不需要再在磁盘中
拷贝原文件的副本,直接将新缓存文件写入磁盘,来生成与当前时间点相对应的文件快照。
[0054] 应当指出,本发明针对用户在各个时间点的写入操作来分别生成文件快照,这样可以记录在各个时间点对文件的修改过程数据,而且,通过在磁盘中拷贝原文件的副本,使
得磁盘中永久保留初始的原文件数据。这样,实现了对文件修改过程以及对初始文件的双
重备份。
[0055] 图3示出了根据本发明一个实施例的生成文件快照的过程图。下文结合图3来详细描述针对一个原文件fileA在多个时间点生成多个文件快照的过程。
[0056] 如图3所示,步骤一,读取磁盘中的原文件fileA到cache缓存中,初始的缓存文件表示为Cache。此时,Cache文件数据与fileA的文件数据相同。
[0057] 步骤二,在t1时间点,接收到对初始的缓存文件Cache的第一次写入操作,根据第一次写入操作对缓存文件Cache进行修改,得到第一新缓存文件Cache t1。
[0058] 步骤三,在磁盘中拷贝原文件fileA,得到原文件副本fileA COPY。
[0059] 步骤四,将第一新缓存文件Cache t1写入到磁盘中来生成与t1时间点相对应的原文件fileA的快照snapshot t1。
[0060] 在执行步骤四时可以同步执行步骤五。
[0061] 步骤五,将第一新缓存文件Cache t1回写到磁盘中的原文件fileA,从而更新原文件。
[0062] 步骤六,记录时间点t1、快照snapshot t1之间的对应关系,存储在快照存储装置(database)中。
[0063] 步骤七,在t2时间点,接收到对第一新缓存文件Cache t1的写入操作(也即,对缓存文件的第二次写入操作),根据该写入操作对第一新缓存文件Cache t1进行修改,得到第
二新缓存文件Cache t2。
[0064] 随后,如同前述步骤四 步骤六,将第二新缓存文件Cache t2写入到磁盘中来生成~
与t2时间点相对应的快照snapshot t2。将第二新缓存文件Cache t2回写到磁盘中的
fileA。并记录时间点t2、快照snapshot t2之间的对应关系,存储在快照存储装置
(database)中。
[0065] 接下来,还可以在t3时间点,接收到对第二新缓存文件Cache t2的写入操作(也即,对缓存文件的第三次写入操作),根据该写入操作对第二新缓存文件Cache t2进行修
改,得到第三新缓存文件Cache t3。随后,如同前述步骤四 步骤六,将第三新缓存文件
~
Cache t3写入到磁盘中来生成与t3时间点相对应的快照snapshot t3。将第三新缓存文件
Cache t3回写到磁盘中的fileA。并记录时间点t3、快照snapshot t3之间的对应关系,存储
在快照存储装置(database)中。
[0066] 同理,在tN时间点,接收到对缓存文件的写入操作,根据该写入操作对缓存文件进行修改,得到新缓存文件Cache tN。随后,如同前述步骤四 步骤六,将Cache tN写入到磁盘
~
中来生成与tN时间点相对应的快照snapshot tN。将Cache tN回写到磁盘中的fileA。并记
录时间点tN、快照snapshot tN之间的对应关系,存储在快照存储装置(database)中。
[0067] 应当理解,随着在t1 tN时间点对缓存文件的写入操作,缓存文件的数据在随着时~
间而变化,并且,磁盘中的原文件fileA也在不断更新。而在各个时间点生成的文件快照
snapshot t1 snapshot tN记录了在各个时间点对文件的修改过程数据。
~
[0068] 根据一个实施例,磁盘上包括快照存储装置。在生成与当前时间点相对应的文件快照后,可以将文件快照存储在磁盘的快照存储装置中。具体地,将文件快照、快照生成的
时间点(即当前时间点)、以及原文件的索引节点建立关联,以生成文件快照与时间关系表,
并将文件快照与时间关系表存储在快照存储装置中。
[0069] 需要说明的是,文件快照与时间关系表是基于多个文件的快照、快照生成的时间点、快照对应的原文件的索引节点及其之间的关联关系而建立生成的。在每次生成与当前
时间点相对应的文件快照后,分别将文件快照、当前时间点、原文件的索引节点建立关联,
存储在快照存储装置中的文件快照与时间关系表中。这样,文件快照与时间关系表可以反
映出多个时间点、多个原文件的索引节点、每个原文件对应的多个文件快照之间的关联关
系,换言之,根据文件快照与时间关系表可以确定多个原文件在各个时间点的快照。
[0070] 图4示出了根据本发明一个实施例的文件快照与时间关系表的示意图。
[0071] 如图4所示,文件快照与时间关系表中包含多个时间点,时间点例如包括t1、t2、t3、t4、t5、t6、t7,每个时间点可以关联一个或多个原文件的快照,每个原文件可以包括在
一个或多个时间点生成的文件快照。这里,原文件例如包括文件A、文件B、文件C……文件N。
如图4所示,文件A的快照例如包括在t1时间点生成的A1快照、在t2时间点生成的A2快照、在
t4时间点生成的A3快照、以及在t7时间点生成的A4快照。文件B的快照例如包括在t2时间点
生成的B1快照、在t5时间点生成的B2快照。文件C的快照例如包括在t1时间点生成的C1快
照、在t3时间点生成的C2快照、在t5时间点生成的C3快照、以及在t7时间点生成的C4快照。
文件N的快照例如包括在t1时间点生成的N1快照、在t2时间点生成的N2快照、在t6时间点生
成的N3快照。
[0072] 根据一个实施例,快照存储装置中还可以存储每个目录对应的目录快照信息,目录快照信息包含一个或多个目录快照对应的时间点、以及目录快照对应的一个或多个文件
的索引节点。这里,可以将目录名称与目录快照信息相关联地存储,这样,可以基于目录名
称来查询获取相应的目录快照信息。
[0073] 另外,快照存储装置中还包含一个或多个文件的文件信息,文件信息与文件的索引节点相关联地存储,这样可以基于文件的索引节点从快照存储装置中查询获取相应的文
件信息。
[0074] 在一个实施例中,用户可以通过输入目录名称来请求访问与目录名称相对应的目标目录快照。这里,目标目录快照包含目标目录下所有文件的快照。
[0075] 在接收到用户基于目录名称对目标目录快照的访问请求时,基于目录名称从快照存储装置中获取相应的目录快照信息。如前文所述,目录快照信息包含一个或多个目录快
照对应的时间点、以及目录快照对应的一个或多个文件的索引节点。
[0076] 随后,基于目录快照信息中的每个索引节点从快照存储装置中获取相应的文件信息。基于一个或多个目录快照对应的时间点以及对应的文件信息,来生成目录文件与时间
关系表。这里,图5示出了根据本发明一个实施例的目录文件与时间关系表的示意图。
[0077] 如图5所示,一个或多个目录快照对应的时间点包括t1、t2、t3、t4、t5、t6、t7,每个时间点分别是一个目录快照生成的时间点,每个时间点分别对应目录下的一个或多个文件
信息。例如,t1时间点对应的文件信息包括文件A、文件B、文件C、文件N,t2时间点对应的文
件信息包括文件A、文件C、文件N,t3时间点对应的文件信息包括文件B,……,t7时间点对应
的文件信息包括文件A、文件C、文件N。
[0078] 接下来,基于目录文件与时间关系表(如图5所示)、文件快照与时间关系表(如图4所示),来生成目标目录快照与时间关系表,并返回目标目录快照与时间关系表。图6示出了
根据本发明一个实施例的目标目录快照与时间关系表的示意图。
[0079] 具体地,在生成目标目录快照与时间关系表时,可以基于目录文件与时间关系表中的每个时间点对应的一个或多个文件信息、在文件快照与时间关系表中进行过滤,以获
取与每个时间点相对应的一个或多个文件快照,基于与时间点相对应的一个或多个文件快
照可以得到与每个时间点相对应的目录快照。这样,基于与每个时间点相对应的目录快照,
可以生成目标目录快照与时间关系表。
[0080] 如图5和图6所示,目录在t2时间点对应的文件信息包括文件A、文件C、文件N,则t2时间点对应的目录快照由距离t2时间点最近的一个或多个文件快照组成,基于此,t2时间
点对应的目录快照包含A2快照、C1快照、N2快照。同理,t5时间点对应的目录快照包含B2快
照、C3快照、N2快照。
[0081] 在最终生成的目标目录快照与时间关系表中,每个时间点对应目录下的一个或多个文件的快照,一个或多个文件的快照组成与时间点相对应的目录快照。
[0082] 可见,根据上述方法,仅通过输入目录名称便能得到目标目录快照与时间关系表,以便用户查看指定目录在各个时间点的快照内容。
[0083] 图7示出了根据本发明一个实施例的备份装置700示意图。备份装置700驻留在计算设备(例如前述计算设备100)的操作系统中,适于执行本发明的文件备份方法200。计算
设备100中包括适于存储文件数据的磁盘。
[0084] 备份装置700包括依次相连的读取模块710、写入模块720、快照生成模块730、回写模块740。其中,读取模块710可以将磁盘中的原文件读取到内存,得到缓存文件。写入模块
720适于接收对缓存文件的一次或多次写入操作,根据写入操作对缓存文件进行修改,得到
新缓存文件。快照生成模块730适于将新缓存文件写入磁盘,以生成与当前时间点相对应的
文件快照。回写模块740适于将新缓存文件回写到磁盘中的原文件。
[0085] 应当指出,读取模块710用于执行前述步骤S210,写入模块720用于执行前述步骤S220,快照生成模块730用于执行前述步骤S230,回写模块740用于执行前述步骤S240。这
里,读取模块710、写入模块720、快照生成模块730、回写模块740的具体执行逻辑参见前文
方法200中对步骤S210 S240的描述,此处不再赘述。
~
[0086] 根据本发明的文件备份方案,针对用户在各个时间点的写入操作分别生成各个时间点的文件快照,这样可以记录在各个时间点对文件的修改过程数据,而且,通过在磁盘中
拷贝原文件的副本,使得磁盘中永久保留初始的原文件数据。这样,实现了自动对文件修改
过程以及对初始文件的双重备份。应当指出,本发明的备份方法在操作系统中执行,适用于
各种文件系统,不局限于特定文件系统。
[0087] 此外,根据本发明的技术方案,在写入操作与上一次写入操作之间的间隔时间超过预定时间时,才会根据对缓存文件的写入操作来生成文件快照作为备份文件,以避免生
成大量不必要的快照数据而占用磁盘空间。
[0088] 这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可
移动硬盘、U盘、软盘、CD‑ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的
形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践
本发明的设备。
[0089] 在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至
少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器
中存储的所述程序代码中的指令,执行本发明的文件备份方法。
[0090] 以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载
波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它
数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
[0091] 在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类
系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可
以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为
了披露本发明的最佳实施方式。
[0092] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结
构和技术,以便不模糊对本说明书的理解。
[0093] 类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施
例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保
护的本发明要求比在每个权利要求中所明确记载的特征更多特征。因此,遵循具体实施方
式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的
单独实施例。
[0094] 本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备
不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个
子模块。
[0095] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单
元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或
子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何
组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任
何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权
利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代
替。
[0096] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的
范围之内并且形成不同的实施例。
[0097] 此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法
元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在
此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行
的功能。
[0098] 如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必
须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
[0099] 尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,
本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限
定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本
技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本
发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。