一种分布式存储系统的用户配额方法及系统转让专利

申请号 : CN201810573139.3

文献号 : CN108829352B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈保平

申请人 : 郑州云海信息技术有限公司

摘要 :

本发明涉及存储技术领域,提供一种分布式存储系统的用户配额方法及系统,方法包括:对用户/用户组对存储系统存储空间的使用量进行动态监控;判断使用存储空间是否大于预设的空间容量配额阈值,或用户/用户组所包含的文件数大于文件数阈值;当大于时,判断用户/用户组配额是否开启;当未开启时,则继续执行文件的上传动作;当开启时,则限制用户的文件上传动作;当小于等于预设阈值时,则继续执行文件的上传动作,从而解决多用户使用空间不均匀的问题,提高存储系统资源的整体利用率,节省存储空间。

权利要求 :

1.一种分布式存储系统的用户配额方法,其特征在于,所述方法包括下述步骤:当接收到用户的文件上传请求时,对用户/用户组对存储系统存储空间的使用量进行动态监控;

判断所述用户/用户组使用的存储系统的存储空间是否大于预设的空间容量配额阈值,或所述用户/用户组所包含的文件数大于预设的文件数阈值;

当判定所述用户/用户组使用的存储系统的存储空间大于预设的空间容量配额阈值,或所述用户/用户组所包含的文件数大于预设的文件数阈值时,判断用户/用户组配额是否开启;

当用户/用户组配额未开启时,则继续执行文件的上传动作;

当用户/用户组配额开启时,则限制所述用户的文件上传动作;

当判定所述用户/用户组使用的存储系统的存储空间小于等于预设的空间容量配额阈值,或所述用户/用户组所包含的文件数小于等于预设的文件数阈值时,则继续执行文件的上传动作;

所述方法还包括下述步骤:

对用户/用户组可写入的数据量或者文件数进行配额设置;

所述对用户/用户组可写入的数据量或者文件数进行配额设置的步骤具体包括下述步骤:

对用户/用户组进行容量配额设置,所述容量配额的设置适用于大文件场景,所述对用户/用户组进行容量配额设置的步骤包括合理规划用户/用户组的存储空间、管控用户/用户组的存储空间以及统计和查看用户/用户组的已用存储空间的步骤;

对用户/用户组进行文件数配额设置,所述文件数配额设置适用于小文件场景,所述对用户/用户组进行文件数配额设置的步骤包括合理规划用户/用户组文件数以及管控用户/用户组的文件数的步骤;

其中,所述容量配额设置和文件数配额设置包括用户配额设置和用户所在的用户组的配额设置;

只设置用户/用户组容量配额,通过客户端使用该用户或用户组内用户查看系统容量时,显示为用户/用户组容量配额值;

设置用户容量配额,同时设置用户所在用户组容量配额,通过客户端使用该用户查看系统容量时,显示为用户容量配额值;

设置目录配额,同时设置用户/用户组容量配额,客户端挂载设置配额的目录,通过客户端使用该用户或用户组内用户查看系统容量时,显示为目录配额值,即客户端查看系统容量的用户也设置有用户/用户组容量配额,系统容量优先显示目录配额值;

设置自精简,同时设置用户/用户组容量配额,客户端挂载设置自精简的目录,通过客户端使用该用户或用户组内用户查看系统容量时,显示为自精简设置值,即客户端查看系统容量的用户也设置有用户/用户组容量配额,系统容量优先显示自精简设置值。

2.根据权利要求1所述的分布式存储系统的用户配额方法,其特征在于,当用户和用户所在的用户组中有一个进行了配额设置,则只进行其中一个的配额检测;

当用户和用户所在的用户组均进行了配额设置,则对用户和用户所在的用户组均进行配额检测,最先到达配额的生效。

3.根据权利要求2所述的分布式存储系统的用户配额方法,其特征在于,所述方法还包括下述步骤:

当限制所述用户的文件上传动作时,向元数据服务器发送配额增加申请请求;

在所述元数据服务器,接收所述配额增加申请请求,并通过修改配额值的方式来增加配额。

4.一种分布式存储系统的用户配额系统,其特征在于,所述系统包括:使用量动态监控模块,用于当接收到用户的文件上传请求时,对用户/用户组对存储系统存储空间的使用量进行动态监控;

阈值判断模块,用于判断所述用户/用户组使用的存储系统的存储空间是否大于预设的空间容量配额阈值,或所述用户/用户组所包含的文件数大于预设的文件数阈值;

配额开启判断模块,用于当判定所述用户/用户组使用的存储系统的存储空间大于预设的空间容量配额阈值,或所述用户/用户组所包含的文件数大于预设的文件数阈值时,判断用户/用户组配额是否开启;

文件上传模块,用于当用户/用户组配额未开启时,则继续执行文件的上传动作;

上传动作限制模块,用于当用户/用户组配额开启时,则限制所述用户的文件上传动作;

当判定所述用户/用户组使用的存储系统的存储空间小于等于预设的空间容量配额阈值,或所述用户/用户组所包含的文件数小于等于预设的文件数阈值时,则继续所述文件上传模块执行文件的上传动作;

所述系统还包括:

配额设置模块,用于对用户/用户组可写入的数据量或者文件数进行配额设置;

所述配额设置模块具体包括:

容量配额设置模块,用于对用户/用户组进行容量配额设置,所述容量配额的设置适用于大文件场景,所述对用户/用户组进行容量配额设置的步骤包括合理规划用户/用户组的存储空间、管控用户/用户组的存储空间以及统计和查看用户/用户组的已用存储空间的步骤;

文件数配额设置模块,用于对用户/用户组进行文件数配额设置,所述文件数配额设置适用于小文件场景,所述对用户/用户组进行文件数配额设置的步骤包括合理规划用户/用户组文件数以及管控用户/用户组的文件数的步骤;

其中,所述容量配额设置和文件数配额设置包括用户配额设置和用户所在的用户组的配额设置;

只设置用户/用户组容量配额,通过客户端使用该用户或用户组内用户查看系统容量时,显示为用户/用户组容量配额值;

设置用户容量配额,同时设置用户所在用户组容量配额,通过客户端使用该用户查看系统容量时,显示为用户容量配额值;

设置目录配额,同时设置用户/用户组容量配额,客户端挂载设置配额的目录,通过客户端使用该用户或用户组内用户查看系统容量时,显示为目录配额值,即客户端查看系统容量的用户也设置有用户/用户组容量配额,系统容量优先显示目录配额值;

设置自精简,同时设置用户/用户组容量配额,客户端挂载设置自精简的目录,通过客户端使用该用户或用户组内用户查看系统容量时,显示为自精简设置值,即客户端查看系统容量的用户也设置有用户/用户组容量配额,系统容量优先显示自精简设置值。

5.根据权利要求4所述的分布式存储系统的用户配额系统,其特征在于,当用户和用户所在的用户组中有一个进行了配额设置,则只进行其中一个的配额检测;

当用户和用户所在的用户组均进行了配额设置,则对用户和用户所在的用户组均进行配额检测,最先到达配额的生效。

6.根据权利要求5所述的分布式存储系统的用户配额系统,其特征在于,所述系统还包括:

配额增加请求模块,用于当限制所述用户的文件上传动作时,向元数据服务器发送配额增加申请请求;

配额增加操作模块,用于在所述元数据服务器,接收所述配额增加申请请求,并通过修改配额值的方式来增加配额。

说明书 :

一种分布式存储系统的用户配额方法及系统

技术领域

[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] 图1是本发明提供的分布式存储系统的用户配额方法的实现流程图;
[0043] 图2是本发明提供的配额同步机制示意图;
[0044] 图3是本发明提供的分布式存储系统的用户配额系统的结构框图。

具体实施方式

[0045] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并
不用于限定本发明。
[0046] 图1示出了本发明提供的分布式存储系统的用户配额方法的实现流程图,其具体包括下述步骤:
[0047] 在步骤S101中,当接收到用户的文件上传请求时,对用户/用户组对存储系统存储空间的使用量进行动态监控。
[0048] 在步骤S102中,判断所述用户/用户组使用的存储系统的存储空间是否大于预设的空间容量配额阈值,或所述用户/用户组所包含的文件数大于预设的文件数阈值,是则执
行步骤S103,否则执行步骤S106。
[0049] 在步骤S103中,当判定所述用户/用户组使用的存储系统的存储空间大于预设的空间容量配额阈值,或所述用户/用户组所包含的文件数大于预设的文件数阈值时,判断用
户/用户组配额是否开启,是则执行步骤S104,否则执行步骤105。
[0050] 在步骤S104中,当用户/用户组配额未开启时,则继续执行文件的上传动作。
[0051] 在步骤S105中,当用户/用户组配额开启时,则限制所述用户的文件上传动作。
[0052] 在步骤S106中,当判定所述用户/用户组使用的存储系统的存储空间小于等于预设的空间容量配额阈值,或所述用户/用户组所包含的文件数小于等于预设的文件数阈值
时,则继续执行文件的上传动作。
[0053] 在该实施例中,在执行上述步骤S101之前,还需要执行下述步骤:
[0054] 对用户/用户组可写入的数据量或者文件数进行配额设置,该配额设置是对分布式存储系统的存储空间进行有效高效管理的基础,其中,该配额设置从下述两个方面展开:
[0055] 对用户/用户组进行容量配额设置,所述容量配额的设置适用于大文件场景;
[0056] 对用户/用户组进行文件数配额设置,所述文件数配额设置适用于小文件场景;
[0057] 其中,所述容量配额设备和文件数配额设置包括用户配额设置和用户所在的用户组的配额设置。
[0058] 在该实施例中,结合图2所示,当对存储容量或文件数进行配额设置后,需要进行相应的配额同步机制,其具体实现为:
[0059] (1)当客户端A配额发生改变或上报用户使用量时,A向元数据节点发送请求;
[0060] (2)元数据节点收到客户端A发送请求,修改元数据节点缓存中的配额值后,向A返回应答消息;并将新的配额值向其余客户端B和客户端C进行广播更新其配额值,其他情况
采取预申请的方式控制配额值,不再广播;
[0061] (3)申请删除过程中采取广播方式更新配额值,其余情况通过文件数据变化更新。
[0062] 基于上述理解,为了便于理解,下述给出具体的存储系统存储容量的配额设置方案:
[0063] 1、合理规划用户/用户组的存储空间
[0064] 假设存储空间总容量为100TB,管理员进行合理规划,分配给用户组quota_group1(同时管理员也可以为用户组中的用户进行配额设置,如用户组quota_group1中的用户
quota_guser1、quota_guser2……quota_guserN)40TB,合理规划用户组下用户quota_
user1、quota_user2、quota_user3……quota_userN等的容量配额,使得所有用户配额之和
小于等于40TB,实现资源管控。
[0065] 2、管控用户/用户组的存储空间
[0066] 在用户/用户组的使用过程中发现配额不足时,可向管理员提出申请,管理员可修改配额值来增加配额。
[0067] 3、统计和查看用户/用户组的已用存储空间
[0068] 管理员能够查看当前用户/用户组容量配额的硬阈值、软阈值、上报精度、当前已使用量(MB),并统计相关变化量。
[0069] 其中,硬阈值HardLimit是用户最多使用的磁盘空间,不允许超过该值。当用户使用磁盘空间达到硬阈值时,系统立即限制数据写入,同时将告警信息上报系统日志;软阈值
SoftLimit:当用户使用磁盘空间超过软性阈值时,系统发出告警信息;上报精度Accuracy
是用户磁盘空间使用量的上报限额。
[0070] 在该实施例中,用户/用户组容量配额允许对非空用户/用户组设置,在容量统计上只做增量统计;
[0071] 对一个非空用户/用户组设置容量配额,以设置配额时刻为准,统计新增容量空间,未设置容量配额前占用的空间不会被统计;
[0072] 对一个设置过配额的用户/用户组,取消其设置容量配额后,再次设置该用户/用户组配额,该设置容量配额的用户/用户组会重新统计。
[0073] 在该实施例中,只设置用户/用户组容量配额,通过客户端使用该用户(或用户组内用户)查看系统容量时,显示为用户/用户组容量配额值;
[0074] 设置用户容量配额,同时设置用户所在用户组容量配额,通过客户端使用该用户查看系统容量时,显示为用户容量配额值;
[0075] 设置目录配额,同时设置用户/用户组容量配额,客户端挂载设置配额的目录,通过客户端使用该用户(或用户组内用户)查看系统容量时,显示为目录配额值。即客户端查
看系统容量的用户也设置有用户/用户组容量配额,系统容量优先显示目录配额值;
[0076] 设置自精简,同时设置用户/用户组容量配额,客户端挂载设置自精简的目录,通过客户端使用该用户(或用户组内用户)查看系统容量时,显示为自精简设置值。即客户端
查看系统容量的用户也设置有用户/用户组容量配额,系统容量优先显示自精简设置值。
[0077] 基于上述理解,为了便于理解,下述给出具体的存储系统文件数的配额设置方案:
[0078] 1、合理规划用户/用户组文件数。
[0079] 管理员设置用户组quota_group1(同时管理员也可以为用户组中的用户进行配额设置,如用户组quota_group1中的用户quota_guser1、quota_guser2……quota_guserN)的
文件数配额为400个,合理规划用户组下用户quota_user1、quota_user2、quota_user3……
quota_userN等的配额,使得所有用户文件数配额之和小于等于400个,实现资源管控。
[0080] 2、管控用户/用户组的文件数。
[0081] 在用户/用户组的使用过程中发现配额不足时,可向管理员提出申请,管理员可修改配额值来增加配额。
[0082] 图3示出了本发明提供的分布式存储系统的用户配额系统的结构框图,为了便于说明,图中仅给出了与本发明实施例相关的部分。
[0083] 分布式存储系统的用户配额系统具体包括:
[0084] 使用量动态监控模块1,用于当接收到用户的文件上传请求时,对用户/用户组对存储系统存储空间的使用量进行动态监控;
[0085] 阈值判断模块2,用于判断所述用户/用户组使用的存储系统的存储空间是否大于预设的空间容量配额阈值,或所述用户/用户组所包含的文件数大于预设的文件数阈值;
[0086] 配额开启判断模块3,用于当判定所述用户/用户组使用的存储系统的存储空间大于预设的空间容量配额阈值,或所述用户/用户组所包含的文件数大于预设的文件数阈值
时,判断用户/用户组配额是否开启;
[0087] 文件上传模块4,用于当用户/用户组配额未开启时,则继续执行文件的上传动作;
[0088] 上传动作限制模块5,用于当用户/用户组配额开启时,则限制所述用户的文件上传动作;
[0089] 当判定所述用户/用户组使用的存储系统的存储空间小于等于预设的空间容量配额阈值,或所述用户/用户组所包含的文件数小于等于预设的文件数阈值时,则继续所述文
件上传模块4执行文件的上传动作。
[0090] 其中,配额设置模块6,用于对用户/用户组可写入的数据量或者文件数进行配额设置。
[0091] 配额设置模块6具体包括:
[0092] 容量配额设置模块7,用于对用户/用户组进行容量配额设置,所述容量配额的设置适用于大文件场景;
[0093] 文件数配额设置模块8,用于对用户/用户组进行文件数配额设置,所述文件数配额设置适用于小文件场景;
[0094] 其中,所述容量配额设备和文件数配额设置包括用户配额设置和用户所在的用户组的配额设置。
[0095] 在本发明实施例中,上述分布式存储系统的用户配额系统还包括:
[0096] 配额增加请求模块9,用于当限制所述用户的文件上传动作时,向元数据服务器发送配额增加申请请求;
[0097] 配额增加操作模块10,用于在所述元数据服务器,接收所述配额增加申请请求,并通过修改配额值的方式来增加配额。
[0098] 其中,上述各个模块的功能如上述方法实施例所记载,在此不再赘述。
[0099] 在本发明实施例中,对用户/用户组对存储系统存储空间的使用量进行动态监控;判断使用存储空间是否大于预设的空间容量配额阈值,或用户/用户组所包含的文件数大
于文件数阈值;当大于时,判断用户/用户组配额是否开启;当未开启时,则继续执行文件的
上传动作;当开启时,则限制用户的文件上传动作;当小于等于预设阈值时,则继续执行文
件的上传动作,其具有如下技术效果:
[0100] 可以解决多用户使用空间不均匀的问题,使得多用户公平、合理使用文件系统资源;
[0101] 在提高系统资源的整体利用率方面,可实现在用户/用户组层对文件系统资源的管理和控制,按需求为用户/用户组分配存储空间,避免出现个别用户过度使用资源,影响
其他用户使用的现象;
[0102] 在节约用户成本方面,节约存储空间,使得存储空间被有效的利用,能够在存储上花费最少的成本。
[0103] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。