在重复数据删除中支持文件并发读写的方法

文档序号:6336598阅读:339来源:国知局
专利名称:在重复数据删除中支持文件并发读写的方法
技术领域
本发明涉及一种文件备份处理方法,特别涉及一种在重复数据删除中支持文件并发读写的方法。
背景技术
重复数据删除是一种数据缩减技术,通常用于基于磁盘的备份系统,主要目的在于减少存储系统中使用的存储容量。它的工作方式是在某个时间周期内查找不同文件中不同位置的重复可变大小数据块。重复的数据块用指示符取代。由于存储系统中总是充斥着大量的冗余数据。为了解决这个问题,节省更多空间,“重复删除”技术便顺理成章地成了人们关注的焦点。采用“重复删除”技术可以将存储的数据缩减为原来的1/20,从而让出更多的备份空间,不仅可以使存储系统上的备份数据保存更长的时间,而且还可以节约离线存储时所需的大量的带宽。中断驱动程序拿到数据传给处理程序后,中断驱动程序就认为完成写入的动作, 给上层返回写入成功的信息(WRITE_0K)。中断驱动程序拷贝欲写入的数据到共享内存,藉以供客户端处理。中断驱动程序就认为此操作请求的处理就已经完毕。但由于处理延迟的存在,可能在服务端还没完全处理完这段数据时,文件备份程序随即又发送新的读取此部分数据(IRP_READ)命令。这样一来,新的数据尚未写入,所以服务端只能将旧有的数据传送至客户端,势必造成客户端接收到错误的数据。

发明内容
鉴于以上的问题,本发明的目的在于提供一种在重复数据删除中支持文件并发读写的方法,解决文件备份程序进行重复数据删除程序时,文件备份程序在存取文件时的延误错误,并且支持文件并发读写。本发明所揭露的在重复数据删除中支持文件并发读写的方法包括以下步骤在客户端中运行中断驱动程序与文件备份程序;执行操作时间的计时,用以确认在操作时间之中是否有操作请求发出;当在操作时间的期间客户端向文件备份程序发送操作请求,用以对目标文件进行相应的文件操作;由中断驱动程序拦截操作请求,中断驱动程序根据操作请求命令服务程序进行目标文件的操作;中断驱动程序将结果信息传送至客户端。本发明提供一种不需修改文件存储系统的内核,也可以使得文件存储系统提供重复数据删除的功能。如此一来,除了可以减缩文件的存储空间外,也可以降低软件开发商的开发成本。以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。


图1为本发明的架构示意图;图2为本发明的运作流程示意图3A为本发明的各项操作请求的流程示意图;图;3B为本发明的各项操作请求的流程示意图;图4为本发明的目标文件的读写的流程示意图。其中,附图标记客户端100中断驱动程序110文件备份程序120重复数据删除程序130目标文件140
具体实施例方式下面结合附图对本发明的结构原理和工作原理作具体的描述本发明应用于具有处理重复数据删除程序的计算机,例如个人电脑、笔记型电脑、或服务器。为方便说明,所以是以一台客户端作为说明,但是其数量并非局限于此。请参考图1所示,其为本发明的架构示意图。客户端100中运行中断驱动程序110、文件备份程序120与重复数据删除程序 130,中断驱动程序110用以拦截备份程序所发出的操作请求(I/O Request Packet, IRP) ο 中断驱动程序110根据存取中断请求将目标文件140转发至客户端100的用户端服务中 (client service)进行重复数据的删除处理。本发明的重复数据删除程序130包括以下步骤,请参考图2所示步骤S210 在客户端中运行中断驱动程序与文件备份程序;步骤S220 执行操作时间的计时,用以确认在操作时间之中是否有操作请求发出;步骤S230 当在操作时间的期间用户端服务向文件备份程序发送操作请求,用以对目标文件进行相应的文件操作;步骤S240 由中断驱动程序拦截操作请求,中断驱动程序根据操作请求命令服务程序进行目标文件的操作;以及步骤S250 中断驱动程序将结果信息传送至客户端。首先,中断驱动程序110负责监听客户端100中是否有发出操作请求。在客户端 100进行操作的期间,若是客户端100向文件备份程序120发送操作请求,则操作请求将由中断驱动程序110导向至用户端服务进行相应的文件操作。在本发明中的操作请求的种类是为文件读取处理(File Read)、文件写入处理(File Write)或剩余容量查询处理 (Query)。而文件写入处理还包括开始写入处理(Start Write)与停止写入处理(Stop Write)。若操作请求为文件读取处理时,则由服务程序将目标文件140写入至共享内存中,用以提供给中断驱动程序Iio读取目标文件140至文件备份程序120。若服务程序为容量查询处理时,则中断驱动程序110返回共享内存当前剩余的容量。若操作请求为文件写入处理时,则由中断驱动程序110将目标文件140写入至环状缓存中,用以提供给服务程序进行重复数据删除程序130。并且在开始写入处理时,会设定写入旗标,藉以令其它客户端100禁用此一文件。同理,在停止写入处理开始时,也会设定停止旗标,令其它客户端100可以使用此一目标文件140。在完成上述的写入/停止写入的相关处理后,将会清除写入旗标(或停止旗标)。为能清楚的描述操作请求与设备底层的操作,因此以微软公司所推出的视窗作业系统为例作为说明,但其运作架构可被运用于其它作业系统中。视窗程序的驱动架构(Window Driver Model, WDM Driver)是在接收到操作请求后,才开始进行输入/输出需求的处理。这其中包含了数据读取、写入、硬体装置控制、电源管理、中断处理以及WDM Driver生命周期的开始与结束等操作,这些都是WDM Driver所必须支持的输入/输出的操作。环状缓存(Ring Buffer)是设置于中断驱动程序与用户端服务之间的共享内存。 环状缓存用于处理IRP_MJ_WRITE命令。IRP_MJ_WRITE命令用以当应用程序要由底层的硬体装置(如硬盘、USB随身碟)写入数据时,会对负责该装置运行的WDM Driver送出IRP_ MJ_WRITE命令。由中断驱动程序110负责将数据写入环状缓存,用户端服务则负责从环状缓存中将数据读出。图3A为用户端服务与中断驱动程序110对于环状缓存的存取示意图。在中断驱动程序110与用户端服务之间设置有一共享内存,共享内存用于处理IRP_MJ_ READ命令。当用户端服务负责写入时,中断驱动程序110负责读出。IRP_MJ_READ命令用以当应用程序要由底层的硬体装置(如硬盘、U盘)读取数据时,会对负责该装置运行的WDM Driver送出IRP_MJ_READ命令。图为用户端服务与中断驱动程序对于共享内存的存取示意图。在处理IRP_MJ_WRITE命令时,对于环状缓存的使用了生产者/消费者的模式 (producer/consumer)。其中,将中断驱动程序110作为生产者(producer),用以负责向其中写入数据;环状缓存为消费者(consumer)。中断驱动程序110会不断查询环状缓存检测是否有足够的剩余空间进行写入操作。当用户端服务作为消费者时,用户端服务负责从环状缓存中读出数据进行处理。 当检测到环状缓存的数据开始有变化时,用户端服务即知道有数据要处理,处理完成后更新用户端服务,以便中断驱动程序110可以继续写入数据。因此在进行目标文件140的读写的处理就如同图4所示,其包括以下步骤步骤S410 读取的目标文件的位移量与长度;步骤S420 判断目标文件的位移量与长度是否存在于环状缓存;步骤S430 若存在时,则将目标文件的位移量与长度复制到共享内存;若不存在时,则跳至步骤S440 ;步骤S440 判断剩余的读取长度是否为0 ;步骤S450 若剩余的读取长度非0时,则从客户端继续取得目标文件的相应数据;步骤S460 将所取得的数据复制到共享内存中;以及步骤S470 若剩余的读取长度0时,则结束目标文件的读取。在中断驱动程序110完成上述的各项操作请求后,将返回一结果信息至客户端 100,并且重新设定操作时间,藉以重复的监听客户端100的运作状况。本发明提供一种不需修改文件存储系统的内核,也可以使得文件存储系统提供重复数据删除的功能。如此一来,除了可以减缩文件的存储空间外,也可以降低软件开发商的开发成本。 当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种在重复数据删除中支持文件并发读写的方法,解决一文件备份程序进行一重复数据删除程序时,该文件备份程序在存取文件时的延误错误,其特征在于,该在重复数据删除中支持文件并发读写的方法包括以下步骤在一客户端中运行一中断驱动程序与该文件备份程序;该客户端向该文件备份程序发送一操作请求,用以对一目标文件进行相应的文件操作;以及由该中断驱动程序拦截该操作请求,该中断驱动程序根据该操作请求执行一服务程序,用以对该目标文件进行相应的操作;若该服务程序为一文件读取处理时,则由该服务程序将该目标文件写入至一共享内存中,用以提供给该中断驱动程序读取该目标文件至该文件备份程序;以及若该服务程序为一文件写入处理时,则由该中断驱动程序将该目标文件写入至一环状缓存中,用以提供给该服务程序进行该重复数据删除程序。
2.根据权利要求1所述的在重复数据删除中支持文件并发读写的方法,其特征在于, 在发送该操作请求前还包括执行一操作时间的计时,用以确认在该操作时间之中是否有该操作请求发出。
3.根据权利要求1所述的在重复数据删除中支持文件并发读写的方法,其特征在于, 该文件写入处理还包括一开始写入处理与一停止写入处理。
4.根据权利要求1所述的在重复数据删除中支持文件并发读写的方法,其特征在于, 若该服务程序为一容量查询处理时,则该中断驱动程序返回该共享内存当前剩余的容量。
5.根据权利要求1所述的在重复数据删除中支持文件并发读写的方法,其特征在于, 在执行该服务程序后还包括该中断驱动程序将一结果信息传送至该客户端。
全文摘要
一种在重复数据删除中支持文件并发读写的方法,解决文件备份程序进行重复数据删除程序时,文件备份程序在存取文件时的延误错误,以及实现文件的并发读写操作。包括在客户端中运行中断驱动程序与文件备份程序;客户端向文件备份程序发送操作请求,用以对目标文件进行相应的文件操作;由中断驱动程序拦截操作请求,中断驱动程序根据操作请求命令向服务程序进行目标文件的操作。
文档编号G06F17/30GK102467569SQ20101055582
公开日2012年5月23日 申请日期2010年11月16日 优先权日2010年11月16日
发明者李鸿明, 王云松, 陈志丰 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1