一种文件系统配额管理方法、装置及系统的制作方法

文档序号:6516417阅读:297来源:国知局
一种文件系统配额管理方法、装置及系统的制作方法
【专利摘要】本发明实施例公开一种文件系统配额管理方法、装置及系统,应用于计算机领域,以解决现有技术中对配额的操作效率低的缺陷。该方法包括:在文件系统加载时,从存储对象中获取每个文件系统配额的配额项,所述配额项包括所述文件系统配额的配置数据和统计数据;根据所有文件系统配额中的目录配额生成配额树,所述配额树的内存管理对象包含两棵内存自平衡二叉查找树,其中第一内存自平衡二叉查找树用于管理所有文件系统配额中用户配额的配额项,第二内存自平衡二叉查找树用于管理所有文件系统配额中组配额的配额项;更新所述配额项,将更新后的每个文件系统配额的配额项存储至所述存储对象中。本发明的实施例应用于文件系统配额管理。
【专利说明】一种文件系统配额管理方法、装置及系统
【技术领域】
[0001]本发明涉及计算机领域,尤其涉及一种文件系统配额管理方法、装置及系统。
【背景技术】
[0002]文件系统的存储资源在提供用户使用后,若不加以限制,就会存在过度使用的危险。比如,某些用户创建大量文件、写入大量数据,从而占用过多的存储空间,导致其他用户无法正常使用文件系统。
[0003]文件系统配额管理功能提供了精细化的存储资源管理方法,以解决这些问题。通过配额,管理员可以方便地限制单个目录可用的资源、单个用户可用的资源、以及单个用户组可用的资源。通过这些方式,系统管理员可以合理地为各种资源使用个体分配存储资源,避免出现某些用户过度使用资源,而令文件系统不可用的风险。
[0004]配额根据限制对象的不同,可以分为:用户配额、组配额和目录配额。配额主要是处理两类数据,一类是配置数据,一类是统计数据。结合这两类数据,然后进行配额的检查和限制。
[0005]对于配置数据的处理,现有技术主要是将配置数据全部存储于一个配置文件中,即将用户配额、组配额和目录配额都存储于同一个配置文件中。
[0006]在配额统计数据的处理上,现有技术主要是使用内部对象(即用户不可见的文件)来保存统计数据。在每次影响配额的文件操作中,必须同时更新配额的统计数据。其中,更新配额统计数据的操作,实际上都会转化为对内部对象的修改操作。为了保证统计文件中数据的一致性,在修改时,需要对统计文件进行加锁。所以在修改配额统计数据时,所有操作都变成了串行执行。
[0007]另外,现有技术在配额关闭期间,不进行配额的检查,也不能进行配额的更新。这样,在配额关闭期间,新建的文件,新写入的数据以及删除的数据都不会被更新到配额统计数据中。在配额开启时,需要进行整文件系统的扫描。在扫描过程中,统计出每个配额项已使用的空间和文件数。并且,直至扫描完成,配额功能才可用。在配额开启期间,对于新建的配额项,若想令其生效,现有技术的做法是:需要管理员关闭配额功能,再行打开,进而触发整文件系统的扫描。因为,对于新建配额项来说,其当前已使用的空间和文件数是未记录的。通过扫描,才能统计出该配额项已使用的空间和文件数。由此,才能保证配额的检查和更新是准确的。
[0008]不难发现,现有技术中对配额的操作效率很低,例如,更新配额统计数据时,即使是不同用户修改不同目录的文件,因为需对统计文件进行加锁,修改统计文件变成了串行执行,并发性能低。所有配额配置数据保存在一个文件中,造成在查找某个配额项时,最坏需要扫描整个文件,查找效率低。在启用一个文件系统的配额功能时,需要进行整文件系统的扫描,影响文件系统的性能,且在扫描完成之前,配额均不可用。即使在配额功能开启的情况下,新建一个配额项,若想令其生效,也必须进行整文件系统的扫描。
【发明内容】

[0009]本发明的实施例提供一种文件系统配额管理方法、装置及系统,以解决现有技术中对配额的操作效率低的缺陷。
[0010]本发明的第一方面提供一种文件系统配额管理方法,包括:
[0011]在文件系统加载时,从存储对象中获取每个文件系统配额的配额项,所述配额项包括所述文件系统配额的配置数据和统计数据;
[0012]根据所有文件系统配额中的目录配额生成配额树,所述配额树的内存管理对象包含两棵内存自平衡二叉查找树,其中第一内存自平衡二叉查找树用于管理所有文件系统配额中用户配额的配额项,第二内存自平衡二叉查找树用于管理所有文件系统配额中组配额的配额项;
[0013]更新所述配额项,将更新后的每个文件系统配额的配额项存储至所述存储对象中。
[0014]结合第一方面,在第一种实现方式中,所述根据所有文件系统配额中的目录配额生成配额树,还包括:
[0015]对所述配额树进行编号,将所述配额树对应的编号保存在文件系统的文件的元数据信息及文件系统的目录的元数据信息中;
[0016]根据所述配额树对应的编号操作文件或目录。
[0017]结合第一方面的第一种实现方式,在第二种实现方式中,所述更新所述配额项,包括:
[0018]检测到对文件或目录的操作,根据所述配额树对应的编号对所述配额树中的配额的统计数据进行更新。
[0019]结合第一方面的第二种实现方式,在第三种实现方式中,所述根据所述配额树对应的编号对所述配额树中的配额的统计数据进行更新,包括:
[0020]根据所述配额树对应的编号对所述配额树进行加锁;
[0021 ] 更新加锁后的所述配额树中的配额项中的配额的统计数据。
[0022]结合第一方面的第二种实现方式,在第四种实现方式中,所述将更新后的每个文件系统配额的配额项存储至所述存储对象中包括:
[0023]在预定的时间内内存中更新统计数据的次数或数据量达到预定的阈值时,将所述预定的时间内更新的所述配额的统计数据进行写盘。
[0024]结合第一方面的第四种实现方式,在第五种实现方式中,所述将所述预定的时间内更新的所述配额的统计数据进行写盘之前,还包括:
[0025]通知对象管理层将内存中更新的所述配额的统计数据的更新信息写入文件操作日志,以便在系统掉电时,所述对象管理层将所述文件操作日志进行保电处理;
[0026]在系统重新上电时,从经过保电处理的所述文件操作日志更新配额的统计数据。
[0027]结合第一方面,在第六种实现方式中,还包括:
[0028]在关闭配额时,如果有配额的统计数据需要更新,则对配额的统计数据进行更新。
[0029]结合第一方面,在第七种实现方式中,所述将更新后的每个文件系统配额的配额项存储至所述存储对象中,包括:
[0030]将更新后的所述每个文件系统配额的配额项中的配置数据以内部文件的形式存储至所述存储对象中。
[0031]结合第一方面的第七种实现方式,在第八种实现方式中,所述将更新后的所述每个文件系统配额的配额项中的配置数据以内部文件的形式存储至所述存储对象中,包括:
[0032]根据所有文件系统配额中的目录配额确定所述每个文件系统配额的配额项的配置数据的目录归属;
[0033]根据所述每个文件系统配额的配额项的配置数据的目录归属及类型,将所述每个文件系统配额的配额项的配置数据分别以不同的内部文件存储至所述存储对象中。
[0034]结合第一方面,在第九种实现方式中,所述方法还包括:
[0035]接收对所述每个文件系统配额的配额项的配置数据的操作命令;
[0036]根据所述操作命令对所述配置数据执行对应的操作,所述操作至少包括:设置、删除、查询。
[0037]本发明的第二方面提供一种文件系统配额管理装置,包括:
[0038]获取单元,在文件系统加载时,用于从存储对象中获取每个文件系统配额的配额项,所述配额项包括所述文件系统配额的配置数据和统计数据;
[0039]生成单元,用于根据所有文件系统配额中的目录配额生成配额树,所述配额树的内存管理对象包含两棵内存自平衡二叉查找树,其中第一内存自平衡二叉查找树用于管理所有文件系统配额中通过所述获取单元获取的用户配额的配额项,第二内存自平衡二叉查找树用于管理所有文件系统配额中通过所述获取单元获取的组配额的配额项;
[0040]更新单元,用于在更新所述获取单元获取的所述配额项后,将更新后的每个文件系统配额的配额项存储至所述存储对象中。
[0041]结合第二方面,在第一种实现方式中,所述生成单元,还包括:
[0042]编号子单元,用于对所述配额树进行编号,将所述配额树对应的编号保存在文件系统的文件的元数据信息及文件系统的目录的元数据信息中;
[0043]操作子单元,用于根据所述编号子单元生成的配额树对应的编号操作文件或目录。
[0044]结合第二方面的第一种实现方式,在第二种实现方式中,所述更新单元具体用于:在检测到对文件或目录的操作时,根据所述配额树对应的编号对所述配额树中的配额的统计数据进行更新。
[0045]结合第二方面的第二种实现方式,在第三种实现方式中,所述更新单元,包括:
[0046]加锁子单元,用于根据所述配额树对应的编号对所述配额树进行加锁;
[0047]更新子单元,用于更新通过所述加锁子单元加锁后的所述配额树中的配额项中的配额的统计数据。
[0048]结合第二方面的第二种实现方式,在第四种实现方式中,所述更新单元具体用于:在预定的时间内内存中更新统计数据的次数或数据量达到预定的阈值时,将所述预定的时间内更新的所述配额的统计数据进行写盘。
[0049]结合第二方面的第四种实现方式,在第五种实现方式中,所述更新单元,还包括:
[0050]通知子单元,用于通知对象管理层将内存中更新的所述配额的统计数据的更新信息写入文件操作日志,以便在系统掉电时,所述对象管理层将所述文件操作日志进行保电处理;[0051]恢复子单元,用于在系统重新上电时,从经过保电处理的所述文件操作日志恢复配额的统计数据。
[0052]结合第二方面,在第六种实现方式中,所述更新单元还用于:
[0053]在关闭配额时,如果有配额的统计数据需要更新,则对配额的统计数据进行更新。
[0054]结合第二方面,在第七种实现方式中,所述更新单元,具体用于:将更新后的所述每个文件系统配额的配额项中的配置数据以内部文件的形式存储至所述存储对象中。
[0055]结合第二方面的第七种实现方式,在第八种实现方式中,所述更新单元,包括:
[0056]确定子单元,用于根据所有文件系统配额中的目录配额确定所述每个文件系统配额的配额项的配置数据的目录归属;
[0057]保存子单元,用于根据所述每个文件系统配额的配额项的配置数据的目录归属及类型,将所述每个文件系统配额的配额项的配置数据分别以不同的内部文件存储至所述存储对象中。
[0058]结合第二方面,在第九种实现方式中,所述装置还包括:
[0059]接收单元,用于接收对所述每个文件系统配额的配额项的配置数据的操作命令;
[0060]操作单元,用于根据所述操作命令对所述配置数据执行对应的操作,所述操作至少包括:设置、删除、查询。
[0061]本发明的第三方面提供一种文件系统配额管理系统,包括文件系统配额管理装置,所述文件系统配额管理装置上述第二方面提供的文件系统配额管理装置。
[0062]本发明实施例提供的文件系统配额管理方法、装置及系统,通过为目录配额对应的目录生成配额树,以便于用户根据所述配额树进行文件系统配额管理,提高了配额的操作效率。
【专利附图】

【附图说明】
[0063]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
[0064]图1为本发明实施例提供的一种文件系统配额管理方法的流程示意图;
[0065]图2为本发明实施例提供的配额树的结构示意图;
[0066]图3为本发明又一实施例提供的一种文件系统配额管理方法的流程示意图;
[0067]图4为本发明实施例提供的一种更新配额的统计数据的流程示意图
[0068]图5为本发明实施例提供的一种文件系统配额管理装置的结构示意图;
[0069]图6为本发明又一实施例提供的一种文件系统配额管理装置的结构示意图;
[0070]图7为本发明另一实施例提供的一种文件系统配额管理装置的结构示意图;
[0071]图8为本发明另一实施例提供的一种文件系统配额管理装置中的更新单元的结构示意图;
[0072]图9为本发明再一实施例提供的一种文件系统配额管理装置的结构示意图;
[0073]图10为本发明又一实施例提供的一种文件系统配额管理装置的结构示意图;
[0074]图11为本发明实施例提供的一种文件系统配额管理系统的结构示意图。
【具体实施方式】[0075]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
[0076]本实施例实用于文件系统中的文件系统配额管理场景。图1为本发明实施例提供的一种文件系统配额管理方法的流程示意图。该文件系统配额管理方法由文件系统配额管理装置执行,该装置通常为计算机的一部分实体装置。参考图1,该方法包括以下步骤:
[0077]101、在文件系统加载时,从存储对象中获取每个文件系统配额的配额项,配额项包括文件系统配额的配置数据和统计数据。
[0078]其中,文件系统配额根据限制对象的不同,可以分为:用户配额、组配额和目录配额。用户配额用于限制单个用户可以使用的存储资源。
[0079]组配额用于限制一个用户组可以使用的存储资源,通常一个用户组包含了若干用户,组配额是限制这些用户共同所用的存储资源。
[0080]目录配额用于限制一个目录下所有文件最多可占用的存储资源。
[0081]针对每一种配额,在具体配置时,又可以分别配置其可使用的空间量和可拥有的文件数。为了使用文件系统配额功能,第一步是进行配额的设置,一条配置数据的示意图如下表:
[0082]表1配额配置数据示意图
[0083]
【权利要求】
1.一种文件系统配额管理方法,其特征在于,包括: 在文件系统加载时,从存储对象中获取每个文件系统配额的配额项,所述配额项包括所述文件系统配额的配置数据和统计数据; 根据所有文件系统配额中的目录配额生成配额树,所述配额树的内存管理对象包含两棵内存自平衡二叉查找树,其中第一内存自平衡二叉查找树用于管理所有文件系统配额中用户配额的配额项,第二内存自平衡二叉查找树用于管理所有文件系统配额中组配额的配额项; 更新所述配额项,将更新后的每个文件系统配额的配额项存储至所述存储对象中。
2.根据权利要求1所述的方法,其特征在于,所述根据所有文件系统配额中的目录配额生成配额树,还包括: 对所述配额树进行编号,将所述配额树对应的编号保存在文件系统的文件的元数据信息及文件系统的目录的元数据信息中; 根据所述配额树对应的编号操作文件或目录。
3.根据权利要求2所述的方法,其特征在于,所述更新所述配额项,包括: 检测到对文件或目录的操作,根据所述配额树对应的编号对所述配额树中的配额的统计数据进行更新。
4.根据权利要求3所述的方法,其特征在于,所述根据所述配额树对应的编号对所述配额树中的配额的统计数据进行更新,包括: 根据所述配额树对应的编号对所述配额树进行加锁; 更新加锁后的所述配额树中的配额项中的配额的统计数据。
5.根据权利要求1所述的方法,其特征在于,所述将更新后的每个文件系统配额的配额项存储至所述存储对象中包括: 在预定的时间内内存中更新统计数据的次数或数据量达到预定的阈值时,将所述预定的时间内更新的所述配额的统计数据进行写盘。
6.根据权利要求5所述的方法,其特征在于,所述将所述预定的时间内更新的所述配额的统计数据进行写盘之前,还包括: 通知对象管理层将内存中更新的所述配额的统计数据的更新信息写入文件操作日志,以便在系统掉电时,所述对象管理层将所述文件操作日志进行保电处理; 在系统重新上电时,从经过保电处理的所述文件操作日志恢复配额的统计数据。
7.根据权利要求1所述的方法,其特征在于,还包括: 在关闭配额时,如果有配额的统计数据需要更新,则对配额的统计数据进行更新。
8.根据权利要求1所述的方法,其特征在于,所述将更新后的每个文件系统配额的配额项存储至所述存储对象中,包括: 将更新后的所述每个文件系统配额的配额项中的配置数据以内部文件的形式存储至所述存储对象中。
9.根据权利要求8所述的方法,其特征在于,所述将更新后的所述每个文件系统配额的配额项中的配置数据以内部文件的形式存储至所述存储对象中,包括: 根据所有文件系统配额中的目录配额确定所述每个文件系统配额的配额项的配置数据的目录归属;根据所述每个文件系统配额的配额项的配置数据的目录归属及类型,将所述每个文件系统配额的配额项的配置数据分别以不同的内部文件存储至所述存储对象中。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括: 接收对所述每个文件系统配额的配额项的配置数据的操作命令; 根据所述操作命令对所述配置数据执行对应的操作,所述操作至少包括:设置、删除、查询。
11.一种文件系统配额管理装置,其特征在于,包括: 获取单元,在文件系统加载时,用于在存储对象中获取每个文件系统配额的配额项,所述配额项包括所述文件系统配额的配置数据和统计数据; 生成单元,用于根据所有文件系统配额中的目录配额生成配额树,所述配额树的内存管理对象包含两棵内存自平衡二叉查找树,其中第一内存自平衡二叉查找树用于管理所有文件系统配额中通过所述获取单元获取的用户配额的配额项,第二内存自平衡二叉查找树用于管理所有文件系统配额中通过所述获取单元获取的组配额的配额项; 更新单元,用于更新所述获取单元获取的所述配额项,将更新后的每个文件系统配额的配额项存储至所述存储 对象中。
12.根据权利要求11所述的装置,其特征在于,所述生成单元,还包括: 编号子单元,用于对所述配额树进行编号,将所述配额树对应的编号保存在文件系统的文件的元数据信息及文件系统的目录的元数据信息中; 操作子单元,用于根据所述编号子单元生成的配额树对应的编号操作文件或目录。
13.根据权利要求12所述的装置,其特征在于,所述更新单元具体用于:在检测到对文件或目录的操作时,根据所述配额树对应的编号对所述配额树中的配额的统计数据进行更新。
14.根据权利要求13所述的装置,其特征在于,所述更新单元,包括: 加锁子单元,用于根据所述配额树对应的编号对所述配额树进行加锁; 更新子单元,用于更新通过所述加锁子单元加锁后的所述配额树中的配额项中的配额的统计数据。
15.根据权利要求13所述的装置,其特征在于,所述更新单元具体用于:在预定的时间内内存中更新统计数据的次数或数据量达到预定的阈值时,将所述预定的时间内更新的所述配额的统计数据进行写盘。
16.根据权利要求15所述的装置,其特征在于,所述更新单元,还包括: 通知子单元,用于通知对象管理层将内存中更新的所述配额的统计数据的更新信息写入文件操作日志,以便在系统掉电时,所述对象管理层将所述文件操作日志进行保电处理; 恢复子单元,用于在系统重新上电时,从经过保电处理的所述文件操作日志恢复配额的统计数据。
17.根据权利要求11所述的装置,其特征在于,所述更新单元还用于: 在关闭配额时,如果有配额的统计数据需要更新,则对配额的统计数据进行更新。
18.根据权利要求11所述的装置,其特征在于,所述更新单元,具体用于:将更新后的所述每个文件系统配额的配额项中的配置数据以内部文件的形式存储至所述存储对象中。
19.根据权利要求18所述的装置,其特征在于,所述更新单元,包括: 确定子单元,用于根据所有文件系统配额中的目录配额确定所述每个文件系统配额的配额项的配置数据的目录归属; 保存子单元,用于根据所述每个文件系统配额的配额项的配置数据的目录归属及类型,将所述每个文件系统配额的配额项的配置数据分别以不同的内部文件存储至所述存储对象中。
20.根据权利要求11所述的装置,其特征在于,所述装置还包括: 接收单元,用于接收对所述每个文件系统配额的配额项的配置数据的操作命令; 操作单元,用于根据所述操作命令对所述配置数据执行对应的操作,所述操作至少包括:设置、删除、查询。
21.一种文件系统配额管理系统,其特征在于,包括文件系统配额管理装置,所述文件系统配额管理装置为权利要求11-20任一项所述的文件系统配额管理装置。
【文档编号】G06F12/16GK103559231SQ201310504105
【公开日】2014年2月5日 申请日期:2013年10月23日 优先权日:2013年10月23日
【发明者】陈明军 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1