用于确定对源文件作出的改变以便传输到目标位置的方法和系统的制作方法

文档序号:6560281阅读:155来源:国知局
专利名称:用于确定对源文件作出的改变以便传输到目标位置的方法和系统的制作方法
技术领域
本发明涉及用于确定要应用的对源文件作出的改变以便传输到提供源文件的镜像副本的目标位置的方法、系统和程序。
背景技术
备份程序将计算机系统上的数据备份到备份存储设备,该设备可以包括本地存储设备或远程存储设备。在某些备份环境中,在源系统和目标系统上安装了备份代理。为确定是否需要向目标文件应用改变,源备份代理和目标备份代理各自计算文件的各段的校验和代码并交换校验和代码。如果不同的文件节的校验和代码不同,那么,由不同的校验和代码标识的与目标具有不同的数据的源文件中的数据需要传输到目标备份代理,以便应用于目标文件。这种系统只需要传输改变的数据,而不必传输整个文件,但需要安装单独的代理。此外,校验和的计算在计算角度来看成本非常高。
在其他备份环境中,只有一个备份程序,该备份程序跟踪改变的源文件,然后在同步过程中,将改变的源文件复制到目标站点,以替换目标文件。这种备份环境不需要单独的源和目标备份代理和针对文件的节的校验和计算,但要求传输整个修改的源文件,尽管可能只改变了源文件的一小部分。

发明内容
提供了用于确定对源文件作出的改变以便传输到提供源文件的镜像副本的目标位置的方法、系统和程序。检测修改位于源位置的源文件的操作,其中,位于目标位置的目标文件包括源文件的版本的副本。创建源文件的基本副本。在创建基本副本之后执行修改源文件的操作。确定源文件和文件的基本副本之间的差别。将确定的差别传输到目标位置,其中,目标文件和传输的已确定的差别的聚合包括修改的源文件。


图1说明了计算环境的实施例。
图2说明了由备份程序使用的备份设置的实施例。
图3说明以表示对源文件的改变的增量文件维持的信息的实施例。
图4说明了为将源文件与目标文件同步而执行的操作的实施例。
图5说明了维护有关对源文件的改变的信息的操作的实施例。
图6和7说明了由备份程序将对源文件的改变传输到目标存储器而执行的操作的实施例。
具体实施例方式
图1说明了其中实现了实施例的计算环境。计算机2包括处理器4和由一个或多个存储设备组成的存储器6,包括由处理器4执行的程序和代码。在存储器6中执行的备份程序8将源存储器14中的源文件系统12中的源目录和文件10传输到目标存储器20中的目标文件系统18中的复制了源目录和文件10的目标目录和文件16。在一个实施例中,目标目录16可以包括增量文件17b,该文件表示修改的源文件和基本副本25之间的差别,以便向为其生成了增量文件17a的源文件的对应的目标文件应用增量文件17b中表示的改变包括了修改的源文件。目标存储器20可以为单一目标文件维护多个增量文件17b,以便按照作出改变的顺序向目标文件应用多个增量文件中表示的所有改变,使得目标文件与修改的源文件相同。此外,通过维护具有对源文件的增量改变的多个增量文件,备份程序8可以在不同的时间点重建源文件的内容,如时间点(在该时间点,生成了单一目标文件的不同的增量文件17b)所表示的。例如,为获取创建一个所选择的增量文件17b时起的时间点的源文件的内容,备份程序8可以将时间上较早于所选择的增量文件的所有增量文件中指出的修改和所选择的增量文件中指出的修改,按照作出这些修改的顺序,从最早的到最当前的修改,应用于源文件。
备份程序8受备份设置22控制,包括默认设置和由备份程序8的用户配置的设置。备份程序8可以生成在计算机监视器28上呈现的用户界面26,在该用户界面中,用户可以输入备份设置22,以对备份程序8的备份操作进行控制。
备份高速缓存24被用来维护基本副本25,包括在对该源文件作出修改之前的源文件的副本。在一个实施例中,备份高速缓存24进一步包括修改的源文件的增量文件17a,这些增量文件17a表示了源文件和源文件的基本副本25之间的改变。在与源存储器14相同的设备中或在单独的存储设备中可以实现备份高速缓存24。在单独的存储设备中或在相同的存储设备或系统中可以实现源存储器14、目标存储器20,以及备份高速缓存24。存储器6可以进一步包括文件系统30,该文件系统30实现了分层文件系统12,以维护并存储用户和系统数据。备份扩展32可以与文件系统30代码集成,以截取对文件系统12中的源文件的修改。备份扩展32截取文件系统30的修改源文件的操作,以确定是否需要创建基本副本25。
在某些实施例中,文件系统30和备份扩展32可以以高优先级操作,如通过在操作系统的核心模式下中执行。当安装备份程序8时,可以安装备份扩展32以修改文件系统30代码。备份程序8可以在与核心模式相反的用户模式或空间中操作,以执行不涉及截取诸如写入之类的文件系统操作的备份相关的操作,如同步。
可以以当前技术中已知的存储设备实现存储器14和20中,如一个硬盘驱动器、被配置为直接访问存储器(DASD)的多个互连的硬盘驱动器、独立磁盘冗余阵列(RAID)、只是一串磁盘(JBOD)、等等,磁带机、光盘设备、非易失性电子存储设备(例如,快闪磁盘)等等。
在一个实施例中,目标文件系统18复制备份的源目录和文件10,以便目标目录和文件16处于备份的对应的源目录和文件10的原始文件格式。如此,目标文件16可以直接被创建了文件的应用程序访问。
图2说明了备份设置中可以包括的信息的实施例,包括备份日程表50,表示进行备份操作以将备份的文件写回目标存储器20的时间;源备份集54,表示将包括在备份中的源目录和文件10,可以包括目录路径或整个逻辑设备,例如,“c”驱动器;已排除的文件56,表示要从备份中排除的源文件系统12中的文件、目录和/或文件类型;目标存储器58,表示向其中复制源文件的设备中的设备或目标位置;备份高速缓存60,表示向其中备份文件的备份高速缓存24的设备或目标位置;以及版本空间限制62,表示分配给备份高速缓存24的用于存储备份的文件和文件的不同的版本的存储空间的最大值。
图3说明了增量文件17的实施例,包括备份高速缓存24中的增量文件17a或目标存储器20中维护的增量文件17b。通过将修改的源文件的差别与该源文件的基本副本25进行比较,来计算增量文件17。增量文件17可能具有包括源文件的名称,从该名称计算版本标识符或其他时间戳,来将创建的增量文件与以前为源文件创建的增量文件区别开来。在修改之前,备份扩展32响应诸如写入或删除之类的修改源文件的请求,创建增量文件17a。增量文件17包括标识符82和提供有关从中计算计算改变的源文件的信息的元数据84。元数据84可以指出源文件在源文件系统12中的位置,即,路径和文件名。
在一个实施例中,当备份程序8希望将改变传输到目标位置20,备份程序8为源文件创建新的增量文件17a,确定修改的源文件相对于基本副本25的差别或改变,并指出源文件86a...86n中的改变86a...86n(删除、更新或添加)的位置和改变88a...88n的类型,如当前修改过程中作出的删除、更新、或添加。一旦增量文件17a被传输到目标存储器20,可以删除从中创建了增量文件17a的增量文件17a和基本文件25,以清理备份高速缓存24中。增量文件17a可以存储在如图1所示的备份高速缓存24中。如此,在图3的实施例中,增量文件17指出了源文件中的改变的位置和改变的类型。如果删除了数据,那么,修改的源数据86a...86n的位置表示从文件中删除的那些块。备份程序8将增量文件17a传输到目标存储器20中,以便作为增量文件17b存储在目标文件系统18中。
在一个实施例中,备份程序8可以发出文件系统写入操作命令,以应用源文件和基本副本25之间的差别。在这样的实施例中,不创建或维护增量文件17a或17b,因为将确定的差别直接应用到目标存储位置20中的目标文件。如果目标存储器20相对于计算机2是本地的,则可以由文件系统30执行写入操作。或者,如果目标存储器20由相对于计算机2的远程机器进行管理,那么,备份程序8通过网络使用当前技术中已知的用于通过网络传递文件系统操作的技术将写入操作传递到目标位置。
在有关改变的信息,即,增量,被传输到目标存储器20之后,要么存储在增量文件17b中,要么立即应用于目标文件,可以删除基本副本25和从该基本副本创建的任何现有的增量文件17a。在删除之后,响应与目标同步之后的对源文件的进一步修改,创建新的基本副本25和增量文件17a。
图4显示了为启动源备份集54的备份操作而在备份程序8中实现的操作。备份程序8通过将源文件和目录10复制到目标文件和目录16中来执行(在方框100中)初始同步,以便目标文件系统18镜像源备份集54和排除的文件56中指定的源目录和文件10。备份程序8还可以确保(在方框102中),在文件系统30中激活备份扩展32,以监视修改备份集54中的源文件的操作。如果没有活动备份集,那么,可以禁用备份扩展32,以便不至于干扰文件系统30的操作。
图5显示了为维护备份集54中的源文件的基本副本25由备份扩展32执行的操作的实施例。控制在方框150中开始时,备份扩展32检测诸如写入或删除之类的操作,以修改活动源备份集54中包括的源位置10处的源文件。备份扩展32判断(在方框152中)在备份高速缓存24中是否有源文件的基本副本25。如果没有,那么,备份扩展32在备份高速缓存24中创建(在方框154中)源文件的基本副本25,并生成(在方框156中)标识分层文件系统12中的源文件的源位置(路径和文件名)的信息,以与基本副本80关联。在图5的实施例中,基本副本25包括将要被修改的文件的完整副本。如果已经有基本副本25(从方框152)或在创建基本副本25(在方框156中)之后,备份扩展32允许(在方框158中)进行截取文件操作以修改源文件。
图6显示了备份程序8将源备份集54中标识的源文件与目标存储器20同步而执行的操作的实施例。在启动(在方框200中)同步操作时,备份程序8确定(在方框202中)备份高速缓存24中的一个活动备份集54中标识的源位置中的文件的所有基本副本25。对于每一个确定的基本副本25,备份程序8确定(在方框204)对源文件作出的改变,因为创建了基本副本25。在一个实施例中,备份程序8向目标存储器20中的目标文件副本应用(在方框206)确定的差别,即,对源文件的改变的数据、删除或添加的内容。备份程序8可以通过向管理对目标存储器20的访问的文件系统发出写入或删除命令来应用改变,如果目标存储器20连接到计算机2,则文件系统可以是文件系统30,也可以是对目标存储器20进行管理的远程机器(未显示)上的文件系统。然后,备份程序8从备份高速缓存24中删除(在方框208中)基本副本25。
在图6的实施例中,只向目标文件应用特定改变,以节省传输带宽。此外,在图6的实施例中,没有维护增量文件17a、17b。
图7显示了图6的同步操作的另一个实施例,在该实施例中,以增量文件17a的形式将改变传输到目标存储器20。图7中的方框250、252和254与图7中的方框200、202和204相同。然而,在通过比较源文件和基本副本25来确定(在方框254中)对源文件作出的改变时,备份程序8生成(在方框256中)增量文件17a(图3),该文件指出了源文件和基本副本25之间的差别。然后,将生成的增量文件17a传输(在方框258中)到目标存储器20中,以作为具有对应于源文件(从该源文件计算了增量文件)的目标文件的增量文件17b存储起来。在同步之后,备份程序8从备份高速缓存24中删除(在方框258中)基本副本25和增量文件17a。
在某些实施例中,可以为一个目标文件维护多个增量文件17b。然后,备份程序8的用户可以通过将增量文件17b以及所有以前创建的增量文件与目标文件组合,获取从创建其中一个增量文件17b的时间点起的改变,以便按照从最早到最当前的顺序应用修改。
利用所描述的实施例,如果源文件发生了多次改变,那么,可以通过比较源文件和基本拷贝来确定更新,在特定同步时间只传输确定的改变,以便备份程序不必响应每一个改变向目标存储器连续地传输数据。此外,可以将同步预定在计算机2使用最不频繁的时间进行。如果用户正在修改文件而没有对目标存储器20的访问权限,则所描述的实施例可能会有用,例如,通常可以通过网络访问目标存储器20,而用户当前没有对该网络进行访问的权限的情况。在这样的情况下,所有改变都能够根据备份高速缓存24中的源文件信息确定,当用户重新连接到目标存储器20时执行同步。此外,利用某些所描述的实施例,只为已经被修改的源文件维护基本拷贝,以节省用于存储用于确定改变的基本副本的备份高速缓存中的空间。
其他实施例详细信息所描述的操作可以使用标准编程和/或工程技术作为方法、设备或者产品来实现,以生产软件、固件、硬件或它们的任何组合。这里所使用的术语“产品”是指以介质来实现的代码或逻辑,其中,这样的介质可以包括硬件逻辑(例如,集成电路芯片、可编程门阵列(PGA)、专用集成电路(ASIC)等等)或者计算机可读的介质,如磁存储介质(例如,硬盘驱动器、软盘、磁带等等)、光存储器(CD-ROM、光盘等等)、易失性和非易失性存储器设备(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可编程逻辑等等)。计算机可读的介质中的代码由处理器访问和执行。其中编码了代码或逻辑的计算机可读取的介质还可以包括通过空间或传输介质(如光纤、铜线等等)传播的传输信号。其中编码了代码或逻辑的传输信号还可以进一步包括无线信号、卫星传输、无线电波、红外信号、蓝牙等等。其中其中编码了代码或逻辑的传输信号能够通过发射台发射并由接收台接收,其中,在接收和发射台或设备中,可以对传输信号中编码的代码或逻辑进行解码,并将它们存储在硬件或计算机可读取的介质中。此外,“产品”可以包括其中包含、处理和执行代码的硬件和软件组件的组合。当然,那些精通本技术的人将认识到,在不偏离本发明的范围的情况下,可以对此配置进行许多修改,产品可以包括当前技术中已知的任何信息携带介质。
术语“实施例”、“一个或多个实施例”、“某些实施例”,以及“一个实施例”,除非另外明确地说明,表示“本发明的一个或多个(但不是全部)实施例”。
术语“包括”、“具有”以及其各种变种,除非另外明确地说明,表示“包括但不限于”。
除非另外明确地说明,所枚举的项目列表不意味着,任何或所有项目是互相排斥的。
除非另外明确地说明,术语“一个”等表示“一个或多个”。
除非另外明确地说明,彼此进行通信的设备不必处于彼此连续通信状态。此外,彼此进行通信的设备可以直接通信或通过一个或多个媒介物间接地通信。
具有彼此进行通信的多个组件的实施例的描述并不意味着所有这样的组件都需要。相反地,描述了各种可选组件,以说明本发明的各种可能的实施例。
此外,虽然可以按先后顺序描述进程步骤、方法步骤、算法等等,但是,这样的进程、方法和算法可以被配置为以其他顺序工作。换句话说,可以描述的步骤的任何序列或顺序不一定表示要求按该顺序执行这些步骤。可以按任何顺序执行这里所描述的进程的步骤。此外,可以同时执行某些步骤。
当这里描述单一设备或产品时,显而易见,也可以使用一个以上的设备/产品((不管它们是否合作)代替单一设备/产品。类似地,在这里描述了一个以上的设备或产品的情况下(不管它们是否合作),显而易见,可以使用单一设备/产品代替一个以上的设备或产品,也可以使用不同数量的设备/产品代替所显示的数量的设备或程序。一个设备的功能和/或特征可以通过没有被明确地描述为具有这样的功能/特征的一个或多个其他设备来实现。如此,本发明的其他实施例不必包括设备本身。
在某些实施例中,在单独的存储系统中维护了文件集和元数据,由系统通过网络传输复制文件集和元数据的命令,在其他实施例中,可以同一存储系统中维护文件集和元数据,复制命令可以由系统中的程序启动,该程序还直接管理包括要复制的文件集和元数据的存储设备。
图4、5、6和7的所显示的操作显示了按某种顺序发生的某些事件。在其他实施例中,可以按不同的顺序执行某些操作,也可以修改或删除某些操作。此外,可以向上文描述的逻辑中添加步骤,这些步骤仍会符合所描述的实施例。此外,这里所描述的操作可以按顺序执行或者某些操作可以并行地处理。此外,操作还可以按单一处理单元或按分布式处理单元来执行。
图2和3提供了备份设置22和增量文件17中包括的信息的实施例。在其他实施例中,备份设置和增量文件可以包括不同的信息或更多信息。
本发明的各种实施例的上述描述只是为了说明和描述。它没有穷尽一切,也不将本发明限制到所述准确的形式。根据上文的讲述,许多修改和变化也是可以的。本发明的范围不是由此详细说明进行限制,而是由所附的权利要求进行限制。上文的说明、示例和数据提供了本发明的组件的制造和使用的完整的描述。由于在不偏离本发明的精神和范围的情况下本发明可以有许多实施例,本发明的精神在于下文所附的权利要求。
权利要求
1.一种方法,包括检测修改位于源位置的源文件的操作,其中,位于目标位置的目标文件包括源文件的版本的副本;创建源文件的基本副本;在创建基本副本之后执行修改源文件的操作;确定源文件和文件的基本副本之间的差别;以及将确定的差别传输到目标位置,其中,目标文件和传输的已确定的差别的聚合包括修改的源文件。
2.根据权利要求1所述的方法,进一步包括响应将确定的差别传输到目标位置,删除源文件的基本副本。
3.根据权利要求1所述的方法,其中,为位于源位置的源文件在目标位置维护有多个目标文件,其中,对于没有被修改的源文件,不创建基本副本。
4.根据权利要求1所述的方法,进一步包括响应检测修改位于源位置的文件的操作,确定是否有源文件的基本副本,其中,响应确定没有源文件的基本副本,创建基本副本。
5.根据权利要求1所述的方法,其中,源位置包括在分层文件系统的第一目录中,其中,基本副本存储在文件系统的第二目录中,该方法进一步包括响应创建基本副本,生成在第一目录中标识源文件的源位置的信息,以与基本副本关联。
6.根据权利要求5所述的方法,其中,在第一目录中标识文件的位置的信息包括在第二目录中创建镜像了包括第一目录的分层目录结构的分层目录结构。
7.根据权利要求1所述的方法,其中,关于位于源位置的多个源文件执行下列操作检测修改源文件的操作、创建基本副本、在创建基本副本之后执行修改操作,以及判断差别,其中,在目标位置有包括源文件的副本的目标文件,该方法进一步包括启动将源文件与目标文件同步的操作;以及确定为位于源位置的源文件创建的基本副本,其中,对于每一个确定的基本副本执行确定位于源位置的文件和基本副本之间的差别的操作,其中,将每一个确定的基本副本的确定的差别传输到目标位置,以使源位置和目标位置同步。
8.根据权利要求7的方法,进一步包括在通过确定基本副本和位于源位置的文件之间的差别来启动同步文件的操作之前,通过将源文件复制到位于目标位置的目标文件,执行初始同步。
9.根据权利要求1所述的方法,其中,用与以核心模式执行的文件系统代码集成的代码来实现下列操作检测修改源文件的操作、创建基本副本,以及在创建基本副本之后执行修改的操作。
10.根据权利要求1所述的方法,其中,向位于目标位置的目标文件应用传输的差别,以产生具有与修改的源文件相同的数据的修改的目标文件。
11.根据权利要求1所述的方法,其中,传输的源文件的差别在目标位置存储在增量文件中,当所述增量文件与目标文件相结合时,产生修改的源文件。
12.一种系统,包括处理器;源位置;目标位置;由处理器执行的用于执行操作的代码,所述操作包括检测修改位于源位置的源文件的操作,其中,位于目标位置的目标文件包括源文件的版本的副本;创建源文件的基本副本;在创建基本副本之后执行修改源文件的操作;确定源文件和文件的基本副本之间的差别;以及将确定的差别传输到目标位置,其中,目标文件和传输的已确定的差别的聚合包括修改的源文件。
13.根据权利要求12所述的系统,其中所述操作进一步包括响应将确定的差别传输到目标位置,删除源文件的基本副本。
14.根据权利要求12所述的系统,其中所述操作进一步包括响应检测修改位于源位置的文件的操作,确定是否有源文件的基本副本,其中,响应确定没有源文件的基本副本,创建基本副本。
15.根据权利要求12所述的系统,进一步包括以核心模式执行的文件系统,其中,用与以核心模式执行的文件系统代码集成的扩展代码来实现下列操作检测修改源文件的操作、创建基本副本、在创建基本副本之后执行修改操作。
16.根据权利要求12所述的系统,其中,传输的源文件的差别在目标位置存储在增量文件中,当所述增量文件与目标文件相结合时,产生修改的源文件。
17.一种产品,包括代码,这些代码被执行,以与源和目标位置进行通信,并执行操作,所述操作包括权利要求1-11中的任何一个权利要求中的步骤。
全文摘要
提供了用于确定对源文件作出的改变以便传输到提供源文件的镜像副本的目标位置的方法、系统和程序。检测修改位于源位置的源文件的操作,其中,位于目标位置的目标文件包括源文件的版本的副本。创建源文件的基本副本。在创建基本副本之后执行修改源文件的操作。确定源文件和文件的基本副本之间的差别。将确定的差别传输到目标位置,其中,目标文件和传输的已确定的差别的聚合包括修改的源文件。
文档编号G06F17/30GK1904847SQ200610105820
公开日2007年1月31日 申请日期2006年7月12日 优先权日2005年7月28日
发明者克里斯托弗·约汉·斯塔库蒂斯, 凯文·迈克尔·斯蒂尔恩斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1