CN106339278A - 一种网络文件系统的数据备份及恢复方法 - Google Patents
一种网络文件系统的数据备份及恢复方法 Download PDFInfo
- Publication number
- CN106339278A CN106339278A CN201610712219.3A CN201610712219A CN106339278A CN 106339278 A CN106339278 A CN 106339278A CN 201610712219 A CN201610712219 A CN 201610712219A CN 106339278 A CN106339278 A CN 106339278A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- version
- recovery
- server
- 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.)
- Pending
Links
- 238000011084 recovery Methods 0.000 title claims abstract description 99
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000005516 engineering process Methods 0.000 claims abstract description 34
- 238000012986 modification Methods 0.000 claims abstract description 13
- 230000004048 modification Effects 0.000 claims abstract description 13
- 230000001360 synchronised effect Effects 0.000 claims description 76
- 230000008569 process Effects 0.000 claims description 31
- 230000007246 mechanism Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 6
- 238000013459 approach Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 4
- 238000012790 confirmation Methods 0.000 claims description 3
- 239000000284 extract Substances 0.000 claims description 2
- 238000004458 analytical method Methods 0.000 abstract description 2
- 230000008030 elimination Effects 0.000 abstract description 2
- 238000003379 elimination reaction Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 6
- 238000013508 migration Methods 0.000 description 4
- 230000005012 migration Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000306 component Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
Abstract
本发明公开了一种网络文件系统的数据备份及恢复方法,其结构包括:网络文件系统多版本备份技术、网络文件系统数据恢复技术、网络文件系统细粒度恢复技术和数据快速同步技术;本发明不但采用了增量方式的多版本恢复技术,同时还对文件的修改日志进行了实时的备份,这样就可以在事故发生后进行基于文件操作的精确恢复,并支持运行剔除非法操作的选择性恢复,这样既能尽量避免因事故造成的数据丢失问题,又能通过选择性恢复较好保证数据的正确性,同时,还可以通过对日志的分析,结合数据的精确恢复,达到发现犯罪线索,获得有效证据的目的,为打击网络犯罪提供有力的技术手段。
Description
技术领域
本发明涉及涉及操作系统内核及网络文件系统领域,具体地说是一种网络文件系统的数据备份及恢复方法。
背景技术
网络文件系统,英文Network File System(NFS)。是由SUN公司研制的UNIX表示层协议(pressentation layer protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。
网络文件系统(NFS)协议采用了经典的客户机/服务器模式提供服务。为了达到如同在本机上使用本地文件系统一样便捷的效果,NFS通过使用远程过程调用协议(RPCProtocol)来实现运行在一台计算机上的程序来调用在另外一台远程机器上运行的子程序。同时,为了解决不同平台上的数据交互问题,它提供了外部数据表示(XDR)来解决这个问题。为了灵活地提供文件共享服务,该协议可以在TCP协议或者UDP协议上运行,典型的情况是在UDP协议上运行。在此基础上,NFS在数据的传送过程中需要RPC命令得到确认,而且在需要的时候会要重传,这样既可以通过UDP协议获得较高的通信效率,也可通过RPC来获得较高的通信可靠性。
由于NFS基于C/S模式提供服务,所以它的核心组件主要包括客户机和服务器两部分。图1详细说明了NFS的主要组件以及主要的配置文件。在服务器端,portmap,mountd,nfsd三个监控程序将在后台运行。portmap监控程序用来注册基于RPC的服务。当一个RPC的监控程序启动的时候,它告诉portmap监控程序它在哪一个端口进行侦听,并且它在进行什么样的RPC服务。当一个客户机向服务器提供一个RPC请求,那么它就会和portmap监控程序取得联系以确定RPC消息应该发往的端口号。而Mountd监控程序的功能是来读取服务器端的/etc/exportfs文件并且创建一个将服务器的本地文件系统导出的主机和网络列表,因而客户机的挂载(mount)请求都被定位到mountd监控程序(daemon)。当验证了服务器确实具有挂载所请求的文件系统的权限以后,mountd为请求的挂载点返回一个文件句柄。而nfsd监控程序则被服务器来处理客户端发送过来的请求。由于服务器需要同时处理多个客户机的请求,所以在缺省情况下,操作系统将会自动启动八个nfsd线程。当然,如果NFS服务器特别忙的时候,系统有可能根据实际情况启动更多的线程。
NFS的客户机与服务器之间通过RPC进行通信,通过过程如下:
用户将NFS服务器的共享目录挂载到本地文件系统中。
客户访问NFS目录中的文件时,NFS客户端向NFS服务器发送RPC请求。
NFS服务端接收客户端发来的RPC请求,并将这个请求传递给本地文件访问程序,然后访问服务器主机上的一个本地的磁盘文件。NFS服务器可以同时接收多个NFS客户端的请求,并对其进行并发控制。
NFS客户端向服务器主机发送一个RPC调用,然后等待服务器的应答。NFS客户端收到服务器的应答后,把结果信息展现给用户或应用程序。
对数据进行备份与恢复是保证数据安全和业务连续性的非常成熟的做法。在Linux下的本地文件系统(例如Ext2.Ext3等)中,数据备份和恢复一般采用常规的办法来进行操作,例如使用Tar,Archive等。而对于NFS来说,其数据备份需要采用量身定制的方法来进行。
Linux网络文件系统已经在数据备份和共享领域得到了广泛应用。如何保证其多版本备份,实时恢复是一个关键的问题。
发明内容
本发明的技术任务是提供一种网络文件系统的数据备份及恢复方法。
一种网络文件系统的数据备份及恢复方法,包括:网络文件系统多版本备份技术、网络文件系统数据恢复技术、网络文件系统细粒度恢复技术和数据快速同步技术;其中,
所述的网络文件系统多版本备份技术,基于同步记录文件在某些时刻的状态,在整个系统范围内建立检查点,以保证系统数据能够快速恢复到一个最近的正确状态;
所述的网络文件系统数据恢复技术,基于配置多个站点互为备份,即平时只有一个主站点在服务,其他站点处于同步备份状态,当某个站点出现故障或灾难时,或者被非法入侵者攻破时,系统可以立即分配新的主站点把被破坏的站点替换下来;
所述的网络文件系统细粒度恢复技术,基于采用增量方式的多版本备份恢复技术,同时还对文件的修改日志进行实时备份,在事故发生后进行基于文件操作的精确恢复,并支持运行剔除非法操作的选择性恢复;
所述的数据快速同步技术,基于记录文件写操作的具体参数的方法来生成同步数据,每次生成的数据量比较少,满足及时更新的目的。
优选的,所述的网络文件系统多版本备份技术还包括惰性版本生成算法,生成版本时不进行文件的复制,仅复制目录结构,在新版本生成后到下一版本生成前,如果有文件需要修改,则第一次修改时对该文件进行复制,从而保证该文件状态与对应的版本保证一致;惰性版本生成算法,包括两个部分,版本生成算法和文件第一次修改处理算法。
优选的,所述的版本生成算法,详细步骤为:
找到需要形成版本的最高层目录作为原目录;
利用文件系统提供的函数,生成新的目录节点,称作新目录;
把原目录中的结构复制成新目录;
在原目录中找到所有的子目录,重复2,3步;
把新的子目录对应的inode号替换上一层目录中的老inode号;
重复上述过程,及到目录树的所有目录得到复制为止。
优选的,所述的网络文件系统数据恢复技术中,系统退出情况不同,数据恢复操作也不同,具体方法如下:
(1)当系统退出时间短,数据不一致仅存在于缓冲区中,这时如果退出服务器能立即重新投入使用,则不需要进行额外的数据恢复,数据同步可以通过主服务器同步请求的重试来达到;
(2)当主服务器确认退出服务器退出后,会把未同步的数据写入特定的同步数据中,这时的不一致性包括了缓冲区中的数据和同步数据文件中的数据,这时的数据恢复需要做两个方面的工作:
把同步数据文件中的正确数据一次性发送给退出服务器,退出服务器把它写入到本地的同步数据文件;
建立本地的缓冲区和同步机制,接收同步数据,同时启动数据同步进程,并把部分数据追加到同步数据文件的后面;
(3)如果退出服务器是因为比较严重的故障或灾难而退出的,当服务器退出时的最新版本是i,经过一段时间后,正常系统生成了新的版本,这时主系统会清空同步数据文件,新版本生成后进行记录。对于这种情况,可以有两种处理办法:
基于本地版本的快速恢复,当退出文件服务器本地至少存在一个版本与其他正常机器上的版本相同时,可以先缺少一个最新的正确版本,用本地版本恢复;然后选择一台正常服务器,请求他生成一个正常系统上最新版本与恢复版本的增量升级数据,同步到正常系统的最新版本后,把同步数据文件中的正确数据一次性发送给退出服务器,写入到本地的同步数据文件;
建立本地的缓冲区和同步机制,接收同步数据,同时启动数据同步进程,并把部分数据追加到同步数据文件的后面;
基于分布版本的快速恢复,当停顿时间太长而不存在一个相同版本,或文件服务器数据出现损坏时,直接把正常服务器上的最新版本传送到退出服务器,然后把同步数据文件中的正确数据一次性发送给退出服务器,退出服务器把它写入到本地的同步数据文件;
建立本地的缓冲区和同步机制,接收同步数据,同时启动数据同步进程,并把部分数据追加到同步数据文件的后面。
优选的,所述的网络文件系统细粒度恢复技术,恢复流程如下:
第一步,首先由用户利用数据查询、浏览工具,确定需要恢复的文件操作集合;
第二步,利用相应的日志数据按记录产生顺序逐条生成恢复请求;
第三步,发送给文件服务器端的代理程序;
第四步,由代理程序通过proc文件请求内核恢复模块进行恢复;
第五步,内核恢复模块收到请求后,取出相关数据,然后通过调用底层ext3文件系统基本操作完成该次文件操作的“重放”;
第六步,返回执行结果,通过通过proc文件通知代理程序,代理程序在通知管理端;
第七步,管理端再发送下一条恢复请求,到所有选中的操作全完为止。
优选的,所述的数据快速同步技术,具体步骤如下:
第一步,主文件服务器的NFSD处理客户端发送过来的文件访问请求,并生成同步数据;
第二步,同步数据产生后先放入一个缓冲区,缓冲区中的数据由同步管理程序管理;
第三步,当缓冲区中的数据达到一定数量后,同步管理程序负责把缓冲区中的数据发送到备份文件服务器上;
第四步,同步管理程序根据备份文件服务器中接收缓冲区所返回的应答结果决定是否重发数据;
第五步,当确认某个服务器无法响应后,自动把同步数据定期写入到一个仅可追歼的文件;
第六步,当仅可追歼的文件的写入数量超过一定限制时,并且系统确认已经至少有一个新的版本生成,则可把该仅可追歼的文件清空;
第七步,当同步数据到达备份文件服务器,由接收进程把数据放入接收缓冲区,经过对数据核对无误后,给主文件服务器发送确认信号;
第八步,更新管理进程把接收缓冲区作为输入,从中解析出一个个的顺序的操作日志,从每个日志中得到的操作类型,然后再剩余的数据中按照特定的操作类型提取所需的参数,利用文件系统调用完成相关操作。
本发明的一种网络文件系统的数据备份及恢复方法和现有技术相比,有益效果如下:
1、通过对系统重要数据的快速备份,切实保证系统数据的安全;
2、可以根据指令完成备份系统的实时切入,保证服务不被中断,保证系统持续运行的能力;
3、本发明不但采用了增量方式的多版本恢复技术,同时还对文件的修改日志进行了实时的备份,这样就可以在事故发生后进行基于文件操作的精确恢复,并支持运行剔除非法操作的选择性恢复,这样既能尽量避免因事故造成的数据丢失问题,又能通过选择性恢复较好保证数据的正确性;
3、通过实时记录所有文件的操作日志,系统管理员能够在发生灾难的情况下对日志进行分析和取证,,结合数据的精确恢复,达到发现犯罪线索,获得有效证据的目的,为打击网络犯罪提供有力的技术手段。
附图说明
图1为网络文件系统的结构示意图;
图2为多版本生成的示意图;
图3为一个系统退出后数据状态示意图;
图4为因非实时备份造成恢复时的数据丢失示意图;
图5为NFS文件细粒度恢复日志产生示意图;
图6为恢复流程示意图;
图7为同步数据的产生与流动示意图。
具体实施方式
实施例1:
为保证服务器出现故障后能迅速恢复,要求系统数据能快速恢复到一个最近的正确状态,所有这些都需要多版本技术的支持,通过同步记录文件在某些时刻的状态,在整个系统范围内建立起类似于数据库系统的“检查点”,以保证上述目标的实现。
对于多版本系统而言,需要较好地解决两个方面的问题:性能和空间利用率。对于前者,最主要的是保证在生产版本的时候能够快速完成,同时恢复时也具有较好的性能。此外,系统引入多版本造成的整体开销也应该比较理想。对于第二点,主要考虑是节约磁盘空间,虽然随着硬件技术的不断发展,磁盘空间越来越大,性价比也越来越高,但是当版本较多而且文件数量较多,较大时,引入多版本增加的开销也可能相当可观,同时,较大的空间也意味着版本生成时可能需要更多的写操作,这样也必将影响总体性能。
为了保证引入多版本特性后文件系统仍具有较好的性能,以及保证较高的空间利用率,开发了一种高效的惰性版本生成算法。主要思想是:生成版本时不进行文件的复制,仅复制目录结构,在新版本生成后到下一版本生成前,如果有文件需要修改,则第一次修改时对该文件进行复制,从而保证该文件状态与对应的版本保证一致。
在一般情况下,目录结构的数据量远远小于文件的数据量,因而这种方法可以大大降低版本生成时需要复制的数据量,因而具有较高的性能。同时,这种把单个文件版本生成的实际操作推后到非做不可的时候,并且任意文件在两次版本之间最多生成一次版本,因此这种惰性策略可以使需要实际生成版本的文件数量达到最小,同时还可以把多个文件版本生成操作分散到具体的文件操作中,从而避免了集中的一次性版本生成方法可能造成的服务暂时停顿的问题。
版本生成后的结构如附图2所示。
具体算法包括两个部分,即版本生成算法和文件第一次修改处理算法,版本生成算法主要完成版本生成工作,主要过程如下:
1、找到需要形成版本的最高层目录作为原目录;
2、利用文件系统提供的函数,生成新的目录节点,称作新目录;
3、把原目录中的结构复制成新目录;
4、在原目录中找到所有的子目录,重复2,3步;
5、把新的子目录对应的inode号替换上一层目录中的老inode号;
6、重复上述过程,及到目录树的所有目录得到复制为止。
在上述策略中,新版本并没有复制所有的文件,只是在复制的目录结构中记录下了该文件inode号(即复制了目录的结构,而不是把文件都进行复制,从而节省了存储和计算资源),因此,当有NFS请求需要对文件进行版本生成后的第一次修改时,需要复制该文件,生成新的版本。该实现过程参见如下流程图:
这种文件复制策略其实是一种惰性算法,也即我们常说的写时复制的方法,这个方法在Linux操作系统的子进程对父进程资源的继承中有所有体现。这个策略一方面可以最大限度减少复制文件的数量,另一方面则可以避免瞬间过大的文件复制工作量,影响文件服务的性能。该算法的过程如下:当文件操作作为写操作时,判断该文件是否版本生成后的第一次写操作;若是则利用文件系统提供的底层函数生成一个新的文件,复制源文件的数据到新生成文件,同时把该文件当前版本的inode节点中的版本号置为当前版本号,这样新文件就成为该文件的最新版本。
虽然我们采用的算法可以有较好的性能,存储开销也是最优,但是,每次版本生成肯定会造成服务性能的下降和空间的占用,而这些代价在一个比较安全可靠的环境中是可以适当降低的,即当系统比较安全的时候,可以选择让系统以更低的频率进行版本生成,相反,当系统安全状况比较糟糕的时候,可以通过提高版本生成率适当降低服务性能来获得更高的数据安全性能,当系统处于紧急状态时,设置可以要求立即进行版本生成。
基于这些考虑,本发明采用了自适应的备份策略,灾情评估系统可以动态评估系统的灾情程度,然后可以立即修改版本生成策略,以适应当时的安全要求。
企业应用NFS的一个重要目标就是保证系统的高可用性,即使在出现严重灾难,故障,攻击等情况下能具有较好的生存能力。因此,当一个系统出现故障时,如何快速地恢复系统,迅速投入到服务备份中去是相当重要的,所以,对于文件系统数据的恢复而言,也需要专门的考虑和设计。
本发明被配置成多个站点互为备份的情况,即平时只有一个主站点在服务,其他站点处于同步备份状态,当某个站点出现故障或灾难时,或者是被非法入侵者攻破时,系统可以立即备份分配新的主站点把被破坏的站点替换下来,进入恢复状态,其他正常的站点仍可提供正常的服务。
当然,也存在所有站点均出现故障的情况,但是由于我们采用了多种措施,如动态随机迁移,灾情评估与响应策略等,在配合传统的防火墙,IDS等安全系统,可以极大限度地减少这种几率。因此,我们的数据恢复问题主要考虑上述这种情况,即个别服务器出现故障退出服务而其他系统依然正常的情况。
首先,来分析一下系统退出后数据的情形,主要涉及到退出的服务器和正常的注服务器与备份服务器,如附图3所示:
在上图中,退出服务器最后生成的版本号为i,系统退出后,一方面主文件服务器会察觉到同步数据无法从退出服务器返回结果,这样的话它就会重发同步请求,经过3次重发后,如果依然没有返回信息,则认为该服务器退出服务,因此会把同步数据备份到磁盘文件中,并记录下该服务器在同步数据文件中的其实位置,当有多个文件服务器退出时可以分别识别出来。由于退出系统无法继续保持同步,因此其状态会与工作的文件服务器不一致,具体表现在一下几个方面:
1、当退出时间很短时,数据不一致仅存在于缓冲区中,这时如果退出服务器能立即重新投入使用,则不需要进行额外的数据恢复,数据同步可以通过主服务器同步请求的重试来达到。
2、当主服务器确认退出服务器退出后,会把未同步的数据写入特定的同步数据中,这时的不一致性包括了缓冲区中的数据和同步数据文件中的数据,这时的数据恢复需要做两个方面的工作:
a.把同步数据文件中的正确数据一次性发送给退出服务器,退出服务器把它写入到本地的同步数据文件;
b.建立本地的缓冲区,建立起同步机制,接收同步数据,同时启动数据同步进程,并把部分数据追加到同步数据文件的后面,这时,退出服务器已经恢复了正常工作,实际上也不需要过多的数据恢复工作。
由于主文件服务器一般需要处理文件的读写请求,写请求仅占一部分,需要同步而执行的操作造成的负载要小于主服务器,因此可能在较短的时间内完成同步。当需要退出服务器(此时已经进入同步阶段)成为主服务器时,则必须等所有同步数据同步完成后才能开始服务。
3、如果退出服务器是因为比较严重的故障或灾难而退出的,则可能需要较长时间的处理,如更换硬件,系统重启,甚至重装系统,这时就可能出现一些困难的情况,一种是如附图3所示的,工作正常的系统已经生成了新的版本,如服务器退出时的最新版本是i,经过一段时间后,正常系统生成了新的版本,这时主系统会清空同步数据文件,重新重版本生成后进行记录。对于这种情况,可以有两种处理办法:
a.基于本地版本的快速恢复:当退出文件服务器本地至少存在一个版本与其他正常机器上的版本相同时,可以采用这种恢复策略。具体而言,先缺少一个最新的正确版本,用本地版本恢复,这一过程非常简单快捷,仅涉及到两次inode的修改;然后选择一台正常服务器,请求他生成一个正常系统的最新版本与恢复版本的增量升级数据,这样的数据量不会很大,而且不需要向基于操作的同步那样逐步进行,同步效率非常高,因此可以大大提高恢复速度。同步到正常系统的最新版本后,然后就按照上述第二条的情况进行同步数据文件的同步。
b.基于分布版本的快速恢复:当停顿时间太长而不存在一个相同版本,或文件服务器数据出现损坏(如磁盘故障造成数据损毁)时,需要采用此种方法。具体办法如下:直接把正常服务器上的最新版本传送到退出服务器,然后按照上述第二种情况进行同步数据文件的同步。
正如上面所述,全部服务器均出现问题的概率是很小的,但是,不能简单的排除这种情况的出现,特别是本发明采用数据同步机制,即多个站点的数据是保持快速同步的,这虽然能保证动态迁移的顺利进行,但是也常带来较大的风险,就是会出现数据“污染”的自动传播,当主文件服务器中的文件数据因为某些原因(主要是对文件的非法访问)造成数据非法修改时,会立即传播到其他备份节点,这样的话,不管服务迁移到哪台机器均会出现错误。
针对这种情况,本发明采取了一下措施:当发现非法修改造成数据污染时,系统可以自动命令各站点恢复到指定的版本,如前一版本(可以由管理员配置成前一,二,三个版本);管理员也可以干预这一过程,强制各个站点恢复到同一指定的版本,从而保证全局文件系统使用同一正确版本。
在传统恢复技术中,一方面由于数据备份不是实时进行的,当出现事故需要恢复时,最新的备份数据与最新数据之间存在一个时间差,这样就早成了该时间段内数据的丢失,如附图4所示;同时,传统的数据备份是一定时间段后数据的增量备份,是一段时间内所有文件操作叠加的后果,因而无法精确知道在这段时间内实际数据的变化过程,因而也无法从所有这些操作中定位非法操作,并进行选择性的恢复,以保证数据的正确性。
基于上述考虑,本发明不但采用了增量方式的多版本恢复技术,同时还对文件的修改日志进行了实时的备份,这样就可以在事故发生后进行基于文件操作的精确恢复,并支持运行剔除非法操作的选择性恢复,这样既能尽量避免因事故造成的数据丢失问题,又能通过选择性恢复较好保证数据的正确性,同时,还可以通过对日志的分析,结合数据的精确恢复,达到发现犯罪线索,获得有效证据的目的,为打击网络犯罪提供有力的技术手段。在这里,精确性恢复指的是恢复某一时段的所有操作,一般是在某一版本后的所有操作,不由用户进行选择,而选择性恢复则指的是某一时间段内的所有操作构成的集合的子集,需要恢复的操作由用户通过查询,浏览等工具进行选择。在我们的定义中,实际上可以认为精确恢复为选择性恢复的一个特例。
本发明首先需要有相关的解决方法来记录下具体的操作信息,形成操作日志文件,从而作为分析的证据,如附图5所示。本发明使用的策略是通过修改服务器操作系统内核调用nfsd_write(),nfsd_create()……。从中取到调用处理对象的文件,目录的全部路径,写进文件,在内核中截获相应的文件操作请求。下面以nfsd_rename()系统调用为例,进行扩充,修改而实现记录操作日志的功能。
该文件是在nfs服务器端执行nfs客户机发送过来的修改文件或者是目录的原函数。在这里,可以通过添加自己的代码,来将创建的目录和文件名存入一个磁盘文件当中,以备后面的备份和恢复操作。
获得了操作日志信息,然后就可以进行精确恢复和选择性恢复。首先由用户利用数据查询,浏览工具确定需要恢复的文件操作集,然后利用相应的日志数据按记录产生顺序逐条生成恢复请求,发送给文件服务器端的代理程序,由它通过proc文件请求NFS文件系统恢复模块进行恢复,恢复模块收到请求后,取出相关数据,然后通过调用底层ext3文件系统基本操作完成该次文件操作的“重放”,然后返回执行结果,通过proc文件通知代理程序,代理程序在通知管理端,管理端再发送下一条恢复请求,到所有选中的操作全完为止。具体实现模式请见附图6:
在系统中,个文件服务器之间的数据需要及时同步更新,这样才能保证服务迁移后到新的环境后数据环境一致性,从而保证服务迁移在语义上的正确性。在本发明中,每个文件服务器均采用NFSv3协议向外提供文件服务,当系统开始工作时,管理员会指定一台主服务器,由该服务器负责向外提供服务,其他文件服务器为备份服务器,接收同步数据,进行数据的同步更新,并不对外提供服务,只有当系统决定迁移后,选定的迁移目标对于的文件服务器才成为主文件服务器。
由于主文件服务器负责对外的文件服务,因此,数据同步的发起者应该是主文件服务器,而所有的备份服务器均为被动的同步数据接受者。因此,数据的快速同步包含两个方面的工作:主文件服务器产生同步数据和备份文件服务器接收同步数据完成。具体的数据流向如附图7所示:
为了达到数据快速同步的目的,我们采用了记录文件写操作(包括创建,修改,删除,改名,属性修改等所有的改变文件和目录属性,内容的操作)的具体参数的方法来生成同步数据,这样每次生成的数据量比较少,而且可以满足及时更新的目的。同步数据的格式及代码段如下:
同步数据产生后,先放入一个缓冲区中,而不是立即发送到备份文件服务器,这样可以较大程度改善系统的总体性能。缓冲区中的数据由同步管理进程管理,当达到一定数量时,同步管理程序负责把缓冲区中的数据发送到备份文件服务器上,并根据返回的应答结果决定是否需要重发数据,当确认某个服务器无法响应后,自动把同步数据定期写入一个仅可追歼的文件,以便于随后可能需要的恢复阶段同步的需要,当这个写入数据量超过一定限制时,并且系统确认已经至少有一个新的版本生成,可以把该文件清空。
当数据到达备份文件服务器时,由独立的接收进程负责把数据放入接收缓冲区,经核对数据无误后给主服务器发送确认信号,另一个独立进程即更新管理进程把接收缓冲区作为输入,从中解析出一个个的顺序的操作日志,从每个日志中得到的操作类型,然后再剩余的数据中按照特定的操作类型提取所需的参数,利用文件系统调用完成相关操作。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的几种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
Claims (6)
1.一种网络文件系统的数据备份及恢复方法,其特征在于,包括:网络文件系统多版本备份技术、网络文件系统数据恢复技术、网络文件系统细粒度恢复技术和数据快速同步技术;其中,
所述的网络文件系统多版本备份技术,基于同步记录文件在某些时刻的状态,在整个系统范围内建立检查点,以保证系统数据能够快速恢复到一个最近的正确状态;
所述的网络文件系统数据恢复技术,基于配置多个站点互为备份,即平时只有一个主站点在服务,其他站点处于同步备份状态,当某个站点出现故障或灾难时,或者被非法入侵者攻破时,系统可以立即分配新的主站点把被破坏的站点替换下来;
所述的网络文件系统细粒度恢复技术,基于采用增量方式的多版本备份恢复技术,同时还对文件的修改日志进行实时备份,在事故发生后进行基于文件操作的精确恢复,并支持运行剔除非法操作的选择性恢复;
所述的数据快速同步技术,基于记录文件写操作的具体参数的方法来生成同步数据,每次生成的数据量比较少,满足及时更新的目的。
2.根据权利要求1所述的一种网络文件系统的数据备份及恢复方法,其特征在于,所述的网络文件系统多版本备份技术还包括惰性版本生成算法,生成版本时不进行文件的复制,仅复制目录结构,在新版本生成后到下一版本生成前,如果有文件需要修改,则第一次修改时对该文件进行复制,从而保证该文件状态与对应的版本保证一致;惰性版本生成算法,包括两个部分,版本生成算法和文件第一次修改处理算法。
3.根据权利要求1所述的一种网络文件系统的数据备份及恢复方法,其特征在于,所述的版本生成算法,详细步骤为:
找到需要形成版本的最高层目录作为原目录;
利用文件系统提供的函数,生成新的目录节点,称作新目录;
把原目录中的结构复制成新目录;
在原目录中找到所有的子目录,重复2,3步;
把新的子目录对应的inode号替换上一层目录中的老inode号;
重复上述过程,及到目录树的所有目录得到复制为止。
4.根据权利要求1所述的一种网络文件系统的数据备份及恢复方法,其特征在于,所述的网络文件系统数据恢复技术中,系统退出情况不同,数据恢复操作也不同,具体方法如下:
(1)当系统退出时间短,数据不一致仅存在于缓冲区中,这时如果退出服务器能立即重新投入使用,则不需要进行额外的数据恢复,数据同步可以通过主服务器同步请求的重试来达到;
(2)当主服务器确认退出服务器退出后,会把未同步的数据写入特定的同步数据中,这时的不一致性包括了缓冲区中的数据和同步数据文件中的数据,这时的数据恢复需要做两个方面的工作:
把同步数据文件中的正确数据一次性发送给退出服务器,退出服务器把它写入到本地的同步数据文件;
建立本地的缓冲区和同步机制,接收同步数据,同时启动数据同步进程,并把部分数据追加到同步数据文件的后面;
(3)如果退出服务器是因为比较严重的故障或灾难而退出的,当服务器退出时的最新版本是i,经过一段时间后,正常系统生成了新的版本,这时主系统会清空同步数据文件,新版本生成后进行记录。对于这种情况,可以有两种处理办法:
基于本地版本的快速恢复,当退出文件服务器本地至少存在一个版本与其他正常机器上的版本相同时,可以先缺少一个最新的正确版本,用本地版本恢复;然后选择一台正常服务器,请求他生成一个正常系统上最新版本与恢复版本的增量升级数据,同步到正常系统的最新版本后,把同步数据文件中的正确数据一次性发送给退出服务器,写入到本地的同步数据文件;
建立本地的缓冲区和同步机制,接收同步数据,同时启动数据同步进程,并把部分数据追加到同步数据文件的后面;
基于分布版本的快速恢复,当停顿时间太长而不存在一个相同版本,或文件服务器数据出现损坏时,直接把正常服务器上的最新版本传送到退出服务器,然后把同步数据文件中的正确数据一次性发送给退出服务器,退出服务器把它写入到本地的同步数据文件;
建立本地的缓冲区和同步机制,接收同步数据,同时启动数据同步进程,并把部分数据追加到同步数据文件的后面。
5.根据权利要求1所述的一种网络文件系统的数据备份及恢复方法,其特征在于,所述的网络文件系统细粒度恢复技术,恢复流程如下:
第一步,首先由用户利用数据查询、浏览工具,确定需要恢复的文件操作集合;
第二步,利用相应的日志数据按记录产生顺序逐条生成恢复请求;
第三步,发送给文件服务器端的代理程序;
第四步,由代理程序通过proc文件请求内核恢复模块进行恢复;
第五步,内核恢复模块收到请求后,取出相关数据,然后通过调用底层ext3文件系统基本操作完成该次文件操作的“重放”;
第六步,返回执行结果,通过通过proc文件通知代理程序,代理程序在通知管理端;
第七步,管理端再发送下一条恢复请求,到所有选中的操作全完为止。
6.根据权利要求1所述的一种网络文件系统的数据备份及恢复方法,其特征在于,所述的数据快速同步技术,具体步骤如下:
第一步,主文件服务器的NFSD处理客户端发送过来的文件访问请求,并生成同步数据;
第二步,同步数据产生后先放入一个缓冲区,缓冲区中的数据由同步管理程序管理;
第三步,当缓冲区中的数据达到一定数量后,同步管理程序负责把缓冲区中的数据发送到备份文件服务器上;
第四步,同步管理程序根据备份文件服务器中接收缓冲区所返回的应答结果决定是否重发数据;
第五步,当确认某个服务器无法响应后,自动把同步数据定期写入到一个仅可追歼的文件;
第六步,当仅可追歼的文件的写入数量超过一定限制时,并且系统确认已经至少有一个新的版本生成,则可把该仅可追歼的文件清空;
第七步,当同步数据到达备份文件服务器,由接收进程把数据放入接收缓冲区,经过对数据核对无误后,给主文件服务器发送确认信号;
第八步,更新管理进程把接收缓冲区作为输入,从中解析出一个个的顺序的操作日志,从每个日志中得到的操作类型,然后再剩余的数据中按照特定的操作类型提取所需的参数,利用文件系统调用完成相关操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610712219.3A CN106339278A (zh) | 2016-08-24 | 2016-08-24 | 一种网络文件系统的数据备份及恢复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610712219.3A CN106339278A (zh) | 2016-08-24 | 2016-08-24 | 一种网络文件系统的数据备份及恢复方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106339278A true CN106339278A (zh) | 2017-01-18 |
Family
ID=57824757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610712219.3A Pending CN106339278A (zh) | 2016-08-24 | 2016-08-24 | 一种网络文件系统的数据备份及恢复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106339278A (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106856481A (zh) * | 2017-03-17 | 2017-06-16 | 湖南新云网科技有限公司 | 一种基于透明计算的网络隔离方法、系统、网卡及应用 |
CN107315661A (zh) * | 2017-06-30 | 2017-11-03 | 郑州云海信息技术有限公司 | 一种集群文件系统已删除文件恢复方法及装置 |
CN108647117A (zh) * | 2018-04-26 | 2018-10-12 | 郑州云海信息技术有限公司 | 一种数据备份的方法、主系统、设备及计算机可读存储介质 |
CN109960682A (zh) * | 2019-03-26 | 2019-07-02 | 深圳市科力锐科技有限公司 | 快照点数据访问方法、装置、服务器及存储介质 |
CN109992448A (zh) * | 2017-12-31 | 2019-07-09 | 中国移动通信集团山西有限公司 | 文件变化增量备份方法、装置、设备及介质 |
CN110716903A (zh) * | 2019-09-29 | 2020-01-21 | 中信百信银行股份有限公司 | 一种日志文件清理方法及装置 |
CN110895483A (zh) * | 2018-09-12 | 2020-03-20 | 北京奇虎科技有限公司 | 任务恢复方法及装置 |
CN112579704A (zh) * | 2020-12-24 | 2021-03-30 | 深圳市科力锐科技有限公司 | 数据反向同步方法、装置、系统、镜像服务器和存储介质 |
CN112732479A (zh) * | 2019-10-28 | 2021-04-30 | 阿里巴巴集团控股有限公司 | 一种分布式系统的数据备份方法及装置 |
CN112860632A (zh) * | 2021-01-22 | 2021-05-28 | 重庆六花网络科技有限公司 | 文件处理方法、终端及计算机可读存储介质 |
CN113791935A (zh) * | 2021-09-06 | 2021-12-14 | 广州宝云信息科技有限公司 | 一种数据备份方法、网络节点及系统 |
CN116610634A (zh) * | 2023-07-19 | 2023-08-18 | 南京中孚信息技术有限公司 | 一种网盘终端的文件同步系统及方法 |
CN116670599A (zh) * | 2021-05-12 | 2023-08-29 | 三菱电机株式会社 | 数据传送程序、服务器装置、终端装置、数据传送方法以及数据传送系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080162608A1 (en) * | 2004-09-29 | 2008-07-03 | Nec Corporation | Switch device, system, backup method and computer program |
CN102567136A (zh) * | 2010-12-15 | 2012-07-11 | 研祥智能科技股份有限公司 | 一种计算机系统的备份、还原方法、装置及计算机系统 |
CN103119590A (zh) * | 2010-09-24 | 2013-05-22 | 日立数据系统有限公司 | 在分布式数据库中管理完整性的方法和系统 |
CN104063294A (zh) * | 2014-07-07 | 2014-09-24 | 国家电网公司 | 一种Linux系统备份和恢复方法 |
-
2016
- 2016-08-24 CN CN201610712219.3A patent/CN106339278A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080162608A1 (en) * | 2004-09-29 | 2008-07-03 | Nec Corporation | Switch device, system, backup method and computer program |
CN103119590A (zh) * | 2010-09-24 | 2013-05-22 | 日立数据系统有限公司 | 在分布式数据库中管理完整性的方法和系统 |
CN102567136A (zh) * | 2010-12-15 | 2012-07-11 | 研祥智能科技股份有限公司 | 一种计算机系统的备份、还原方法、装置及计算机系统 |
CN104063294A (zh) * | 2014-07-07 | 2014-09-24 | 国家电网公司 | 一种Linux系统备份和恢复方法 |
Non-Patent Citations (1)
Title |
---|
李洋: "Linux网络文件系统的数据备份及恢复", 《HTTPS://WWW.IBM.COM/DEVELOPERWORKS/CN/LINUX/1406_LIYANG_NFSBACKUPRESTORE/》 * |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106856481A (zh) * | 2017-03-17 | 2017-06-16 | 湖南新云网科技有限公司 | 一种基于透明计算的网络隔离方法、系统、网卡及应用 |
CN107315661A (zh) * | 2017-06-30 | 2017-11-03 | 郑州云海信息技术有限公司 | 一种集群文件系统已删除文件恢复方法及装置 |
CN109992448A (zh) * | 2017-12-31 | 2019-07-09 | 中国移动通信集团山西有限公司 | 文件变化增量备份方法、装置、设备及介质 |
CN108647117A (zh) * | 2018-04-26 | 2018-10-12 | 郑州云海信息技术有限公司 | 一种数据备份的方法、主系统、设备及计算机可读存储介质 |
CN110895483A (zh) * | 2018-09-12 | 2020-03-20 | 北京奇虎科技有限公司 | 任务恢复方法及装置 |
CN109960682A (zh) * | 2019-03-26 | 2019-07-02 | 深圳市科力锐科技有限公司 | 快照点数据访问方法、装置、服务器及存储介质 |
CN109960682B (zh) * | 2019-03-26 | 2021-03-12 | 深圳市科力锐科技有限公司 | 快照点数据访问方法、装置、服务器及存储介质 |
CN110716903A (zh) * | 2019-09-29 | 2020-01-21 | 中信百信银行股份有限公司 | 一种日志文件清理方法及装置 |
CN112732479A (zh) * | 2019-10-28 | 2021-04-30 | 阿里巴巴集团控股有限公司 | 一种分布式系统的数据备份方法及装置 |
CN112579704A (zh) * | 2020-12-24 | 2021-03-30 | 深圳市科力锐科技有限公司 | 数据反向同步方法、装置、系统、镜像服务器和存储介质 |
CN112579704B (zh) * | 2020-12-24 | 2024-04-09 | 深圳市科力锐科技有限公司 | 数据反向同步方法、装置、系统、镜像服务器和存储介质 |
CN112860632A (zh) * | 2021-01-22 | 2021-05-28 | 重庆六花网络科技有限公司 | 文件处理方法、终端及计算机可读存储介质 |
CN112860632B (zh) * | 2021-01-22 | 2022-10-21 | 重庆六花网络科技有限公司 | 文件处理方法、终端及计算机可读存储介质 |
CN116670599A (zh) * | 2021-05-12 | 2023-08-29 | 三菱电机株式会社 | 数据传送程序、服务器装置、终端装置、数据传送方法以及数据传送系统 |
CN113791935A (zh) * | 2021-09-06 | 2021-12-14 | 广州宝云信息科技有限公司 | 一种数据备份方法、网络节点及系统 |
CN113791935B (zh) * | 2021-09-06 | 2023-10-24 | 广州宝云信息科技有限公司 | 一种数据备份方法、网络节点及系统 |
CN116610634A (zh) * | 2023-07-19 | 2023-08-18 | 南京中孚信息技术有限公司 | 一种网盘终端的文件同步系统及方法 |
CN116610634B (zh) * | 2023-07-19 | 2023-09-26 | 南京中孚信息技术有限公司 | 一种网盘终端的文件同步系统及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106339278A (zh) | 一种网络文件系统的数据备份及恢复方法 | |
CN103226502B (zh) | 一种数据灾备控制系统及数据恢复方法 | |
US7594138B2 (en) | System and method of error recovery for backup applications | |
KR101970839B1 (ko) | 서비스의 2차 위치에서의 작업의 재생 기법 | |
CN103677967B (zh) | 一种数据库的远程数据服务系统及任务调度方法 | |
CN111327467A (zh) | 一种服务器系统及其容灾备份方法和相关设备 | |
US11709743B2 (en) | Methods and systems for a non-disruptive automatic unplanned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system | |
US20120311376A1 (en) | Recovery service location for a service | |
US10534796B1 (en) | Maintaining an active-active cloud across different types of cloud storage services | |
US11269927B2 (en) | Transactional replicator | |
WO2007028248A1 (en) | Method and apparatus for sequencing transactions globally in a distributed database cluster | |
CN114466027B (zh) | 一种云原生数据库服务提供方法、系统、设备及介质 | |
US20220317897A1 (en) | Performing various operations at the granularity of a consistency group within a cross-site storage solution | |
US10452680B1 (en) | Catch-up replication with log peer | |
CN106452836B (zh) | 主节点设置方法及装置 | |
US20230004465A1 (en) | Distributed database system and data disaster backup drilling method | |
CN112035062B (zh) | 云计算的本地存储的迁移方法、计算机设备及存储介质 | |
CN110972497A (zh) | 虚拟化平台的容灾方法及装置 | |
CN115658390A (zh) | 容器容灾方法、系统、装置、设备及计算机可读存储介质 | |
CN107357800A (zh) | 一种数据库高可用零丢失解决方法 | |
CN115794499A (zh) | 一种用于分布式块存储集群间双活复制数据的方法和系统 | |
CN114356650A (zh) | 数据备份方法、装置、设备、系统及存储介质 | |
KR20090123518A (ko) | 실시간 데이터 복제 시스템 | |
CN115098300B (zh) | 一种数据库的备份方法、容灾方法、装置及设备 | |
CN111400098B (zh) | 一种副本管理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170118 |
|
WD01 | Invention patent application deemed withdrawn after publication |