支持零备份窗口的磁盘级数据备份系统和方法转让专利

申请号 : CN200810102345.2

文献号 : CN101256528B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 云晓春王树鹏吴志刚李树豪

申请人 : 中国科学院计算技术研究所

摘要 :

本发明提供一种支持零备份窗口的磁盘级数据备份系统和方法,包括:备份控制装置、写前读装置、备份读装置、磁盘过滤驱动装置、备份快照表和监控快照表。系统从磁盘或磁盘过滤驱动装置中获取备份快照表,读取需要备份的磁盘扇区数据;写前读装置协同磁盘过滤驱动完成写前读操作,接收到磁盘过滤装置发出的截获到写操作信号后,从磁盘上读取数据;磁盘过滤驱动装置将写操作的目标扇区标记在监控快照表中,用做增量备份的依据。使用本发明进行数据备份不需要停止业务应用,对业务应用的影响程度非常小,支持24x7持续运行的业务应用;本发明是在磁盘级别实现的,和具体上层应用业务无关,备份方法和实现的备份系统通用性更强,应用范围更广。

权利要求 :

1.一种支持零备份窗口的磁盘级数据备份系统,包括:备份控制装置、写前读装置、备份读装置、磁盘过滤驱动装置和备份快照表;

其中,所述备份快照表用于记录磁盘扇区数据是否需要备份;

所述备份控制装置用于控制所述备份读装置和所述写前读装置的启动和终止;

所述备份读装置用于根据所述备份快照表读取需要备份的磁盘扇区数据进行备份;

所述磁盘过滤驱动装置用于监控并截获磁盘写IRP操作,记录写IRP操作更改的磁盘扇区信息,在备份期间向所述写前读装置发送截获到该磁盘写IRP操作的信号,通知所述写前读装置进行写前读处理,在磁盘数据备份完成后放行所述磁盘写IRP操作,其中,写IRP操作是指写i/o请求包操作;

所述写前读装置用于在备份过程中接收所述磁盘过滤驱动装置发送的所述截获到该磁盘写IRP操作的信号并在目标扇区数据读取完成后向所述磁盘过滤驱动装置发送写IRP操作放行信号;所述写前读装置根据所述截获到该磁盘写IRP操作的信号和备份快照表读取目标扇区数据进行备份,实现对写操作目标磁盘扇区的优先读取。

2.权利要求1所述的系统,其中,所述系统还包括监控快照表,所述监控快照表用来记录增量监控期间被更改的磁盘扇区数据,标记写IRP操作的目标扇区,用做增量备份的依据;当所述磁盘过滤驱动装置截获到所述磁盘写IRP操作后,在所述监控快照表中记录写IRP操作的目标磁盘扇区信息。

3.权利要求1所述的系统,其中,所述磁盘过滤驱动装置截获并辨别对磁盘的读写操作;其中,所述磁盘过滤驱动装置获取上层应用层对所述磁盘的读写操作。

4.权利要求1所述的系统,其中,所述系统进行全量备份和增量备份;在全量备份时,所述备份读装置根据备份磁盘的使用状况生成备份快照表,根据所述备份快照表只备份使用扇区的数据;在增量备份时,所述备份读装置根据从所述磁盘过滤驱动装置基于备份磁盘的使用状况生成的备份快照表只备份自上次增量备份后更改过的磁盘扇区数据。

5.权利要求2所述的系统,其中,所述监控快照表存放在内核态。

6.权利要求1所述的系统,其中,所述备份快照表存放在用户态。

7.权利要求1所述的系统,其中,所述备份快照表表示备份分区中每一个磁盘扇区簇是否需要备份。

8.权利要求2所述的系统,其中,所述监控快照表表示备份分区中每一个磁盘扇区簇的数据在增量监控期间是否被更改过。

9.权利要求1所述的系统,其中,所述磁盘过滤驱动装置处于四种状态:空闲状态,阻塞状态,写前读监控状态和完全监控状态;所述磁盘过滤驱动装置处于空闲状态时,只对磁盘读写操作进行简单的转发;所述磁盘过滤驱动装置处于阻塞状态时,只转发磁盘的读操作,阻塞磁盘写操作;当开始进行全量/增量备份时,所述磁盘过滤驱动装置进入写前读监控状态,向所述写前读装置发送所述截获到该磁盘写IRP操作的信号;当全量/增量备份操作完成后,所述磁盘过滤驱动装置进入完全监控状态,直接放行截获到的写IRP操作。

10.一种支持零备份窗口的磁盘级数据备份方法,包括:

步骤10)、获取用于记录磁盘扇区数据是否需要备份的备份快照表;

步骤20)、根据所述获取的备份快照表从磁盘上依次读取需要备份的磁盘扇区数据进行备份,同时开始监控磁盘操作;

步骤30)、监控并截获磁盘写IRP操作,记录所述磁盘写IRP操作更改的磁盘扇区信息,发送截获到该磁盘写IRP操作的信号,其中,写IRP操作是指写i/o请求包操作;

步骤40)、如果在备份期间接收到所述截获到该磁盘写IRP操作的信号,根据备份快照表从被写磁盘读取数据完成后,放行所述磁盘写IRP操作,完成写前读操作。

11.权利要求10所述的方法,其中,步骤30)进一步包括:

步骤31)、截获到所述磁盘写IRP操作后,将所述磁盘写IRP操作的目标扇区标记在监控快照表中,其中,所述监控快照表用来记录增量监控期间被更改的磁盘扇区数据并标记所述磁盘写IRP操作的目标扇区。

12.权利要求11所述的方法,其中,所述方法进一步包括:

步骤50)、读取所述监控快照表,进行增量备份,同时保持监控磁盘操作。

13.权利要求12所述的方法,其中,当增量备份时,根据监控快照表生成备份快照表。

14.权利要求10所述的方法,其中,步骤20)包括:获取对备份快照表的访问锁;读取备份快照表中对应的需备份的磁盘扇区数据;修改备份快照表,释放对备份快照表的访问锁;备份完成后进入增量监控状态。

15.权利要求11所述的方法,其中,步骤31)包括:

步骤310)、截获到应用层发送的信号和写IRP操作;

步骤320)、获取对监控快照表的访问锁;

步骤330)、修改写IRP操作的目标扇区对应的监控快照表的相应位;

步骤340)、释放对监控快照表的访问锁。

16.权利要求10所述的方法,其中,步骤40)包括:

步骤410)、接收磁盘过滤驱动装置发送的所述截获到该磁盘写IRP操作的信号;

步骤420)、当处于备份状态时,获取截获的磁盘写IRP操作的信息,获取对备份快照表的访问锁;

步骤430)、读取写IRP操作的目标磁盘扇区的数据,修改读取的磁盘扇区数据在备份快照表中对应位;

步骤440)、发送放行写IRP操作信号。

说明书 :

技术领域

本发明涉及信息安全技术领域,更具体地,本发明涉及一种支持零备份窗口的磁盘级数据备份系统和方法。

背景技术

随着计算机技术的发展和信息化程度的提高,人们对信息的依赖程度也随之增强,信息在IT环境中的高度集中存储,在很大程度上提高了信息和数据管理的自动化,提高了运营效率,降低了运营成本。但同时,风险性也在不断增加,灾难发生所造成的数据丢失,可能会导致巨大的损失。
为了避免灾难带来的不利影响,需要对数据进行定时或者实时的备份。随着需要保护数据的不断增多,进行一次数据备份所需要的时间也越来越长。与此同时,随着信息化系统业务应用的不断繁忙,重要性的增强,业务应用允许停止的时间也越来越短,数据备份窗口随之越来越短,实际上很多业务应用是24×7持续运行的,无法停止,数据备份窗口为零。因此,需要实现支持零备份窗口的备份技术,在业务应用不中断的情况下,进行数据备份,保证备份数据的时间一致性。同时,业务应用的种类越来越多,为每种业务应用单独建立一套灾备系统的成本相对较高,建设的复杂性也非常大,如何提高备份方法和系统的应用透明性和通用性,降低灾备系统的难度和复杂性也是建立灾难备份系统的关键问题。
现有技术中对计算机系统的数据信息进行备份访问的方法主要包括:
(1)备份时锁定文件:通过拒绝进程的写访问,防止别的用户修改该文件;如果别的进程已获得写访问权限,备份进程必须跳过该文件或等到获得独占的写权限时,操作该文件;
(2)检测文件的改变:在复制文件之后,备用进程可以利用操作系统检查复制操作期间是否进行过修改,如果进行过修改,必须重做复制或者跳过该文件;
(3)申请号为PCT/GB94/01581的PCT申请提出一种运行具有一个在几个应用中共享的存储设备的计算机的方法,使用一个辅助存储区来保存备份过程中写进程所写的数据,避免写操作改写原始数据,备份进程可以从原始存储区中读取数据,而其它读进程可以从辅助存取区读取数据;
(4)申请号为PCT/GB96/00651的PCT申请是在上面(3)中所述方法的基础上提出来的,基本思路类似。
在上述(1)和(2)两种方法中,进行数据备份时都要求有效的把其它应用程序锁定,无法支持零备份窗口的数据备份。随着数据量的增加,数据复制所需要的时间也越来越长,而业务数据处于不断的使用之中,是无法终止的,所以,这两种方法无法满足当前的灾备需求。上述(3)和(4)两种方法是针对文件系统层次的数据备份提出的,和上层业务应用是相关的,不适用块设备层次的数据备份,应用范围有限;另外,使用这两种方法还需要额外的存储装置实现备份进程和应用进程对数据的同时防范;还有,(3)和(4)提出的方法只适用于Dos、Novell NetWare、OS/2或Unix以及采用6800及PowerPC系列的CPU的Macintosh计算机上实现,并不适用现有的windows系列的操作系统。

发明内容

为克服现有支持零备份窗口的磁盘级数据备份的应用透明性和通用性差的缺陷,本发明提供一种支持零备份窗口的磁盘级数据备份系统和方法。
根据本发明的一个方面,提供了一种支持零备份窗口的磁盘级数据备份系统,包括:备份控制装置、写前读装置、备份读装置、磁盘过滤驱动装置和备份快照表;
其中,所述备份快照表用于记录磁盘扇区数据是否需要备份;
所述备份控制装置用于控制所述备份读装置和所述写前读装置的启动和终止;所述备份读装置用于根据所述备份快照表读取需要备份的磁盘扇区数据进行备份;
所述磁盘过滤驱动装置用于监控并截获磁盘写IRP操作,记录写IRP操作更改的磁盘扇区信息,在备份期间向所述写前读装置发送截获到该磁盘写IRP操作的信号,通知所述写前读装置进行写前读处理,在磁盘数据备份完成后放行所述磁盘写IRP操作,其中,写IRP操作是指写i/o请求包操作;所述写前读装置用于在备份过程中接收所述磁盘过滤驱动装置发送的所述截获到该磁盘写IRP操作的信号并在目标扇区数据读取完成后向所述磁盘过滤驱动装置发送写IRP操作放行信号;所述写前读装置根据所述截获到该磁盘写IRP操作的信号和备份快照表读取目标扇区数据进行备份,实现对写操作目标磁盘扇区的优先读取。
其中,所述系统还包括监控快照表,所述监控快照表用来记录增量监控期间被更改的磁盘扇区数据,标记写IRP操作的目标扇区,用做增量备份的依据;当所述磁盘过滤驱动装置截获到所述磁盘写IRP操作后,在所述监控快照表中记录写IRP操作的目标磁盘扇区信息。
其中,所述磁盘过滤驱动装置截获并辨别对磁盘的读写操作;其中,所述磁盘过滤驱动装置获取上层应用层对所述磁盘的读写操作。
其中,所述系统进行全量备份和增量备份;在全量备份时,所述备份读装置根据备份磁盘的使用状况生成备份快照表,根据所述备份快照表只备份使用扇区的数据;在增量备份时,所述备份读装置根据从所述磁盘过滤驱动装置基于备份磁盘的使用状况生成的备份快照表只备份自上次增量备份后更改过的磁盘扇区数据。其中,所述监控快照表存放在内核态。其中,所述备份快照表存放在用户态。其中,所述备份快照表表示备份分区中每一个磁盘扇区簇是否需要备份。其中,所述监控快照表表示备份分区中每一个磁盘扇区簇的数据在增量监控期间是否被更改过。
其中,所述磁盘过滤驱动装置处于四种状态:空闲状态,阻塞状态,写前读监控状态和完全监控状态;所述磁盘过滤驱动装置处于空闲状态时,只对磁盘读写操作进行简单的转发;所述磁盘过滤驱动装置处于阻塞状态时,只转发磁盘的读操作,阻塞磁盘写操作;当开始进行全量/增量备份时,所述磁盘过滤驱动装置进入写前读监控状态,向所述写前读装置发送所述截获到该磁盘写IRP操作的信号;当全量/增量备份操作完成后,所述磁盘过滤驱动装置进入完全监控状态,直接放行截获到的写IRP操作。
根据本发明的另一方面,提供一种支持零备份窗口的磁盘级数据备份方法,包括:
步骤10)、获取用于记录磁盘扇区数据是否需要备份的备份快照表;
步骤20)、根据所述获取的备份快照表从磁盘上依次读取需要备份的磁盘扇区数据进行备份,同时开始监控磁盘操作;
步骤30)、监控并截获磁盘写IRP操作,记录所述磁盘写IRP操作更改的磁盘扇区信息,发送截获到该磁盘写IRP操作的信号,其中,写IRP操作是指写i/o请求包操作;
步骤40)、如果在备份期间接收到所述截获到该磁盘写IRP操作的信号,根据备份快照表从被写磁盘读取数据完成后,放行所述磁盘写IRP操作,完成写前读操作。
其中,步骤30)进一步包括:步骤31)、截获到所述磁盘写IRP操作后,将所述磁盘写IRP操作的目标扇区标记在监控快照表中,其中,所述监控快照表用来记录增量监控期间被更改的磁盘扇区数据并标记所述磁盘写IRP操作的目标扇区。
其中,所述方法进一步包括:步骤50)、读取所述监控快照表,进行增量备份,同时保持监控磁盘操作。其中,当增量备份时,根据监控快照表生成备份快照表。
其中,步骤20)包括:获取对备份快照表的访问锁;读取备份快照表中对应的需备份的磁盘扇区数据;修改备份快照表,释放对备份快照表的访问锁;备份完成后进入增量监控状态。
其中,步骤31)包括:
步骤310)、截获到应用层发送的信号和写IRP操作;
步骤320)、获取对监控快照表的访问锁;
步骤330)、修改写IRP操作的目标扇区对应的监控快照表的相应位;
步骤340)、释放对监控快照表的访问锁;放行所述写IRP操作。
其中,步骤40)包括:
步骤410)、接收磁盘过滤驱动装置发送的所述截获到该磁盘写IRP操作的信号;
步骤420)、当处于备份状态时,获取截获的磁盘写IRP操作的信息,获取对备份快照表的访问锁;
步骤430)、读取写IRP操作的目标磁盘扇区的数据,修改读取的磁盘扇区数据在备份快照表中对应位;
步骤440)、发送放行写IRP操作信号。
本发明提出的方法能够在磁盘驱动层次实现,具有更高的业务应用无关性;实现了备份装置和其它应用进程同时对磁盘数据访问,能够保证备份期间业务应用不被中断,使备份系统更适合目前业务应用需要24×7运行的现状,增强了备份系统的通用性。

附图说明

图1为支持零备份窗口的备份系统结构示意图;
图2为备份快照表和增量监控快照表的示意图;
图3为磁盘备份分区状态转化示意图;
图4为备份控制过程的示意图;
图5为数据备份过程示意图;
图6为监控过程的示意图。

具体实施方式

下面结合附图和具体实施例对本发明提供的一种支持零备份窗口的磁盘级数据备份系统和方法作进行详细描述。
图1示出根据本发明的一个实施例提供的支持零备份窗口的备份系统,包括备份控制装置A、写前读装置B、备份读装置C和磁盘过滤驱动装置D。
备份系统还包括一个备份快照表和监控快照表,备份快照表和监控快照表的存放位置不做具体要求,只要需要访问快照表的装置能够访问到即可;但是,为了获得较好的访问效率,优选的实现方式是将备份快照表放在用户态,将监控快照表放在内核态。每一快照表中的每一位表示备份分区中一个磁盘扇区簇的状态,如图2所示,扇区簇包括的扇区数目与分区格式化时的选项有关,一般为8个扇区,即4K。在备份快照表中,“1”表示该位对应的磁盘扇区簇需要进行备份,“0”表示该位对应的磁盘扇区簇不需要进行备份。备份快照表由备份读装置和写前读装置共享,是进行备份的依据。备份读装置依次读取备份快照表为“1”的位所对应的磁盘扇区;写前读装置获取磁盘过滤驱动装置发送的写激活信号,完成读操作后,将备份快照表中对应的标志位置0。监控快照表标记备份分区上被更改的磁盘扇区,由磁盘过滤驱动装置对其操作,截获到写IRP操作后,将该写IRP操作对应的位置“1”;当备份读装置从磁盘过滤驱动装置中读取监控快照表的内容用于增量备份时,磁盘过滤驱动将监控快照表全置“0”,开始新一轮的增量监控。
在图1所示系统中,备份控制装置A用于控制备份状态的切换以及控制备份读装置C和写前读装置B的启动和终止(A101)。
写前读装置B负责在备份过程中与磁盘过滤驱动装置D进行交互,写前读装置B接收到磁盘过滤驱动装置D的写截获信号后,根据备份快照表的目的扇区数据是否需要备份进行操作,如果需要备份并且还没有备份过,则读取目标扇区数据(B101),将与备份读进程共享的备份快照表相应的位置0,表示该扇区数据已经进行过备份,完成读取后,向磁盘过滤驱动装置发送写i/o请求包(i/o Request Package,IRP)操作放行信号(B102),放行该写IRP操作,从而保证了备份数据的时间一致性;否则直接向磁盘过滤驱动装置发送写前读完成的信号。
备份读装置C用于根据备份快照表从磁盘上读取需要进行备份的磁盘扇区数据(C101),进行备份读操作;备份读装置C能够发出至少一个从存储装置读原始数据的备份指令,该装置支持全量备份和增量备份;全量备份时,根据备份磁盘的使用状况来确定备份使用的备份快照表,只备份使用扇区的数据,降低备份数据量;增量备份时,从内核磁盘过滤驱动装置获取进行数据备份使用的备份快照表,只备份自上次增量备份后更改过的磁盘扇区数据。
磁盘过滤驱动装置D负责监控并截获系统的写IRP操作,记录写IRP操作更改的磁盘扇区信息,并且在备份期间与写前读装置进行协作,向写前读装置发送写截获信号(操作D101),通知写前读装置进行写前读处理,保证磁盘扇区数据备份完成后才放行写IRP操作。
磁盘过滤驱动装置D操作监控快照表,用于监控写磁盘操作,记录增量监控期间被更改的磁盘扇区数据,并将写操作的目标扇区标记在监控快照表中,用做增量备份的依据;数据备份期间,该装置将截获到写磁盘操作的信号通知给写前读装置,在收到写前读装置处理完成的信号后,才放行写操作,进行实际写操作。磁盘过滤驱动装置可以截获系统的磁盘读写操作,分辨读操作和写操作;能够和上层应用层进程进行通信。根据备份磁盘分区的备份状态,磁盘过滤驱动装置可以处于四种状态:空闲状态,阻塞状态,写前读监控状态和完全监控状态。磁盘过滤驱动装置处于空闲状态时,对磁盘读写操作只进行简单的转发,不进行任何操作;处于阻塞状态时,只转发磁盘的读操作,阻塞磁盘写操作;当开始进行全量/增量备份时,就进入写前读监控状态,截获到一个写操作后,首先判断是否需要向写前读装置发送信号,如果不需要,直接放行该写操作;否则,向写前读装置发送一个信号,写前读装置进行写前读处理,然后向磁盘过滤驱动装置发送一个写前读完成信号,收到该信号后,磁盘过滤驱动装置将该写操作的目标扇区在监控快照表中对应的位置1,然后放行该写操作;当全量/增量备份操作完成后,进入完全监控状态,截获到磁盘写操作后,将写操作的目的扇区在监控快照表中对应的位置1后,直接放行该写操作,不需要与写前读装置进行交互。
备份系统最基本的备份单位是磁盘分区,备份分区存在五种状态,如图3所示:未备份状态,全量备份状态,增量监控状态,增量备份状态和停止备份状态。未备份状态表示磁盘备份分区没有进行过任何备份操作;全量备份状态表示备份读装置正在对磁盘分区进行全量备份;增量监控状态表示磁盘过滤驱动装置正在对该磁盘分区进行写操作监控;增量备份状态表示备份读装置正在对该分区进行增量备份操作;停止备份状态表示停止对该分区的所有备份和监控操作。
如图3所示,状态的转换过程包括:
步骤201:启动备份后,磁盘备份分区首先进入全量备份状态;
步骤202:全量备份完成后,磁盘备份分区进入增量监控状态;
步骤203:全量备份过程中,收到终止备份信号后,该磁盘分区进入停止备份状态;
步骤204:到达增量备份时间点后,对该分区进行增量备份,该分区进入增量备份状态;
步骤205:增量监控过程中,收到终止备份信号后,该磁盘分区进入停止备份状态;
步骤206:增量监控过程中,到达增量备份时间点后,对该分区进行增量备份,该分区进入增量备份状态;
步骤207:增量监控过程中,收到终止备份信号后,该磁盘分区进入停止备份状态;
步骤208:备份分区以前备份过,启动备份后,不需要对该分区进行全量备份,备份分区直接从停止备份状态进入增量监控状态。
图4示出备份控制进程的执行过程,通过该过程可以进一步了解备份系统的执行过程,该过程包括:
步骤401:启动后,首先判断对磁盘备份分区是否进行过全量备份,如果没进行过全量备份,执行步骤402;如果进行过全量备份,直接执行步骤404;
步骤402:将备份分区的状态置为全量备份状态;
步骤403:启动备份读装置和写前读装置,进行全量备份;
步骤404:全量备份完成后,等待增量备份时间点;
步骤405:增量备份时间点到达后,启动备份读装置和写前读装置,进行增量备份操作。
图5示出备份分区处于备份状态(全量备份和增量备份)时的备份系统进行数据备份的工作流程。全量备份过程和增量备份过程,除了获取备份快照表的方式不同之外,其它过程都是相同的,因此都可以参照图5进行表述。进行全量备份时,备份快照表是根据磁盘备份分区的使用状况生成的,进行增量备份时,备份快照表是根据磁盘过滤驱动装置生成的监控快照表得到的。
如图5所示,数据备份过程可以由备份读装置、写前读装置和磁盘过滤驱动装置三个装置协作实现。备份过程中,备份读装置负责根据备份快照表依次从磁盘上读取磁盘扇区数据;写前读装置负责实现对写操作目的磁盘扇区的优先读取,保证备份数据的时间一致性;磁盘过滤驱动装置负责监控并截获磁盘写操作,向写前读装置发送截获到写IRP操作的信号,并记录写IRP操作目的磁盘扇区信息。
备份过程中,备份读装置的执行过程包括:
步骤C501:判断要进行增量备份还是全量备份,如果是全量备份,执行步骤C502;如果是增量备份,执行步骤C503;
步骤C502:根据磁盘的使用情况生成备份快照表,使用扇区在快照表中对应的位都置为1;
步骤C503:从磁盘过滤驱动装置中获取备份快照表,备份快照表的内容和监控快照表的内容一致;
步骤C504:循环读取磁盘数据,进行备份,如果还有数据需要备份,执行步骤C505;如果数据备份完成,执行步骤C510;
步骤C505:获取对备份快照表的访问锁;
步骤C506:读取一段备份快照表;
步骤C507:读取备份快照表为“1”的位对应磁盘扇区数据,返回执行步骤C504;
步骤C508:将刚备份过的磁盘扇区数据在备份快照表中对应的位置为0;
步骤C509:释放对备份快照表的访问锁;
步骤C510:备份完成,将备份分区的状态改为增量监控状态;
步骤C511:向磁盘过滤驱动装置发送进入增量监控状态的信号。
备份过程中,写前读装置的执行过程包括:
步骤B501:循环等待磁盘过滤驱动装置发送的写截获信号,接收到磁盘过滤驱动装置发送的截获到写IRP操作的信号后,执行步骤B502;
步骤B502:判断备份分区所处的状态,如果处于全量备份状态,则执行步骤B503;如果处于增量监控状态,则结束此次操作;
步骤B503:获取磁盘截获的写IRP的信息;
步骤B504:获取对备份快照表的访问锁;
步骤B505:判断写IRP操作的目标扇区是否已经被备份读装置读取过,如果没有被备份过,则依次执行步骤B506、B507;如果已经被备份读装置读取过,则直接执行步骤B508;
步骤B506:读取写IRP操作的目标磁盘扇区的数据;
步骤B507:将读取的磁盘扇区数据在备份快照表中对应的位置为0;
步骤B508:向磁盘过滤驱动装置发送写IRP放行信号;
步骤B509:获取对备份快照表的访问锁。
备份过程中,磁盘过滤驱动装置的执行过程包括:
步骤D5001:磁盘过滤驱动装置监听应用层发送的信号和写IRP操作,当截获到写操作后,将执行步骤D5002;当接收到备份读装置发送的进入增量监控状态的信号后,执行步骤D5101;当接收到备份读装置的读取备份快照表的信号后,执行步骤D5201;
步骤D5002:截获到磁盘写IRP操作;
步骤D5003:判断备份分区是否处于备份状态,如果处于备份状态,执行步骤D5004;否则,执行步骤D5012;
步骤D5004:判断写IRP目标磁盘扇区在监控快照表中对应的位是否为“1”,为“1”表明曾经截获到该对这些磁盘扇区的写IRP操作,则直接执行步骤D5005;否则,表明第一次截获到对这些磁盘扇区的写IRP操作,则依次执行步骤D5006到D5011;
步骤D5005:直接放行该写IRP操作,将该IRP操作传送到下层磁盘驱动;
步骤D5006:向写前读装置发送截获到写IRP操作的信号;
步骤D5007:等待写前读装置发送的写放行信号;
步骤D5008:接收到写放行信号后,放行该IRP操作,将该IRP操作传送到下层磁盘驱动;
步骤D5009:获取对监控快照表的访问锁;
步骤D5009:将该写IRP操作在监控快照表中对应的位置为1,表明相应磁盘扇区的数据在增量监控期间被更改过;
步骤D5010:释放对监控快照表的访问锁。
当磁盘过滤驱动装置接收到备份读装置发送的进入增量监控状态的信号后,将执行步骤D5101-D5103,包括:
步骤D5101:接收进入增量监控状态的信号;
步骤D5102:向写前读装置发送一个写截获信号;
步骤D5103:将备份磁盘分区的状态改为增量监控状态。
当磁盘过滤驱动装置接收到备份读装置发送的获取备份快照表的信号时,将执行步骤D5201-D5205,包括:
步骤D5201:接收获取备份快照表的信号;
步骤D5202:获取对监控快照表的访问锁;
步骤D5203:将监控快照表复制给备份读装置作为备份快照表;
步骤D5204:将监控快照表全部清零;
步骤D5205:将备份分区的状态改为增量备份状态;
步骤D5206:释放对监控快照表的访问锁。
在增量监控过程,主要工作装置是磁盘过滤驱动装置,该装置在增量监控过程中,主要负责监控对磁盘的写IRP操作,并将写IRP操作的目的扇区在监控快照表中对应的位置为1,表示该磁盘扇区数据自从上次备份以来被更改过,这些信息供增量数据备份过程中备份读装置使用,具体执行过程如图6所示:
步骤D601:磁盘过滤驱动装置等待应用层发送的信号和写IRP操作;
步骤D602:截获到磁盘写IRP操作;
步骤D603:判断写IRP操作的目标分区的备份状态,如果处于增量监控状态,则依次执行步骤D604-D606;否则,执行步骤D608;
步骤D604:获取对监控快照表的访问锁;
步骤D605:将写IRP操作的目标扇区对应的监控快照表相应的位置1;
步骤D606:释放对监控快照表的访问锁;
步骤D607:放行该i/o请求包;
步骤D608:执行数据备份其它相关操作。
从上述内容可以看出,本发明主要解决备份数据量不断增加所导致的备份时间越来越长与业务应用不可停止的矛盾,所要解决的技术问题是在数据备份的过程中,保证其它业务应用的持续正常执行,同时保证备份数据的时间一致性,避免备份过程中必须中断业务应用的问题,实现支持零备份窗口的磁盘级数据备份,提高数据备份系统的实用性。本发明同时解决数据灾备技术的应用相关性问题,避免针对不同的业务应用设计并实现不同的备份系统,提高数据备份方法和系统的应用透明性和通用性,实现基于磁盘过滤驱动进行数据灾备与上层业务应用无关,不需要针对具体业务应用和数据库系统设计不同的数据备份系统,增强数据备份技术的通用性和实用性。
最后应说明的是,以上实施例仅用以描述本发明的技术方案而不是对本技术方法进行限制,本发明在应用上可以延伸为其他的修改、变化、应用和实施例,并且因此认为所有这样的修改、变化、应用、实施例都在本发明的精神和教导范围内。