一种管理分布式文件系统目录的方法及分布式文件系统
技术领域
本发明涉及应用于云计算、云存储领域中分布式文件系统领域,具体涉及一种管理分布式文件系统目录的方法分布式文件系统。
背景技术
随着云计算技术、云存储技术应用进一步发展,作为其应用核心的分布式文件系统得到快速的应用和发展。由于云计算、云存储应用承载着多类型、可扩展、高并发、海量内容等特征上层业务,而现有的各种单机文件系统由于容量有限、不具有实时可扩展性、无法支撑高并发特征不能满足于云相关业务;因此具备动态高可扩展性、集群架构、支持高并发、大容量的分布式文件系统成为云计算业务后端存储设备的选择。
为满足云计算、云存储实际业务的性能需求,根据分布式文件系统设计架构三方分离的原则,需要将其构建在分布式集群节点之上。针对云计算环境中大规模的客户端节点访问,元数据模块需要支撑较高的并发访问请求,因而构建在高性能、大容量服务器之上;作为云计算应用中数据存储载体的分布式文件系统的数据存储模块,其最显著的特点则是通过后端的多种类存储设备提供海量的存储空间,并支持分布式文件系统数百、数千客户端模块的高速IO(输入输出)、大容量IO、多并发IO、以及多业务并行运行时的文件目录的访问、控制,而每个客户端模块需要访问的目录又不计其数,如何高效管理和合理分配如此繁多的文件目录给分布式文件系统的管理者和维护者带来了极大的挑战。
由于分布式文件系统需要提供海量的存储空间,其通常需要部署在庞大的数据存储集群之上。通过数据存储节点集群后端的存储设备构造分布式文件系统的海量存储空间,而在数量达到一定规模的存储设备中,存储设备故障造成的数据一致性异常成为一个频繁现象,数据的一致性将直接影响文件系统中文件目录内容的访问,也就造成了分布式文件系统的客户端节点的应用程序无法访问,这种问题在海量目录存在的分布式文件系统中的快速定位、以及对应存储设备的故障快速定位、解决也成为文件系统管理者和维护者的繁重工作。
发明内容
本发明要解决的技术问题是提供一种管理分布式文件系统目录的方法及系统,以确保目录数据的一致性。
为了解决上述技术问题,本发明提供了一种管理分布式文件系统目录的方法,包括:
获取文件目录的指定信息;
将所述文件目录的指定信息推送给目录数据库模块进行目录更新处理。
进一步地,上述方法还具有下面特点:所述获取文件目录的指定信息包括:
监控分布式文件系统中对于文件目录的更新操作,获取文件目录的更新信息。
进一步地,上述方法还具有下面特点:所述获取文件目录的指定信息包括:
接收到所述目录数据库模块发送的验证目录请求后,访问所述分布式文件系统的元数据模块中的指定文件目录的元数据,获取所述指定文件目录是否可用的状态信息;
所述目录数据库模块进行目录更新处理包括:对所述指定文件目录的状态信息进行更新。
进一步地,上述方法还具有下面特点:所述目录数据库模块进行更新处理后,还包括:
所述目录数据库模块输出所述指定文件目录及其对应的状态信息。
进一步地,上述方法还具有下面特点:
所述目录数据库模块是在接收到访问所述指定目录后发送验证目录请求的。
为了解决上述问题,本发明还提供了一种分布式文件系统,包括:
第一模块,用于获取文件目录的指定信息;
第二模块,用于将所述文件目录的指定信息推送给目录数据库模块;
所述目录数据库模块,用于根据所述指定信息进行目录更新处理。
进一步地,上述分布式文件系统还具有下面特点:
所述第一模块,具体用于监控分布式文件系统中对于文件目录的更新操作,获取文件目录的更新信息。
进一步地,上述分布式文件系统还具有下面特点:
所述第一模块,具体用于接收到所述目录数据库模块发送的验证目录请求后,访问所述分布式文件系统的元数据模块中的指定文件目录的元数据,获取所述指定文件目录是否可用的状态信息;
所述目录数据库模块,进行更新处理包括:对所述指定文件目录的状态信息进行更新。
进一步地,上述分布式文件系统还具有下面特点:
所述目录数据库模块,进行更新处理后还用于,输出所述指定文件目录及其对应的状态信息。
进一步地,上述分布式文件系统还具有下面特点:
所述目录数据库模块是在接收到访问所述指定目录后发送验证目录请求的。
本发明提供一种管理分布式文件系统目录的方法及系统,可以确保目录数据的一致性。
附图说明
图1为本发明实施例的管理分布式文件系统目录的方法的流程图;
图2为本发明实施例的分布式文件系统的示意图;
图3为本发明一应用示例的分布式文件系统的部署示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图1为本发明实施例的管理分布式文件系统目录的方法的流程图,如图1所示,本实施例的方法包括以下步骤:
S11、获取文件目录的指定信息;
S12、将所述文件目录的指定信息推送给目录数据库模块进行目录更新处理。
这样,通过本实施例的方法即可实时获取目录数据的更新信息,及时对目录数据进行更新处理,以确保目录数据的一致性。
在一优选实施例中,步骤S11,可以包括:监控分布式文件系统中对于文件目录的更新操作,获取文件目录的更新信息。
在另一优选实施例中,步骤S11,可以包括:接收到所述目录数据库模块发送的验证目录请求后,访问所述分布式文件系统的元数据模块中的指定文件目录的元数据,获取所述指定文件目录是否可用的状态信息;
所述目录数据库模块进行目录更新处理包括:对所述指定文件目录的状态信息进行更新。
所述目录数据库模块更新指定文件目录的状态信息后,可以输出所述指定文件目录及其对应的状态信息。
图2为本发明实施例的分布式文件系统的示意图,如图2所示,包括:
第一模块,用于获取文件目录的指定信息;
第二模块,用于将所述文件目录的指定信息推送给目录数据库模块;
所述目录数据库模块,用于根据所述指定信息进行目录更新处理。
其中,在一优选实施例中,所述第一模块,具体可以用于监控分布式文件系统中对于文件目录的更新操作,获取文件目录的更新信息。
其中,在另一优选实施例中,所述第一模块,具体可以用于接收到所述目录数据库模块发送的验证目录请求后,访问所述分布式文件系统的元数据模块中的指定文件目录的元数据,获取所述指定文件目录是否可用的状态信息;
所述目录数据库模块,进行更新处理包括:对所述指定文件目录的状态信息进行更新。
所述目录数据库模块对所述指定目录的状态信息更新处理后,还可以用于输出所述指定文件目录及其对应的状态信息。
图3为本发明一应用示例的分布式文件系统的部署示意图,其中,包括:监控模块(相当于上文的第一模块)、发送模块(相当于上文的第二模块)、目录数据库系统(相当于上文的目录数据库模块)、目录管理客户端模块。其中:
监控模块,可用于监控分布式文件系统中对于文件目录的更新操作,通过对更新操作的跟踪并获取操作对文件目录状态的影响,将获取的最新文件目录信息,提供给发送模块。
发送模块,作为监控模块和目录数据库系统的通信中介,将获取的最新目录信息更新到目录数据库系统,并将所更新的文件目录的数据库系统反馈信息传递给监控模块,以实现对文件目录的父目录可用性状态验证。
目录数据库系统,用于存储分布式文件系统的文件目录结构信息,其接收元数发送模块提供的目录更新信息、目录状态信息、以及在提供给目录客户端模块的访问内容处理过程中向发送模块发送目录可用状态验证请求信息、并接收验证的状态结果信息。
现有的分布式文件系统中采用元数据的方式存放所有文件和目录的元数据信息,文件系统的用户不能直接访问这种元数据信息,需要通过一系列数据结构的访问处理才转化为可见的目录形式。专用的目录数据库系统设计复杂,此处借用其他通用的数据库系统(如:mysql、oracle等)用于存储目录信息。本实施例提供的目录数据库系统用户可以直接访问,提高了用户的体验性,也提高了访问目录数据的效率。
目录管理客户端模块,作为分布式文件系统管理者的“接口”,根据管理者提供的分布式文件系统的用户(角色)信息,从目录数据库系统中获取相应的文件目录结构内容,由于主要信息来自于目录数据库系统,而且显示出的目录内容有限,因此加载速度较快;在管理者对目录进行更新时,将通过分布式文件系统的客户端模块与元数据模块进行通信,确保了分布式文件系统中目录访问、操作的一致性。
以下以两个具体实施例对本发明的管理分布式文件系统目录的方法进行详细的说明。
实施例一,基于上述的分布式文件系统进行读目录操作的流程如下:
步骤101、目录管理客户端向目录数据库发起读取目录请求;
步骤102、目录数据库接收到读取目录请求后,向元数据主动发送模块发送验证请求;
这里的验证请求主要是验证所读取的目录在存储设备上是否可访问。当目录所在数据存储设备出现异常时或者存储设备的网络出现异常时,此目录及其包含的子目录将无法访问,因此也就处于不可用状态。通过判断目录的可读可写状态可以判断其状态是否可用。
步骤103、元数据主动发送模块将验证请求发送给监控模块;
步骤104、监控模块访问元数据模块中的指定文件目录的元数据,通过元数据验证该指定文件目录在实际的存储设备上是否真实可访问;
步骤105、监控模块获取指定文件目录是否可用的最新状态信息作为验证结果。
步骤106、监控模块向元数据主动发送模块发送验证结果;
步骤107、元数据主动发送模块向目录数据库发送验证结果。
目录管理客户端从目录数据库中读取过程是异步执行的,从目录数据库读取目录的过程中,验证目录的状态信息,此时目录可能已经被修改,但目录数据库还未修改。
步骤108、目录数据库接收到验证结果后,对指定文件目录的状态信息进行更新,并将指定的文件目录及其可访问状态(目录可访问则显示正常;目录不可访问则显示异常)输出给目录管理客户端。
实施例二
基于上述的分布式文件系统进行写目录操作的流程如下:
步骤201、目录管理客户端进行写目录操作;
步骤202、文件系统客户端接收到写目录操作的请求后,向元数据模块发送写目录请求;
步骤203、元数据模块接收到写目录请求后,根据写目录请求进行目录的写操作;
步骤204、监控模块监控元数据模块对目录的更新操作,将目录更新信息发送给元数据推送模块;
步骤205、元数据推送模块接收到目录更新信息后,将目录更新信息推送给目录数据库系统;
步骤206、目录数据库系统接收到目录更新信息后,进行目录更新。
本发明实施例在分布式文件系统的元数据模块基础上增加监控模块、元数据主动推动模块、目录数据库系统,可以实现对分布式文件系统的文件目录的操作、更改、状态进行监控,并将最新目录结构信息更新到目录数据库系统,同时对更改的文件目录的父目录进行可用性状态验证,确保了分布式文件系统的文件目录结构信息及时更新到目录数据库。实现了在目录管理客户端模块,较快的获取到指定内容(角色)的文件目录信息,避免了传统海量目录查看、管理过程中,指定目录内容显示时速度极慢、且不利于查看、出现数据不一致问题时的“死等”现象,方便了分布式文件系统中海量目录的管理和维护工作,减少了分布式文件系统目录管理的难度、提高了目录管理的效率。同时对目录的管理和维护采用客户端模块实现,没有引入产生数据不一致的因素。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。