CN101477486B - 一种基于扇区重组的文件备份恢复方法 - Google Patents
一种基于扇区重组的文件备份恢复方法 Download PDFInfo
- Publication number
- CN101477486B CN101477486B CN2009100425833A CN200910042583A CN101477486B CN 101477486 B CN101477486 B CN 101477486B CN 2009100425833 A CN2009100425833 A CN 2009100425833A CN 200910042583 A CN200910042583 A CN 200910042583A CN 101477486 B CN101477486 B CN 101477486B
- Authority
- CN
- China
- Prior art keywords
- file
- burst
- data
- backup
- information
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本发明公开了一种基于扇区重组的文件备份恢复方法,要解决的技术问题是在保证文件数据恢复结果正确性的前提下,加快文件数据恢复的速度,满足恢复的实时性、精确性需求。技术方案是先捕获并过滤获得进程对磁盘中所有文件的写操作信息,根据这些信息对相应的文件数据进行分片式主动备份;在本地磁盘上开辟空间NBS存储文件初始状态的备份数据和后续的备份分片数据;当信息系统服务崩溃或者损坏时,对服务的文件数据进行操作级恢复,即选择出所有用来恢复这个文件的备份分片,采用分片数据扇区重新组合的方法对该文件进行恢复。本发明不需要进行数据的复制或者移动操作,能够极大地提高数据恢复的速度,兼具增量备份方式和日志备份方式的优点。
Description
技术领域
本发明涉及一种文件备份恢复的方法,尤其是提高在信息系统服务恢复背景下文件数据快速、可靠的备份恢复方法。
背景技术
随着计算机网络的飞速发展,人类已经进入了“信息时代”。面对入侵和攻击事件如此频繁的网络环境,保障信息系统在受攻击时或者系统异常时仍能正常工作成为信息安全领域亟待解决的问题。由于信息系统的稳定性是整个计算机网络运行的关键,可靠性要求高,应具备很强的应急响应服务恢复的能力,保证信息系统的强生存性,使得在遭受一定程度损毁的情况下仍能维持系统的正常运转。
在信息系统服务恢复过程中,对数据的备份恢复是整个过程的基础所在。由于信息系统服务恢复对系统的实时性和稳定性要求都比较高。因此,在服务恢复过程中,对数据恢复有一些特殊的要求,主要表现在以下几个方面:
1.高稳定性;在当今时代,信息系统服务越来越广泛地应用在关键的行业和领域,这些关键行业和领域对数据恢复的稳定性要求很高。在文件数据恢复过程中,即使很小的恢复失败都可能导致严重的后果。
2.实时性;由于信息系统服务的运行往往具有非常高的实时性要求,许多应用服务都运行在军事、金融等对实时要求比较高的领域中,因此,针对信息系统服务恢复过程的文件数据恢复方法必须具有很高的实时性功能。
3.精确的错误恢复能力;由于信息系统服务的运行状态与时间严格相关,同时这些服务的状态信息随着时间在不断地变化。当服务失效之后,不但需要将服务恢复到可用的状态,更需要将其恢复到正确的状态;正确的状态是指引起服务失效操作之前的状态。因此,信息系统服务恢复过程必须具有精确的错误恢复能力,使得服务恢复过程在诸如银行、保险等领域中能够发挥其重要的作用。
为了解决实际系统中的数据恢复的业务需求,全世界的科研、工程人员经过多年的研究和探索,发展出了许多数据恢复方法。这些方法可以归结为两大类:(1)基于数据复制或者数据移动的恢复方法;(2)基于文件版本重命名或者文件版本重置的方法。
1.基于数据复制或者数据移动的恢复方法
这是一种最原始的数据恢复方法。它的主要思想是将源数据拷贝或者移动到目标位置。从文件的层次看来,便是将源文件拷贝成为目标文件,从而实现对目标文件的恢复操作。比如用Ghost方法恢复磁盘分区便是采取这种方案;将硬盘分区表信息和硬盘数据打包备份,在恢复的时候利用事先备份好的Ghost文件作为源数据,读取打包好的备份数据并将这些数据写回到磁盘上相应的位置,具体地,就是先恢复硬盘分区表信息再恢复硬盘数据,以达到和备份前一样的效果;还有一种多版本式的备份恢复手段,它是对文件生成多个不同的版本,在恢复时,选择其中的一个文件版本作为恢复的数据源,并将此文件数据拷贝到目的文件中,以达到恢复的目的。
这种数据恢复方法虽然能够实现对文件数据的完全性恢复,但是,如果将其应用在服务恢复领域,仍然存在着致命的缺点:数据拷贝方式是基于对文件的所有数据进行,这种方式虽然能够不遗漏地将数据完全恢复,但是,在服务恢复的许多应用领域,很可能仅仅需要将一少部分的文件数据恢复即可。这种拷贝方式在兼顾完全性的同时,丧失了恢复的时效性,将导致数据恢复耗费较长的时间,不适合应用在对恢复时效性要求较高的信息系统服务恢复领域。
2.基于文件版本重命名或者文件版本重置的方法
这种文件数据恢复方法在数据库领域和一些实时应用领域中使用比较多。它的主要思想是,当对文件进行更改操作之后,生成此文件的一个完全式的版本,由此,在系统中存在此文件的一系列不同的按照时间增长的版本。当文件数据损坏时,系统根据一定的法则选择相应的文件版本作为文件数据恢复的数据源。在执行恢复操作时,不进行数据的复制或者移动操作,只需将选择出来的文件版本重命名回原来的目标文件即可。这种文件数据恢复方法以牺牲存储空间为代价,达到快速恢复指定文件的目的。
显然,将这种数据恢复方法应用在服务恢复领域中,也存在一些关键的缺陷:
(1)首先,从本质上来说,这种数据恢复方法并不是一种支持实时性、动态性的恢复方法。它的文件版本大都是按照一定的时间间隔生成的,这种方式并不能支持处理服务应用领域中由于某个操作而导致服务失效发生的问题。
(2)这种数据恢复方法的前提是对文件进行完全式的多版本的备份。这种备份的存储空间几乎以几何级数增长,将极大浪费存储资源。
由于信息系统服务具有连续、动态的特性,因此针对服务数据的备份恢复需要能够保持服务数据的连续性、动态性和实时性,这就对文件数据恢复过程提出了新的更高的要求。同时,从上述两种主要的文件数据恢复方法中不难看出,由于它们固有的缺陷,要将它们应用在服务恢复领域中仍然存在着一些困难和不足。因此,本领域很多技术人员都在努力研究新的文件数据恢复方法,以解决在信息系统服务恢复领域中应用的问题。如何在保证文件数据恢复正确性的前提下,尽可能地缩短数据恢复的时间、提高数据恢复的效率、减少备份数据存储空间占用,实现对支持服务运行的文件数据的动态、连续恢复是人们关注的重点。
发明内容
本发明要解决的技术问题是,在保证文件数据恢复结果正确性的前提下,加快文件数据恢复的速度,使其能够在信息系统服务失效发生时,满足信息系统服务恢复的实时性、精确性需求。
本发明的技术方案是:通过实时监控服务运行中对文件进行的修改操作,并将本次修改操作所更改的文件数据进行分片式备份,同时记录下这些分片的最新修改时间和它们在磁盘分区中的存储空间占用信息(简称“簇”信息,包括分片在磁盘分区中的起始簇号、分片在磁盘分区中的结束簇号和占用簇的数目等信息),从而,操作系统进程和用户进程对文件数据的每一次修改操作都生成了相应的备份分片,这些备份分片一起组成了文件备份分片集合。
当信息系统服务失效而需要将某个文件恢复到某个指定的时间(简称为恢复目标时间)时,根据此指定时刻在文件备份分片集合中查找,将满足此时刻要求的该文件的所有分片选择出来,然后将选择出来的这些文件分片所占据的扇区空间重新链接组合,从而实现对该文件的数据恢复操作;在恢复操作完成之后,该文件的数据与恢复目标时间的数据完全一致。在整个文件数据恢复过程中,不需要进行数据的拷贝、复制或移动操作。
具体技术方案为:
第一步,捕获操作系统进程(简称系统进程)和用户进程对磁盘中所有文件的操作信息,对捕获到的操作信息进行过滤,获取需要保护的文件数据的写操作信息,并根据这些写操作信息对相应的文件数据进行分片式主动备份。所谓主动备份,是指从调度备份操作执行的角度来看,备份操作的执行不是由外部的用户来进行调度,而是由备份程序自身来判断备份操作是否执行以及执行的时机。主动备份过程可以实现对文件数据的操作级备份功能,即用户或应用程序对需要保护的文件数据的任何一次修改操作,都可以产生相应的备份版本,每一个文件备份分片都对应针对文件数据的一次修改操作。分片式主动备份包括以下三个步骤:
步骤一,在文件系统驱动上层开发一个过滤层驱动程序,由过滤层驱动程序实时截获I/O管理器发往文件系统驱动层的IRP(输入输出请求)信息包,从而监控所有系统进程和用户进程对文件的操作,捕获到这些操作的操作信息,包括:操作进程、操作类型(只读、读/写、只写)、操作的目标文件的路径信息、操作时刻、操作的文件数据的起始偏移和输入输出的数据缓冲区大小;过滤层驱动程序的这种监控过程是实时的,它能够实时地捕获系统进程和用户进程对文件的所有操作,这种监控操作紧跟着对文件的所有操作,因此能够实时地做出响应。
步骤二,对步骤一捕获到的对文件的操作信息进行分析和过滤,得到需要保护的文件的写操作信息。由于文件的操作信息非常繁杂,因此有必要对操作信息进行分析,筛选出对需要保护的文件的写操作的关键信息。关键信息包括:操作时刻、操作的目标文件的路径信息即文件目录地址和文件名、写长度信息即写操作的文件数据起始偏移和输入输出的数据缓冲区大小。筛选完成后,将这些写操作的关键信息存储到文件操作记录集合中。文件操作记录集合是对文件数据每次访问操作的写操作关键信息存储起来的数据库,其功能类似日志。
步骤三,根据文件写操作关键信息所指示的文件的路径信息和写长度信息对文件进行操作级备份,对于进程对文件数据的每一次修改操作都产生本次操作对应的文件备份分片。这种备份方式有别于传统的事后备份或者定时备份方式,能够实时地跟踪文件数据的变化,并能够及时地根据变化对被更改的文件数据进行备份。文件数据操作级备份的步骤如下:
(1)根据当前写操作关键信息,计算需要备份的文件数据的备份信息,包括数据在文件中的起始位置、结束位置和需要生成的文件备份分片的数目。
(2)对文件中被修改的部分按分片的最大容量进行分片备份。即预先设定一个分片字节大小的最大值,每一个备份分片的大小都不能超过这个最大值。分片的最大容量根据磁盘I/O吞吐率、磁盘分区大小和用户需求综合决定。例如,如果将分片的最大容量约定为2M Byte,则每一个备份分片的数据量都不能超过2M Byte。如果某个文件被修改的数据量是5M Byte,则需要将此文件中被修改的数据备份成3个分片;其中第1片和第2片的大小都是2M Byte,第3片的大小是1M Byte。
(3)通过查询文件系统中管理“簇”信息的数据结构得到并记录当前分片在磁盘分区中占用空间的“簇”信息,包括分片的起始簇号、分片的结束簇号和占用簇的数目。“簇”指的是在磁盘分区中,文件系统关于文件数据存储空间划分的最小单位;一个簇由若干个扇区组成,在磁盘分区格式化的时候,其组成扇区数目由格式化程序来指定;在磁盘分区中,每一个“簇”都有一个唯一的编号,这个编号被称为簇号;存储在磁盘分区中的每一个文件都占据若干个“簇”,这些“簇”的编号不一定是连续的,但它们在磁盘分区中都通过一种链式结构来保持链接关系;因此,即使文件数据占用的“簇”空间在物理上不是连续的,但在操作系统和用户看来,这些“簇”空间在逻辑上是连续的。“簇”信息的数据结构在不同的文件系统中有所差异,比如在FAT32中主要是文件分配表,在NTFS中主要是索引分配和位图。
(4)将当前分片的关键信息包括需要保护的目录地址或者文件路径列表、备份分片的索引标志(编号)、备份分片所属的文件的目录地址、备份分片数据的生成时刻、备份分片的版本号、备份分片的“簇”信息(备份分片占用磁盘空间的情况)登记到管理信息数据库中。管理信息数据库是存储在文件数据备份恢复过程中需要使用的关键信息的数据库。通过对管理信息数据库进行访问和维护,可以把在文件数据备份过程中的一些关键要素管理起来,以方便在信息系统服务失效发生之后,快速、高效地恢复受损的文件。管理信息数据库中包含三张表,这三张表是需要保护的目录地址表、文件关键信息表和文件备份分片信息表。
i)需要保护的目录地址表存储与信息系统服务运行紧密相关的目录地址和用户需要保护的目录地址,每条记录包括目录编号和目录地址两个字段;
ii)文件关键信息表存储保护的所有文件的最新状态,每条记录包括目录编号、文件编号、文件目录地址、文件最新修改时间、文件最后修改版本号五个字段;
iii)文件备份分片信息表存储在文件数据操作级备份过程中生成的每个备份分片的信息,在信息系统服务失效之后,这些信息可以帮助快速选择合适的文件备份分片来恢复受损的文件,每条记录包括目录编号、文件编号、分片编号、分片的生成时间、分片的版本号、分片的起始簇号、分片的结束簇号、分片占据的簇数目八个字段。
第二步,为了存储文件备份分片的数据,在本地磁盘上新开辟一片空闲的空间-NBS(New Backup Space),专门存储文件初始状态的备份数据和后续的备份分片数据,NBS在逻辑上是连续的。
第三步,当信息系统服务崩溃或者损坏时,针对信息系统服务的连续性和实时性特点,对服务的文件数据进行操作级恢复,即将服务的文件数据恢复到失效操作(即使得信息系统服务崩溃或者损坏的操作)发生之前的状态,使得服务的状态也恢复到失效操作发生之前的状态,从而达到信息系统服务恢复的效果。文件数据操作级恢复的方法是依据服务失效的时刻访问文件操作记录集合,进而在管理信息数据库中选择用来恢复文件的备份分片,再将这些备份分片重新组合起来,从而将文件恢复到失效操作发生之前的状态。文件数据操作级恢复的步骤如下:
1.读取文件操作记录集合,根据服务失效的时刻,在操作记录集合中查找导致服务失效的最近的一次操作;
2.取出步骤1所查找到的操作之前的最近的一次操作;
3.将步骤2所查找到的最近的一次操作的执行时间作为文件数据恢复的目标时间;
4.根据文件数据恢复的目标时间,判断需要保护区域中的文件是否需要恢复。判断方法是:如果文件在恢复目标时间之后没有被修改过,则不需要恢复这个文件;如果文件已经不存在或者文件在恢复目标时间之后被修改过,则需要恢复这个文件。
5.针对需要进行恢复的文件,根据文件数据恢复目标时间,在管理信息数据库中查找,选择出所有用来恢复这个文件的备份分片,步骤是:
(1)根据文件的目录地址,在管理信息数据库的文件关键信息表中查找,得到该文件对应的文件编号(简称为目标文件编号)。
(2)根据目标文件编号,在管理信息数据库的文件备份分片信息表中选择出所有文件编号与目标文件编号相同的所有数据记录。这些数据记录中指示的文件备份分片的分片编号有可能相同,分片编号相同的分片代表该分片在各个不同时刻生成的版本。
(3)判断分片编号相同的那些文件备份分片的生成时刻,从中选择出失效操作发生之前该分片的最后一次生成的版本,判断过程是:
i)在分片编号相同的文件备份分片中,将分片生成时刻小于或等于恢复目标时间的所有分片选择出来,并把选择出来的这些分片简称为“待选分片”;
ii)从“待选分片”中取出分片生成时刻最大的那个文件备份分片,并将此文件备份分片作为恢复的目标分片之一。
(4)重复第(3)步,为文件的每一个分片都选择出满足恢复目标时间要求的文件备份分片版本;通过这样的过程,就将用于恢复该文件的所有的文件备份分片版本都选择出来了。
6.将选择出来用于恢复该文件的所有文件备份分片采用分片数据扇区重新组合的方法对该文件进行恢复。分片数据扇区重新组合方法充分利用文件系统中数据链式存储的特性,将传统的恢复过程中对数据的直接拷贝转化为对文件备份分片占用空间的“簇”的链接关系的更改。通过修改“簇”的链接关系实现文件的各个备份分片重新组合,达到恢复文件的目的。在整个文件数据恢复的过程中,不需要对数据进行拷贝或复制,只需要修改各个分片的“簇”的链接关系,同时更新文件目录项或者文件MFT(主文件表)表中的关键信息,即可将文件数据恢复到指定的时刻。具体地,分片数据扇区重新组合方法如下:
(i)根据选择出来的文件备份分片,在管理信息数据库的文件备份分片信息表中查询,得到每个文件备份分片在磁盘上占据空间的“簇”信息,包括此分片的起始簇号和分片的结束簇号。由于在第一步的步骤三的(4)中已经获取了每个生成的文件备份分片占据空间的“簇”信息,并将它们存储在管理信息数据库中,因此,在文件数据恢复时,只需要根据文件分片信息便可以得到相应的分片空间占用的“簇”信息。
(ii)根据每个分片的起始簇号和结束簇号,将每个分片在逻辑地址上顺次按照首尾相接的方式重新组合起来,即将第1块的尾部与第2块的首部链接起来,将第2块的尾部与第3块的首部链接起来,......以此类推,一直到最后一块数据被链接起来为止;具体地,则是将第一块数据的结束“簇”链接到第2块数据的起始“簇”,将第2块数据的结束“簇”链接到第3块数据的起始“簇”,......以此类推,直到最后一块数据的起始“簇”被链接到倒数第二块的结束“簇”。链接操作是指在扇区层次上修改磁盘扇区之间的逻辑关系,这种修改基于文件系统中对文件数据的组织特点而实施。比如在FAT32文件系统中,每个文件数据都是以“簇”为单位进行分配和存储的,而每个簇在FAT(文件分配表)中都占据一个相应的位置(一般为4字节),簇的占用信息都由该位置上存储的不同的数值来表示;如果该位置的值非0并且非结束标志,则表示该文件的数据未结束;该位置的数值表示该文件占用的下一个簇的簇号。FAT32系统通过这样的方式来维持文件、簇和数据之间的逻辑映射关系,同时操作系统也依据这样的逻辑映射关系实现对文件的增加、减少、更改、删除等修改操作。其它的文件系统中,比如NTFS、Ext3等,也是按照这样的“簇”方式对文件数据占用空间进行分配和存储,它们的数据组织方式与FAT32大同小异。本发明即是充分利用了文件系统的这种数据组织特性,通过修改选择出来的文件分片的“簇”的链接关系,将这些分片重新链接起来,从而实现对文件数据的重新组合。
(iii)对最后一块文件分片数据做特殊处理。因为在逻辑关系上,最后一块文件分片数据是要恢复的目的文件数据的尾部,所以最后一块文件分片数据的结束“簇”位置置为数据的结束标志(比如在FAT32文件系统中,0x0fffffff表示结束)。
(iv)释放需要恢复的目的文件占用的空间。由于原有的目的文件可能仍然占据了磁盘空间,在文件数据恢复操作完成之前,需要将这些占据的空间释放以供给其他的进程和用户使用。
(v)修改需要恢复的目的文件的参数信息。由于目的文件或者已经损坏,或者其参数信息与恢复目标不一致,因此,需要对目的文件的参数信息进行修改。这些参数信息主要包括文件名、文件的起始“簇”信息或者数据运行的簇信息、文件长度、文件创建时间、文件最后修改时间和文件最近访问时间等。这种修改只需要针对这些参数信息所在的磁盘扇区进行读写操作即可完成。
与传统的文件数据恢复方法相比,采用本发明可以达到以下的技术效果:
(1)本发明不需要进行数据的复制或者移动操作。本发明主要依赖于对预先存在的文件备份分片进行重新组合而实现对文件数据的恢复,这种组合主要利用文件系统中数据组织方式的特点,将这些文件分片占用的空间以首尾相接的方式链接起来,从而重新实现文件数据在逻辑上的统一、连续的数据视图。
(2)本发明能够极大地提高数据恢复的速度,因为不需要进行数据的复制操作,可以极大地减少对磁盘扇区的读写访问时间,从而减少数据恢复过程所需要的时间,进而能够保证服务恢复的实时性要求。
(3)兼具增量备份方式和日志备份方式的优点。由于采取对文件修改部分采用增量备份的方式,因此存储空间占用较少;同时,记录了对文件数据的修改操作,因此也具有日志备份方式的优点。
(4)能实现对文件数据的操作级备份和恢复。能够根据对文件数据的修改操作,备份此次操作导致的文件修改部分的数据;在信息系统服务失效发生之后,能够将文件数据恢复到指定的操作时间节点。
(5)便捷的备份数据信息管理。将备份数据信息以数据库的形式集中地管理起来,以方便在文件数据恢复时对它们进行使用。
(6)对文件修改操作进行实时监控。通过扩展的文件系统过滤层驱动程序实时地监控对磁盘分区下的所有需要保护文件的写操作,并捕获这些写操作信息,对这些文件进行分片备份。
(7)便捷的用户恢复时间选择。能够根据用户选择的恢复时间节点,将文件数据恢复到用户指定的时刻。
附图说明
图1是本发明的总流程图;
图2是本发明的第一步的步骤三文件数据操作级备份流程图;
图3是本发明的第三步文件数据操作级恢复流程图;
图4是本发明的第三步分片数据扇区重新组合方法流程图;
图5是本发明的第三步分片数据扇区重新组合过程示意图;
具体实施方式
图1是本发明的总流程图,主要包括以下三个步骤:
1.捕获、过滤文件操作,备份文件数据。该过程主要由三个步骤组成:捕获系统进程和用户进程对磁盘中所有文件的操作信息,对捕获到的操作信息进行过滤获取拟保护的文件数据的写操作信息,根据这些写操作信息对相应的文件数据进行备份。这是一种主动备份过程,它可以针对系统进程和用户进程对需要保护的文件数据的任何修改操作生成相应的文件备份分片。在不同时刻生成的这些文件备份分片一起组成了文件备份分片集合。
2.管理维护文件备份分片集合。为了存储文件分片备份数据,在本地磁盘上新开辟一片被命名为NBS的空间专门用于存储备份数据,文件初始状态和后续状态的备份数据都存储在NBS中,NBS对应的磁盘分区的所有簇的信息都可以预先得到。
3.文件数据恢复。在服务运行异常被检测到之后,通过访问文件操作记录集合中存储的一系列操作,取出导致此次服务失效发生的操作,生成恢复的目标时间;然后依据恢复目标时间,从文件备份分片集合中选择用于恢复的文件分片;并使用这些选择出来的文件分片,采用基于扇区重组的文件数据恢复方法将这些分片重新组合以实现对文件数据的快速恢复。
图2是本发明的第一步的步骤三的文件数据操作级备份流程图,主要包括5大步骤。
1.根据捕获到的系统进程和用户进程对文件数据的修改操作信息,判断当前操作是否为写操作;如果是写操作,则将当前操作添加到文件操作记录集合中;
2.生成当前文件数据备份信息,即根据获取到的写操作的关键信息,计算需要备份的文件数据的起始位置、结束位置和需要生成的文件备份分片的数目。
3.对文件中被修改的部分按分片的最大容量进行分片备份。
4.获取当前文件分片的磁盘分区起始“簇”和结束“簇”信息。
5.登记当前分片的起始“簇”和结束“簇”信息到管理信息数据库中。
图3是本发明的第三步的文件数据操作级恢复流程图。步骤是:
1.读取文件操作记录集合,在其中查找导致服务失效的最近的一次操作;
2.取出此次操作之前的最近的一次操作;
3.根据2中得到的操作的执行时间生成文件数据恢复的目标时间;
4.根据文件数据恢复的目标时间,判断需要保护区域中的文件是否需要恢复,若不需要恢复,转7;
5.针对需要进行恢复的文件,根据文件数据恢复目标时间,在管理信息数据库中查找,选择出所有用来恢复这个文件的备份分片;
6.采用分片数据扇区重新组合方法恢复所需要保护的文件;
7.判定是否还有需要恢复的文件,有,转4,没有,结束。
图4是本发明的第三步步骤6的分片数据扇区重新组合方法中对分片占据的空间进行重新组合的方法流程图,主要包括以下5步:
1.在管理信息数据库的文件备份分片信息表中查询,得到每个文件备份分片在磁盘上的起始“簇”和结束“簇”信息;
2.将各个分片以首尾相接的方式重新组合起来。
3.特殊处理最后一块分片,即将最后一块分片的末尾置上数据的结束标志。
4.释放目的文件占用的空间,以供给其他的进程和用户使用。
5.修改目的文件的参数信息。主要是对文件名、文件的起始“簇”信息或者数据运行的簇信息、文件长度、文件创建时间、文件最后修改时间和文件最近访问时间等信息进行修改。
图5是本发明的第三步的分片数据扇区重新组合过程示意图;在图5中,空白方块表示文件的原始数据块,阴影方块表示文件的备份数据块,实线连接线表示文件的各个分片的原始链接关系,虚线连接线表示执行动态重组之后文件各个分片的链接关系,T0,T1,T2,T3,T4,T5表示时间的递增。T0时刻表示初始时刻,此时,文件的数据都处于初始完好状态。在T1时刻,文件的第2块和第3块数据被修改,因此,在T1时刻,产生了文件的两个备份分片;在T2时刻,文件的第3块数据被修改,因此,在T2时刻,产生了文件的一个备份分片;依次类推,得到了左图所示的文件备份分片随时间的变化图示。
当服务运行异常时,服务失效处理过程决策出需要将数据恢复到T3时刻。这时,根据恢复的目标时间(T3时刻),在文件分片的各个版本集合中,选择每个分片对应的相应版本。具体的各个分片的版本选择过程如下:
●从左图可以看出,此文件的第一块数据没有被修改,因此选择文件的第1块在T0时刻的版本;
●文件的第2块数据在T1时刻被修改过,由此产生的备份数据块是满足条件的最近的数据块,因此,选择文件的第2块在T1时刻的修改版本;
●文件的第3块数据在T1,T2,和T4时刻都被修改过,由于T4时刻的版本发生时间落后于恢复的目标时间(T3时刻),因此,T4时刻的版本不符合要求;则选择最接近恢复目标时间的T2时刻的版本作为文件的第3块数据;
●文件的第4块数据在T3,T4和T5时刻都被修改过,由于T4时刻和T5时刻的版本产生时间均落后于恢复的目标时间(T3时刻),因此,T4时刻和T5时刻的版本不符合要求;所以,选择文件的第4块在T3时刻的修改版本;
●文件的第5块数据只在T5时刻被修改过,由于T5时刻的版本产生时间落后于恢复的目标时间(T3时刻),因此,选择文件的第5块在T0时刻的版本。
选择出来的各个分片在逻辑上是分散的,由于它们在磁盘分区上的“簇”空间占用信息都预先存储在管理信息数据库中,所以可以方便地从管理信息数据库取出各个分片的“簇”空间占用信息。并根据“簇”空间占用信息修改这些分片的“簇”的链接关系,就可以将这些分片重新组织起来,如图5右图所示,首先将第1个分片的T0时刻生成的备份分片的尾部链接到第2个分片的T1时刻生成的备份分片的首部,然后将第2个分片的T1时刻生成的备份分片的尾部链接到第3个分片的T2时刻生成的备份分片的首部,再将第3个分片的T2时刻生成的备份分片的尾部链接到第4个分片的T3时刻生成的备份分片的首部,最后将第4个分片的T3时刻生成的备份分片的尾部链接到第5个分片的T0时刻生成的备份分片的首部。通过这样的方式,将选择出来的文件的各个备份分片重新组合起来,从而实现文件的恢复操作。这些重组起来的分片数据在文件系统层次看来,与通过完全拷贝数据方式实现的文件恢复的效果完全一样,可以透明地被操作系统和文件系统访问。
Claims (1)
1.一种基于扇区重组的文件备份恢复方法,其特征在于包括以下步骤:
第一步,捕获系统进程即操作系统进程和用户进程对磁盘中所有文件的操作信息,对捕获到的操作信息进行过滤,获取需要保护的文件数据的写操作信息,并根据这些写操作信息对相应的文件数据进行分片式主动备份,包括以下三个步骤:
步骤一,在文件系统驱动上层开发一个过滤层驱动程序,由过滤层驱动程序实时截获I/O管理器发往文件系统驱动层的输入输出请求IRP信息包,从而监控所有系统进程和用户进程对文件的操作,捕获到这些操作的信息,包括:操作进程、操作类型、操作的目标文件的路径信息、操作时刻、操作的文件数据的起始偏移和输入输出的数据缓冲区大小,所述操作类型包括只读、读/写、只写;
步骤二,对捕获到的对文件的操作信息进行分析和过滤,得到需要保护的文件的写操作关键信息,包括:操作时刻、操作的目标文件的路径信息即文件目录地址和文件名、写长度信息即写操作的文件数据起始偏移和输入输出的数据缓冲区大小,筛选完成后,将这些写操作关键信息存储到文件操作记录集合中,文件操作记录集合是对文件数据每次访问的写操作的关键信息存储起来的数据库,其功能类似日志;
步骤三,根据文件写操作关键信息所指示的文件的路径信息和写长度信息对文件进行操作级备份,对于进程对文件数据的每一次修改操作都产生本次操作对应的文件备份分片,步骤如下:
(1)根据当前写操作关键信息,计算需要备份的文件数据的备份信息,包括数据在文件中的起始位置、结束位置和需要生成的文件备份分片的数目;
(2)对文件中被修改的部分按分片的最大容量进行分片备份,分片的最大容量根据磁盘I/O吞吐率、磁盘分区大小和用户需求综合决定,每一个备份分片的大小都不能超过分片的最大容量;
(3)查询文件系统中管理“簇”信息的数据结构得到并记录当前分片在磁盘分区中占用空间的“簇”信息,包括分片的起始簇号、分片的结束簇号和占用簇的数目;
(4)将当前分片的关键信息包括需要保护的目录地址或者文件路径列表、备份分片的索引标志、备份分片所属的文件的目录地址、备份分片数据的生成时刻、备份分片的版本号、备份分片的“簇”信息登记到管理信息数据库中,管理信息数据库中包含需要保护的目录地址表、文件关键信息表和文件备份分片信息表;需要保护的目录地址表存储与信息系统服务运行紧密相关的目录地址和用户需要保护的目录地址,每条记录包括目录编号和目录地址两个字段;文件关键信息表存储文件的最新状态,每条记录包括目录编号、文件编号、文件目录地址、文件最新修改时间、文件最后修改版本号五个字段;文件备份分片信息表存储在文件数据操作级备份过程中生成的每个备份分片的信息,每条记录包括目录编号、文件编号、分片编号、分片的生成时间、分片的版本号、分片的起始簇号、分片的结束簇号、分片占据的簇数目八个字段;
第二步,在本地磁盘上新开辟一片空闲的空间-NBS,专门存储文件初始状态的备份数据和后续的备份分片数据,NBS在逻辑上是连续的;
第三步,当信息系统服务崩溃或者损坏时,对服务的文件数据进行操作级恢复,步骤如下:
步骤1.读取文件操作记录集合,根据服务失效的时刻,在操作记录集合中查找导致服务失效的最近的一次操作;
步骤2.取出步骤1所查找到的操作之前的最近的一次操作;
步骤3.将步骤2所查找到的最近的一次操作的执行时间作为文件数据恢复的目标时间;
步骤4.根据文件数据恢复的目标时间,判断需要保护区域中的文件是否需要恢复,方法是:如果文件在恢复目标时间之后没有被修改过,则不需要恢复这个文件;如果文件已经不存在或者文件在恢复目标时间之后被修改过,则需要恢复这个文件;
步骤5.针对需要进行恢复的文件,根据文件数据恢复目标时间,在管理信息数据库中查找,选择出所有用来恢复这个文件的备份分片,步骤是:
步骤(1)根据文件的目录地址,在管理信息数据库的文件关键信息表中查找,得到该文件对应的文件编号,简称为目标文件编号;
步骤(2)根据目标文件编号,在管理信息数据库的文件备份分片信息表中选择出所有文件编号与目标文件编号相同的所有数据记录;
步骤(3)判断分片编号相同的那些文件备份分片的生成时刻,从中选择出失效操作发生之前该分片的最后一次生成的版本,判断过程是:
i)在分片编号相同的文件备份分片中,将分片生成时刻小于或等于恢复目标时间的所有分片选择出来,并把选择出来的这些分片简称为“待选分片”;
ii)从“待选分片”中取出分片生成时刻最大的那个文件备份分片,并将此文件备份分片作为恢复的目标分片之一;
步骤(4)重复第(3)步,为文件的每一个分片都选择出满足恢复目标时间要求的文件备份分片版本;
步骤6.将选择出来用于恢复该文件的所有文件备份分片采用分片数据扇区重新组合的方法对该文件进行恢复,分片数据扇区重新组合方法如下:
(i)根据选择出来的文件备份分片,在管理信息数据库的文件备份分片信息表中查询,得到每个文件备份分片在磁盘上占据空间的“簇”信息,包括此分片的起始簇号和分片的结束簇号;
(ii)根据每个分片的起始簇号和结束簇号,将每个分片在逻辑地址上顺次按照首尾相接的方式重新组合起来,即将第1块的尾部与第2块的首部链接起来,将第2块的尾部与第3块的首部链接起来,......以此类推,一直到最后一块数据被链接起来为止;具体地,则是将第一块数据的结束“簇”链接到第2块数据的起始“簇”,将第2块数据的结束“簇”链接到第3块数据的起始“簇”,......以此类推,直到最后一块数据的起始“簇”被链接到倒数第二块的结束“簇”;链接操作是指在扇区层次上修改磁盘扇区之间的逻辑关系;
(iii)对最后一块文件分片数据做特殊处理,即最后一块文件分片数据的结束“簇”位置置为数据的结束标志;
(iv)释放需要恢复的目的文件占用的空间;
(v)修改需要恢复的目的文件的参数信息,包括文件名、文件的起始“簇”信息或者数据运行的簇信息、文件长度、文件创建时间、文件最后修改时间和文件最近访问时间,修改方法是针对这些参数信息所在的磁盘扇区进行读写操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100425833A CN101477486B (zh) | 2009-01-22 | 2009-01-22 | 一种基于扇区重组的文件备份恢复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100425833A CN101477486B (zh) | 2009-01-22 | 2009-01-22 | 一种基于扇区重组的文件备份恢复方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101477486A CN101477486A (zh) | 2009-07-08 |
CN101477486B true CN101477486B (zh) | 2010-08-04 |
Family
ID=40838207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100425833A Expired - Fee Related CN101477486B (zh) | 2009-01-22 | 2009-01-22 | 一种基于扇区重组的文件备份恢复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101477486B (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236589B (zh) * | 2010-05-04 | 2013-04-17 | 南京壹进制信息技术有限公司 | 一种基于数字标识符管理增量文件的数据保护方法 |
CN102456354B (zh) * | 2010-10-22 | 2015-05-20 | 山东新北洋信息技术股份有限公司 | 磁信息记录方法及装置、磁票 |
CN102147802B (zh) * | 2010-12-17 | 2013-02-20 | 曙光信息产业(北京)有限公司 | 一种伪随机类nfs应用加速系统 |
CN102184248B (zh) * | 2011-05-20 | 2013-06-19 | 深圳万兴信息科技股份有限公司 | 一种在Windows下调整磁盘分区的方法及装置 |
CN102929976B (zh) * | 2012-10-17 | 2016-06-15 | 华为技术有限公司 | 备份数据访问方法及装置 |
CN103067525B (zh) * | 2013-01-18 | 2015-11-25 | 广东工业大学 | 一种基于特征码的云存储数据备份方法 |
US10977229B2 (en) | 2013-05-21 | 2021-04-13 | Facebook, Inc. | Database sharding with update layer |
CN103678041A (zh) * | 2013-12-11 | 2014-03-26 | 浪潮(北京)电子信息产业有限公司 | 一种增量备份方法及系统 |
CN104216806B (zh) * | 2014-07-24 | 2016-04-06 | 上海英方软件股份有限公司 | 一种文件系统序列化操作日志的捕获与传输方法及其装置 |
CN104281684B (zh) * | 2014-09-30 | 2017-08-25 | 东软集团股份有限公司 | 海量日志存储和查询方法及系统 |
CN104375906B (zh) * | 2014-11-19 | 2017-06-13 | 天津南大通用数据技术股份有限公司 | 一种基于文件系统的大规模备份数据快速校验方法 |
CN104462433B (zh) * | 2014-12-17 | 2017-11-10 | 四川效率源信息安全技术股份有限公司 | 一种恢复fat32分区数据的方法 |
CN104636480B (zh) | 2015-02-13 | 2018-09-28 | 华为技术有限公司 | 重建备机数据库的方法及其装置 |
CN106022706A (zh) * | 2016-05-06 | 2016-10-12 | 米励(北京)信息技术有限公司 | 电子合约主体以及相关执行过程信息的全息呈现系统 |
CN106055698A (zh) * | 2016-06-14 | 2016-10-26 | 智者四海(北京)技术有限公司 | 数据迁移方法、代理节点及数据库实例 |
CN107341072A (zh) * | 2016-11-18 | 2017-11-10 | 新华三技术有限公司 | 一种数据备份方法及装置 |
CN107644056B (zh) * | 2017-08-04 | 2021-02-12 | 武汉烽火众智数字技术有限责任公司 | 一种文件存储方法、装置及系统 |
CN109840095A (zh) * | 2017-11-28 | 2019-06-04 | 比亚迪股份有限公司 | 储能系统的启动方法、储能设备及存储介质 |
CN110232000B (zh) * | 2018-03-05 | 2022-02-25 | 腾讯科技(深圳)有限公司 | 数据存储管理方法及装置 |
CN110389855B (zh) * | 2018-04-19 | 2021-12-28 | 浙江宇视科技有限公司 | 磁带库数据校验方法、装置、电子设备和可读存储介质 |
CN110197071B (zh) * | 2018-04-25 | 2023-05-16 | 腾讯科技(深圳)有限公司 | 引导区数据处理方法及装置、计算机存储介质、电子设备 |
JP6700337B2 (ja) * | 2018-05-30 | 2020-05-27 | 日本電信電話株式会社 | 保護装置及び保護方法 |
CN109697197B (zh) * | 2018-12-25 | 2023-05-02 | 四川效率源信息安全技术股份有限公司 | 一种雕复Access数据库文件的方法 |
CN110174999B (zh) * | 2019-05-20 | 2022-06-17 | 中国刑事警察学院 | 一种Office文件目录区分片重组方法 |
CN112015710B (zh) * | 2020-08-27 | 2023-11-21 | 北京达佳互联信息技术有限公司 | 一种确定目录分片关系的方法及装置 |
CN112379846B (zh) * | 2020-12-01 | 2022-04-29 | 厦门市美亚柏科信息股份有限公司 | 一种用于磁盘文件的快速读取方法和系统 |
CN112612646A (zh) * | 2020-12-25 | 2021-04-06 | 深圳市科力锐科技有限公司 | 应用快速恢复方法、装置、设备及存储介质 |
CN114221975B (zh) * | 2021-11-30 | 2024-01-30 | 浙江大华技术股份有限公司 | 基于smr盘的云存储数据恢复方法及装置、电子设备 |
CN116501265A (zh) * | 2023-06-26 | 2023-07-28 | 中航金网(北京)电子商务有限公司 | 多系统文件修改方法、装置、计算机设备及存储介质 |
CN116643927B (zh) * | 2023-07-27 | 2023-09-26 | 成都艾勃科技有限公司 | 一种基于Windows系统的固态硬盘快照备份方法 |
CN116662075B (zh) * | 2023-07-28 | 2024-03-22 | 深圳市科力锐科技有限公司 | 数据保护方法、系统、设备及存储介质 |
-
2009
- 2009-01-22 CN CN2009100425833A patent/CN101477486B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101477486A (zh) | 2009-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101477486B (zh) | 一种基于扇区重组的文件备份恢复方法 | |
CN104040481B (zh) | 用于融合、存储和检索增量式备份数据的方法和系统 | |
US8060713B1 (en) | Consolidating snapshots in a continuous data protection system using journaling | |
US9183268B2 (en) | Partition level backup and restore of a massively parallel processing database | |
US6983295B1 (en) | System and method for database recovery using a mirrored snapshot of an online database | |
CN1331063C (zh) | 基于数据卷快照的在线数据备份方法 | |
US7257690B1 (en) | Log-structured temporal shadow store | |
US7185028B2 (en) | Data files systems with hierarchical ranking for different activity groups | |
CN100562856C (zh) | 使用检查点从存储事务故障中恢复 | |
CN100517321C (zh) | 映象数据存储装置写时间映射 | |
CN101073070B (zh) | 提供数据存储器内位置的修改历史的系统和方法 | |
US7340645B1 (en) | Data management with virtual recovery mapping and backward moves | |
US7840539B2 (en) | Method and system for building a database from backup data images | |
US6839819B2 (en) | Data management appliance | |
US6898688B2 (en) | Data management appliance | |
US7269701B2 (en) | Self-configuration of source-to-target mapping | |
US20070162513A1 (en) | Methods and apparatus for point in time data access and recovery | |
CN109739935A (zh) | 数据读取方法、装置、电子设备以及存储介质 | |
JP2005538470A (ja) | ノーダルフェイルオーバを用いるプライマリーデータバックアップおよびリモートデータバックアップ | |
CN112099989A (zh) | 一种Kubernetes云原生应用灾备、迁移与恢复的方法 | |
CN103605585A (zh) | 一种基于数据发现的智能备份方法 | |
CN109298978B (zh) | 一种指定位置的数据库集群的恢复方法及系统 | |
US7487310B1 (en) | Rotation policy for SAN copy sessions of ISB protocol systems | |
CN113377292B (zh) | 一种单机存储引擎 | |
US11494271B2 (en) | Dynamically updating database archive log dependency and backup copy recoverability |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100804 Termination date: 20140122 |