目录管理方法、装置及系统技术领域
本发明涉及计算机领域,特别涉及一种目录管理方法、装置及系统。
背景技术
随着信息技术的发展,用户对文件系统中存储资源的需求越来越高。为了
防止某一用户对存储资源的过度使用,文件系统提供了配额功能,通过配额功
能可以为每个目录分配特定的存储资源,从而对每个目录所占用的存储资源进
行限制。
对于文件系统中的每个目录来说,可以通过该目录的配额配置数据和配额
统计数据来实现该目录的配额功能,其中,配置数据中包括为该目录分配的总
存储资源,而统计数据中包括该目录当前已占用的存储资源。具体地,在未开
启该目录的配额功能时不会为该目录生成统计数据,此时,如果用户对该目录
进行了编辑操作,该编辑操作所导致的存储资源改变量也不会记录在统计数据
中,而一旦接收到开启该目录配额功能的指令时,可以先对该目录中的所有文
件进行扫描,扫描完成后可以获取到该目录当前的统计数据,此时才会开启该
目录的配额功能。之后,即可根据获取到的统计数据以及后续过程中用户对目
录进行的编辑操作,对统计数据进行更新,从而根据更新后的统计数据和该配
置数据,确定该目录当前所占用的存储资源是否超出为该目录分配的总存储资
源。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
在开启配额功能之前,目录中已经存储了一些文件,则接收到开启配额功
能的指令后,需要先对目录中的所有文件进行扫描得到统计数据,才能开启配
额功能,该扫描过程需要耗费一定的时间,导致配额功能生效很慢,效率很低。
发明内容
为了解决配额功能生效慢、效率低的问题,本发明实施例提供了一种目录
管理方法、装置及系统。所述技术方案如下:
第一方面,提供了一种目录管理方法,该目录管理方法应用于存储设备,
该存储设备包括处理器和存储器,存储器中存储有文件系统,该文件系统用于
管理目录。
为了避免存储设备中的目录占用过多的存储资源,可以提供配额功能来对
每个目录占用的存储资源进行限制。在创建目录时,先生成目录的统计数据,
并在后续过程中,根据对目录的编辑操作对统计数据进行更新。管理员可以向
存储设备发送开启目录配额功能的指令,则可以判断是否保存有目录当前的统
计数据,如果已经保存,即可直接根据该开启目录配额功能的指令,将目录的
配额功能设置为开启状态。
通过在创建目录时生成统计数据,在接收到开启目录配额功能的指令时,
无需对目录中的所有文件进行扫描,节省了扫描时间,保证了配额功能的快速
生效,提高了开启配额功能的效率。
结合第一方面,在第一方面的第一种可能实现方式中,在获取目录当前的
统计数据之前,在接收到管理员或者用户的编辑指令后,先判断存储设备是否
开启了配额功能,如果没有开启配额功能,则直接执行编辑操作并且对统计数
据进行更新,如果已经开启了配额功能,则需要先进行配额检查,以判断如果
执行了编辑操作后,目录占用的存储资源是否超过限制,只有在配额检查通过
时,才会执行编辑操作。
通过在接收到编辑指令后,先判断是否开启配额功能,在开启配额功能时,
通过配额检查来避免目录占用过多的存储资源,保证了存储资源可以得到有效
的管理和控制。
结合第一方面的上述任一种可能实现方式,在第一方面的第二种可能实现
方式中,每次接收到编辑指令,并执行相应的编辑操作后,需要对统计数据进
行相应的更新。具体为,根据编辑操作,获取本次编辑的存储资源改变量,再
获取该目录的当前统计数据指示的原始存储资源,计算原始存储资源与存储资
源改变量的和值,该和值即为目录当前占用的存储资源,则将该和值作为更新
后的统计数据。
通过获取本次编辑操作的存储资源改变量和统计数据所指示的原始存储资
源,并进行求和计算,得到更新后的统计数据,实现了统计数据的更新,更新
过程简便高效。
结合第一方面的上述任一种可能实现方式,在第一方面的第三种可能实现
方式中,触发编辑指令的可以为某一个用户,也可以为某一个用户组,则编辑
指令中包括指示执行该编辑操作的用户标识或用户组标识。对统计数据进行更
新时,可以根据该编辑操作对目录配额统计数据进行更新,并根据用户标识,
查找对应的用户配额树,从而对用户配额树包括的用户配额统计数据进行更新,
根据用户组标识,查找对应的用户组配额树,从而对该用户组配额树包括的用
户组配额统计数据进行更新。
通过用户标识或者用户组标识实现了配额树的快速查找,并从查找到的配
额树中获取统计数据,实现了对统计数据的快速更新。
结合第一方面的上述任一种可能实现方式,在第一方面的第四种可能实现
方式中,在进行配额检查时,先确定编辑指令对应的存储资源改变量、用于表
示目录当前所占用存储资源的第一存储资源、用于表示该目录可用总存储资源
的第二存储资源,计算第一存储资源与存储资源改变量的和值,将该和值与第
二存储资源比较,如果该和值大于第二存储资源,则确定配额检查不通过,如
果该和值不大于第二存储资源,则确定配额检查通过。
通过在配额检查时,将第一存储资源与存储资源改变量进行求和计算,判
断该和值是否大于第二存储资源,从而确定配额检查是否通过,配额检查的过
程简便快捷,实现了配额检查的高效进行。
结合第一方面的上述任一种可能实现方式,在第一方面的第五种可能实现
方式中,统计数据中包括目录配额统计数据、用户配额统计数据和用户组配额
统计数据中的至少一项。为了便于存储不同的统计数据,存储设备生成一个配
额树数组,其中包括多个目录的配额树,并在每个目录的配额树中生成目录配
额树、用户配额树和用户组配额树,分别用于存储目录配额统计数据,用户配
额统计数据,用户组配额统计数据。另外,目录配额统计数据包括目录当前已
占用的存储空间和目录中的文件数目,用户配额树中包括用户配额统计数据和
用户标识,用户组配额树中包括用户组配额统计数据和用户组标识。
采用了配额树的数据格式来存储统计数据,便于对多种统计数据进行获取、
更新等操作,实现了对统计数据的有效管理。
第二方面,提供了一种目录管理装置,装置用于执行上述第一方面提供的
目录管理方法。
第三方面,提供了一种目录管理系统,系统包括:用户设备和存储设备。
用户设备用于向存储设备发送开启目录配额功能的指令;存储设备用于执行上
述第一方面提供的目录管理方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所
需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明
的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,
还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种目录管理系统的结构示意图;
图2是本发明实施例提供的一种存储设备的结构示意图;
图3是本发明实施例提供的一种目录管理方法流程图;
图4是本发明实施例提供的一种配额树数组的示意图;
图5是本发明实施例提供的一种目录配额树的数据格式示意图;
图6是本发明实施例提供的一种用户配额树的数据格式示意图;
图7是本发明实施例提供的一种用户组配额树的数据格式示意图;
图8是本发明实施例提供的一种目录管理方法流程图;
图9是本发明实施例提供的一种目录管理装置的结构示意图;
图10是本发明实施例提供的一种目录管理装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明
实施方式作进一步地详细描述。
图1是本发明实施例提供的一种目录管理系统的结构示意图,参见图1,该
目录管理系统包括:用户设备和存储设备,该用户设备与该存储设备之间通过
网络连接,且该用户设备用于管理该存储设备,该存储设备包括处理器和存储
器,存储器中存储有文件系统,该文件系统用于管理目录。
该用户设备可以为电脑、手机、平板电脑等,该存储设备可以为块设备、
NAS(Network Attached Storage,网络附加存储)设备等,本发明实施例对此不
做限定。
图2是本发明实施例提供的一种存储设备的结构示意图,该存储设备应用
于图1所示的目录管理系统中。参见图2,该存储设备包括:接收器201、发射
器202、存储器203和处理器204,该接收器201、该发射器202、该存储器203
分别与该处理器204连接。
存储器203,用于存放程序2031以及目录和文件数据2032,存储器203可
以包括高速缓存存储器(cache),也可以包括高速RAM存储器,还可以包括非
易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可以理解的是,
存储器203可以为随机存储器(Random-Access Memory,RAM)、磁碟、硬盘、
固态硬盘(Solid State Disk,SSD)或者非易失性存储器等各种可以存储程序代
码的非短暂性的(non-transitory)机器可读介质。存储器203还可以用于缓存从
主机接收的数据或者从磁盘读取的数据。
处理器204可能是一个中央处理器CPU,或者是特定集成电路ASIC
(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的
一个或多个集成电路。例如,处理对磁盘的输入/输出(Input/Output,I/O)请求,
将生产卷中的数据备份到目标卷中等等。从而使存储设备可以实现IO操作、数
据备份等功能。在本发明实施例中,处理器204用于执行程序2031,具体可以
执行下述方法实施例中的相关步骤。
程序2031可以包括操作系统,文件系统以及其他软件模块。不同的软件模
块具有不同的功能。
其中,处理器204用于通过接收器201,接收开启目录配额功能的指令。
处理器204还用于在确定存储器203保存有该目录当前的统计数据的前提
下,根据该开启目录配额功能的指令,将该目录的配额功能设置为开启状态。
其中,该统计数据在创建该目录时生成,并根据对该目录的编辑操作进行更新。
可选地,处理器204还用于当通过接收器201接收到对该目录的编辑指令
时,确定已开启该配额功能。
处理器204还用于根据该编辑指令、该统计数据和该目录的配置数据,对
该目录进行配额检查,配额检查通过时,根据该编辑指令,对该目录执行对应
的编辑操作,根据该编辑操作,对该统计数据进行更新。
可选地,处理器204还用于确定该编辑指令对应的存储资源改变量。
处理器204还用于获取该统计数据所指示的第一存储资源,该第一存储资
源是指该目录当前所占用的存储资源。
处理器204还用于获取该配置数据所指示的第二存储资源,该第二存储资
源是指为该目录分配的总存储资源。
处理器204还用于根据该第一存储资源、该存储资源改变量以及该第二存
储资源,对该目录进行配额检查。
可选地,该统计数据中包括目录配额统计数据、用户配额统计数据和用户
组配额统计数据中的至少一项。
图3是本发明实施例提供的一种目录管理方法流程图,该目录管理方法应
用于图1和图2所示的存储设备中,该存储设备包括处理器和存储器,存储器
中存储有文件系统,该文件系统用于管理目录,本发明实施例的执行主体为存
储设备中的处理器,参见图3,该目录管理方法可以包括:
301、在创建目录时,为该目录生成统计数据。
其中,该存储设备可以为NAS设备、块设备或者其他设备等,或者该存储
设备可以包括文件系统中的多个设备,本发明实施例对此不做限定。该处理器
可以创建一个或多个目录,在目录中存储一个或多个文件。在目录中存储文件
时,该目录会占用一定的存储资源,该统计数据用于指示该目录当前已占用的
存储资源,如该统计数据中可以包括该目录当前已占用的存储空间、该目录中
的文件数目或其他信息,本发明实施例对此不做限定。
本发明实施例中,对于每个目录来说,在处理器创建该目录时,无论处理
器是否已开启该目录的配额功能,均会为该目录生成统计数据,在后续过程中,
可以根据该目录当前已占用的存储资源,对统计数据进行更新。
在实际应用中,每个目录可以由某一用户独享,或者由多个用户共享,或
者由一个或多个用户组共享,每个用户组包括一个或多个用户。则为了便于对
该目录进行管理,该统计数据中可以包括目录配额统计数据、用户配额统计数
据和用户组配额统计数据中的至少一项。
其中,目录配额统计数据用于指示该目录当前已占用的存储资源,用户配
额统计数据用于指示该目录下对应用户当前已占用的存储资源,如用户配额统
计数据可以包括对应用户在该目录中存储的文件数目以及这些文件当前已占用
的存储空间等。用户组配额统计数据用于指示该目录下对应用户组当前已占用
的存储资源,如用户组配额统计数据可以包括对应用户组中的用户在该目录中
存储的总文件数目以及这些文件当前已占用的存储空间等。
该处理器可以为多个目录生成一个配额树数组,该配额树数组中包括每个
目录的配额树,并在每个目录的配额树中生成目录配额树、用户配额树和用户
组配额树。之后,该处理器可以在目录配额树中存储目录配额统计数据,在用
户配额树中存储用户配额统计数据,在用户组配额树中存储用户组配额统计数
据,也即是,目录配额统计数据存储于目录配额树上,用户配额统计数据存储
于用户配额树上,用户组配额统计数据存储于用户组配额树上。
其中,该处理器可以采用键值对(Key-Value)的方式,存储目录配额统计
数据、用户配额统计数据和用户组配额统计数据,或者还可以采用其他方式进
行存储,本发明实施例对此不做限定。
进一步地,对于每个目录来说,该处理器生成该目录对应的目录配额树、
用户配额树和用户组配额树时,可以先生成该目录配额树,在目录配额树中生
成用户配额树和用户组配额树。其中,生成的用户配额树和用户组配额树可以
为内存自平衡二叉查找树或者其他类型的树,本发明实施例对此不做限定。
例如,该处理器生成的配额树数组可以如图4所示,该配额树数组中包括
每个目录的配额树:tree0、tree1…treeMax。参见图5,配额树tree1中至少包括
以下四项:DirSpaceUsed、DirFileUsed、UsrQuotaStat、GrpQuotaStat,其中
DirSpaceUsed中存储该目录当前已占用的存储空间,DirFileUsed中存储该目录
中的文件数目,UsrQuotaStat为用户配额树,UsrQuotaStat中存储用户配额统计
数据,GrpQuotaStat为用户组配额树,GrpQuotaStat中存储用户组配额统计数据。
进一步地,用户配额树的数据格式可以如图6所示,该用户配额树中包括
uid、SpaceUsed、FileUsed等。其中,uid中存储用户标识,该用户标识用于唯
一确定该用户配额树对应的用户,SpaceUsed中存储该用户当前已占用的存储空
间,FileUsed中存储该用户在该目录中存储的文件数目。
用户组配额树的数据格式可以如图7所示,该用户组配额树中包括gid、
SpaceUsed、FileUsed等。其中,gid中存储用户组标识,该用户组标识用于唯一
确定该用户组配额树对应的用户组,SpaceUsed中存储该用户组中的用户当前已
占用的存储空间,FileUsed中存储该用户组中的用户在该目录中的总文件数目。
302、当接收到对该目录的第一编辑指令时,根据该第一编辑指令,对该目
录执行对应的编辑操作,并根据该第一编辑操作,对该统计数据进行更新。
其中,该第一编辑指令用于指示对该目录进行对应的编辑操作,可以由任
一用户的用户设备发送给该处理器或者由管理员的用户设备发送给该处理器,
本发明实施例对此不做限定。
该处理器接收到该第一编辑指令时,根据第一编辑指令,对该目录进行相
应的编辑操作。
可选地,该第一编辑指令为写入文件的指令,且该第一编辑指令包括要写
入的文件标识,则该处理器接收到该第一编辑指令时,根据该第一编辑指令中
包括的文件标识获取待写入的文件,将该文件存储在该目录中。或者,该第一
编辑指令为删除文件的指令,则该处理器接收到该第一编辑指令时,将该第一
编辑指令所指示的文件从该目录中删除。或者,该第一编辑指令为编辑文件数
据的指令,则该处理器接收到该第一编辑指令时,对该第一编辑指令所指示的
文件中的数据进行编辑。
该处理器执行编辑操作之后,该目录所占用的存储资源可能会发生改变,
此时,该处理器可以根据该编辑操作,对该目录的统计数据进行更新。
具体地,该处理器可以根据该编辑操作确定存储资源改变量,并获取已存
储的该目录的统计数据指示的原始存储资源,计算该原始存储资源与该存储资
源改变量的和值,该和值即为更新后的存储资源,则将该和值作为更新后的统
计数据,从而完成对统计数据的更新。
其中,该编辑操作为写入文件的操作时,该存储资源改变量即为新写入的
文件所占用的存储资源,且该存储资源改变量为正数。该编辑操作为删除文件
的操作时,该存储资源改变量即为被删除的文件所占用的存储资源,且该存储
资源改变量为负数。该编辑操作为编辑文件中数据的操作时,该存储资源改变
量即为编辑后的文件所占用的存储资源与编辑前的文件所占用的存储资源的差
值,可以为正数或者负数。
进一步地,在对该目录的统计数据进行更新时,该处理器可以根据该目录
中的所有文件当前已占用的存储资源,对目录配额统计数据进行更新,并根据
指示执行该编辑操作的用户标识,对用户配额统计数据进行更新,根据该用户
所属的用户组,对用户组配额统计数据进行更新。
具体地,该第一编辑指令中可以包括指示执行该编辑操作的用户标识或用
户组标识,则该处理器接收到该第一编辑指令时,根据该编辑操作对目录配额
统计数据进行更新,并根据该第一编辑指令中的用户标识,从已存储的统计数
据中,查找该用户标识对应的用户配额树,从用户配额树中获取用户配额统计
数据,再根据该编辑操作,对该用户配额统计数据进行更新,还可以根据该第
一编辑指令中的用户组标识,从已存储的统计数据中,查找该用户组标识对应
的用户组配额树,从用户组配额树中获取用户组配额统计数据,再根据该编辑
操作,对该用户组配额统计数据进行更新。
需要说明的是,当该第一编辑指令中包括用户标识,且当该用户标识属于
某一用户组时,该处理器可以在执行编辑操作之后,对目录配额统计数据、该
用户标识对应的用户配额统计数据、该用户标识所属的用户组对应的用户组配
额统计数据分别进行更新即可。而当该用户标识不属于任一用户组时,该处理
器可以在执行编辑操作之后,对目录配额统计数据和该用户标识对应的用户配
额统计数据进行更新,此时无需对用户组配额统计数据进行更新。
需要补充说明的是,本发明实施例仅以第一编辑指令为例,实际上,该处
理器可以接收到多个编辑指令,对于每个编辑指令,该处理器均可采用与上述
步骤302类似的方式,对目录中的文件进行编辑,并对相应的统计数据进行更
新,本发明实施例在此不再赘述。或者,该处理器在生成统计数据之后,还可
能在未接收到任何编辑指令的情况下即执行步骤303,即步骤302为可选步骤,
可以执行也可以不执行,本发明实施例对此不做限定。
303、在配额功能未开启的情况下,接收开启该目录的配额功能的指令。
其中,该配额功能表示对目录占用的存储资源进行限制,开启该目录的配
额功能的指令可以由任一用户的用户设备触发、由管理员的用户设备触发或者
由该处理器在确定未开启该目录的配额功能时自动触发,本发明实施例对此不
做限定。
本发明实施中,在步骤303之前仅是以未开启该目录的配额功能的情况为
例,则在步骤303中,处理器接收到开启该目录的配额功能的指令时,可以开
启该目录的配额功能。
304、在确定保存有该目录当前的统计数据的前提下,根据该开启配额功能
的指令,将该目录的配额功能设置为开启状态。
由于在开启配额功能之后,需要根据该目录的统计数据对该目录已占用的
存储资源进行限制,则在开启配额功能之前,在该目录的配额功能为关闭状态
时,该处理器需要先判断是否保存有该目录当前的统计数据,如该目录配额统
计数据、该用户配额统计数据和该用户组配额统计数据。由于本发明实施例中
在创建目录时就为该目录生成了统计数据,因此可以确定保存有该目录当前的
统计数据,则该处理器可以直接根据开启配额功能的指令,将该目录的配额功
能设置为开启状态,此时配额功能生效。
其中,在判断是否保存有该目录当前的统计数据的过程中,处理器可以获
取该目录的目录配额树,判断该目录配额树中是否包括目录配额统计数据,并
获取该目录下每个用户的用户配额树,判断每个用户配额树中是否包括用户配
额统计数据,并获取该目录下每个用户组的用户组配额树,判断每个用户组配
额树中是否包括用户组配额统计数据。
另外,该处理器可以生成配额功能记录,当开启任一目录的配额功能时,
该处理器可以在配额功能记录中,记录开启该目录配额功能的时间、触发该开
启配额功能指令的用户设备等,本发明实施例对此不做限定。且,配额功能生
效以后,该处理器还可以向触发开启配额功能指令的用户设备发送开启成功指
令,以通知该用户设备配额功能已经生效。
现有技术中,在未开启目录的配额功能之前,不会生成统计数据,也不会
对统计数据进行更新,则在接收到开启目录的配额功能的指令时,必须先对目
录进行文件扫描,得到统计数据后,配额功能才能生效,生效时间过长,效率
很低。而在本发明实施例中,在开启配额功能之前,已经为该目录生成了统计
数据,并且在对目录进行编辑操作时根据该编辑操作对统计数据进行更新,则
存储的统计数据能够表示该目录当前已占用的存储资源,那么,在接收到开启
目录的配额功能的指令时,无需对目录进行文件扫描,即可直接获取到统计数
据,并开启配额功能,配额功能即可立即生效,生效时间很短,提高了开启效
率。
305、当接收到对该目录的第二编辑指令时,根据该统计数据和该目录的配
置数据,对该目录进行配额检查,配额检查通过时,根据该第二编辑指令,对
该目录执行对应的编辑操作,根据该编辑操作,对该统计数据进行更新。
其中,该第二编辑指令用于指示对该目录进行对应的编辑操作,可以由任
一用户的用户设备发送给该处理器或者由管理员的用户设备发送给该处理器,
本发明实施例对此不做限定。
在已开启配额功能的情况下,如果处理器接收到该第二编辑指令,则在进
行相应的编辑操作之前,需要先对目录进行配额检查,只有在配额检查通过时,
才可以执行相应的编辑操作。
其中,该处理器可以根据该目录的统计数据和配置数据进行配额检查,该
配置数据用于指示为该目录分配的总存储资源,可以由该处理器在创建该目录
时默认生成,或者由用户设备在触发开启配额功能指令时发送给该处理器,本
发明实施例对此不做限定。另外,该配置数据中可以包括目录配置数据、用户
配置数据和用户组配置数据中的至少一项,且该配置数据的存储方式与上述统
计数据的存储方式类似,区别仅在于统计数据所指示的是当前已占用的存储资
源,而配置数据所指示的是分配的总存储资源,在此不再赘述。
具体地,该处理器确定该第二编辑指令对应的存储资源改变量,获取该目
录的统计数据所指示的第一存储资源,该第一存储资源是指该目录当前所占用
的存储资源,并获取该配置数据所指示的第二存储资源,该第二存储资源是指
为该目录分配的总存储资源,根据该第一存储资源、该存储资源改变量以及该
第二存储资源,对该目录进行配额检查。
具体地,在对该目录进行配额检查时,计算第一存储资源与该存储资源改
变量的和值,判断该和值是否大于该第二存储资源。若该和值大于该第二存储
资源,表示如果对该目录进行编辑操作会导致该目录所占用的存储资源超出为
该目录分配的总存储资源,则配额检查不通过,该处理器不能执行对应的编辑
操作。而若该和值不大于该第二存储资源,表示即使对该目录进行编辑操作后,
该目录所占用的存储资源也不会超出为该目录分配的总存储资源,则配额检查
通过,该处理器即可执行对应的编辑操作。
进一步地,该处理器确定该第二编辑指令对应的目录存储资源改变量、用
户存储资源改变量和用户组存储资源改变量,并获取该目录对应的目录配额统
计数据、用户配额统计数据和用户组配额统计数据,计算目录存储资源改变量
与目录配额统计数据中存储资源的和值、用户存储资源改变量与用户配额统计
数据中存储资源的和值、用户组存储资源改变量与用户组配额统计数据中存储
资源的和值,并将计算得到的三个和值分别与目录配置数据、用户配置数据和
用户组配置数据中的存储资源进行比较,从而确定该目录的配额检查是否通过。
在执行编辑操作之后,该处理器即可根据该编辑操作,对统计数据进行更
新,具体更新过程与上述步骤302类似,在此不再赘述。另外,配额检查通过
后,该处理器还可以向触发该第二编辑指令的用户设备发送配额检查通过消息,
而执行编辑操作后,该处理器可以向该用户设备发送编辑成功消息。
需要说明的是,本发明实施例仅是以在未开启配额功能的情况下接收到第
一编辑指令,在已开启配额功能的情况下接收到第二编辑指令为例进行说明,
而在实际应用中,每当接收到对目录的编辑指令时,该处理器先判断是否已开
启该目录的配额功能,如果未开启该目录的配额功能,则根据该编辑指令,对
该目录执行对应的编辑操作,根据该编辑操作,对该统计数据进行更新。而如
果已开启该目录的配额功能,则根据该统计数据和该目录的配置数据,对该目
录进行配额检查,配额检查通过时,根据该编辑指令,对该目录执行对应的编
辑操作,根据该编辑操作,对该统计数据进行更新。配额检查不通过时,不再
执行该编辑操作,也无需对该统计数据进行更新。
本发明实施例提供的目录管理方法,通过在创建目录时生成该统计数据,
并根据对该目录的编辑操作对统计数据进行更新,则接收到开启目录配额功能
的指令时,直接获取该目录当前的统计数据,即可基于该统计数据,开启该目
录的配额功能,无需对目录中的所有文件进行扫描,节省了扫描时间,保证了
配额功能的快速生效,提高了开启配额功能的效率,保证存储设备的磁盘空间
能够得到有效地管理和限制。
图8是本发明实施例提供的一种目录管理方法流程图,参见图8,该目录管
理方法应用于存储设备,该存储设备包括处理器和存储器,存储器中存储有文
件系统,该文件系统用于管理目录,该目录管理方法可以包括:
801、处理器接收开启目录配额功能的指令。
802、处理器在确定保存有该目录当前的统计数据的前提下,根据该开启目
录配额功能的指令,将该目录的配额功能设置为开启状态。
其中,该统计数据在创建该目录时生成,并根据对该目录的编辑操作进行
更新。
本发明实施例提供的目录管理方法,通过在创建目录时生成该统计数据,
并根据对该目录的编辑操作对统计数据进行更新,则接收到开启目录配额功能
的指令时,直接获取该目录当前的统计数据,即可基于该统计数据,开启该目
录的配额功能,无需对目录中的所有文件进行扫描,节省了扫描时间,减少了
配额功能的生效时间,保证了配额功能的快速生效,提高了开启配额功能的效
率。
可选地,该方法还包括:
当接收到对该目录的编辑指令时,确定已开启该配额功能;
根据该统计数据和该目录的配置数据,对该目录进行配额检查,配额检查
通过时,根据该编辑指令,对该目录执行对应的编辑操作,根据该编辑操作,
对该统计数据进行更新。
可选地,该根据该统计数据和该目录的配置数据,对该目录进行配额检查,
还包括:
确定该编辑指令对应的存储资源改变量;
获取该统计数据所指示的第一存储资源,该第一存储资源是指该目录当前
所占用的存储资源;
获取该配置数据所指示的第二存储资源,该第二存储资源是指为该目录分
配的总存储资源;
根据该第一存储资源、该存储资源改变量以及该第二存储资源,对该目录
进行配额检查。
可选地,该统计数据中包括目录配额统计数据、用户配额统计数据和用户
组配额统计数据中的至少一项。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在
此不再一一赘述。
图9是本发明实施例提供的一种目录管理装置的结构示意图,如图9所示,
该目录管理装置应用于存储设备,该存储设备包括处理器和存储器,存储器中
存储有文件系统,该文件系统用于管理目录;该目录管理装置包括:接收模块
901和设置模块902。
该接收模块901,用于接收开启目录配额功能的指令。
该设置模块902,用于在确定保存有该目录当前的统计数据的前提下,根据
该开启目录配额功能的指令,将该目录的配额功能设置为开启状态。
其中,该统计数据在创建该目录时生成,并根据对该目录的编辑操作进行
更新。
本发明实施例提供的装置,通过在创建目录时生成该统计数据,并根据对
该目录的编辑操作对统计数据进行更新,则接收到开启目录配额功能的指令时,
直接获取该目录当前的统计数据,即可基于该统计数据,开启该目录的配额功
能,无需对目录中的所有文件进行扫描,节省了扫描时间,保证了配额功能的
快速生效,提高了开启配额功能的效率。
可选地,参加图10,该装置还包括:判断模块903、配额检查模块904、编
辑模块905和更新模块906。
该判断模块903,用于当接收到对该目录的编辑指令时,确定已开启该配额
功能;
该配额检查模块904,用于根据该编辑指令、该统计数据和该目录的配置数
据,对该目录进行配额检查;
该编辑模块905,用于该配额检查模块确定该配额检查通过时,根据该编辑
指令,对该目录执行对应的编辑操作;
该更新模块906,用于根据该编辑模块执行的该编辑操作,对该统计数据进
行更新。
可选地,该配额检查模块904还用于确定该编辑指令对应的存储资源改变
量;获取该统计数据所指示的第一存储资源,该第一存储资源是指该目录当前
所占用的存储资源;获取该配置数据所指示的第二存储资源,该第二存储资源
是指为该目录分配的总存储资源;根据该第一存储资源、该存储资源改变量以
及该第二存储资源,对该目录进行配额检查。
可选地,该统计数据中包括目录配额统计数据、用户配额统计数据和用户
组配额统计数据中的至少一项。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过
硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于
一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或
光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的
精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的
保护范围之内。