CN113626404B - 分布式文件系统嵌套目录配额的控制方法、装置及介质 - Google Patents
分布式文件系统嵌套目录配额的控制方法、装置及介质 Download PDFInfo
- Publication number
- CN113626404B CN113626404B CN202110745171.7A CN202110745171A CN113626404B CN 113626404 B CN113626404 B CN 113626404B CN 202110745171 A CN202110745171 A CN 202110745171A CN 113626404 B CN113626404 B CN 113626404B
- Authority
- CN
- China
- Prior art keywords
- space
- data
- quota
- written
- preset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了提供一种分布式文件系统嵌套目录配额的控制方法、装置及介质,包括:写数据时,分别判断待写入文件的各层上级目录的可用空间是否小于需要写入数据的数据量;对于可用空间小于需要写入数据的数据量的各级目录向元数据服务端申请预设配额空间,预设配额空间大于需要写入数据的数据量;申请预设配额空间成功时,预设配额空间缓存在客户端;则向待写入文件写入数据,为可用空间小于需要写入数据的数据量的目录均申请大于需要写入数据的数据量的配额空间,申请成功后,由于每个层级的目录的可以空间均会大于等于需要写入数据的数据量,可以保证嵌套目录均设置配额时,每个层级的目录均不会被写超,即不会超过各个层级目录的配额。
Description
技术领域
本申请涉及分布式存储技术领域,尤其涉及分布式文件系统嵌套目录配额的控制方法、装置及介质。
背景技术
对于分布式文件系统,为了更合理地管理目录空间,提出了配额的概念,即设置了配额的目录最多可以写入配额大小的数据量,写入数据量一旦达到配额大小,立即禁止写入。
而对于一些更复杂的场景,存在需要对不同层级的目录同时设置配额的情况,这就涉及嵌套配额的概念。嵌套目录配额,即对每一层目录可设置各自独立的配额。一般来说,嵌套目录配额满足以下规则:写数据时,不仅要校验父目录配额,而且要逐层校验祖先目录配额,直至根目录,若写入数据量超过任一层目录配额,均应立即停止写入。各层级目录配额之间保持独立,无大小限制,可设置父目录配额小于子目录配额。
当前嵌套配额最普遍的实现方案为:
1.对文件执行写操作时,首先在文件系统客户端判断父目录是否设置了配额,若未设置则不做处理;若设置,则校验父目录容量加上本次写数据(IO,input output)大小是否会超过父目录配额,若超过则写入过程停止;否则校验祖父目录配额,依次重复此过程,直至根目录。
2.写IO成功后,元数据服务端更新文件大小,更新父目录容量,然后再依次更新祖先目录容量,直至根目录。
上述方案从原理上来说,依赖于目录本身的容量更新机制,即写入文件,父目录容量增加,祖父目录容量增加,依次层层更新。此方案能实现嵌套配额的功能,但同时也存在一定的问题:每次写IO完成,更新上级目录配额使用量时,并不能保证实时性,即有一定的延时,这对于连续的写IO来说,存在祖先目录配额写超的风险,该风险对于配额来说是致命的。
发明内容
为了解决上述技术问题,本申请提供了一种分布式文件系统嵌套目录配额的控制方法、装置及介质,能够。
为了实现上述目的,本申请实施例提供的技术方案如下:
本申请提供一种分布式文件系统嵌套目录配额的控制方法,包括:
写数据时,分别判断待写入文件的各层上级目录的可用空间是否小于需要写入数据的数据量;
对于可用空间小于需要写入数据的数据量的各级目录向元数据服务端申请预设配额空间,所述预设配额空间大于所述需要写入数据的数据量;
申请预设配额空间成功时,所述预设配额空间缓存在客户端;则向所述待写入文件写入数据。
优选地,所述对于可用空间小于需要写入数据的数据量的各级目录向元数据服务端申请预设配额空间,具体包括:
对于可用空间小于需要写入数据的数据量的各级目录记录到预申请目录表中,对于所述预申请目录表中的所有目录向元数据服务端统一申请预设配额空间。
优选地,还包括:针对申请预设配额空间的任一级目录,当所述元数据服务端的剩余空间小于所述预设配额空间时,比较所述剩余空间与需要写入数据的数据量,当所述剩余空间大于所述需要写入数据的数据量时,所述剩余空间全部分配给所述任一级目录;当所述元数据服务端的剩余空间小于需要写入数据的数据量时,申请预设配额空间的所有级目录申请均失败,停止写数据。
优选地,所述申请预设配额空间成功,具体包括:
针对申请预设配额空间的任一级目录,当所述元数据服务端的剩余空间大于所述预设配额空间时,申请成功向申请所述预设配额空间的任一级目录分配所述预设配额空间。
优选地,还包括:所述客户端缓存的配额空间超过预设时间未被使用时,将剩余的配额空间全部归还所述元数据服务端;
所述客户端缓存的配额空间大于预设额度时,将超出所述预设额度以外的配额空间归还所述元数据服务端。
本申请还提供一种分布式文件系统嵌套目录配额的控制装置,包括:
判断模块,用于写数据时,分别判断待写入文件的各层上级目录的可用空间是否小于需要写入数据的数据量;
申请模块,用于对于可用空间小于需要写入数据的数据量的各级目录向元数据服务端申请预设配额空间,所述预设配额空间大于所述需要写入数据的数据量;
写入模块,用于申请预设配额空间成功时,所述预设配额空间缓存在客户端,则向所述待写入文件写入数据。
优选地,所述申请模块包括统一申请子模块,用于对于可用空间小于需要写入数据的数据量的各级目录记录到预申请目录表中,对于所述预申请目录表中的所有目录向元数据服务端统一申请预设配额空间。
优选地,还包括:比较模块,用于针对申请预设配额空间的任一级目录,当所述元数据服务端的剩余空间小于所述预设配额空间时,比较所述剩余空间与需要写入数据的数据量,当所述剩余空间大于所述需要写入数据的数据量时,所述剩余空间全部分配给所述任一级目录;当所述元数据服务端的剩余空间小于需要写入数据的数据量时,申请预设配额空间的所有级目录申请均失败,停止写数据。
优选地,还包括:
还包括:归还模块和更新模块;
所述归还模块,用于所述客户端缓存的配额空间超过预设时间未被使用时,将剩余的配额空间全部归还所述元数据服务端;所述客户端缓存的配额空间大于预设额度时,将超出所述预设额度以外的配额空间归还所述元数据服务端;
所述更新模块,用于写数据成功后,更新所述客户端缓存的可用空间。。
本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当所述指令在设备上运行时,使得所述设备执行以上介绍的方法。
通过上述技术方案可知,本申请具有以下有益效果:本申请实施例提供了一种分布式文件系统嵌套目录配额的控制方法,在目录存在配额限制时,为了数据能够成功写入,而保证各层级目录均不超出配额,即各个层级目录均不会被写超,采用为可用空间小于需要写入数据的数据量的目录均申请大于需要写入数据的数据量的配额空间,申请成功后,由于每个层级的目录的可以空间均会大于等于需要写入数据的数据量,因此,数据写入时,可以保证嵌套目录均设置配额时,每个层级的目录均不会被写超,即不会超过各个层级目录的配额。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种分布式文件系统嵌套目录配额的控制方法的流程图;
图2为本申请实施例提供的另一种分布式文件系统嵌套目录配额的控制方法的流程图;
图3为本申请实施例提供的一种分布式文件系统嵌套目录配额的控制装置的示意图。
具体实施方式
为了帮助更好地理解本申请实施例提供的方案,在介绍本申请实施例提供的方法之前,先介绍本申请实施例方案的应用的场景。
分布式存储系统的文件系统包括客户端和元数据服务端,写数据时是客户端写数据,在设置了配额的目录下写数据时,当客户端的缓存不够时,本申请实施例提供的技术方案,客户端可以向元数据服务端申请一定量的配额空间,预申请的配额空间缓存在客户端本地。后续连续的写操作,直接使用客户端本地缓存的配额空间即可。当缓存的配额不够时,客户端可以再向元数据服务端继续申请配额空间。预申请成功后,元数据服务端记录的目录配额可用空间减去客户端预申请的配额空间。应该理解,对于客户端的各层级目录,在元数据服务端均对其有对应的可用空间的记录,即存在目录记录表。
下面结合附图详细介绍本申请实施例提供的技术方案。
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。
参见图1,该图为本申请实施例提供的一种分布式文件系统嵌套目录配额的控制方法的流程图。
本实施例提供的分布式文件系统嵌套目录配额的控制方法,包括:
S101:写数据时,分别判断待写入文件的各层上级目录的可用空间是否小于需要写入数据的数据量。
例如,客户端需要写入数据,需要判断待写入文件的各层上级目录的可用空间是否均大于需要写入数据的数据量,如果有一个上层目录的可用空间小于需要写入数据的数据量,则需要对各层上级目录均申请。只有当待写入文件的各层上级目录的可用空间均大于需要写入数据的数据量时,才不必申请配额空间,直接写入数据。例如待写入文件的父目录的可用空间大于等于需要写入数据的数据量,但是待写入文件的祖父目录的可以空间小于需要写入数据的数据量,则对待写入文件的上级目录中可用空间小于需要写入数据的数据量的目录需要申请配额空间。即对待写入文件的祖父目录申请配额空间。
一种情况是,本次需要写入数据的数据量可以用IO块大小来统计。
另外,为了方便统计,如果待写入文件的上级目录中有多个目录均需要申请配额空间,则申请的各个目录的配额空间均相同。
S102:对于可用空间小于需要写入数据的数据量的各级目录向元数据服务端申请预设配额空间,所述预设配额空间大于所述需要写入数据的数据量。
为了保证需要写入的数据可以成功被写入,预设配额空间一般远大于需要写入数据的数据量,并减少客户端与元数据服务的交互次数,例如需要写入数据的数据量为1M,则预设配额空间可以为1G,以上数字仅是为了方便理解举例说明,预设配额空间可以为需要写入数据的数据量的几倍甚至几十倍,本申请实施例不做具体限定。
S103:申请预设配额空间成功时,所述预设配额空间缓存在客户端;则向所述待写入文件写入数据。
当预设配额空间申请成功时,客户端缓存该预设配额空间,客户端可以将需要写入数据写入缓存的预设配额空间。
本申请实施例提供的分布式文件系统嵌套目录配额的控制方法,在目录存在配额限制时,为了数据能够成功写入,而保证各层级目录均不超出配额,即各个层级目录均不会被写超,采用为可用空间小于需要写入数据的数据量的目录均申请大于需要写入数据的数据量的配额空间,申请成功后,由于每个层级的目录的可以空间均会大于等于需要写入数据的数据量,因此,数据写入时,可以保证嵌套目录均设置配额时,每个层级的目录均不会被写超,即不会超过各个层级目录的配额。
下面结合附图详细介绍各个层级目录申请预设配额空间的具体过程。本申请实施例提供的方法,当待写入文件的上级目录有目录的可用空间小于需要写入数据的数据量时,便需要为这些可用空间小的目录统一申请预设配额空间,但是存在一种情况,元数据服务端收到客户端发送的预设配额空间申请请求时,会依次解析各个层级目录,并根据各个层级目录的剩余配额空间来进行分配。如果有的目录剩余配额空间不够分配,则申请失败,下面分情况进行具体介绍。
参见图2,该图为本申请实施例提供的另一种分布式文件系统嵌套目录配额的控制方法的流程图。
S201:准备写入数据;
S202:分别判断待写入文件的各层上级目录的可用空间是否小于需要写入数据的数据量,如果是,执行S203,如果否,执行S209,即如果客户端缓存的待写入文件的所有上级目录可用空间均大于需要写入数据的数据量,则本次IO不需要去元数据服务端预申请配额空间,直接写数据即可。
S203:对于可用空间小于需要写入数据的数据量的各级目录向元数据服务端申请预设配额空间;
哪级目录的可用空间小于需要写入数据的数据量,则对该级目录申请预设配额空间。
对于剩余配额可用空间小于需要写入数据的数据量的各级目录记录到预申请目录表中,对于所述预申请目录表中的所有目录向元数据服务端统一申请预设配额空间。
S204:针对申请预设配额的任一级目录,判断元数据服务端的剩余空间是否大于预设配额空间,如果是,执行S205;如果否,执行S206;
S205:元数据服务端对应的申请配额的所有级目录的剩余空间均大于预设配额空间,为申请预设配额的所有级目录均分配预设配额空间,执行S209。
针对申请预设配额空间的任一级目录,当所述元数据服务端的剩余空间大于所述预设配额空间时,申请成功向申请所述预设配额空间的任一级目录分配所述预设配额空间,即统一分配预设配额空间。
S206:针对申请预设配额的任一级目录,当元数据服务端的剩余空间小于预设配额空间时,判断元数据服务端的剩余空间是否大于需要写入数据的数据量,如果是,剩余空间全部分配给任一级目录,执行S207;如果否,执行S208。
需要说明的是,在S206中,可能元数据服务端对应的目录的剩余空间大于预设配额空间,对应这些目录,直接分配预设配额空间即可。对于元数据服务端有的目录的剩余空间小于预设配额空间的,继续判断剩余空间是否大于需要写入数据的数据量。
S207:将剩余空间全部分配给申请配额空间的目录。
S208:当元数据服务端的剩余空间小于需要写入数据的数据量时,申请预设配额空间的所有级目录申请均失败,停止写数据。
S209:写入数据,写完数据后对客户端的可用空间进行更新。
以上任一级目录泛指申请预设配额空间的某一级目录,例如多级目录均需要申请预设配额空间,则需要每一级目录均核验其剩余空间是否够分配。当某一级的剩余空间不够分配时,则所有申请预设配额空间的各级目录均申请失败,已经申请的需要退回,即归还元数据服务端分配的配额空间。
本申请实施例提供的方法,对于嵌套目录设置配额时,如果待写入文件的父目录及其祖先目录均设置了配额,首先要获取待写入文件所有设置配额的上级目录(从父目录-祖父目录直至根目录),依次检查各级上级目录的可用空间是否大于本次IO块大小,对于可用空间小于本次IO块大小的目录记录到预申请目录中。对预申请目录统一执行预申请配额空间的操作,预申请一定量的配额空间。元数据服务端接收到预申请请求后,依次解析各级目录,并为其分配申请的配额。一般申请预设配额的大小可以设置为配置项,即大小可以调整。如果某级目录预申请的配额大小大于剩余配额空间,则继续比较本次IO块大小与剩余配额空间,如果本次IO块大小小于剩余配额空间,则将剩余配额空间分配给预申请配额。如果本次IO块大小大于剩余配额空间,则预申请失败。任一级目录节点预申请失败,都会导致整个预申请流程失败,且同一批次预申请完成的配额需要归还。预申请失败,写操作终止。
每次写IO完成后,将客户端缓存的文件各级上级目录的配额可用空间减去本次IO写入的块大小,即进行更新操作。预设配额空间的大小一般远大于单次IO块大小,这样可以尽量减少客户端与元数据服务端之间的交互,将申请配额的操作对写性能的影响降到最低。对于嵌套配额来说,本申请实施例提供的方法多级目录申请配额空间为同步操作,且配额功能由自身单级分别独立控制,不依赖各级目录容量的更新机制,配额控制准确没有延时,写之前预先进行了配额预申请,因此可以从根本上保证不会出现写数据时超出配额的情况。
当删除嵌套配额目录下的文件时,客户端缓存的这部分文件的配额各层上级目录的缓存空间相应的依次更新。
另外,为了使可用空间得到充分地有效利用,本申请实施例提供的方法,还包括:客户端缓存的配额空间超过预设时间未被使用时,将剩余的配额空间全部归还元数据服务端。
客户端缓存的配额空间大于预设额度时,将超出预设额度以外的配额空间归还元数据服务端。由于客户端的有些数据会被删除,因此,客户端缓存的配额空间可能会有大小变化,因此,为了客户端的可用空间有效利用,超额的空间可以归还给元数据服务端,以使元数据服务端进行后续更合理地分配。
基于以上实施例提供的一种分布式文件系统嵌套目录配额的控制方法,本申请实施例还提供一种分布式文件系统嵌套目录配额的控制装置,下面结合附图进行详细的介绍。
参见图3,该图为本申请实施例提供的分布式文件系统嵌套目录配额的控制装置示意图。
本实施例提供的分布式文件系统嵌套目录配额的控制装置包括:
判断模块301,用于写数据时,分别判断待写入文件的各层上级目录的可用空间是否小于需要写入数据的数据量;
例如,客户端需要写入数据,需要判断待写入文件的各层上级目录的可用空间是否均大于需要写入数据的数据量,如果有一个上层目录的可用空间小于需要写入数据的数据量,则需要对各层上级目录均申请。只有当待写入文件的各层上级目录的可用空间均大于需要写入数据的数据量时,才不必申请配额空间,直接写入数据。例如待写入文件的父目录的可用空间大于等于需要写入数据的数据量,但是待写入文件的祖父目录的可以空间小于需要写入数据的数据量,则对待写入文件的上级目录中可用空间小于需要写入数据的数据量的目录需要申请配额空间。即对待写入文件的祖父目录申请配额空间。
一种情况是,本次需要写入数据的数据量可以用IO块大小来统计。
另外,为了方便统计,如果待写入文件的上级目录中有多个目录均需要申请配额空间,则申请的各个目录的配额空间均相同。
申请模块302,用于对于可用空间小于需要写入数据的数据量的各级目录向元数据服务端申请预设配额空间,所述预设配额空间大于所述需要写入数据的数据量;
为了保证需要写入的数量可以成功被写入,并且减少与元数据服务端的交互,预设配额空间一般远大于需要写入数据的数据量,例如需要写入数据的数据量为1M,则预设配额空间可以为1G,以上数字仅是为了方便理解举例说明,预设配额空间可以为需要写入数据的数据量的几倍甚至几十倍,本申请实施例不做具体限定。
写入模块303,用于申请预设配额空间成功时,所述预设配额空间缓存在客户端,则向所述待写入文件写入数据。
当预设配额空间申请成功时,客户端缓存该预设配额空间,客户端可以将需要写入数据写入缓存的预设配额空间。
本申请实施例提供的分布式文件系统嵌套目录配额的控制方法,在目录存在配额限制时,为了数据能够成功写入,而保证各层级目录均不超出配额,即各个层级目录均不会被写超,采用为可用空间小于需要写入数据的数据量的目录均申请大于需要写入数据的数据量的配额空间,申请成功后,由于每个层级的目录的可以空间均会大于等于需要写入数据的数据量,因此,数据写入时,可以保证嵌套目录均设置配额时,每个层级的目录均不会被写超,即不会超过各个层级目录的配额。
所述申请模块包括统一申请子模块,用于对于可用空间小于需要写入数据的数据量的各级目录记录到预申请目录表中,对于所述预申请目录表中的所有目录向元数据服务端统一申请预设配额空间。
本申请实施例提供的分布式文件系统嵌套目录配额的控制装置,还包括:比较模块,用于针对申请预设配额空间的任一级目录,当所述元数据服务端的剩余空间小于所述预设配额空间时,比较所述剩余空间与需要写入数据的数据量,当所述剩余空间大于所述需要写入数据的数据量时,所述剩余空间全部分配给所述任一级目录;当所述元数据服务端的剩余空间小于需要写入数据的数据量时,申请预设配额空间的所有级目录申请均失败,停止写数据。
本申请实施例提供的分布式文件系统嵌套目录配额的控制装置,还包括:归还模块,用于所述客户端缓存的配额空间超过预设时间未被使用时,将剩余的配额空间全部归还所述元数据服务端;所述客户端缓存的配额空间大于预设额度时,将超出所述预设额度以外的配额空间归还所述元数据服务端。
另外,本申请实施例提供的分布式文件系统嵌套目录配额的控制装置,还包括:更新模块304,用于写数据成功后,更新所述客户端缓存的可用空间,即更新后的可用空间为写数据之前的可用空间减去本次写入的数据量。
基于以上实施例提供的一种分布式文件系统嵌套目录配额的控制方法,本申请实施例还提供一种分布式文件系统嵌套目录配额的控制装置,下面进行详细的介绍。
本实施例提供的计算机可读存储介质中存储有指令,当指令在设备上运行时,使得设备执行以上实施例介绍的分布式文件系统嵌套目录配额的控制方法。应该理解,本申请实施例不限定设备的具体类型,例如可以为服务器,计算机或者存储器等。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本申请各个实施例或者实施例的某些部分所述的方法。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的方法而言,由于其与实施例公开的系统相对应,所以描述的比较简单,相关之处参见系统部分说明即可。
还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (6)
1.一种分布式文件系统嵌套目录配额的控制方法,其特征在于,包括:
写数据时,分别判断待写入文件的各层上级目录的可用空间是否小于需要写入数据的数据量;
对于可用空间小于需要写入数据的数据量的各级目录向元数据服务端申请预设配额空间,所述预设配额空间大于所述需要写入数据的数据量;
申请预设配额空间成功时,所述预设配额空间缓存在客户端;则向所述待写入文件写入数据;
所述对于可用空间小于需要写入数据的数据量的各级目录向元数据服务端申请预设配额空间,具体包括:
对于可用空间小于需要写入数据的数据量的各级目录记录到预申请目录表中,对于所述预申请目录表中的所有目录向元数据服务端统一申请预设配额空间;
还包括:所述客户端缓存的配额空间超过预设时间未被使用时,将剩余的配额空间全部归还所述元数据服务端;
所述客户端缓存的配额空间大于预设额度时,将超出所述预设额度以外的配额空间归还所述元数据服务端;
写数据成功后,更新所述客户端缓存的可用空间。
2.根据权利要求1所述的方法,其特征在于,还包括:针对申请预设配额空间的任一级目录,当所述元数据服务端的剩余空间小于所述预设配额空间时,比较所述剩余空间与需要写入数据的数据量,当所述剩余空间大于所述需要写入数据的数据量时,所述剩余空间全部分配给所述任一级目录;当所述元数据服务端的剩余空间小于需要写入数据的数据量时,申请预设配额空间的所有级目录申请均失败,停止写数据。
3.根据权利要求1-2任一项所述的方法,其特征在于,所述申请预设配额空间成功,具体包括:
针对申请预设配额空间的任一级目录,当所述元数据服务端的剩余空间大于所述预设配额空间时,申请成功向申请所述预设配额空间的任一级目录分配所述预设配额空间。
4.一种分布式文件系统嵌套目录配额的控制装置,其特征在于,包括:
判断模块,用于写数据时,分别判断待写入文件的各层上级目录的可用空间是否小于需要写入数据的数据量;
申请模块,用于对于可用空间小于需要写入数据的数据量的各级目录向元数据服务端申请预设配额空间,所述预设配额空间大于所述需要写入数据的数据量;
写入模块,用于申请预设配额空间成功时,所述预设配额空间缓存在客户端,则向所述待写入文件写入数据;
所述申请模块包括统一申请子模块,用于对于可用空间小于需要写入数据的数据量的各级目录记录到预申请目录表中,对于所述预申请目录表中的所有目录向元数据服务端统一申请预设配额空间;
还包括:
归还模块,用于所述客户端缓存的配额空间超过预设时间未被使用时,将剩余的配额空间全部归还所述元数据服务端;所述客户端缓存的配额空间大于预设额度时,将超出所述预设额度以外的配额空间归还所述元数据服务端;
更新模块,用于写数据成功后,更新所述客户端缓存的可用空间。
5.根据权利要求4所述的装置,其特征在于,还包括:比较模块,用于针对申请预设配额空间的任一级目录,当所述元数据服务端的剩余空间小于所述预设配额空间时,比较所述剩余空间与需要写入数据的数据量,当所述剩余空间大于所述需要写入数据的数据量时,所述剩余空间全部分配给所述任一级目录;当所述元数据服务端的剩余空间小于需要写入数据的数据量时,申请预设配额空间的所有级目录申请均失败,停止写数据。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在设备上运行时,使得所述设备执行权利要求1-3任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110745171.7A CN113626404B (zh) | 2021-06-30 | 2021-06-30 | 分布式文件系统嵌套目录配额的控制方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110745171.7A CN113626404B (zh) | 2021-06-30 | 2021-06-30 | 分布式文件系统嵌套目录配额的控制方法、装置及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113626404A CN113626404A (zh) | 2021-11-09 |
CN113626404B true CN113626404B (zh) | 2024-02-13 |
Family
ID=78378817
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110745171.7A Active CN113626404B (zh) | 2021-06-30 | 2021-06-30 | 分布式文件系统嵌套目录配额的控制方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113626404B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114115735B (zh) * | 2021-11-18 | 2024-02-09 | 北京奥星贝斯科技有限公司 | 写入数据的方法及装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5713013A (en) * | 1996-01-25 | 1998-01-27 | Apple Computer, Inc. | System for establishing and enforcing maximum size of directory by preventing the size of the directory from exceeding the set quota size of the directory |
CN104750558A (zh) * | 2013-12-31 | 2015-07-01 | 伊姆西公司 | 在分层配额系统中管理资源分配的方法和装置 |
CN106899676A (zh) * | 2017-02-28 | 2017-06-27 | 郑州云海信息技术有限公司 | 一种多客户端写入目录配额分配方法 |
CN107562386A (zh) * | 2017-09-13 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种分布式存储集群的数据写入方法及装置 |
US10037341B1 (en) * | 2014-03-31 | 2018-07-31 | EMC IP Holding Company LLC | Nesting tree quotas within a filesystem |
CN109144951A (zh) * | 2018-08-01 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种基于分布式文件系统的目录更新方法及元数据服务器 |
CN109446177A (zh) * | 2018-11-02 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种分布式文件系统目录文件个数配额的实现方法及装置 |
CN109783467A (zh) * | 2019-01-12 | 2019-05-21 | 郑州云海信息技术有限公司 | 一种分布式文件系统的嵌套目录文件个数配额设置方法 |
CN110674102A (zh) * | 2019-09-29 | 2020-01-10 | 北京浪潮数据技术有限公司 | 分布式文件系统目录配额方法、系统、装置及存储介质 |
CN111258952A (zh) * | 2020-01-08 | 2020-06-09 | 北京松果电子有限公司 | 一种数据存储控制方法、装置及存储介质 |
CN111552438A (zh) * | 2020-04-23 | 2020-08-18 | 广州市百果园信息技术有限公司 | 一种对象写入的方法、装置、服务器和存储介质 |
-
2021
- 2021-06-30 CN CN202110745171.7A patent/CN113626404B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5713013A (en) * | 1996-01-25 | 1998-01-27 | Apple Computer, Inc. | System for establishing and enforcing maximum size of directory by preventing the size of the directory from exceeding the set quota size of the directory |
CN104750558A (zh) * | 2013-12-31 | 2015-07-01 | 伊姆西公司 | 在分层配额系统中管理资源分配的方法和装置 |
US10037341B1 (en) * | 2014-03-31 | 2018-07-31 | EMC IP Holding Company LLC | Nesting tree quotas within a filesystem |
CN106899676A (zh) * | 2017-02-28 | 2017-06-27 | 郑州云海信息技术有限公司 | 一种多客户端写入目录配额分配方法 |
CN107562386A (zh) * | 2017-09-13 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种分布式存储集群的数据写入方法及装置 |
CN109144951A (zh) * | 2018-08-01 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种基于分布式文件系统的目录更新方法及元数据服务器 |
CN109446177A (zh) * | 2018-11-02 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种分布式文件系统目录文件个数配额的实现方法及装置 |
CN109783467A (zh) * | 2019-01-12 | 2019-05-21 | 郑州云海信息技术有限公司 | 一种分布式文件系统的嵌套目录文件个数配额设置方法 |
CN110674102A (zh) * | 2019-09-29 | 2020-01-10 | 北京浪潮数据技术有限公司 | 分布式文件系统目录配额方法、系统、装置及存储介质 |
CN111258952A (zh) * | 2020-01-08 | 2020-06-09 | 北京松果电子有限公司 | 一种数据存储控制方法、装置及存储介质 |
CN111552438A (zh) * | 2020-04-23 | 2020-08-18 | 广州市百果园信息技术有限公司 | 一种对象写入的方法、装置、服务器和存储介质 |
Non-Patent Citations (1)
Title |
---|
分布式存储系统中用户磁盘空间分配策略;谭子军;何连跃;;计算机工程(09);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113626404A (zh) | 2021-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10949551B2 (en) | Policy aware unified file system | |
US7765189B2 (en) | Data migration apparatus, method, and program for data stored in a distributed manner | |
US9519653B2 (en) | Techniques for efficiently enforcing resource quotas in a multi-tenant cloud storage system | |
US7305537B1 (en) | Method and system for I/O scheduler activations | |
US10394452B2 (en) | Selecting pages implementing leaf nodes and internal nodes of a data set index for reuse | |
CN104978335A (zh) | 数据访问控制方法和装置 | |
WO2016202199A1 (zh) | 分布式文件系统及其文件元信息管理方法 | |
US20170147250A1 (en) | Allocating storage for cloned data | |
US10191663B1 (en) | Using data store accelerator intermediary nodes and write control settings to identify write propagation nodes | |
CN107391045B (zh) | 一种目录空间配额方法及系统 | |
US20190339873A1 (en) | Distributed data storage system with automatic snapshots, user snapshots and soft delete | |
CN112596762A (zh) | 一种滚动升级方法及装置 | |
CN107229649A (zh) | 数据更新系统及方法 | |
CN113626404B (zh) | 分布式文件系统嵌套目录配额的控制方法、装置及介质 | |
CN113806300A (zh) | 数据存储方法、系统、装置、设备及存储介质 | |
CN106897345A (zh) | 一种数据存储的方法及装置 | |
US10592469B1 (en) | Converting files between thinly and thickly provisioned states | |
US11429311B1 (en) | Method and system for managing requests in a distributed system | |
US20150381520A1 (en) | Data set multiplicity change device, server, data set multiplicity change method and computer redable medium | |
CN112799588B (zh) | 使用外部存储加载容器集群应用数据时的数据存储方法 | |
US7386692B1 (en) | Method and apparatus for quantized deadline I/O scheduling | |
US20230109530A1 (en) | Synchronous object placement for information lifecycle management | |
US9652393B1 (en) | Managing shared memory in database server | |
CN109725844A (zh) | 一种磁盘分配方法、装置和存储系统 | |
CN109376001A (zh) | 一种资源分配的方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |