可左右滑动选省市

文件恢复方法、装置、电子设备及可读存储介质

更新时间:2024-07-01
文件恢复方法、装置、电子设备及可读存储介质 专利申请类型:实用新型专利;
源自:重庆高价值专利检索信息库;

专利名称:文件恢复方法、装置、电子设备及可读存储介质

专利类型:实用新型专利

专利申请号:CN202210845345.1

专利申请(专利权)人:重庆紫光华山智安科技有限公司
权利人地址:重庆市北碚区云汉大道117号附386号

专利发明(设计)人:田琪

专利摘要:本申请提供了一种文件恢复方法、装置、电子设备及可读存储介质,涉及计算机技术领域。该方法应用于存储系统,存储系统中存储与基于文件删除指令进行了文件索引信息修改但未从存储空间删除的文件,对应的删除记录保存在删除列表中,删除记录中包括经对文件索引信息修改后得到的第一文件索引信息;在接收到文件恢复请求时,根据该请求中的目标描述信息,从删除列表中获得包括该目标描述信息的删除记录作为第一目标删除记录,并对该第一目标删除记录中的第一目标文件索引信息进行修改,以通过对待恢复文件的重定向实现文件恢复。如此,进行文件恢复时,不需要使用全盘扫描方式,只需通过查询暂存文件索引关系,即可快速完成特定文件的恢复。

主权利要求:
1.一种文件恢复方法,其特征在于,应用于存储系统,所述存储系统中存储有基于文件删除指令进行了文件索引信息修改的文件,与所述文件删除指令对应的删除记录保存在删除列表中,所述删除记录中包括经对文件索引信息修改后得到的第一文件索引信息,所述方法包括:接收文件恢复请求,其中,所述文件恢复请求中包括待恢复文件的目标描述信息;
根据所述目标描述信息,从删除列表中获得所述待恢复文件对应的第一目标删除记录中的第一目标文件索引信息,其中,所述第一目标删除记录中包括所述目标描述信息;
对所述第一目标文件索引信息进行修改,以通过对所述待恢复文件的重定向实现文件恢复;
其中,所述第一目标文件索引信息中包括第一目标文件全路径,所述第一目标文件全路径中包括回收根目录及位于所述回收根目录下的级联子目录,所述级联子目录为所述待恢复文件对应的目标原始目录,所述目标原始目录的根目录为正常根目录,所述对所述第一目标文件索引信息进行修改,以通过对所述待恢复文件的重定向实现文件恢复,包括:根据所述第一目标文件全路径,判断所述目标原始目录是否存在;
在所述目标原始目录存在时,修改所述第一目标文件索引信息,以将所述待恢复文件重定向至所述目标原始目录中;
在所述目标原始目录不存在时,创建所述目标原始目录,并修改所述第一目标文件索引信息,以将所述待恢复文件重定向至所述目标原始目录中。
2.根据权利要求1所述的方法,其特征在于,
所述删除记录中还包括删除时间,第一文件索引信息中包括第一目标文件全路径,所述目标描述信息为目录名、文件名及文件全路径中的至少任意一项;和/或,所述第一目标文件索引信息中包括第一目标文件全路径,或者包括第一目标文件全路径和标识关联关系,所述标识关联关系中包括所述第一目标文件全路径中的各级目录及文件对应的标识。
3.根据权利要求1所述的方法,其特征在于,所述对所述第一目标文件索引信息进行修改,以通过对所述待恢复文件的重定向实现文件恢复,包括:根据所述存储系统的当前业务量,确定目标文件恢复速度,其中,所述目标文件恢复速度用于指示在恢复文件时使用的速度;
在所述目标文件恢复速度大于0时,进行文件恢复;
在所述目标文件恢复速度为0时,不进行文件恢复直到再次获得的目标文件恢复速度大于0。
4.根据权利要求3所述的方法,其特征在于,所述根据所述存储系统的当前业务量,确定目标文件恢复速度,包括:在所述当前业务量小于第一预设值时,确定所述目标文件恢复速度为第一预设速度;
在所述当前业务量大于或等于所述第一预设值、小于第二预设值时,确定所述文件恢复速度为第二预设速度,其中,所述第二预设速度小于所述第一预设速度;
在所述当前业务量大于所述第二预设值时,确定所述目标文件恢复速度为0。
5.根据权利要求1‑4中任意一项所述的方法,其特征在于,所述方法还包括:在接收到所述文件删除指令的情况下,根据所述文件删除指令对应的待删除文件的第二目标文件索引信息,在回收根目录下创建与所述第二目标文件索引信息中所包括的级联目录相同的目录,作为所述回收根目录下的级联子目录;
将所述待删除文件移动到创建的级联子目录下,以通过修改所述第二目标文件索引信息实现所述待删除文件的重定向,并在所述删除列表中添加与本次删除对应的删除记录。
6.根据权利要求1‑4中任意一项所述的方法,其特征在于,所述删除列表中还包括当前存储的已删除文件的空间占用量,所述方法还包括:判断所述空间占用量是否大于预设占用量;
若大于,则将至少一部分已删除文件作为目标已删除文件,并根据所述目标已删除文件对应的删除记录从存储空间中删除所述目标已删除文件,以及删除所述目标已删除文件在所述删除列表中对应的删除记录,根据所述目标已删除文件的空间占用情况更新所述空间占用量。
7.根据权利要求6所述的方法,其特征在于,在所述判断所述空间占用量是否大于预设占用量之前,所述方法还包括:根据预设的巡检周期,判断当前是否为巡检时刻;
在当前为巡检时刻时,执行所述判断所述空间占用量是否大于预设占用量的步骤。
8.根据权利要求6所述的方法,其特征在于,所述从存储空间中删除所述目标已删除文件,包括:在每删除一个所述目标已删除文件的情况下,停止文件删除预设时长,并在所述预设时长之后继续删除文件。
9.一种文件恢复装置,其特征在于,应用于存储系统,所述存储系统中存储有基于文件删除指令进行了文件索引信息修改的文件,与所述文件删除指令对应的删除记录保存在删除列表中,所述删除记录中包括经对文件索引信息修改后得到的第一文件索引信息,所述装置包括:接收模块,用于接收文件恢复请求,其中,所述文件恢复请求中包括待恢复文件的目标描述信息;
查找模块,用于根据所述目标描述信息,从删除列表中获得所述待恢复文件对应的第一目标删除记录中的第一目标文件索引信息,其中,所述第一目标删除记录中包括所述目标描述信息;
文件恢复模块,用于对所述第一目标文件索引信息进行修改,以通过对所述待恢复文件的重定向实现文件恢复;
其中,所述第一目标文件索引信息中包括第一目标文件全路径,所述第一目标文件全路径中包括回收根目录及位于所述回收根目录下的级联子目录,所述级联子目录为所述待恢复文件对应的目标原始目录,所述目标原始目录的根目录为正常根目录,所述对所述第一目标文件索引信息进行修改,以通过对所述待恢复文件的重定向实现文件恢复,包括:根据所述第一目标文件全路径,判断所述目标原始目录是否存在;
在所述目标原始目录存在时,修改所述第一目标文件索引信息,以将所述待恢复文件重定向至所述目标原始目录中;
在所述目标原始目录不存在时,创建所述目标原始目录,并修改所述第一目标文件索引信息,以将所述待恢复文件重定向至所述目标原始目录中。
10.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现权利要求1‑
8中任意一项所述的文件恢复方法。
11.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1‑8中任意一项所述的文件恢复方法。 说明书 : 文件恢复方法、装置、电子设备及可读存储介质技术领域[0001] 本申请涉及计算机技术领域,具体而言,涉及一种文件恢复方法、装置、电子设备及可读存储介质。背景技术[0002] 现有数据误删找回系统,一般由数据源、数据区分单元、数据存储单元、数据找回单元组成。其中数据区分单元用于将数据源的数据进行区分及分类,数据存储单元主要负责删除数据存储,数据找回单元主要负责找回已删除数据。[0003] 在通用数据恢复方案中,通过数据存储单元对删除数据源的数据进行保护性存储,当触发数据找回时,数据找回单元通过全盘扫描的方式获取恢复数据。此方案存在全盘扫描导致的恢复速度慢、以及无法精确恢复文件的问题,并且因存在全盘扫描动作导致浪费资源。发明内容[0004] 本申请实施例提供了一种文件恢复方法、装置、电子设备及可读存储介质,其能够无需进行全盘扫描即可实现文件恢复,提高时效性,并且能够精确恢复文件。[0005] 本申请的实施例可以这样实现:[0006] 第一方面,本申请实施例提供一种文件恢复方法,应用于存储系统,所述存储系统中存储有基于文件删除指令进行了文件索引信息修改的文件,与所述文件删除指令对应的删除记录保存在删除列表中,所述删除记录中包括经对文件索引信息修改后得到的第一文件索引信息,所述方法包括:[0007] 接收文件恢复请求,其中,所述文件恢复请求中包括待恢复文件的目标描述信息;[0008] 根据所述目标描述信息,从删除列表中获得所述待恢复文件对应的第一目标删除记录中的第一目标文件索引信息,其中,所述第一目标删除记录中包括所述目标描述信息;[0009] 对所述第一目标文件索引信息进行修改,以通过对所述待恢复文件的重定向实现文件恢复。[0010] 第二方面,本申请实施例提供一种文件恢复装置,应用于存储系统,所述存储系统中存储有基于文件删除指令进行了文件索引信息修改的文件,与所述文件删除指令对应的删除记录保存在删除列表中,所述删除记录中包括经对文件索引信息修改后得到的第一文件索引信息,所述装置包括:[0011] 接收模块,用于接收文件恢复请求,其中,所述文件恢复请求中包括待恢复文件的目标描述信息;[0012] 查找模块,用于根据所述目标描述信息,从删除列表中获得所述待恢复文件对应的第一目标删除记录中的第一目标文件索引信息,其中,所述第一目标删除记录中包括所述目标描述信息;[0013] 文件恢复模块,用于对所述第一目标文件索引信息进行修改,以通过对所述待恢复文件的重定向实现文件恢复。[0014] 第三方面,本申请实施例提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现前述实施方式所述的文件恢复方法。[0015] 第四方面,本申请实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述实施方式所述的文件恢复方法。[0016] 本申请实施例提供的文件恢复方法、装置、电子设备及可读存储介质,存储系统中存储与基于文件删除指令进行了文件索引信息修改但未从存储空间删除的文件,与文件删除指令对应的删除记录保存在删除列表中,删除记录中包括经对文件索引信息修改后得到的第一文件索引信息;在接收到文件恢复请求时,根据该文件恢复请求中包括的待恢复文件的目标描述信息,从删除列表中获得包括该目标描述信息的删除记录作为第一目标删除记录,对该第一目标删除记录中的第一目标文件索引信息进行修改,以通过对待恢复文件的重定向实现文件恢复。如此,重定向删除文件目录信息,修改映射关系代替移动文件,减少了文件反复移动产生的性能损耗;并且,进行文件恢复时,不需要使用全盘扫描方式,只需通过查询暂存文件索引关系,即可快速完成特定文件的恢复,可提高时效性以及节省资源。附图说明[0017] 为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。[0018] 图1为现有的一种存储原理示意图;[0019] 图2为本申请实施例提供的电子设备的方框示意图;[0020] 图3为本申请实施例提供的文件恢复方法的流程示意图之一;[0021] 图4为本申请实施例提供的文件创建示意图;[0022] 图5为本申请实施例提供的文件恢复方法的流程示意图之二;[0023] 图6为本申请实施例提供内的文件删除示意图;[0024] 图7为本申请实施例提供的在文件删除后进行文件恢复的示意图;[0025] 图8为本申请实施例提供的文件恢复方法的流程示意图之三;[0026] 图9为本申请实施例提供的文件恢复方法的流程示意图之四;[0027] 图10为本申请实施例提供的文件删除及恢复的示意图;[0028] 图11为本申请实施例提供的文件恢复装置的方框示意图之一;[0029] 图12为本申请实施例提供的文件恢复装置的方框示意图之二。[0030] 图标:100‑电子设备;110‑存储器;120‑处理器;130‑通信单元;200‑文件恢复装置;210‑接收模块;220‑查找模块;230‑文件恢复模块;240‑文件删除模块;250‑清理模块。具体实施方式[0031] 为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。[0032] 因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。[0033] 需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。[0034] 为解决一些误删除场景下的文件恢复问题,目前一般采取以下几种方式。[0035] 方式一,在云数据库中进行数据备份,当需要恢复文件时,需不断拉网络流实现文件恢复。这种方式受网络波动影响大,导致数据恢复的性能损耗过大。[0036] 方式二,从多个节点恢复异常文件,即通过全盘扫描的方式恢复文件。该方式无法做到恢复特定的文件。在利用该方式进行文件恢复时,通常是全盘扫描,找到已经被置灰的位置,再进行数据恢复,无法一开始就找到需要回复的文件。因此,该方式存在无法恢复特定的文件、并且文件恢复速度慢等不足。[0037] 方式三,获取用户终端发送的同步请求以决定是否打开防误删开关,防误删开关保证数据不被误删。但此种策略会可能存在误删除开关的管理不当,导致删除文件动作产生时误删除开关未打开的问题。[0038] 由上述描述可知,现有数据误删找回系统,一般由数据源、数据区分单元、数据存储单元、数据找回单元组成。其中数据区分单元用于将数据源的数据进行区分及分类,数据存储单元主要负责删除数据存储,数据找回单元主要负责找回已删除数据。[0039] 在通用数据恢复方案中,通过数据存储单元对删除数据源的数据进行保护性存储,当触发数据找回时,数据找回单元通过全盘扫描的方式获取恢复数据。此方案存在全盘扫描导致的恢复速度慢、以及无法精确恢复文件的问题,并且因存在全盘扫描动作导致浪费资源。[0040] 为解决误删除场景中数据恢复找回问题,本申请实施例提供了一种文件恢复方法、装置、电子设备及可读存储介质,当文件被删除时将被删除文件重定向,当需要恢复文件时再次对文件进行重定向,从而更加快速、准确地找到待恢复文件,并进行文件恢复,既避免了全盘扫描方式所带来的系统资源损耗,又提高了时效性。[0041] 下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。[0042] 本申请实施例可用于对存储系统中的误删除文件进行恢复。存储系统中可以为存储集群,包括多个存储节点,存储节点中包括至少一个用于存储数据的磁盘。该存储系统可以为纠删系统,也可以是其他系统,具体可由实际需求设置。[0043] 作为一种可能的示例,该存储系统为纠删系统。该纠删系统的存储原理如图1所示。在当前的纠删特性下,文件写入的基本单位是一个object,一个object包含n+m个块。根据实现功能的不同,从上到下把纠删系统分为3层,最上面层为文件层,代表实际的文件,主要负责提供文件;文件层下面是ObjFS层,文件层可以将文件通过文件相关接口传递到ObjFS层,ObjFS层主要负责存储空间的回收和分配;在ObjFS层下面是Object层,主要负责纠删计算和将具体数据块写入到磁盘。[0044] 值得说明的是,该存储系统也可以为另一种纠删系统,相较于图1所示的纠删系统,该纠删系统中不包括ObjFS层,包括文件层及Object层,其中文件负责提供文件,Object层负责纠删计算和将具体数据块写入到磁盘。[0045] 本申请实施例依托现有文件系统实现文件恢复,在文件层实现文件删除与还原。[0046] 请参照图2,图2为本申请实施例提供的电子设备100的方框示意图。所述电子设备100可以是,但不限于,电脑、服务器等。所述电子设备100包括存储器110、处理器120及通信单元130。所述存储器110、处理器120以及通信单元130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。[0047] 其中,存储器110用于存储程序或者数据。所述存储器110可以是,但不限于,随机存取存储器(RandomAccessMemory,RAM),只读存储器(ReadOnlyMemory,ROM),可编程只读存储器(ProgrammableRead‑OnlyMemory,PROM),可擦除只读存储器(ErasableProgrammableRead‑OnlyMemory,EPROM),电可擦除只读存储器(ElectricErasableProgrammableRead‑OnlyMemory,EEPROM)等。[0048] 处理器120用于读/写存储器110中存储的数据或程序,并执行相应地功能。比如,存储器110中存储有文件恢复装置200,所述文件恢复装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器110中的软件功能模块。所述处理器120通过运行存储在存储器110内的软件程序以及模块,如本申请实施例中的文件恢复装置200,从而执行各种功能应用以及数据处理,即实现本申请实施例中的文件恢复方法。[0049] 通信单元130用于通过网络建立所述电子设备100与其它通信终端之间的通信连接,并用于通过所述网络收发数据。[0050] 应当理解的是,图2所示的结构仅为的电子设备100的结构示意图,所述电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。[0051] 请参照图3,图3为本申请实施例提供的文件恢复方法的流程示意图之一。所述方法应用于存储系统,存储系统中存储有基于文件删除指令进行了文件索引信息修改但未从存储空间删除的文件,与所述文件删除指令对应的删除记录保存在删除列表(FileDeleteList,FDL)中,所述删除记录中包括经对文件索引信息修改后得到的第一文件索引信息。下面对文件恢复方法的具体流程进行详细阐述。在本实施例中,所述方法可以包括步骤S130及步骤S14。[0052] 步骤S130,接收文件恢复请求。[0053] 所述文件恢复请求可以是基于用户输入的操作生成的。该文件恢复请求中可以包括待恢复文件的目标描述信息,该目标描述信息可用于确定出需要恢复的文件,即可用于确定出待还原文件对象。该目标描述信息为待恢复文件对应的删除记录中的部分信息。[0054] 步骤S140,根据所述目标描述信息,从删除列表中获得所述待恢复文件对应的第一目标删除记录中的第一目标文件索引信息。[0055] 所述删除列表中包括有与文件删除指令对应的删除记录,每条删除记录中包括经过对文件的原文件索引信息(即进行文件删除之前的文件索引信息)进行修改后的第一文件索引信息。可根据所述目标描述信息,从所述删除列表中,查找到所有包括该目标描述信息的删除记录作为第一目标删除记录。所述第一目标删除记录中的第一文件索引信息,为所述待恢复文件对应的第一目标文件索引信息。[0056] 步骤S150,对所述第一目标文件索引信息进行修改,以通过对所述待恢复文件的重定向实现文件恢复。[0057] 修改所述第一目标文件索引信息,以对所述待恢复进行重定向,从而实现文件恢复。[0058] 如此,重定向删除文件目录信息(即索引信息),修改映射关系代替移动文件,减少了文件反复移动产生的性能损耗;并且,进行文件恢复时,不需要使用全盘扫描方式,只需通过查询暂存文件索引关系,即可快速完成特定文件的恢复,可提高时效性以及节省资源。[0059] 下面首先以举例的方式结合图4对文件创建流程进行解释说明。[0060] 假设需要创建正常文件/root1/dir1/file1。可首先创建根目录/root1(即图4中的Root1),记录目录ID(即目录的唯一标识)为a;而后在/root1目录下创建/dir1(即图4中的Dir1),记录目录ID为b,父目录ID为a;继续在/dir1下创建file1(即图4中的File1),记录文件ID(即文件的唯一标识)为c,父目录ID为b。如此,可得到该正常文件的文件全路径为:/root1/dir1/file1,以及标识对应关系(即标识关联关系)为:(*,a)→(a,b)→(b,c)。可在数据库中创建上述信息,并将该信息作为该文件的文件索引信息中的至少一部分。依次类推,还可以在根目录/root1下创建其他正常文件,并在数据库创建相应的文件索引信息。[0061] 其中,以文件全路径/root1/dir1/file1为例,root1为正常根目录,/root1/dir1为级联目录。文件全路径中包括了各级目录及文件名。标识对应关系中,括号中的第一为表示为父目录ID,第二位标识为自身ID,*表示顶层目录。标识对应关系中包括所对应的文件全路径中的各级目标及文件对应的标识。[0062] 还可以结合需求,创建其他的根目录,然后新创建的根目录下创建正常文件。比如,新创建了根目录Root2,并在该根目录Root2下创建目录Dira2~Dira2N,并在Dira2下创建了文件Fileb2~Fileb2N。同理,可在数据库中创建相应的文件索引信息。[0063] 在通过如上文件创建流程创建完正常文件并保存相应的文件索引的情况下,可结合实际需求删除相应的正常文件。为便于后续进行文件恢复,可通过图5中的步骤S110及步骤S120进行文件删除。[0064] 请参照图5,图5为本申请实施例提供的文件恢复方法的流程示意图之二。在本实施例中,所述方法还包括步骤S110及步骤S120。[0065] 步骤S110,在接收到所述文件删除指令的情况下,根据所述文件删除指令对应的待删除文件的第二目标文件索引信息,在回收根目录下创建与所述第二目标文件索引信息中所包括的级联目录相同的目录,作为所述回收根目录下的级联子目录。[0066] 步骤S120,将所述待删除文件移动到创建的级联子目录下,以通过修改所述第二目标文件索引信息实现所述待删除文件的重定向,并在所述删除列表中添加与本次删除对应的删除记录。[0067] 可选地,在本实施例中,在第一次进行文件删除时,可首先创建回收根目录/$re,该回收根目录为文件删除时进行文件重定向的根目录。可定义该回收根目录的目录ID为r。[0068] 在接收到文件删除指令的情况下,可从数据库中获得与该文件删除指令对应的待删除文件的文件索引信息,作为第二目标文件索引信息。由前述的文件创建流程可知,所述第二目标文件索引信息包括待删除文件的文件全路径。为便于后续描述,将所述第二目标文件索引信息中包括的待删除文件的文件全路径,描述为第二目标文件全路径。[0069] 所述第二目标文件全路径中包括待删除文件对应的级联目录。可在所述回收根目录/$re下创建与所述第二目标文件全路径中所包括的级联目标相同的目录,作为所述回收根目录/$re下的级联子目录。此时,回收根目录/$re与新创建的级联子目录,组成了一个新的级联目录。[0070] 在所述回收根目录/$re下创建级联子目录之后,可将所述待删除文件移动到创建的该级联子目录下,以通过修改所述第二目标文件索引信息,实现对待删除文件的重定向。由此可知,由于所述待删除文件的第二目标文件索引信息已被修改,该待删除文件被重定向至回收根目录下,该待删除文件此时不存在于正常根目录下,视为已删除。[0071] 还可以在所述删除列表中添加与本次删除对应的删除记录,该删除记录中可以包括对所述第二目标文件索引信息修改后的得到的新的文件索引信息、删除时间deltime、待删除文件对应的存储节点id信息等。其中,对所述第二目标文件索引信息修改后的得到的新的文件索引信息,可以包括待删除文件被重定向之后的文件全路径及标识关联关系。[0072] 如此,采用重定向删除文件的方式暂存已删除文件,保存被删除文件的完整目录层级索引关系,进行文件恢复时无需进行全盘扫描查找,只需通过查询暂存文件的索引关系,即可快速完成误删除文件的恢复,保证了恢复过程中对系统影响较低,并且恢复准确。[0073] 在本实施例中,正常文件根据规则存入对应父目录中,挂载于正常根目录下。需要删除该文件时,将文件重定到回收根目录/$re中,并级连创建相同子目录(该子目标与文件的原始目录相同),创建完成后将文件目录信息存放在数据库的删除列表。[0074] 下面以图4创建的正常文件为例,结合图6,对如何进行文件删除进行说明。其中,图6中的Root等同于root,Dir等同于dir,File等同于file,图7及图10同理。[0075] 假设要删除的正常文件的文件全路径为:/root1/dir1/file1,ID对应关系为:(*,a)→(a,b)→(b,c)。[0076] 在不存在回收根目录的情况,可先创建回收根目录/$re,文件重定向根目录ID为r。[0077] 接下来在回收根目录中级联创建子目录:在回收根目录/$re下新建同级文件子目录,如下依次创建/root1、/dir1,/root1的目录ID为a、父目录ID为r,/dir1的目录ID为b、父目录ID为a,此时回收根目录/$re下就存在(*,r)→(r,a)→(a,b)的目录关系。[0078] 然后进行文件重定向:将待删除文件移动到回收目录中/$re/root1/dir1/下,将待删除文件的原始父目录id修改为回收站中同级目录的id,并更新数据库中的文件索引信息。[0079] 待删除文件的原文件索引信息为:文件全路径/root1/dir1/file1、ID原对应关系(*,a)→(a,b)→(b,c),经过重定向后ID对应关系变更为(*,r)→(r,a)→(a,b)→(b,c)、文件全路径变更为/$re/root1/dir1/file1,完成重定向。在将待删除文件放入回收目录后,可以将回收目录对应的当前空间占用量加上被删除文件的预分配大小,以得到当前存储的已删除文件的空间占用量。还可以将正常根目录对应的空间占用量减去被删除文件的预分配大小,得到正常文件已用空间量,可基于该正常文件已用空间量设置正常存储业务是否受到影响的标识。比如,在正常文件已用空间量较少时,设置正常存储业务未受影响的标识。[0080] 在删除上述待删除文件后,可在数据库的删除列表中添加当前存储的已删除文件的空间占用量,以及添加与本次删除对应的删除记录,删除记录中可以包括:删除时间deltime、新的文件索引信息(包括(*,r)→(r,a)→(a,b)→(b,c)及/$re/root1/dir1/file1)、删除时间deltime、待删除文件对应的存储节点id信息等,可供后续文件清理及文件恢复使用。[0081] 由于本次待删除文件为/root1/dir1/file1,因此在完成删除之后,正常根目录Root2下的文件未受影响,与删除之前相同;而正常根目录Root1下则不存在/dir1/file1,对应地,回收根目录下存在/root1/dir1/file1。[0082] 在删除文件之后,用户可基于实际需求发送文件恢复请求。该文件恢复请求中可以包括指定的时间或指定的时间区间,也可以包括某个目录名或级联的目录名,或者包括文件名,或者包括文件全路径等。支持路径、文件及时间区间进行文件还原。[0083] 在获得所述文件恢复请求之后,可根据所述文件恢复请求中包括的时间区间或者文件目录等,在所述删除列表中进行扫描,从而确定出待恢复文件的第一目标索引信息。比如,将所述删除列表中所包括的删除时间与所述文件恢复请求中包括的时间区间进行比对,从而确定出删除时间在该时间区间内的待恢复文件的第一目标索引信息。所述第一目标文件索引信息中可以包括第一目标文件全路径和/或标识关联关系,所述标识关联关系中包括所述第一目标文件全路径中的各级目录及文件对应的标识。可以理解的是,在输入的仅为某个单独的目录名(比如,仅输入了正常根目标的目标名)或者时间区间时,待恢复文件可以为多个。[0084] 作为一种可能的实现方式,在需要进行文件恢复,可以根据存储系统的当前业务量(即当前的存储业务量,或描述为当前的正常业务量)动态调整文件恢复速度,以保证不影响正常存储业务。[0085] 在本方式中,可根据所述存储系统的当前业务量,确定目标文件恢复速度。在所述目标文件恢复速度大于0时,基于所述第一目标文件索引信息进行文件恢复。在所述目标文件恢复速度为0时,不进行文件恢复直到再次获得的目标文件恢复速度大于0。[0086] 可以基于预先设置好的业务量与不同文件恢复速度之间的关系,根据所述存储系统的当前业务量,确定出目标文件恢复速度。其中,所述目标文件恢复速度用于指示在恢复文件时使用的速度。[0087] 作为一种示例,可以通过如下方式确定目标文件恢复速度。在所述当前业务量小于第一预设值时,确定所述目标文件恢复速度为第一预设速度。在所述当前业务量大于或等于所述第一预设值、小于第二预设值时,确定所述文件恢复速度为第二预设速度,其中,所述第二预设速度小于所述第一预设速度。在所述当前业务量大于所述第二预设值时,确定所述目标文件恢复速度为0。[0088] 该方式可采用以下公式表示为:[0089][0090] 其中,w大于1,α大于1。[0091] 该公式表示:在文件恢复过程中,若当前业务量P小于X,恢复的速度为v*w;当前业务量P大于X时,恢复速度为v;当正常业务量大于α*X时,不进行恢复动作,保证数据恢复过程中不对业务产生过多影响。[0092] 可选地,可以定期检查一次存储系统的当前业务量,以便根据当前业务量进一步动态调整文件恢复速度。比如,每5min检查一次。[0093] 在本实施例中,所述第一目标文件索引信息中包括第一目标文件全路径,所述第一文件全路径中包括回收根目录及位于所述回收根目录下的级联子目录,所述级联子目录为所述待恢复文件对应的目标原始目录,所述目标原始目录的根目录为正常根目录。[0094] 在进行文件恢复时,可以根据所述第一目标文件全路径,判断所述目标原始目录是否存在。在所述目标原始目录存在时,修改所述第一目标文件索引信息,以将所述待恢复文件重定向至所述目标原始目录中。在所述目标原始目录不存在时,创建所述目标原始目录,并修改所述第一目标文件索引信息,以将所述待恢复文件重定向至所述目标原始目录中。[0095] 下面接图6所示举例,结合图7,对如何在文件删除后进行文件恢复进行举例说明。[0096] 假设待恢复文件为file1。此时获得的第一目标文件索引信息中包括:第一目标文件全路径/$re/root1/dir1/file1及ID对应关系(*,r)→(r,a)→(a,b)→(b,c)。基于该第一目标文件索引信息可知,所述第一文件全路径中包括回收根目录/$re及位于所述回收根目录/$re下的级联子目录/root1/dir1,所述回收根目录/$re下的级联子目录/root1/dir1为待恢复文件对应的目标原始目录,目标原始目录/root1/dir1的根目录为正常根目录/root1。[0097] 可根据所述第一目标文件全路径/$re/root1/dir1/file1,判断所述待恢复文件的目标原始目录/root1/dir1是否存在。不存在,则根据数据库中的所述第一目标文件全路径/$re/root1/dir1/file1级联创建,以创建出目标原始目录/root1/dir1,然后修改所述第一目标文件索引信息,以将待恢复文件重定向到该目标原始目录中。在存在时,修改所述第一目标文件索引信息,以将待恢复文件重定向到目标原始目录中。此时,该待恢复文件的文件全路径由/$re/root1/dir1/file1变更为/root1/dir1/file1,ID对应关系从(*,r)→(r,a)→(a,b)→(b,c)变更为(*,a)→(a,b*)→(b*,c)。其中,在目标原始目录存在时,b*为b;在目标原始目录不存在时,b*为重建新建的目录。[0098] 在恢复完成一个文件后,可删除所述删除列表中对应的删除记录,以保证删除列表记录的情况与实际情况一致。同时,还可以级联删除回收根目录$re下的空子目录。[0099] 在待恢复文件被移出回收目录后,可将回收目录对应的当前空间占用量减去被恢复(即被还原)文件的预分配大小。还可以将正常根目录对应的空间占用量加上该文件的预分配大小。[0100] 为避免存储系统中存储的已删除文件占用过多存储空间导致正常业务受到影响,可根据实际情况对至少一部分已删除文件进行清理。请参照图8,图8为本申请实施例提供的文件恢复方法的流程示意图之三。在本实施例中,所述方法还可以包括步骤S160及步骤S170。步骤S160及步骤S170的执行时机可以结合实际需求确定,并不一定在执行完步骤S130~步骤S150之后。[0101] 步骤S160,判断所述空间占用量是否大于预设占用量。[0102] 步骤S170,若大于,则将至少一部分已删除文件作为目标已删除文件,并根据所述目标已删除文件对应的删除记录从存储空间中删除所述目标已删除文件,以及删除所述目标已删除文件在所述删除列表中对应的删除记录,根据所述目标已删除文件的空间占用情况更新所述空间占用量。[0103] 在本实施例中,可从数据库的删除列表中获得当前存储的已删除文件的空间占用量。可判断该空间占用量是否大于预设占用量,从而确定是否需要清理已删除文件。其中,所述预设占用量,可以为预设的已删除文件的最大空间(即回收总容量)占用的Y%,Y的具体值可以结合实际需求设置,比如设置为20。[0104] 在该空间占用量不大于所述预设占用量时,可以确定无需对已删除文件进行清理。[0105] 在该空间占用量大于所述预设占用量时,可以确定需要对已删除文件进行清理。可选地,在需要清理已删除文件时,可以将当前存储系统中存储的所有已删除文件均作为目标已删除文件,或者选定一部分已删除文件作为目标已删除文件。比如,可按照删除时间从早到完成的顺序对已删除文件进行排序,将一定数量的删除时间早的已删除文件作为目标已删除文件,即优先清理删除时间最早的文件。还可以基于当前的空间占用量与目标占用量之差,并结合删除时间的早晚,选出目标已删除文件,以便优先清理删除时间最早的文件,并且在完成所有的目标已删除文件的清理后,空间占用量小于或等于所述目标占用量。所述目标占用量小于预设占用量。[0106] 由于是根据删除列表中的删除记录确定出所述目标已删除文件,因此可确定目标已删除文件对应的删除记录,可将该删除记录成为第二目标删除记录。[0107] 在确定出所述目标已删除文件的情况下,可根据所述目标已删除文件在所述删除列表中对应的第二目标删除记录,从存储空间中删除所述目标已删除文件。比如,可以基于目标已删除文件对应的第二目标删除记录中的文件索引信息及存储节点id信息等,从相应的存储节点的存储空间中删除目标已删除文件。[0108] 还可以在完成删除时,在所述删除列表中删除所述第二目标删除记录,以及根据所述目标已删除文件的空间占用情况更新所述空间占用量。同时,可级联删除回收根目录/$re下的空子目录。[0109] 可选地,在清理所述目标已删除文件时,可以在每删除一个所述目标已删除文件的情况下,停止文件删除预设时长,并在所述预设时长之后继续删除文件。例如,在清理回收目录中文件时,每清理一个文件可睡眠Tms,以减少清理已删除文件对正常业务的影响。[0110] 为了尽量减小文件清理对正常业务的情况,如图9所示,在步骤S160之前,所述方法还可以包括步骤S155。[0111] 步骤S155,根据预设的巡检周期,判断当前是否为巡检时刻。[0112] 在本实施例,可基于预先设置好的巡检周期,确定当前是否为巡检时刻。若是,则从所述数据库的删除列表中获得当前存储的已删除文件的空间占用量进行检查,一旦满足清理条件(即空间占用量大于预设占用量),则触发文件清理。如此,通过定期查询空间占用量的方式判断是否触发文件清理,既可以节省资源,同时可以降低为存储系统正常业务的影响。[0113] 在本实施例中,当文件被删除时,采用重定向删除文件的方式暂存已删除文件,保存被删除文件的完整目录层级索引关系,进行文件恢复时无需进行全盘扫描查找,只需通过查询暂存文件的索引关系,即可快速完成误删除文件的恢复,保证了恢复过程中对系统影响较低,并且恢复准确。并且在不用关停正常业务的情况下,定期巡检业务量,动态调整文件恢复速度,避免影响正常业务,提高系统的可用性。同时,定时巡检暂存文件根目录的空间占用情况,当暂存的已删除文件的空间占用量超出设定阈值时,则按照文件删除时间先后顺利自动清理已删除文件,释放存储空间,确保有足够的存储空间支撑正常业务。[0114] 下面结合图10,以针对单个文件被误删除需恢复为例,对上述文件恢复方法进行举例说明。[0115] 假设误删除文件的文件全路径为/video/dir1/file1,对应的ID关系为(*,0)→(0,1)→(1,2)。其中,/video的目录ID为0,/dir1的目录ID为1,/file1的文件ID为2。[0116] 误删除“/video/dir1/file1”文件。触发删除文件流程,在回收目录/$re/根目录下创建同样的级联目录“/$re/video/dir1”,对应的ID关系为(*,999)→(999,0)→(0,1)。其中,/$re的目录ID为999。重定向file1的父目录信息为回收根目录/$re下的dir1,对应的ID关系变更为(*,999)→(999,0)→(0,1)→(1,2),再删除正常文件目录下的目录信息,更新最新的索引信息于删除列表,并更新回收目录对应的空间占用量信息以及正常文件已用空间量信息。[0117] 用于可输入需要恢复的文件的全路径“/$re/video/dir1/file1”。假设当前业务量为100M/s,巡检线程可5分钟检查一次当前业务量。若预先设定在业务量小于设置的业务量阈值150M/s时,对应的速度为50M/s,则由于当前业务量为100M/s小于业务量阈值150M/s,因此可以确定恢复速度为50M/s,可直接进入数据库的数据表进行查找,当找到全路径“/$re/video/dir1/file1”时,可在删除列表中删除包括该全路径“/$re/video/dir1/file1”的删除记录。在该文件的目标原始目录未被删除的情况下,于正常目录级联目录放回“/video/dir1/”,对应ID关系为(*,0)→(0,1),此时重定向file1至正常目录,ID关系对应为(*,0)→(0,1)→(1,2),并更新已删除文件的空间占用量信息及正常文件已用空间量信息。[0118] 当定期巡检线程检测到已删除文件的空间占用量大于已删除文件的总容量的20%时,可读取数据库的删除列表中存放的已删除文件的文件索引信息以进行删除操作。每次删除文件后可睡眠30ms,避免占用过多资源。可按照时间从前到后删除至占总容量5%后,停止删除,然后更新已删除文件的空间占用量信息。[0119] 结合上述举例可知,在本申请实施例提供的文件恢复方法中,重定向删除文件目录信息,修改映射关系代替移动文件,减少了文件反复移动产生的性能损耗。进行文件恢复时,不需要使用全盘扫描方式,只需通过查询暂存文件索引关系,即可快速完成误删除文件恢复,保证恢复过程中对系统影响较低,并且恢复准确快速。并定期巡检存储业务量动态调整文件恢复速度,达到了不用关停正常业务便可进行数据恢复,保证了文件恢复过程中对正常业务影响较小,提高了系统可用性。还定期巡检已删除文件的空间占用量,当超出预设阈值时,自动按照时间前后顺序清理暂存文件,保证系统中已删除文件的空间占用量可控,避免了暂存过多被删除文件导致影响正常存储业务。[0120] 为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种文件恢复装置200的实现方式,可选地,该文件恢复装置200可以采用上述图2所示的电子设备100的器件结构。进一步地,请参照图11,图11为本申请实施例提供的文件恢复装置200的方框示意图之一。需要说明的是,本实施例所提供的文件恢复装置200,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。[0121] 所述文件恢复装置200应用于存储系统,所述存储系统中存储有基于文件删除指令进行了文件索引信息修改的文件,与所述文件删除指令对应的删除记录保存在删除列表中,所述删除记录中包括经对文件索引信息修改后得到的第一文件索引信息。该文件恢复装置200可以包括:接收模块210、查找模块220及文件恢复模块230。[0122] 所述接收模块210,用于接收文件恢复请求。其中,所述文件恢复请求中包括待恢复文件的目标描述信息。[0123] 所述查找模块220,用于根据所述目标描述信息,从删除列表中获得所述待恢复文件对应的第一目标删除记录中的第一目标文件索引信息。其中,所述第一目标删除记录中包括所述目标描述信息。[0124] 所述文件恢复模块230,用于对所述第一目标文件索引信息进行修改,以通过对所述待恢复文件的重定向实现文件恢复。[0125] 请参照图12,图12为本申请实施例提供的文件恢复装置200的方框示意图之二。在本实施例中,所述文件恢复装置200还可以包括文件删除模块240。[0126] 所述文件删除模块240,用于:在接收到所述文件删除指令的情况下,根据所述文件删除指令对应的待删除文件的第二目标文件索引信息,在回收根目录下创建与所述第二目标文件索引信息中所包括的级联目录相同的目录,作为所述回收根目录下的级联子目录;将所述待删除文件移动到创建的级联子目录下,以通过修改所述第二目标文件索引信息实现所述待删除文件的重定向,并在所述删除列表中添加与本次删除对应的删除记录。[0127] 请再次参照图12,在本实施例中,所述删除列表中还包括当前存储的已删除文件的空间占用量,所述文件恢复装置还可以包括清理模块250。[0128] 所述清理模块250,用于判断所述空间占用量是否大于预设占用量;若大于,则将至少一部分已删除文件作为目标已删除文件,并根据所述目标已删除文件对应的删除记录从存储空间中删除所述目标已删除文件,以及删除所述目标已删除文件在所述删除列表中对应的删除记录,根据所述目标已删除文件的空间占用情况更新所述空间占用量。[0129] 所述清理模块250,还用于在判断所述空间占用量是否大于预设占用量之前,根据预设的巡检周期,判断当前是否为巡检时刻。在当前为巡检时刻时,所述清理模块250用于判断所述空间占用量是否大于预设占用量。[0130] 可选地,上述模块可以软件或固件(Firmware)的形式存储于图2所示的存储器110中或固化于的电子设备100的操作系统(OperatingSystem,OS)中,并可由图2中的处理器120执行。同时,执行上述模块所需的数据、程序的代码等可以存储在存储器110中。[0131] 本申请实施例还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的文件恢复方法。[0132] 综上所述,本申请实施例提供一种文件恢复方法、装置、电子设备及可读存储介质,存储系统中存储与基于文件删除指令进行了文件索引信息修改但未从存储空间删除的文件,与文件删除指令对应的删除记录保存在删除列表中,删除记录中包括经对文件索引信息修改后得到的第一文件索引信息;在接收到文件恢复请求时,根据该文件恢复请求中包括的待恢复文件的目标描述信息,从删除列表中获得包括该目标描述信息的删除记录作为第一目标删除记录,对该第一目标删除记录中的第一目标文件索引信息进行修改,以通过对待恢复文件的重定向实现文件恢复。如此,重定向删除文件目录信息,修改映射关系代替移动文件,减少了文件反复移动产生的性能损耗;并且,进行文件恢复时,不需要使用全盘扫描方式,只需通过查询暂存文件索引关系,即可快速完成特定文件的恢复,可提高时效性以及节省资源。[0133] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。[0134] 另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。[0135] 所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read‑OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。[0136] 以上所述仅为本申请的可选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

专利地区:重庆

专利申请日期:2022-07-18

专利公开日期:2024-06-18

专利公告号:CN115098447B

电话咨询
读内容
搜本页
回顶部