CN107589915B - 一种分布式存储系统的容量信息监控方法、装置及设备 - Google Patents
一种分布式存储系统的容量信息监控方法、装置及设备 Download PDFInfo
- Publication number
- CN107589915B CN107589915B CN201710875617.1A CN201710875617A CN107589915B CN 107589915 B CN107589915 B CN 107589915B CN 201710875617 A CN201710875617 A CN 201710875617A CN 107589915 B CN107589915 B CN 107589915B
- Authority
- CN
- China
- Prior art keywords
- subdirectory
- quota
- data
- value
- authorized quota
- 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 60
- 238000012544 monitoring process Methods 0.000 title claims abstract description 39
- 238000004806 packaging method and process Methods 0.000 claims abstract description 11
- 230000008569 process Effects 0.000 claims description 13
- 238000013475 authorization Methods 0.000 claims description 6
- 238000005538 encapsulation Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 4
- 238000012806 monitoring device Methods 0.000 abstract description 7
- 230000006870 function Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000005056 compaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种分布式存储系统的容量信息监控方法、装置、设备及计算机可读存储介质。方法包括根据当前待存储数据的容量值,判断对应子目录的预授权配额是否充足;若否,判断执行写数据的线程是否超过1个线程;若是,则利用线程锁将多个写数据线程封装为一个原子操作,以使第一目标线程向元数据服务器发送申请目标授权配额的请求;接收元数据服务器返回的实际授权配额,更新子目录的预授权配额;向子目录中写入待存储数据,计算子目录的当前预授权配额值与新增数据容量值的差值;根据差值更新子目录的第一最终预授权配额,并将第一最终预授权配额发送给元数据服务器。本申请提供的技术方案提高了分布式存储系统容量信息的统计精度。
Description
技术领域
本发明实施例涉及分布式存储技术领域,特别是涉及一种分布式存储系统的容量信息监控方法、装置、设备及计算机可读存储介质。
背景技术
分布式存储系统,将数据分散存储在多台独立的设备上。传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,同时存在着可靠性和安全性隐患,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,不但可提高系统的可靠性、可用性和存取效率,还易于扩展。
在分布式存储的实际应用中,当涉及到多个部门共同使用存储资源时,通常会先用自精简功能对存储空间进行划分,然后为每个部门分配一个固定大小的子空间。自精简机制使得不同部门使用专有的固定大小的存储空间,有效避免了部门之间相互抢占存储资源,从而导致资源的浪费,降低存储的使用效率,严重时甚至影响业务的开展;此外,还将不同部门的业务在逻辑上进行了隔离,防止部门之间相互查看、甚至操作他人存储的重要资料,排除了安全隐患。
尽管自精简机制具有上述优势,但是随着工作人员或部门的增多,对存储的并发读写也会越来越多,在多并发读写的应用场景下,现有的自精简机制难以做到对各个子空间的可用容量、已用容量等信息进行实时监控或统筹分配,从而导致分布式存储系统运行一段时间后统计的容量信息出现偏差,例如写入的数据量超过分配的空间上限,或者是子空间还未写满便提示没有可用空间,这种情况下还需要相关工作人员进行手动调整,带来很多不便,且会降低整个分布式存储系统的工作效率。
发明内容
本发明实施例的目的是提供一种分布式存储系统的容量信息监控方法、装置、设备及计算机可读存储介质,以提高分布式存储系统容量信息的统计精度。
为解决上述技术问题,本发明实施例提供以下技术方案:
本发明实施例一方面提供了一种分布式存储系统的容量信息监控方法,应用于客户端,包括:
根据当前待存储数据的容量值,判断对应子目录的预授权配额是否充足;
若否,判断执行写数据的线程是否超过1个线程;
若是,则利用线程锁将多个写数据线程封装为一个原子操作,以使第一目标线程向元数据服务器发送申请目标授权配额的请求;
接收所述元数据服务器返回的实际授权配额,并根据所述子目录当前剩余预授权配额值与所述实际授权配额更新所述子目录的预授权配额;
向所述子目录中写入待存储数据,并获取写入所述子目录中新增数据容量值,计算所述子目录的当前预授权配额值与所述新增数据容量值的差值;
根据所述差值更新所述子目录的第一最终预授权配额,并将所述第一最终预授权配额发送给所述元数据服务器。
所述目标授权配额的计算过程包括:
获取上一次多线程同时写数据时,第一个线程成功写入所述子目录中数据之后,其余各线程欲写入所述子目录中的数据容量值,以作为并发能力容量值;
计算所述并发能力容量值与所述第一目标线程对应的待存储数据的容量值之后,以作为目标授权配额值。
可选的,所述实际授权配额包括所述目标授权配额值与预设富余配额值。
可选的,根据所述子目录当前剩余预授权配额值与所述实际授权配额更新所述子目录的预授权配额为:
计算所述子目录当前剩余预授权配额值、所述预设富余配额值、与所述第一目标线程对应的待存储数据的容量值的和值;
根据所述和值更新所述子目录的预授权配额。
可选的,还包括:
当检测到从所述子目录中删除数据时,获取待删除数据的容量值;
计算所述子目录当前的预授权配额与所述待删除数据的容量值的差值;
根据所述差值更新所述子目录的第二最终预授权配额,并将所述第二最终预授权配额发送给所述元数据服务器。
可选的,所述将所述第二最终预授权配额发送给所述元数据服务器包括:
将所述第二最终预授权配额与所述待删除数据的容量值发送给所述元数据服务器,以用于所述元数据服务器统计分布式存储系统的容量使用情况。
可选的,所述将所述第一最终预授权配额发送给所述元数据服务器包括:
判断用于将所述第一最终预授权配额发送给所述元数据服务器的线程个数是否超过1;
若是,则利用线程锁将多个上报线程封装为一个原子操作,以使第二目标线程将所述第一最终预授权配额发送给所述元数据服务器。
本发明实施例另一方面提供了一种分布式存储系统的容量信息监控装置,包括:
判断模块,用于根据当前待存储数据的容量值,判断对应子目录的预授权配额是否充足;若否,判断执行写数据的线程是否超过1个线程;
原子封装模块,用于若是,则利用线程锁将多个线程封装为一个原子操作,以使第一目标线程向元数据服务器发送申请目标授权配额的请求;
容量信息更新模块,用于接收所述元数据服务器返回的实际授权配额,并根据所述子目录当前剩余预授权配额值与所述实际授权配额更新所述子目录的预授权配额;向所述子目录中写入待存储数据,并获取写入所述子目录中的新增数据容量值,计算所述子目录的当前预授权配额值与所述新增数据容量值的差值;根据所述差值更新所述子目录的第一最终预授权配额;
容量信息上报模块,用于将所述第一最终预授权配额发送给所述元数据服务器。
本发明实施例还提供了一种分布式存储系统的容量信息监控设备,包括处理器与存储器,所述处理器用于执行所述存储器中存储的分布式存储系统的容量信息监控程序时实现如前任一项所述分布式存储系统的容量信息监控方法的步骤。
本发明实施例最后还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有分布式存储系统的容量信息监控程序,所述分布式存储系统的容量信息监控程序被处理器执行时实现如前任一项所述分布式存储系统的容量信息监控方法的步骤。
本发明实施例提供了一种分布式存储系统的容量信息监控方法,根据当前待存储数据的容量值,判断对应子目录的预授权配额是否充足;若否,判断执行写数据的线程是否超过1个线程;若是,则利用线程锁将多个写数据线程封装为一个原子操作,以使第一目标线程向元数据服务器发送申请目标授权配额的请求;接收元数据服务器返回的实际授权配额,并根据子目录当前剩余预授权配额值与实际授权配额更新子目录的预授权配额;向子目录中写入待存储数据,并获取写入子目录中新增数据容量值,计算子目录的当前预授权配额值与新增数据容量值的差值;根据差值更新子目录的第一最终预授权配额,并将第一最终预授权配额发送给元数据服务器。
本申请提供的技术方案的优点在于,优化了子目录的授权配额的申请、更新与上报整个流程,实现了分布式存储系统的存储容量的精细化管理;在多并发读写的应用场景下,通过利用线程锁将多个写数据线程封装为一个原子操作,使一个线程向元数据服务器发送申请目标授权配额的请求,就避免由于多个线程同时向元数据服务器申请配额而导致客户端申请到的总配额无法控制,影响分布式存储系统的容量信息统计精度,有效的提高了分布式存储系统对各存储子目录容量信息的统计精度和存储空间的分配效率。
此外,本发明实施例还针对分布式存储系统的容量信息监控方法提供了相应的实现装置、设备及计算机可读存储介质,进一步使得所述方法更具有实用性,所述装置、设备及计算机可读存储介质具有相应的优点。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种分布式存储系统的容量信息监控方法的流程示意图;
图2为本发明实施例提供的另一种分布式存储系统的容量信息监控方法的流程示意图;
图3为本发明实施例提供的分布式存储系统的容量信息监控装置的一种具体实施方式结构图;
图4为本发明实施例提供的分布式存储系统的容量信息监控装置的另一种具体实施方式结构图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
在介绍了本发明实施例的技术方案后,下面详细的说明本申请的各种非限制性实施方式。
首先参见图1,图1为本发明实施例提供的一种分布式存储系统的容量信息监控方法的流程示意图,本发明实施例可包括以下内容:
S101:根据当前待存储数据的容量值,判断对应子目录的预授权配额是否充足,若否,则执行S102。
S102:判断执行写数据的线程是否超过1个线程,若是,则执行S103。
如果当前客户端对应子目录的预授权配额,则客户端直接将当前待存储数据写入对应的子目录中,以存储在分布式存储系统的对象存储设备中。
当客户端向分布式存储系统中写入数据时,客户端写入的数据通过对应的子目录存储在分布式存储系统的对象存储设备中。分布式存储系统会预先为每个客户端分配预授权配额,以用于存储该客户端的数据。故在写入数据之前,需要先判断子目录的预授权配额是否充足。
对于只有一个线程进行写数据来说,当前待存储数据即为该线程要写入存储系统的数据;而对于多并发读写应用场景来说,客户端多个线程同时进行写数据,当前待存储数据可为这多个线程中任何一个线程要写入存储系统的数据,这均不影响本申请的实现。
如果执行写数据的线程只有1个线程,则直接向元数据服务器发送申请目标授权配额的请求,执行S104。
S103:利用线程锁将多个写数据线程封装为一个原子操作,以使第一目标线程向元数据服务器发送申请目标授权配额的请求。
在多并发条件下,一个客户端下多个线程同时向元数据服务器申请配额的情况,这样客户端申请到的总配额就无法控制了,影响最终的统计精度,因此需要将整个过程(从客户端发出申请,到接收到元数据服务器返回的响应)利用线程锁封装成一个原子操作。也就是说,从多个线程中选取一个线程作为第一目标线程,其他线程利用线程锁将其他线程锁定,先执行第一目标线程。
在多并发应用场景下,考虑到存储空间的并发存储能力,申请目标授权配额的计算过程可为:
获取上一次多线程同时写数据时,第一个线程成功写入子目录中数据之后,其余各线程欲写入子目录中的数据容量值,以作为并发能力容量值;
计算并发能力容量值与第一目标线程对应的待存储数据的容量值之后,以作为目标授权配额值。
举例来说,由于现有的机制中对配额的更新比较滞后(写入成功后才更新本地配额),因此如果可用配额只剩下1M,此时多个线程同时向子目录中各写入1M的数据,在判断本地的预授权配额时,结果都是配额充足;当第一个线程写入成功后更新本地配额,此时预授权配额变成0了,但是其它线程仍然会继续写入数据。这就突破了配额的限制作用,导致写入数据量不受控了。为了保证配额统计正确,同时保留客户端的并发能力,可记录这种情况下在配额之外写入的数据量,当下次向元数据服务器申请配额时,申请的数据量要加上这次统计的数据量;待收到元数据服务器的响应时,收到的配额要减去这次统计的数据量,剩下的配额才是真正可用的配额。
S104:接收元数据服务器返回的实际授权配额,并根据子目录当前剩余预授权配额值与实际授权配额更新子目录的预授权配额。
为了避免客户端多次向元数据服务器发送配额申请的请求,增加元数据服务器的工作压力,元数据服务器在接收客户端的配额请求后,反馈给客户端时间授权配额大于客户端申请的配额值,也就是说实际授权配额包括目标授权配额值与预设富余配额值。
预设富余配额值的选取可根据分布式存储系统的可用容量、容量使用状况与当前申请配额的客户端的运行状况进行确定,既保证客户端在较短时间内有充足的容量可用,减轻元数据服务器的数据处理压力,又可避免其他客户端容量不够用的情况。例如,元数据服务器向客户端返回的配额大小在申请大小的基础上多返回200M。
当前预授权配额值计算过程可为:
计算子目录当前剩余预授权配额值、预设富余配额值、与当前待存储数据的容量值的和值;
根据和值更新子目录的预授权配额。
根据子目录当前剩余预授权配额值与实际授权配额更新子目录的预授权配额,举例来说,客户端对应的子目录当前剩余预授权配额值为10M,第一目标线程对应的数据存储的容量为20M,并发能力容量值为30M,客户端向元数据服务器申请的目标授权配额为50M,元数据服务器返回的实际授权配额为250M,由于并发能力容量值不为实际可用空间的容量,故子目录的预授权配额更新后的值为230M。
S105:向子目录中写入待存储数据,并获取写入子目录中新增数据容量值,计算子目录的当前预授权配额值与新增数据容量值的差值。
由于是多并发应用场景,故向子目录中写入待存储数据时,为多个线程同时写入数据,举例来说,第一目标线程写入的数据为20M,其他线程写入的数据为10M、20M、50M、30M,那么写入子目录中的存储数据容量值(也即是新增数据容量值)为110M。
写入数据后,子目录的可用空间必然减少,即子目录的当前预授权配额值减少,需要更新当前子目录的预授权配额。
S106:根据差值更新子目录的第一最终预授权配额,并将第一最终预授权配额发送给元数据服务器。
举例来说,子目录的预授权配额更新后的值为230M,写入110M,那么进行更新之后,子目录当前的预授权配额值为120M。
可将第一最终预授权配额、新增加的容量值、元数据反馈的实际授权配额发送给元数据服务器,可用于元数据服务器统计分布式存储系统的容量使用情况,以使存储系统统筹整个存储空间的使用情况。
例如,将第一最终预授权配额120M、元数据反馈的实际授权配额250M、新增加的容量值110M发送给元数据服务器。
由于是多线程进行执行写数据,有可能在上报配额时,也为多个线程同时上报,同时上报时,存储系统会统计多份数据,严重影响统计精度,可按照下述方法进行子目录配额的上报:
判断用于将第一最终预授权配额发送给元数据服务器的线程个数是否超过1;
若是,则利用线程锁将多个上报线程封装为一个原子操作,以使第二目标线程将第一最终预授权配额发送给元数据服务器。
需要说明的是,执行主语可为分布式存储系统集群中的客户端,客户端挂载分布式文件系统,一般分布式存储系统集群的客户端可分为用户态客户端和内核态客户端,本申请中的执行主语可为内核态客户端。
在本发明实施例提供的技术方案中,优化了子目录的授权配额的申请、更新与上报整个流程,实现了分布式存储系统的存储容量的精细化管理;在多并发读写的应用场景下,通过利用线程锁将多个写数据线程封装为一个原子操作,使一个线程向元数据服务器发送申请目标授权配额的请求,就避免由于多个线程同时向元数据服务器申请配额而导致客户端申请到的总配额无法控制,影响分布式存储系统的容量信息统计精度,有效的提高了分布式存储系统对各存储子目录容量信息的统计精度和存储空间的分配效率。
考虑到客户端不仅向分布式存储系统中写数据,还会进行数据删除,鉴于此,基于上述实施例,请参阅图2,本申请还提供了另外一个实施例,具体可包括:
S107:判断是否从子目录中删除数据,当从子目录中删除数据时,获取待删除数据的容量值。
即当检测到从子目录中删除数据,获取待删除数据的容量值。
S108:计算子目录当前的预授权配额与待删除数据的容量值的差值。
S109:根据差值更新子目录的第二最终预授权配额,并将第二最终预授权配额发送给元数据服务器。
举例来说,子目录的预授权配额值为230M,删除数据的容量值为110M,那么进行更新之后,子目录当前的预授权配额值为120M,即第二最终预授权配额为120M。
由于是多线程应用场景,可能有多个线程进行执行数据删除操作,在删除完之后,有可能在上报配额时,也为多个线程同时上报,同时上报时,存储系统会统计多份数据,严重影响统计精度,可按照下述方法进行子目录配额的上报:
判断用于将第一最终预授权配额发送给元数据服务器的线程个数是否超过1;
若是,则利用线程锁将多个上报线程封装为一个原子操作,以使第二目标线程将第一最终预授权配额发送给元数据服务器。
为了存储系统更加精确的统计容量信息,可将第二最终预授权配额与待删除数据的容量值发送给元数据服务器,以用于元数据服务器统计分布式存储系统的容量使用情况。
由上可知,通过对删除的数据进行监控,进一步有效提高了存储系统对各个存储子目录可用容量、已用容量等信息的统计精度和存储空间的分配效率,进而提高了自精简功能的实用性。
本发明实施例还针对分布式存储系统的容量信息监控方法提供了相应的实现装置,进一步使得所述方法更具有实用性。下面对本发明实施例提供的分布式存储系统的容量信息监控装置进行介绍,下文描述的分布式存储系统的容量信息监控装置与上文描述的分布式存储系统的容量信息监控方法可相互对应参照。
参见图3,图3为本发明实施例提供的分布式存储系统的容量信息监控装置在一种具体实施方式下的结构图,该装置可包括:
判断模块301,用于根据当前待存储数据的容量值,判断对应子目录的预授权配额是否充足;若否,判断执行写数据的线程是否超过1个线程。
原子封装模块302,用于若是,则利用线程锁将多个线程封装为一个原子操作,以使第一目标线程向元数据服务器发送申请目标授权配额的请求。
容量信息更新模块303,用于接收元数据服务器返回的实际授权配额,并根据子目录当前剩余预授权配额值与实际授权配额更新子目录的预授权配额;向子目录中写入待存储数据,并获取写入子目录中的新增数据容量值,计算子目录的当前预授权配额值与新增数据容量值的差值;根据差值更新子目录的第一最终预授权配额。
容量信息上报模块304,用于将第一最终预授权配额发送给元数据服务器。
可选的,在本实施例的一些实施方式中,所述原子封装模块302可以包括目标授权配额值计算单元,所述目标授权配额值计算单元具体可包括:
获取子单元,用于获取上一次多线程同时写数据时,第一个线程成功写入子目录中数据之后,其余各线程欲写入子目录中的数据容量值,以作为并发能力容量值;
计算子单元,用于计算并发能力容量值与第一目标线程对应的待存储数据的容量值之后,以作为目标授权配额值。
在本申请的一些实施方式中,所述容量信息更新模块303可为接收元数据服务器返回的实际授权配额,实际授权配额包括目标授权配额值与预设富余配额值的模块。
此外,所述容量信息更新模块303还可为计算子目录当前剩余预授权配额值、预设富余配额值、与第一目标线程对应的待存储数据的容量值的和值;根据和值更新子目录的预授权配额的模块。
可选的,在本实施例的一些具体实施方式中,所述容量信息上报模块304可包括:
判断单元,用于判断用于将第一最终预授权配额发送给元数据服务器的线程个数是否超过1;
执行单元,用于若是,则利用线程锁将多个上报线程封装为一个原子操作,以使第二目标线程将第一最终预授权配额发送给元数据服务器。
可选的,在本实施例的另一些实施方式中,请参阅图4,所述装置例如还可以包括第二容量信息更新模块305,所述第二容量信息更新模块305具体可包括:
获取单元,用于当检测到从子目录中删除数据时,获取待删除数据的容量值;
计算单元,用于计算子目录当前的预授权配额与待删除数据的容量值的差值;
更新单元,用于根据差值更新子目录的第二最终预授权配额,并将第二最终预授权配额发送给元数据服务器。
第二容量信息更新模块305还可为将第二最终预授权配额与待删除数据的容量值发送给元数据服务器,以用于元数据服务器统计分布式存储系统的容量使用情况的模块。
本发明实施例分布式存储系统的容量信息监控装置的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
由上可知,本发明实施例优化了子目录的授权配额的申请、更新与上报整个流程,实现了分布式存储系统的存储容量的精细化管理;在多并发读写的应用场景下,通过利用线程锁将多个写数据线程封装为一个原子操作,使一个线程向元数据服务器发送申请目标授权配额的请求,就避免由于多个线程同时向元数据服务器申请配额而导致客户端申请到的总配额无法控制,影响分布式存储系统的容量信息统计精度,有效的提高了分布式存储系统对各存储子目录容量信息的统计精度和存储空间的分配效率。
本发明实施例还提供了一种分布式存储系统的容量信息监控设备,可包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序以实现如上任意一实施例所述分布式存储系统的容量信息监控方法的步骤。
本发明实施例所述分布式存储系统的容量信息监控设备的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
本发明实施例有效的提高了分布式存储系统对各存储子目录容量信息的统计精度和存储空间的分配效率。
本发明实施例还提供了一种计算机可读存储介质,存储有分布式存储系统的容量信息监控程序,所述分布式存储系统的容量信息监控程序被处理器执行时如上任意一实施例所述分布式存储系统的容量信息监控方法的步骤。
本发明实施例所述计算机可读存储介质的各功能模块的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
本发明实施例有效的提高了分布式存储系统对各存储子目录容量信息的统计精度和存储空间的分配效率。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种分布式存储系统的容量信息监控方法、装置、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种分布式存储系统的容量信息监控方法,其特征在于,应用于客户端,包括:
根据当前待存储数据的容量值,判断对应子目录的预授权配额是否充足;
若否,判断执行写数据的线程是否超过1个线程;
若是,则利用线程锁将多个写数据线程封装为一个原子操作,以使第一目标线程向元数据服务器发送申请目标授权配额的请求;
接收所述元数据服务器返回的实际授权配额,并根据所述子目录当前剩余预授权配额值与所述实际授权配额更新所述子目录的预授权配额;
向所述子目录中写入待存储数据,并获取写入所述子目录中新增数据容量值,计算所述子目录的当前预授权配额值与所述新增数据容量值的差值;
根据所述差值更新所述子目录的第一最终预授权配额,并将所述第一最终预授权配额发送给所述元数据服务器;
其中,所述利用线程锁将多个写数据线程封装为一个原子操作包括:
将从客户端发出申请,到接收到元数据服务器返回的响应的整个过程利用所述线程锁封装成一个原子操作;从多个线程中选取一个线程作为第一目标线程,其他线程利用所述线程锁将其他线程锁定,先执行第一目标线程。
2.根据权利要求1所述的分布式存储系统的容量信息监控方法,其特征在于,所述目标授权配额的计算过程包括:
获取上一次多线程同时写数据时,第一个线程成功写入所述子目录中数据之后,其余各线程欲写入所述子目录中的数据容量值,以作为并发能力容量值;
计算所述并发能力容量值与所述第一目标线程对应的待存储数据的容量值之和,以作为目标授权配额值。
3.根据权利要求2所述的分布式存储系统的容量信息监控方法,其特征在于,所述实际授权配额包括所述目标授权配额值与预设富余配额值。
4.根据权利要求3所述的分布式存储系统的容量信息监控方法,其特征在于,根据所述子目录当前剩余预授权配额值与所述实际授权配额更新所述子目录的预授权配额为:
计算所述子目录当前剩余预授权配额值、所述预设富余配额值、与所述第一目标线程对应的待存储数据的容量值的和值;
根据所述和值更新所述子目录的预授权配额。
5.根据权利要求1所述的分布式存储系统的容量信息监控方法,其特征在于,还包括:
当检测到从所述子目录中删除数据时,获取待删除数据的容量值;
计算所述子目录当前的预授权配额与所述待删除数据的容量值的差值;
根据所述差值更新所述子目录的第二最终预授权配额,并将所述第二最终预授权配额发送给所述元数据服务器。
6.根据权利要求5所述的分布式存储系统的容量信息监控方法,其特征在于,所述将所述第二最终预授权配额发送给所述元数据服务器包括:
将所述第二最终预授权配额与所述待删除数据的容量值发送给所述元数据服务器,以用于所述元数据服务器统计分布式存储系统的容量使用情况。
7.根据权利要求1至6任意一项所述的分布式存储系统的容量信息监控方法,其特征在于,所述将所述第一最终预授权配额发送给所述元数据服务器包括:
判断用于将所述第一最终预授权配额发送给所述元数据服务器的线程个数是否超过1;
若是,则利用线程锁将多个上报线程封装为一个原子操作,以使第二目标线程将所述第一最终预授权配额发送给所述元数据服务器。
8.一种分布式存储系统的容量信息监控装置,其特征在于,包括:
判断模块,用于根据当前待存储数据的容量值,判断对应子目录的预授权配额是否充足;若否,判断执行写数据的线程是否超过1个线程;
原子封装模块,用于若是,则利用线程锁将多个线程封装为一个原子操作,以使第一目标线程向元数据服务器发送申请目标授权配额的请求;所述原子封装模块具体用于将从客户端发出申请,到接收到元数据服务器返回的响应的整个过程利用所述线程锁封装成一个原子操作;从多个线程中选取一个线程作为第一目标线程,其他线程利用所述线程锁将其他线程锁定,先执行第一目标线程;
容量信息更新模块,用于接收所述元数据服务器返回的实际授权配额,并根据所述子目录当前剩余预授权配额值与所述实际授权配额更新所述子目录的预授权配额;向所述子目录中写入待存储数据,并获取写入所述子目录中的新增数据容量值,计算所述子目录的当前预授权配额值与所述新增数据容量值的差值;根据所述差值更新所述子目录的第一最终预授权配额;
容量信息上报模块,用于将所述第一最终预授权配额发送给所述元数据服务器。
9.一种分布式存储系统的容量信息监控设备,其特征在于,包括处理器与存储器,所述处理器用于执行所述存储器中存储的分布式存储系统的容量信息监控程序时实现如权利要求1至7任一项所述分布式存储系统的容量信息监控方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有分布式存储系统的容量信息监控程序,所述分布式存储系统的容量信息监控程序被处理器执行时实现如权利要求1至7任一项所述分布式存储系统的容量信息监控方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710875617.1A CN107589915B (zh) | 2017-09-25 | 2017-09-25 | 一种分布式存储系统的容量信息监控方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710875617.1A CN107589915B (zh) | 2017-09-25 | 2017-09-25 | 一种分布式存储系统的容量信息监控方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107589915A CN107589915A (zh) | 2018-01-16 |
CN107589915B true CN107589915B (zh) | 2020-05-29 |
Family
ID=61047839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710875617.1A Active CN107589915B (zh) | 2017-09-25 | 2017-09-25 | 一种分布式存储系统的容量信息监控方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107589915B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108897707A (zh) * | 2018-06-26 | 2018-11-27 | 郑州云海信息技术有限公司 | 一种多控制器的容量统计方法、装置及设备 |
CN109783467A (zh) * | 2019-01-12 | 2019-05-21 | 郑州云海信息技术有限公司 | 一种分布式文件系统的嵌套目录文件个数配额设置方法 |
CN109901798B (zh) * | 2019-02-27 | 2022-12-09 | 新华三技术有限公司成都分公司 | 数据存储方法及装置 |
CN110119249B (zh) * | 2019-04-04 | 2022-04-01 | 同盾控股有限公司 | 一种数据的存储方法和装置 |
CN109995595B (zh) * | 2019-04-11 | 2022-02-18 | 苏州浪潮智能科技有限公司 | 一种rgw配额确定方法、系统、设备及计算机介质 |
CN110955388A (zh) * | 2019-10-31 | 2020-04-03 | 北京浪潮数据技术有限公司 | 一种存储服务器及其数据存储方法、装置和存储介质 |
CN111241363B (zh) * | 2020-01-15 | 2024-09-27 | 深圳市华傲数据技术有限公司 | 信息资源目录体系创建方法、系统及电子设备 |
CN111552677B (zh) * | 2020-05-13 | 2021-01-26 | 重庆紫光华山智安科技有限公司 | 配额管理方法、装置、管理节点及存储介质 |
CN112000280A (zh) * | 2020-07-30 | 2020-11-27 | 浪潮电子信息产业股份有限公司 | 一种配额管控方法及系统 |
CN113076063B (zh) * | 2021-04-01 | 2023-01-06 | 山东英信计算机技术有限公司 | 一种目录配额预申请方法、系统、存储介质及设备 |
CN114157614A (zh) * | 2021-11-30 | 2022-03-08 | 上海派拉软件股份有限公司 | 一种资源管理方法、装置、设备及存储介质 |
CN114945023B (zh) * | 2022-05-20 | 2024-06-14 | 郑州浪潮数据技术有限公司 | 一种网络连接复用方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814077A (zh) * | 2009-12-04 | 2010-08-25 | 四川川大智胜软件股份有限公司 | 一种基于oci 9的数据库访问中间件 |
CN102447736A (zh) * | 2011-11-17 | 2012-05-09 | 华中科技大学 | 一种多方网络存储系统中用户配额管理和控制方法 |
CN103514053A (zh) * | 2013-09-22 | 2014-01-15 | 中国科学院信息工程研究所 | 一种基于共享内存的进程间通讯方法 |
CN105630810A (zh) * | 2014-10-30 | 2016-06-01 | 曙光信息产业股份有限公司 | 一种对于海量小文件在分布式存储系统中上载的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6973455B1 (en) * | 1999-03-03 | 2005-12-06 | Emc Corporation | File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator |
US7072917B2 (en) * | 2003-04-24 | 2006-07-04 | Neopath Networks, Inc. | Extended storage capacity for a network file server |
-
2017
- 2017-09-25 CN CN201710875617.1A patent/CN107589915B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814077A (zh) * | 2009-12-04 | 2010-08-25 | 四川川大智胜软件股份有限公司 | 一种基于oci 9的数据库访问中间件 |
CN102447736A (zh) * | 2011-11-17 | 2012-05-09 | 华中科技大学 | 一种多方网络存储系统中用户配额管理和控制方法 |
CN103514053A (zh) * | 2013-09-22 | 2014-01-15 | 中国科学院信息工程研究所 | 一种基于共享内存的进程间通讯方法 |
CN105630810A (zh) * | 2014-10-30 | 2016-06-01 | 曙光信息产业股份有限公司 | 一种对于海量小文件在分布式存储系统中上载的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107589915A (zh) | 2018-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107589915B (zh) | 一种分布式存储系统的容量信息监控方法、装置及设备 | |
CN110300134B (zh) | 云存储资源池的存储空间调整方法、装置及云存储系统 | |
CN105302738B (zh) | 一种内存分配方法及装置 | |
KR101959153B1 (ko) | 데이터베이스에서의 계좌와 관련된 거래 요청의 효율적인 처리를 위한 시스템 | |
CN108205541B (zh) | 分布式网络爬虫任务的调度方法及装置 | |
US9519653B2 (en) | Techniques for efficiently enforcing resource quotas in a multi-tenant cloud storage system | |
CN109753360B (zh) | 面向电力系统中边缘节点的轻量级数据管理系统及方法 | |
CN108132955A (zh) | 一种日志存储方法及装置 | |
CN112104671B (zh) | 接口授权监控方法、装置、计算机设备和存储介质 | |
CN107872499A (zh) | 业务创建方法、装置及系统 | |
CN115543871B (zh) | 数据存储方法及相关设备 | |
CN112579692A (zh) | 一种数据同步方法、装置、系统、设备及存储介质 | |
CN110084476B (zh) | 案件调整方法、装置、计算机设备和存储介质 | |
CN107180040A (zh) | 一种业务数据的管理方法及装置 | |
CN109656707B (zh) | 计量数据采集方法、装置、计算机设备和存储介质 | |
CN103984639A (zh) | 一种动态内存分配方法 | |
CN110046034B (zh) | 任务获取方法及装置 | |
CN113095769A (zh) | 一种服务库存管理方法、装置、设备及可读存储介质 | |
US8516009B2 (en) | Processing of splits of control areas and control intervals | |
CN111752715A (zh) | 大量请求量下的系统优化方法、装置、设备及存储介质 | |
CN108616583B (zh) | 一种基于计算机云的存储空间分配方法 | |
CN105490956A (zh) | 一种网络请求处理方法及装置 | |
CN114896073B (zh) | 一种数据分摊处理方法、装置及系统 | |
CN114157717B (zh) | 一种微服务动态限流的系统及方法 | |
CN109344131B (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 |