一种回收站系统及文件回收方法与流程

文档序号:20113043发布日期:2020-03-17 19:25阅读:194来源:国知局
一种回收站系统及文件回收方法与流程
本申请涉及计算机
技术领域
,特别是涉及一种回收站系统及文件回收方法。
背景技术
:随着计算机技术在实际应用中的快速发展,以及海量的数据产生,分布式文件系统的应用越来越广泛,例如,nas(networkattachedstorage,网络附加存储)文件系统。多台独立的电子设备通过网络建立庞大、可扩展的集群系统,通过多种共享协议提供服务,用户在使用中可以像使用本地文件系统一样浏览、读写文件系统中的数据。但是,用户在客户端删除挂载在分布式文件系统里面的文件的时候,文件将直接被删除,当文件是被误删除时,针对误删文件无法恢复。技术实现要素:本申请实施例的目的在于提供一种回收站系统及文件回收方法,用以解决相关技术中针对分布式文件系统无法实现对已删除文件进行回收的问题。具体技术方案如下:本申请实施例提供一种回收站系统,包括:位于服务端的内核客户端和多个元数据服务mds模块,所述mds模块,包括:分发子模块和处理子模块,其中:所述内核客户端,用于接收用户客户端发送的文件删除请求,所述文件删除请求用于请求删除文件;向所述mds模块的所述分发子模块,发送所述文件删除请求;所述分发子模块,用于在接收到所述文件删除请求后,当请求删除的所述文件所位于的目录中已创建回收站时,将所述文件删除请求转换为文件移动请求,所述文件移动请求用于请求将所述文件移动至所述回收站;向所述处理子模块发送所述文件移动请求;所述处理子模块,用于在接收到所述文件移动请求后,将所述文件移动至所述回收站。进一步的,所述处理子模块,还用于在将所述文件移动至所述回收站后,生成表示所述文件已删除的文件删除响应;向所述内核客户端发送所述文件删除响应;所述内核客户端,还用于向所述用户客户端发送所述文件删除响应。进一步的,所述处理子模块,具体用于在将所述文件移动至所述回收站后,生成表示所述文件已移动至所述回收站的文件移动响应;将所述文件移动响应转换为表示所述文件已删除的文件删除响应。进一步的,所述处理子模块,还用于在将所述文件移动至所述回收站后,生成表示所述文件已被移动至所述回收站的文件信息记录,并存储所述文件信息记录。进一步的,还包括:工作模块,用于基于所述文件信息目录,对所述回收站中的所述文件进行操作。进一步的,所述处理子模块,具体用于按照对象映射omap结构,将文件信息记录存储在元数据池中。进一步的,所述分发子模块,还用于在将所述文件删除请求转换为用于请求将所述文件移动至所述回收站的文件移动请求之前,确定所述文件是否满足预设的回收条件,如果满足,执行所述将所述文件删除请求转换为用于请求将所述文件移动至所述回收站的文件移动请求的步骤。进一步的,所述分发子模块,具体用于获取针对所述回收站预先配置的回收配置信息,基于所述回收配置信息,确定所述文件是否满足预设的回收条件。进一步的,所述mds模块,还包括:配置子模块,用于接收管理客户端发送的针对所述回收站的配置请求,所述配置请求中携带所述回收站的回收配置信息;在所述配置子模块所属的mds模块的缓存中存储所述回收配置信息;向其他mds模块的配置子模块发送所述回收配置信息,以使其他mds模块在自身的缓存中存储所述回收配置信息。进一步的,针对所述回收站预先配置的所述回收配置信息存储在元数据池中。进一步的,所述mds模块,还包括:配置子模块,用于接收管理客户端发送的针对所述回收站的配置请求,所述配置请求中携带所述回收站的回收配置信息;按照omap结构,将所述回收配置信息存储在所述元数据池中。进一步的,所述配置子模块,还用于在将所述回收配置信息存储在所述元数据池中之后,在所述配置子模块所属的mds模块的缓存中存储所述回收配置信息;向其他mds模块的配置子模块发送所述回收配置信息,以使其他mds模块在自身的缓存中存储所述回收配置信息。进一步的,所述分发子模块,具体用于向自身所属的mds模块的处理子模块或者其他mds模块的处理子模块,发送所述文件移动请求。本申请实施例还提供一种文件回收方法,应用于回收站系统中的元数据服务mds模块,所述mds模块,包括:分发子模块和处理子模块,所述方法包括:所述分发子模块在接收到用于请求删除文件的文件删除请求后,当请求删除的所述文件所位于的目录中已创建回收站时,将所述文件删除请求转换为文件移动请求,所述文件移动请求用于请求将所述文件移动至所述回收站;所述分发子模块向所述处理子模块发送所述文件移动请求;所述处理子模块在接收到所述文件移动请求后,将所述文件移动至所述回收站。进一步的,在所述将所述文件移动至所述回收站之后,还包括:所述处理子模块生成表示所述文件已删除的文件删除响应;所述处理子模块返回所述文件删除响应。进一步的,所述处理子模块生成表示所述文件已删除的文件删除响应,包括:所述处理子模块生成表示所述文件已移动至所述回收站的文件移动响应;将所述文件移动响应转换为表示所述文件已删除的文件删除响应。进一步的,在所述在将所述文件移动至所述回收站后之后,还包括:所述处理子模块生成表示所述文件已被移动至所述回收站的文件信息记录,并存储所述文件信息记录。进一步的,所述存储所述文件信息记录,包括:所述处理子模块按照对象映射omap结构,将文件信息记录存储在元数据池中。进一步的,在所述将所述文件删除请求转换为用于请求将所述文件移动至所述回收站的文件移动请求之前,还包括:所述分发子模块确定所述文件是否满足预设的回收条件,如果满足,执行所述将所述文件删除请求转换为用于请求将所述文件移动至所述回收站的文件移动请求的步骤。进一步的,所述分发子模块确定所述文件是否满足预设的回收条件,包括:所述分发子模块获取针对所述回收站预先配置的回收配置信息,基于所述回收配置信息,确定所述文件是否满足预设的回收条件。进一步的,所述mds模块,还包括:配置子模块,所述回收站系统包括多个mds模块,所述方法,还包括:所述配置子模块接收管理客户端发送的针对所述回收站的配置请求,所述配置请求中携带所述回收站的回收配置信息;在所述配置子模块所属的mds模块的缓存中存储所述回收配置信息;向其他mds模块的配置子模块发送所述回收配置信息,以使其他mds模块在自身的缓存中存储所述回收配置信息。进一步的,针对所述回收站预先配置的所述回收配置信息存储在元数据池中。进一步的,所述mds模块,还包括:配置子模块,所述方法,还包括:所述配置子模块接收管理客户端发送的针对所述回收站的配置请求,所述配置请求中携带所述回收站的回收配置信息;按照omap结构,将所述回收配置信息存储在所述元数据池中。进一步的,所述回收站系统包括多个mds模块;在所述将所述回收配置信息存储在所述元数据池中之后,还包括:所述配置子模块在所述配置子模块所属的mds模块的缓存中存储所述回收配置信息;向其他mds模块的配置子模块发送所述回收配置信息,以使其他mds模块在自身的缓存中存储所述回收配置信息。进一步的,所述回收站系统包括多个mds模块;所述分发子模块向所述处理子模块发送所述文件移动请求,包括:所述分发子模块向自身所属的mds模块的处理子模块或者其他mds模块的处理子模块,发送所述文件移动请求。本申请实施例还提供一种文件回收装置,应用于回收站系统中的元数据服务mds模块,包括:分发子模块,用于在接收到用于请求删除文件的文件删除请求后,当请求删除的所述文件所位于的目录中已创建回收站时,将所述文件删除请求转换为文件移动请求,所述文件移动请求用于请求将所述文件移动至所述回收站;以及向所述处理子模块发送所述文件移动请求;处理子模块,用于在接收到所述文件移动请求后,将所述文件移动至所述回收站。本申请实施例还提供一种电子设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现上述任一所述的文件回收方法的步骤。本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的文件回收方法的步骤。本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的文件回收方法。本申请实施例有益效果:本申请实施例提供的回收站系统,包括:位于服务端的内核客户端和多个mds模块,mds模块,包括:分发子模块和处理子模块,其中:内核客户端用于接收用户客户端发送的文件删除请求,文件删除请求用于请求删除文件;向mds模块的分发子模块,发送文件删除请求;分发子模块用于在接收到文件删除请求后,当请求删除的文件所位于的目录中已创建回收站时,将文件删除请求转换为文件移动请求,文件移动请求用于请求将文件移动至回收站;向处理子模块发送文件移动请求;处理子模块用于在接收到文件移动请求后,将文件移动至回收站。采用该回收站系统,通过在服务端将用户客户端发送的文件删除请求转换为文件移动请求,实现将请求删除的文件移动至预先创建的回收站,即实现了对删除文件的回收。当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的回收站系统的结构示意图;图2为本申请实施例提供的文件回收方法的流程图;图3为本申请实施例提供的另一文件回收方法的流程图;图4为本申请实施例中配置回收站的回收配置信息的流程图;图5为本申请实施例中更新回收站的回收配置信息的流程图;图6a为本申请实施例提供的文件回收装置的结构示意图;图6b为本申请实施例提供的另一文件回收装置的结构示意图;图7为本申请实施例提供的电子设备的结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请实施例提供一种回收站系统,如图1所示,包括:位于服务端的内核客户端和多个mds(metadataserver,元数据服务)模块,mds模块包括:分发子模块和处理子模块,其中:内核客户端,用于接收用户客户端发送的文件删除请求,文件删除请求用于请求删除文件;向mds模块的分发子模块,发送文件删除请求;分发子模块,用于在接收到文件删除请求后,当请求删除的该文件所位于的目录中已创建回收站时,将文件删除请求转换为文件移动请求,文件移动请求用于请求将该文件移动至回收站;向处理子模块发送文件移动请求;处理子模块,用于在接收到文件移动请求后,将该文件移动至回收站。基于同一发明构思,本申请实施例还提供了一种文件回收方法,应用于回收站系统中的mds模块,mds模块包括:分发子模块和处理子模块,如图2所示,该方法包括:步骤21、分发子模块在接收到用于请求删除文件的文件删除请求后,当请求删除的该文件所位于的目录中已创建回收站时,将文件删除请求转换为文件移动请求,文件移动请求用于请求将该文件移动至回收站。步骤22、分发子模块向处理子模块发送文件移动请求。步骤23、处理子模块在接收到文件移动请求后,将该文件移动至回收站。采用上述回收站系统以及文件回收方法,通过在服务端将用户客户端发送的文件删除请求转换为文件移动请求,实现将请求删除的文件移动至预先创建的回收站,即实现了对已删除文件的回收。本申请实施例提供的方案中,请求删除的文件可以为具有具体内容或用途的文件,例如,文本文档、图片、程序、软件等,也可以为目录,在一些操作系统中,目录即相当于文件夹。下面结合附图,对本申请实施例提供的回收站系统及文件回收方法进行详细描述。在本申请的一个实施例中,提供一种基于上述回收站系统的文件回收方法,应用于回收站系统中的mds模块,如图3所示,包括如下步骤:步骤301、分发子模块接收用于请求删除文件的文件删除请求。本步骤中,该文件删除请求来自用户客户端,在一个实施例中,回收站系统可以包含有内核客户端,用于与用户客户端之间进行消息交互,用户客户端将文件删除请求发送给内核客户端,内核客户端再将文件删除请求转发给mds模块的分发子模块,即分发子模块接收内核客户端转发的该文件删除请求。由于回收站系统包括多个mds模块,内核客户端在接收到用户客户端发送的文件删除请求后,可以基于预设的任务分发策略,从多个mds模块中选择用于处理该文件删除请求的mds模块,并向所选择的mds模块的分发子模块发送该文件删除请求。其中,预设的任务分发策略可以采用已知的各种可行的策略,本申请中对此不做限定。本申请实施例中,文件删除请求中可以携带后续处理所需要的各种文件信息,例如,文件标识(可以是文件名称),文件路径等。本步骤中,该文件删除请求可以是unlink(文件删除)请求,也可以是rmdir(目录删除)请求,其中,rmdir请求用于请求删除目录。步骤302、分发子模块确定请求删除的该文件所位于的目录中是否已经创建回收站,如果已经创建,执行步骤303,如果未创建,执行步骤309。本步骤中,针对目录创建回收站,可以理解为在该目录下创建了一个隐藏的回收目录,该回收目录即作为回收站。本申请实施例中,mds模块的该分发子模块中可以具有请求分发接口(dispatch_client_request),由该请求分发接口执行本步骤中的上述判断操作。步骤303、分发子模块确定请求删除的该文件是否满足预设的回收条件,如果满足,执行步骤304,如果不满足,执行步骤309。在一个实施例中,分发子模块可以获取针对回收站预先配置的回收配置信息,并基于该回收配置信息,确定请求删除的该文件是否满足预设的回收条件。其中,回收条件可以基于实际应用的需要进行灵活设置,本申请实施例中,回收条件可以至少采用如下条件之一:回收条件1:当文件的类型为预设类型,确定满足回收条件1。回收条件2:当文件的大小不大于最大文件阈值,确定满足回收条件2;或者当文件的大小不小于最小文件阈值,确定满足回收条件2;或者当文件的大小位于预设大小范围内,确定满足回收条件2。回收条件3:当回收站中已存储文件的数据总量未达到预设配额时,确定满足回收条件3。上述回收条件中涉及的预设类型、最大文件阈值、最小文件阈值、预设大小范围、预设配额等,均可以作为回收配置信息。上述回收配置信息可以预先存储在缓存中,分发子模块可以从缓存中获取回收配置信息,以便更快速的获取到回收配置信息,进一步的提升文件删除的处理效率。有关针对回收站的回收配置信息的配置流程,在后续实施例中进行详细描述。本步骤中的判断操作,也可以由上述请求分发接口执行。本申请实施例中,请求分发接口针对所接收的请求的类型,选择对应的处理函数进行处理,例如,当接收到的是文件创建请求时,选择用于处理文件创建请求的处理函数进行处理,当接收到的是文件移动请求时,选择用于处理文件移动请求的处理函数进行处理。针对接收的该文件删除请求,当上述步骤302和步骤303中分别为已经创建和满足回收条件时,选择用于进行请求转换的处理函数进行处理,详见下述步骤304。步骤304、分发子模块将该文件删除请求转换为文件移动请求,该文件移动请求用于请求将该文件移动至回收站。本步骤中,可以理解为将unlink/rmdir(文件删除/目录删除)请求,转换为rename(文件移动)请求。具体的,可以从该文件删除请求中获取所携带的文件信息,并按照文件移动请求的消息格式,生成携带有该文件信息的文件移动请求;也可以按照文件移动请求的消息格式,将该文件删除请求中表示请求类型为删除类型的类型标识,修改为表示请求类型为移动类型的类型标识,得到携带有该文件信息的文件移动请求。转换后得到的该文件移动请求中,可以携带该文件删除请求中携带的文件信息,例如,文件标识、文件路径等。步骤305、分发子模块向处理子模块发送该文件移动请求。本申请实施例中采用的是回收站系统,其中包括多个mds模块,本步骤中,分发子模块可以向自身所属的mds模块的处理子模块发送该文件移动请求,也可以向其他mds模块的处理子模块发送该文件移动请求,进一步的,可以将文件移动请求先发送至内核客户端,然后由内核客户端从多个mds模块中选择并转发给所选择的mds模块的处理子模块。步骤306、处理子模块在接收到该文件移动请求后,将该文件移动至回收站。步骤307、处理子模块在将该文件移动至回收站之后,生成表示该文件已删除的文件删除响应,并返回该文件删除响应。在一个实施例中,按照文件移动请求后的处理逻辑,可以先生成表示该文件已移动至回收站的文件移动响应,由于该文件被移动至回收站,所以可以进一步的,将该文件移动响应转换为表示该文件已删除的文件删除响应。具体的,可以从该文件移动响应中获取所携带的文件信息,并按照文件删除响应的消息格式,生成携带有该文件信息的文件删除响应;也可以按照文件删除响应的消息格式,将该文件移动响应中国年表示响应类型为移动类型的类型标识,修改为表示响应类型为删除类型的类型标识,得到携带有该文件信息的文件删除响应。本步骤中,处理子模块可以向内核客户端发送该文件删除响应,并由内核客户端向用户客户端返回该文件删除响应,以使用户客户端获知该文件已删除。步骤308、处理子模块在将该文件移动至回收站之后,进一步的,还可以生成表示该文件已被移动至回收站的文件信息记录,并存储该文件信息记录。所存储的该文件信息记录,可用于后续对回收站的文件的处理操作,在后续实施例中对此进行详细描述。本申请实施例中,对应一个已回收的文件的文件信息记录中,可以基于实际应用的需要,包含各种文件信息,例如,所包含的文件信息可以如下表1中所示:文件inode删除时间文件大小修改时间文件类型状态标记文件名称+时间戳原路径strint32_tint64_tint32_tint8_tint8_tstrstr表1:文件信息记录其中,文件inode(索引节点),为每个回收到回收站中的文件的唯一标识,不同的文件,文件唯一标识不同;删除时间,为将文件回收到回收站的时间;文件大小,为回收到回收站的该文件的大小;修改时间,为回收到回收站的该文件最近一次被修改的时间;文件类型,为回收到回收站的该文件的类型;状态标记,为表示回收到回收站的该文件的当前状态,例如,过期待删除状态、删除中状态、还原中状态,以及移动中状态;文件名称+时间戳,为回收到回收站的该文件的文件名称和该文件的删除时刻,从而可以支持文件名称相同的不同文件的回收;原路径,为回收到回收站的该文件在回收之前的文件路径。在一个实施例中,回收的文件的文件信息记录可以保存在该回收站的文件回收列表中,并且,其可以按照omap(objectmap,对象映射)结构,将文件信息记录存储在元数据池中,即文件回收列表可以以trash(垃圾)+目录inode作为对象名存放在元数据池中。其中,将文件inode作为key,将各种文件信息作为value记录在对象omap中。上述表1中,“str”表示字符串类型,“int32_t”表示32位整数类型,“int64_t”表示64位整数类型,“int8_t”表示8位整数类型,本步骤308与上述步骤307之间没有严格的先后顺序,也可以同时执行。步骤309、当请求删除的该文件所位于的目录中未创建有回收站时,或者,当请求删除的该文件不满足预设的回收条件时,分发子模块向处理子模块发送该文件删除请求。本申请实施例中采用的是回收站系统,其中包括多个mds模块,本步骤中,分发子模块可以向自身所属的mds模块的处理子模块,发送该文件删除请求,也可以向其他mds模块的处理子模块,发送该文件删除请求。步骤310、处理子模块在接收到该文件删除请求后,删除该文件。步骤311、进一步的,处理子模块在删除该文件后,还可以生成表示该文件已删除的文件删除响应,并返回该文件删除响应。本步骤中,处理子模块可以向内核客户端发送该文件删除响应,并由内核客户端向用户客户端返回该文件删除响应,以使用户客户端获知该文件已删除。基于上述回收站系统,采用上述文件回收方法,通过在服务端将用户客户端发送的文件删除请求转换为文件移动请求,实现将请求删除的文件移动至预先创建的回收站,即实现了对已删除文件的回收。并且,不需要对用户客户端进行改进,可以使得用户客户端不改变原有的对外接口,用户也不需要改变原有的操作习惯,不依赖用户客户端,可以兼容用户客户端与服务端之间所有的共享协议,便于用户基于该回收站系统对文件的各种操作。并且,基于预先针对回收站配置的回收配置信息,可以基于需要灵活的设置回收条件,以使用户可以基于自身的需求进行回收策略的定制。在上述图3所示的文件回收方法中,分发子模块可以基于针对回收站预先配置的回收配置信息,确定请求删除的文件是否满足预设的回收条件,下面对回收配置信息的配置以及更新进行详细描述。图4所示为针对创建有回收站的目录,配置回收站的回收配置信息的流程,包括如下步骤:步骤41、管理客户端针对需要创建有回收站的目录,生成携带有该回收站的回收配置信息的配置请求,配置请求中还可以携带创建有该回收站的目录的信息,例如,目录路径。本申请实施例中,对于回收站的回收配置信息,可以基于实际应用的需要进行灵活配置,例如,具体可以包括预设类型、最大文件阈值、最小文件阈值、预设大小范围、预设配额等。管理客户端为回收站系统的管理员所使用的客户端,管理员通过该管理客户端实现对回收站系统的一些管理操作。本步骤中,管理客户端可以展示管理界面,管理员基于管理界面输入需要配置的回收配置信息,管理客户端在获取到回收配置信息后,生成携带有该回收站的回收配置信息的配置请求。在一个实施例中,进一步的,在获取到管理员输入的回收配置信息之后,生成配置请求之前,可以按照预设检查规则对该回收配置信息进行检查,例如,进行参数检查,在检查通过后,生成配置请求,如果检查未通过,则在管理界面中提示检查未通过,并展示未通过原因,以便管理员重新输入符合规则的回收配置信息。步骤42、管理客户端向回收站系统中的mds模块发送生成的配置请求。由于回收站系统包括多个mds模块,本步骤中,可以向其中一个mds模块发送配置请求。步骤43、mds模块在接收到该配置请求后,生成包含有所携带的回收配置信息的配置信息记录。进一步的,mds模块可以包括配置子模块,本步骤由配置子模块执行。在一个实施例中,所生成的包含有回收配置信息的配置信息记录,可以如下表2所示:表2:配置信息记录其中,目录inode(索引节点),为需要创建回收站的目录的唯一标识,不同的目录,目录唯一标识不同;回收目录inode(索引节点),为所创建的作为该回收站的回收目录的唯一标识,不同的回收目录,回收目录唯一标识不同;保留时长,为该回收站中的文件被存储的最大时长,当一个文件在回收站中的存储时长超过该保留时长,可以从回收站中删除该文件;文件大小,为用于确定是否满足回收条件的文件大小,例如,可以是最大文件阈值、最小文件阈值或预设大小范围;删除间隔,为确定回收站中是否存在需要被删除的文件的时间间隔;强制删除,表示是否可以强制删除该回收站中的文件;创建时刻,为创建该回收站的时刻;配额,为该回收站的最大存储容量,当所存储文件的数据量大于该配额时,则无法再回收文件;告警阈值小于配额,当该回收站的存储容量达到该告警阈值时,进行告警提示;回收目录,为该回收站的路径;文件类型,为用于确定是否满足回收条件的预设类型,例如,当请求删除的文件的类型为该文件类型时或者不为该文件类型时,确定满足回收条件。步骤44、配置子模块保存生成的该配置信息记录。在一个实施例中,回收站系统中所创建的各回收站的配置信息记录,可以保存在回收站系统的回收站列表中,并且,其可以按照omap结构,将生成的该回收站的该配置信息记录存储在元数据池中,即回收站列表可以以trash(垃圾)+info(信息)为对象名保存在元数据池中。其中,将该回收站的目录inode作为key,将各种回收配置信息作为value记录在对象omap中。步骤45、配置子模块在保存生成的该配置信息记录之后,还可以将该配置信息记录保存在mds模块的缓存中。本步骤将该配置信息记录保存在mds模块的缓存中,可以使mds模块在后续需要获取该配置信息记录时,可以直接从自身的缓存中获取,以便提高对文件回收检查的处理效率,进而减少对文件删除流程的性能影响。步骤46、配置子模块还可以向其他mds模块发送该配置信息记录。步骤47、其他mds模块在接收到该配置信息记录后,将该配置信息记录保存在mds模块的缓存中。步骤48、其他msd模块在缓存完成后,向该配置子模块返回表示已缓存的缓存响应。步骤49、配置子模块在接收到该缓存响应后,向管理客户端返回表示已配置的配置响应。上述图4所示的流程为针对创建有回收站的目录,配置回收站的回收配置信息的流程,进一步的,当需要针对已配置的回收配置信息进行更新时,还可以采用如图5所示的流程进行更新,包括如下步骤:步骤51、管理客户端针对已创建回收站的目录,生成携带有该回收站的更新后的回收配置信息的更新请求。步骤52、管理客户端向回收站系统中的mds模块发送生成的更新请求。步骤53、mds模块在接收到该更新请求后,生成包含有更新后的回收配置信息的配置信息记录。步骤54、配置子模块保存包含有更新后的回收配置信息的配置信息记录。在一个实施例中,可以使用包含有更新后的回收配置信息的配置信息记录,替换原有的回收配置信息记录,从而完成回收配置信息的更新。步骤55、配置子模块在保存包含有更新后的回收配置信息的配置信息记录之后,还可以将该配置信息记录保存在mds模块的缓存中。步骤56、配置子模块还可以向其他mds模块发送更新后的该配置信息记录。步骤57、其他mds模块在接收到更新后的该配置信息记录后,将更新后的该配置信息记录保存在mds模块的缓存中。在一个实施例中,可以使用更新后的该配置信息记录,替换所缓存的原有的回收配置信息记录,从而完成回收配置信息的更新。步骤58、其他msd模块在缓存完成后,向该配置子模块返回表示已缓存的缓存响应。步骤59、配置子模块在接收到该缓存响应后,向管理客户端返回表示已更新的更新响应。上述图5所示的流程中,更新后的回收配置信息,以及更新后的配置信息记录,其具体的信息内容以及存储格式,可以与上述图4所示流程中相同,在此不再进行详细描述。采用上述图4和图5所示的回收配置信息的配置流程和更新流程,可以实现对回收配置信息的快速配置和更新,并且,将其存储在mds模块的缓存中,便于在需要时快速获取,提高对文件回收的处理效率。本申请实施例中,在将请求删除的文件回收到回收站之后,还可以针对回收站中存储的文件进行一些操作,所执行的操作可以基于已保存的回收站中文件的文件信息记录进行,具体可以包括如下具体操作:删除操作:针对回收站中的文件,可以在满足删除条件时,将其中的文件删除,删除条件可以基于实际应用的需要进行灵活设置;例如,在接收到管理客户端或者用户客户端发送的针对回收站中文件的文件删除请求后,删除回收站中相应的文件;也可以基于配置信息记录中的保留时长,定时检测回收站中的文件的存储时长是否超过该保留时长,如果超过,则从回收站中删除该文件。还原操作:针对回收站中的文件,可以在满足还原条件时,将其中的文件还原,即按照原路径移动至删除之前所在的目录中,还原条件可以基于实际应用的需要进行灵活设置;例如,在接收到管理客户端或者用户客户端发送的针对回收站中文件的文件还原请求后,还原回收站中相应的文件。移动操作:针对回收站中的文件,可以在满足移动条件时,将其中的文件移动至指定目录中,移动条件可以基于实际应用的需要进行灵活设置;例如,在接收到管理客户端或者用户客户端发送的针对回收站中文件的文件移动请求后,将回收站中相应的文件移动至指定目录中。本申请实施例中,针对回收站中文件的上述各种操作,可以由回收站系统中的worker(工作)模块执行。回收站系统中可以包括多个worker模块,多个worker模块之间可以选举出一个worker模块作为主用worker模块,其他worker模块作为备用worker模块,在需要执行上述各种操作时,由当前的主用worker模块执行,如果主用worker模块异常,则从各备用worker模块中选举出新的主用worker模块执行,从而实现基于集群高可用机制确保worker模块的高可用性。并且,在本申请实施例中,上述文件信息记录存储在元数据池中,worker模块可以直接从元数据池中获取文件信息记录,不需要向mds模块请求获取,即可以减轻mds模块的压力。基于同一发明构思,根据本申请上述实施例提供的文件回收方法,相应地,本申请另一实施例还提供了一种文件回收装置,应用于回收站系统中的mds模块,其结构示意图如图6a所示,具体包括:分发子模块61,用于在接收到用于请求删除文件的文件删除请求后,当请求删除的所述文件所位于的目录中已创建回收站时,将所述文件删除请求转换为文件移动请求,所述文件移动请求用于请求将所述文件移动至所述回收站;以及向所述处理子模块61发送所述文件移动请求;处理子模块62,用于在接收到所述文件移动请求后,将所述文件移动至所述回收站。进一步的,处理子模块62,还用于在所述将所述文件移动至所述回收站之后,生成表示所述文件已删除的文件删除响应;返回所述文件删除响应。进一步的,处理子模块62,具体用于生成表示所述文件已移动至所述回收站的文件移动响应;将所述文件移动响应转换为表示所述文件已删除的文件删除响应。进一步的,处理子模块62,还用于在所述在将所述文件移动至所述回收站后之后,生成表示所述文件已被移动至所述回收站的文件信息记录,并存储所述文件信息记录。进一步的,处理子模块62,具体用于按照对象映射omap结构,将文件信息记录存储在元数据池中。进一步的,分发子模块61,还用于在所述将所述文件删除请求转换为用于请求将所述文件移动至所述回收站的文件移动请求之前,确定所述文件是否满足预设的回收条件,如果满足,执行所述将所述文件删除请求转换为用于请求将所述文件移动至所述回收站的文件移动请求的步骤。进一步的,分发子模块61,具体用于获取针对所述回收站预先配置的回收配置信息,基于所述回收配置信息,确定所述文件是否满足预设的回收条件。进一步的,如图6b所示,上述文件回收装置,还包括:配置子模块63,用于接收管理客户端发送的针对所述回收站的配置请求,所述配置请求中携带所述回收站的回收配置信息;在所述配置子模块所属的mds模块的缓存中存储所述回收配置信息;向其他mds模块的配置子模块发送所述回收配置信息,以使其他mds模块在自身的缓存中存储所述回收配置信息。进一步的,针对所述回收站预先配置的所述回收配置信息存储在元数据池中。进一步的,如图6b所示,上述文件回收装置,还包括:配置子模块63,用于接收管理客户端发送的针对所述回收站的配置请求,所述配置请求中携带所述回收站的回收配置信息;按照omap结构,将所述回收配置信息存储在所述元数据池中。进一步的,配置子模块63,还用于在所述将所述回收配置信息存储在所述元数据池中之后,在所述配置子模块所属的mds模块的缓存中存储所述回收配置信息;向其他mds模块的配置子模块发送所述回收配置信息,以使其他mds模块在自身的缓存中存储所述回收配置信息。进一步的,分发子模块61,具体用于向自身所属的mds模块的处理子模块或者其他mds模块的处理子模块,发送所述文件移动请求。上述各模块的功能可对应于图2至图5所示流程中的相应处理步骤,在此不再赘述。基于同一发明构思,根据本申请上述实施例提供的文件回收方法,相应地,本申请另一实施例还提供了一种电子设备,如图7所示,包括处理器71和机器可读存储介质72,机器可读存储介质72存储有能够被处理器71执行的机器可执行指令,处理器71被机器可执行指令促使:实现上述任一文件回收方法的步骤。机器可读存储介质可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,机器可读存储介质还可以是至少一个位于远离前述处理器的存储装置。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,计算机程序被处理器执行时实现上述任一文件回收方法的步骤。在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一文件回收方法。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于回收站系统、装置、电子设备、计算机可读存储介质和计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1