一种分布式文件系统的目录容量管理方法及系统的制作方法
【技术领域】
[0001]本发明涉及分布式文件系统技术领域,特别是涉及一种分布式文件系统的目录容量管理方法及系统。
【背景技术】
[0002]目前,分布式文件系统已经发展了很长时间,但是对于配额功能的支持一直是困扰用户的问题,尤其是目录容量配额,不能实时统计目录的容量,这直接导致当前目录容量配额的准确性不高,易出现目录下的数据大小超出配额值的情况。
[0003]在分布式文件系统中,磁盘目录容量配额可以帮助管理员实现管理目录大小的目的,当目录容量达到配额限度或接近配额限度时可以及时邮件、短信提醒,实现对目录使用的合理控制,提高访问数据的效率和管理、维护数据的方便性。
[0004]但是,在现有的分布式文件系统中,由于其是直接使用目录iNode(索引节点)大小来表示当前的目录容量大小,而目录iNode大小并不能实时统计目录容量大小,这也就直接导致当前目录容量配额的准确性存在偏差,满足不了客户对配额准确性要求比较高的使用场景,比如,有多个用户在客户端向系统写入数据,如果有多个用户在写同一个目录(文件夹),由于服务端不能给客户端实时更新当前目录容量大小,那么客户端当前记录的目录容量大小已经不能正确表示当前目录的真实大小,所以继续写入数据时,使用当前目录大小判断是否超过配额值会导致写入数据大小超过配额值。
[0005]基于此,亟需一种能够及时更新目录容量大小,进而提高配额准确性的方法。
【发明内容】
[0006]有鉴于此,本发明提供了一种分布式文件系统的目录容量管理方法及系统,以实现及时更新目录容量大小,进而提高配额准确性的目的。
[0007]为解决上述技术问题,本发明提供一种分布式文件系统的目录容量管理方法,该方法包括:
[0008]客户端在检测到对目标文件的写操作时生成所述目标文件所属目录的已用目录容量大小的更新请求,并将所述更新请求发送至服务端;
[0009]所述服务端在收到所述更新请求时,遍历所述目标文件所属目录下的所有文件,得到当前已用目录容量大小,并将所述当前已用目录容量大小反馈至所述客户端。
[0010]上述方法中,优选地,在所述服务端将所述当前已用目录容量大小反馈至所述客户端之后,还包括:
[0011 ]所述客户端判断所述当前已用目录容量大小达到针对所述目标文件所属目录的目录配额限度;
[0012]如果达到,则显示所述目标文件所属目录已达所述目录配额限度的提示信息;
[0013]如果未达到,则显示所述目标文件所属目录当前可用容量大小的提示信息。
[0014]上述方法中,优选地,在所述服务端将所述当前已用目录容量大小反馈至所述客户端之后,还包括:
[0015]所述客户端根据所述当前已用目录容量大小更新已用目录容量参数。
[0016]上述方法中,优选地,所述更新请求包含于针对所述写操作的写请求,所述客户端在检测到对所述目标文件的所述写操作时,生成所述写请求并将所述写请求发送至所述服务端。
[0017]上述方法中,优选地,所述客户端在检测到对目标文件的写操作时生成所述目标文件所属目录的已用目录容量大小的更新请求,包括:
[0018]所述客户端在检测到对目标文件的写操作时,判断提高配额准确性模式是否开启,如果是,则生成所述目标文件所属目录的已用目录容量大小的更新请求。
[0019]本发明还提供了一种分布式文件系统的目录容量管理系统,该系统包括:
[0020]客户端,用于在检测到对目标文件的写操作时生成所述目标文件所属目录的已用目录容量大小的更新请求,并将所述更新请求发送至服务端;
[0021 ]所述服务端,用于在收到所述更新请求时,遍历所述目标文件所属目录下的所有文件,得到当前已用目录容量大小,并将所述当前已用目录容量大小反馈至所述客户端。
[0022]上述系统中,优选地,所述客户端还用于在所述服务端将所述当前已用目录容量大小反馈至所述客户端之后,判断所述当前已用目录容量大小达到针对所述目标文件所属目录的目录配额限度;如果达到,则显示所述目标文件所属目录已达所述目录配额限度的提示信息;如果未达到,则显示所述目标文件所属目录当前可用容量大小的提示信息。
[0023]上述系统中,优选地,所述客户端还用于在所述服务端将所述当前已用目录容量大小反馈至所述客户端之后,根据所述当前已用目录容量大小更新已用目录容量参数。
[0024]上述系统中,优选地,所述更新请求包含于针对所述写操作的写请求,所述客户端具体用于在检测到对所述目标文件的所述写操作时,生成所述写请求并将所述写请求发送至所述服务端。
[0025]上述系统中,优选地,所述客户端用于在检测到对目标文件的写操作时生成所述目标文件所属目录的已用目录容量大小的更新请求,包括:
[0026]所述客户端具体用于在检测到对目标文件的写操作时,判断提高配额准确性模式是否开启,如果是,则生成所述目标文件所属目录的已用目录容量大小的更新请求。
[0027]以上本发明提供的一种分布式文件系统的目录容量管理方法及系统中,客户端主动向服务端请求更新已用目录容量大小,其在检测到对目标文件的写操作时生成所述目标文件所属目录的已用目录容量大小的更新请求,并将所述更新请求发送至服务端;所述服务端在接收到更新请求时,遍历所述目标文件所属目录下的所有文件(而不是直接使用目录iNode大小),得到当前已用目录容量大小,并将所述当前已用目录容量大小反馈至所述客户端。可见,本发明有效实现了及时更新目录容量大小,进而提高配额准确性的目的。
【附图说明】
[0028]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0029]图1为本发明实施例提供的一种分布式文件系统的目录容量管理方方法的流程图;
[0030]图2为本发明实施例提供的一种分布式文件系统的目录容量管理方系统的结构框图示意图。
【具体实施方式】
[0031]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0032]本发明的核心是提供一种分布式文件系统的目录容量管理方法及系统,以实现及时更新目录容量大小,进而提高配额准确性的目的。
[0033]为了使本技术领域的人员更好地理解本发明方案,下面结合附图和【具体实施方式】对本发明作进一步的详细说明。
[0034]参考图1,图1示出了本发明实施例提供的一种分布式文件系统的目录容量管理方法的流程图,该方法具体可以包括如下步骤:
[0035]步骤S100、客户端在检测到对目标文件的写操作时生成目标文件所属目录的已用目录容量大小的更新请求,并将更新请求发送至服务端。
[0036]本发明中,当客户端检测到对某一目标文件进行写操作时,需要知道在分布式文件系统中该目标文件所归属于的目录是否还能在继续写入数据,即该目录的已使用容量大小是否已经达到目录配额限度,如果达到则不能再往该目标文件中写入数据,反之,则按正常写入方式写入数据至该目标文件中。
[0037]本发明中,客户端主动向服务端请求更新已用目录容量大小,进一步地,由于客户端每次在检测到对目标文件的写操作时,会向服务端发送针对本次写操作的写请求,以告知服务端客户端需要对目标文件执行写操作了。因此,客户端可以在每次向服务端发送写请求的同时,请求更新目标文件所归属的目录的已用目录容量大小,也就是说,更新请求包含于针对写操作的写请求,这样就不需要专门单独发送一次更新请求。
[0038]在具体实施过程中,客户端在检测到对目标文件的写操作时,生成写请求并将写请求发送至服务端。在服务端接收到写请求及该写请求中的更新请求后,做相应的处理操作。当然,本发明主要针对服务端对更新请求的处理进行详细描述,至于对写请求中的其它内容的处理,可参考现有技术,本发明在此不作详细阐述。
[0039]步骤S101、服务端在收到更新请求时,遍历目标文件所属目录下的所有文件,得到当前已用目录容量大小,并将当前已用目录容量大小反馈至客户端。