一种文件遍历方法、装置及系统制造方法及图纸

技术编号:12275807 阅读:71 留言:0更新日期:2015-11-05 01:24
本发明专利技术实施例公开了一种文件遍历方法、装置及系统。一种文件遍历方法,应用于遍历服务器,遍历服务器根据接收到的对目标存储集群的遍历请求,生成初始遍历任务,并接收第一存储节点对该初始遍历任务进行拆分后得到的子任务集合,目标存储集群中的各存储节点进行子任务请求,子任务集合中的子任务对应的存储节点分别完成文件遍历操作,并接收各存储节点返回的遍历数据,生成遍历结果。应用本发明专利技术实施例所提供的技术方案,在文件遍历过程中,遍历服务器进行初始遍历任务的生成、子任务的分发,各存储节点分别在本地执行相应的子任务,存储节点之间没有交互过程,提高了文件遍历的性能,降低了存储集群本身的负载压力。

【技术实现步骤摘要】

本专利技术涉及计算机
,特别涉及一种文件遍历方法、装置及系统
技术介绍
分布式文件系统由多个存储集群构成,每个存储集群有多个存储节点。为了承载海量文件的存储,分布式文件系统一般会采用去中心化的设计,既便于水平扩展,又可以避免单点故障导致整个系统无法正常运行,保持分布式文件系统的高可用性。为了易用性,分布式文件系统一般会暴露出可移植操作系统接口(Portable Operating SystemInterface,P0SIX),可以在客户机上挂载使用。在去中心化的分布式文件系统中,没有节点保存全量的元数据,如果在进行数据迀移或文件归档时需要进行文件遍历操作,无法在某个节点中查询该分布式文件系统中全部的元数据信息。现有的一种文件遍历方法是,将该分布式文件系统以存储卷方式挂载到客户机上,客户机将所要遍历的存储卷作为一个普通的本地目录进行文件遍历操作。在分布式文件系统中,所要遍历的存储卷中的文件可能存储于该分布式系统的不同存储节点的多个存储块中,如果要进行文件遍历,需要多个存储节点之间进行交互来获得遍历结果,每个目录层次的遍历操作都会跨整个存储集群。比如,所要遍历的文件分别存储于存储节点A、存储节点B、存储节点C中的相应存储块中,要在存储集群中执行文件遍历操作,需要存储集群的各个存储节点在本节点中均执行文件遍历任务,并且各个存储节点之间需要通过交互方式相互告知自身的遍历数据,最终获得遍历结果。这样,会引发大量的1请求,使得每个存储节点的负载较大,整个存储集群的服务水平下降。
技术实现思路
为解决上述问题,本专利技术实施例公开了一种文件遍历方法、装置及系统。技术方案如下:—种文件遍历方法,应用于遍历服务器,所述遍历服务器与目标存储集群中的各存储节点通信连接,所述方法包括:接收对所述目标存储集群的遍历请求;根据所述遍历请求,生成初始遍历任务;接收所述目标存储集群中各存储节点发送的取初始任务请求,将所述初始遍历任务发送给所述目标存储集群中的第一存储节点;获得所述第一存储节点对所述初始遍历任务进行拆分后得到的子任务集合,其中,所述子任务集合中每一个子任务与一个存储块对应,每一个存储节点均至少包含一个存储块;接收所述目标存储集群中各存储节点发送的取子任务请求,将所述子任务集合中的各子任务分别发送给与该子任务相对应的存储块所在的存储节点;针对每个子任务,接收与该子任务相对应的存储块所在的存储节点在其本地进行文件遍历后返回的遍历数据;根据接收到的遍历数据,确定针对所述初始遍历任务的遍历结果。在本专利技术的一种【具体实施方式】中,所述根据接收到的遍历数据,确定针对所述初始遍历任务的遍历结果,包括:对接收到的遍历数据进行去重处理,将去重处理后的遍历数据确定为针对所述初始遍历任务的遍历结果。—种文件遍历方法,应用于目标存储集群中的存储节点,所述存储节点与遍历服务器通信连接,所述方法包括:向所述遍历服务器发送取初始任务请求,接收所述遍历服务器返回的初始遍历任务;对所述初始遍历任务进行拆分,得到多个子任务,每一个子任务均与一个存储块对应,每一个存储节点均至少包含一个存储块;将包含拆分得到的子任务的子任务集合发送给所述遍历服务器;获得与所述存储节点自身包含的存储块相对应的子任务;针对获得的每个子任务,在与该子任务相应的存储块中进行文件遍历,并将遍历数据发送给所述遍历服务器。在本专利技术的一种【具体实施方式】中,所述初始遍历任务中包含待遍历的存储卷的标识,所述对所述初始遍历任务进行拆分,得到多个子任务,包括:查询本节点上的卷信息副本;确定所述待遍历的每个存储卷对应的存储块;将所述初始遍历任务拆分为多个与存储块对应的子任务,各子任务对应的存储块不同。—种文件遍历方法,应用于目标存储集群的存储节点,所述存储节点与遍历服务器通信连接,所述方法包括:向所述遍历服务器发送取子任务请求,接收所述遍历服务器返回的至少一个子任务,每一个子任务均与自身包含的一个存储块对应;针对接收到的每个子任务,在与该子任务相应的存储块中进行文件遍历,并将遍历数据发送给所述遍历服务器。—种文件遍历装置,应用于遍历服务器,所述遍历服务器与目标存储集群中的各存储节点通信连接,所述装置包括:遍历请求接收模块,用于接收对所述目标存储集群的遍历请求;遍历任务生成模块,用于根据所述遍历请求,生成初始遍历任务;遍历任务发送模块,用于接收所述目标存储集群中各存储节点发送的取初始任务请求,将所述初始遍历任务发送给所述目标存储集群中的第一存储节点;子任务集合获得模块,用于获得所述第一存储节点对所述初始遍历任务进行拆分后得到的子任务集合,其中,所述子任务集合中每一个子任务与一个存储块对应,每一个存储节点均至少包含一个存储块;子任务发送模块,用于接收所述目标存储集群中各存储节点发送的取子任务请求,将所述子任务集合中的各子任务分别发送给与该子任务相对应的存储块所在的存储节占.遍历数据接收模块,用于针对每个子任务,接收与该子任务相对应的存储块所在的存储节点在其本地进行文件遍历后返回的遍历数据;遍历结果确定模块,用于根据接收到的遍历数据,确定针对所述初始遍历任务的遍历结果。在本专利技术的一种【具体实施方式】中,所述遍历结果确定模块,具体用于:对接收到的遍历数据进行去重处理,将去重处理后的遍历数据确定为针对所述初始遍历任务的遍历结果。—种文件遍历装置,应用于目标存储集群中的存储节点,所述存储节点与遍历服务器通信连接,所述装置包括:遍历任务接收模块,用于向所述遍历服务器发送取初始任务请求,接收所述遍历服务器返回的初始遍历任务;任务拆分模块,用于对所述初始遍历任务进行拆分,得到多个子任务,每一个子任务均与一个存储块对应,每一个存储节点均至少包含一个存储块;子任务集合发送模块,用于将包含拆分得到的子任务的子任务集合发送给所述遍历服务器;子任务获得模块,用于获得与所述存储节点自身包含的存储块相对应的子任务;遍历数据第一发送模块,用于针对获得的每个子任务,在与该子任务相应的存储块中进行文件遍历,并将遍历数据发送给所述遍历服务器。在本专利技术的一种【具体实施方式】中,所述任务拆分模块,包括:信息查询子模块,用于在所述初始遍历任务中包含待遍历的存储卷的标识的情况下,查询本节点上的卷信息副本;存储块确定子模块,用于确定所述待遍历的每个存储卷对应的存储块;任务拆分子模块,用于将所述初始遍历任务拆分为多个与存储块对应的子任务,各子任务对应的存储块不同。—种文件遍历装置,应用于目标存储集群的存储节点,所述存储节点与遍历服务器通信连接,所述装置包括:子任务接收模块,用于向所述遍历服务器发送取子任务请求,接收所述遍历服务器返回的至少一个子任务,每一个子任务均与自身包含的一个存储块对应;遍历数据第二发送模块,用于针对接收到的每个子任务,在与该子任务相应的存储块中进行文件遍历,并将遍历数据发送给所述遍历服务器。—种文件遍历系统,所述文件遍历系统包括目标存储集群和遍历服务器,所述目标存储集群中各存储节点与所述遍历服务器通信连接:所述遍历服务器,用于接收对所述目标存储集群的遍历请求;根据所述遍历请求,生成初始遍历任务;接收所述目标存储集群中各存储节点发送的取初始任务请求,将所述初始遍历任务发送给所述目标存储集群中的第一存储节点本文档来自技高网...

【技术保护点】
一种文件遍历方法,其特征在于,应用于遍历服务器,所述遍历服务器与目标存储集群中的各存储节点通信连接,所述方法包括:接收对所述目标存储集群的遍历请求;根据所述遍历请求,生成初始遍历任务;接收所述目标存储集群中各存储节点发送的取初始任务请求,将所述初始遍历任务发送给所述目标存储集群中的第一存储节点;获得所述第一存储节点对所述初始遍历任务进行拆分后得到的子任务集合,其中,所述子任务集合中每一个子任务与一个存储块对应,每一个存储节点均至少包含一个存储块;接收所述目标存储集群中各存储节点发送的取子任务请求,将所述子任务集合中的各子任务分别发送给与该子任务相对应的存储块所在的存储节点;针对每个子任务,接收与该子任务相对应的存储块所在的存储节点在其本地进行文件遍历后返回的遍历数据;根据接收到的遍历数据,确定针对所述初始遍历任务的遍历结果。

【技术特征摘要】

【专利技术属性】
技术研发人员:徐寅俊
申请(专利权)人:北京奇艺世纪科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1