CN107633045B - 一种云存储服务中租户数据容量的统计方法及其系统 - Google Patents
一种云存储服务中租户数据容量的统计方法及其系统 Download PDFInfo
- Publication number
- CN107633045B CN107633045B CN201710831445.8A CN201710831445A CN107633045B CN 107633045 B CN107633045 B CN 107633045B CN 201710831445 A CN201710831445 A CN 201710831445A CN 107633045 B CN107633045 B CN 107633045B
- Authority
- CN
- China
- Prior art keywords
- capacity
- tenant
- server
- cloud storage
- log
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明揭示了一种云存储服务中租户数据容量的统计方法及其系统,涉及含一台以上服务器的云存储服务及受用服务的租户群体,对任一租户包括服务器初始化、云存储进程、记录日志和处理日志的步骤。即每个服务器各自将租户的容量上限及已使用容量载入内存,并开辟记录容量变化的缓存;租户向云存储服务发送上传文件的请求并执行数据操作;各服务器将多次容量变化累加记录至本地磁盘的日志文件中;累积一段自定义时段后,统计线程上位机将各个服务器上租户该时间段内日志所记录在容量变化进行累加并汇集合一,并将新的已使用容量更新至每台服务器。应用本发明设计方案,提高了租户的请求响应时间,提升租户体验;同时有效控制了租户的数据超限规模。
Description
技术领域
本发明涉及一种云存储服务,尤其涉及一种云存储服务中租户数据容量的统计方法及其系统,属于云计算系统领域。
背景技术
在云存储服务中,服务端需要对租户的数据所占用的磁盘容量进行统计,统计的目的有两个,一是基于租户数据所占用的磁盘容量进行计费,二是限制租户的数据不超出预先设定的数据容量上限。
当前统计租户数据容量有两种常用方法,分别描述如下。
方法一:在租户发送请求(如上传和删除)时进行实时统计,即在收到请求时将原有的总数据容量与本次请求产生的数据容量(可能为负值,如删除请求)相加,得到新的总数据容量。当租户的请求在同一服务器上进行处理时,可以通过进程或者线程间的互斥串行修改租户的数据容量。而当租户的请求分布在多个服务器上时,就需要考虑服务器间的互斥问题。众所周知,实现服务器间的互斥极其复杂,它需要考虑网络故障、服务器故障切换等问题。
方法二:租户发送请求时不统计数据容量,而是启用一个后台服务进程每隔一段时间对租户所有的数据进行遍历,然后汇总得到总的数据容量。
综合上述两种方法的技术优缺点来看,其中方法一可以严格的限制租户的数据不超出上限,但是会影响租户的请求处理时间,因为租户所有产生数据容量变化的请求被串行化,实现也比较复杂。方法二实现比较简单,不需要考虑方法一中的互斥问题,但后台服务进程对租户数据遍历时间间隔的选取非常关键,间隔太短则会对整个服务系统产生影响,从而影响租户的请求处理时间,间隔太长又达不到限制租户数据不超出上限的目的。
发明内容
鉴于上述两种统计租户数据容量的方法各自所存在的缺陷,本发明的目的是提出一种基于日志的租户数据容量统计方法及其系统,解决服务器间互斥、租户请求处理时间受影响、及时控制数据容量超限等问题。
本发明的上述一个目的将通过以下技术方案得以实现:一种云存储服务中租户数据容量的统计方法,涉及含一台以上服务器的云存储服务及受用服务的租户群体,其特征在于:对任一租户包括步骤:
服务器初始化:每个服务器各自将租户的容量上限及已使用容量载入内存,并开辟一块记录租户在本服务器上容量变化的缓存;
云存储进程:租户向云存储服务发送上传文件的请求,发生存储动作的服务器检查租户的已使用容量与本次请求增加的容量之和是否超过容量上限,若超过则拒绝本次请求,若未超过则执行请求,且服务器更新内存中保存的已使用容量,同时在缓存中记录本次容量变化;
记录日志:各个服务器将两次以上容量变化累加记录至本地磁盘的日志文件中;
处理日志:在容量变化累积一段自定义时段后,统计线程上位机将各个服务器上租户该时间段内日志所记录的容量变化进行累加并汇集合一,而后删除日志文件,并将新的已使用容量更新至每台服务器。
进一步地,全部所述服务器的时间同步,并按照相同的自定义时段间隔地记录日志、同步处理日志,且记录日志和处理日志中对同一日志文件的访问时间相错开。
更进一步地,各个自定义时段中记录在不同的日志文件中。
进一步地,所述云存储进程中超出容量上限的风险度与自定义时段的长度成正比。
进一步地,所述自定义时段的长度设置与网络传输速度成反比。
进一步地,所述云存储进程中超出容量上限的数据量大小与处理日志的速度成反比,提升处理日志速度的方法为:基于租户的属性参数进行哈希计算,将相同哈希值段的租户日志记录到相同的日志文件中,各个服务器处理各哈希值段的租户日志。
本发明的上述另一个目的将通过以下技术方案得以实现:一种云存储服务中租户数据容量的统计系统,其特征在于包含统计线程上位机、含一台以上服务器的云存储服务集群及受用服务的租户群体,其中对应任一租户:
服务器初始化模块,每个服务器各自将租户的容量上限及已使用容量载入内存,并开辟一块记录租户在本服务器上容量变化的缓存;
云存储进程模块,租户向云存储服务发送上传文件的请求,发生存储动作的服务器检查租户的已使用容量与本次请求增加的容量之和是否超过容量上限,若超过则拒绝本次请求,若未超过则执行请求,且服务器更新内存中保存的已使用容量,同时在缓存中记录本次容量变化;
记录日志模块,各个服务器将两次以上容量变化累加记录至本地磁盘的日志文件中;
处理日志模块,在容量变化累积一段自定义时段后,统计线程上位机将各个服务器上租户该时间段内日志所记录的容量变化进行累加并汇集合一,而后删除日志文件,并将新的已使用容量更新至每台服务器。
本发明技术方案应用于云存储服务中租户数据容量统计下,相对于前述两种方法其有益效果体现在:设计简单,无需考虑服务器间的互斥问题;提高了租户的请求响应时间,使租户有更好的体验;同时有效控制了租户的数据超限规模。
附图说明
图1是本发明云存储服务中租户数据容量统计的状态示意图。
具体实施方式
以下便结合实施例附图,对本发明的具体实施方式作进一步的详述,以使本发明技术方案更易于理解、掌握。
针对前述两种统计租户数据容量的方法各自所存在的缺陷,本发明创作者对此进行了深入分析和研究。在考察当前已广泛使用的云存储服务的现状后发现,事实上租户端对云存储服务的质量即每个请求的处理时间更为关心,能接受数据容量超出服务端设定的数据容量上限。服务端在接受租户的数据少量超出预先设定的数据容量上限的前提下,能提供更好的服务质量以吸引更多的租户。为此综合考虑两者的优缺点,创新提出了一种基于日志的租户数据容量统计方法及其系统,解决服务器间互斥、租户请求处理时间受影响、及时控制数据容量超限等问题。
从概述来看,本发明该种云存储服务中租户数据容量的统计方法,涉及含一台以上服务器的云存储服务及受用服务的租户群体,当然也包括统计线程上位机,所有服务器和统计线程上位机均通过网络互联。此中,租户群体中除对应各租户的容量上限存在差别外,其云存储服务的处理流程具有一致性。为此该统计方法以其中任意租户为出发点示例性说明。
服务器初始化:每个服务器各自将租户的容量上限及已使用容量载入内存,并开辟一块记录租户在本服务器上容量变化的缓存。该部分定位了统计方法在各服务器的内存层面处理实现,相当于一个后台服务进程,从而不影响服务器存储器层面的数据变动。
云存储进程:租户向云存储服务发送上传文件的请求,发生存储动作的服务器检查租户的已使用容量与本次请求增加的容量之和是否超过容量上限,若超过则拒绝本次请求,若未超过则执行请求,且服务器更新内存中保存的已使用容量,同时在缓存中记录本次容量变化。
记录日志:各个服务器将两次以上容量变化累加记录至本地磁盘的日志文件中;该日志文件为各个服务器系统文件中的一个文件,随记录日志和处理日志的不同进程不断地进行生成、处理、删除循环。
处理日志:在容量变化累积一段自定义时段后,统计线程上位机将各个服务器上租户该时间段内日志所记录的容量变化进行累加并汇集合一,而后删除日志文件,并将新的已使用容量更新至每台服务器。
从更细化的方案来看,记录日志和处理日志涉及到同一个文件的读写,在不进行互斥的情况下同时对一个文件进行读写操作,可能会造成数据不一致或数据破坏。为避免此种情况发生,服务器将记录日志和处理日志中对同一个文件的访问时间错开。所有服务器进行时间同步,并按照相同的自定义时段间隔地记录日志,不同时间段的日志记录在不同的日志文件(以下简称日志)中。当日志记录进程记录完一个时间段(假定为A)的日志切换到下一个时间段(假定为B)时,日志处理进程即开始处理时间段A产生的日志,以此类推。这就意味着日志处理始终落后日志记录一个时间段,租户在该时间段内产生的数据可能会超出设定的容量上限。通常情况下,云存储进程中超出容量上限的风险度与自定义时段的长度成正比;而自定义时段的长度设置与网络传输速度成反比。由此可以根据需要设置该自定义时段的时间间隔,如果租户与云存储服务间的网络状况较好,则需要将时间间隔设置为一个较小的值,反之则将时间间隔设置为一个较大的值。不管如何设置该时间间隔,租户数据超出设定上限的部分始终是受控制的。
每条日志记录了租户对数据进行新增、删改操作的过程中产生的容量变化值,如果租户在短时间内产生大量造成容量变化的操作,则同时会产生大量的日志记录。比如租户上传大量的图片和文档等小文件,或者在某一个文件末尾添加新的内容造成文件大小变化,则可将单位时间间隔内产生的容量变化缓存起来,合并成一条日志进行记录。这样在处理日志时,只会读取少量的日志进行汇总,可以减轻服务系统的负载。
此外,云存储进程中超出容量上限的数据量大小与处理日志的速度成反比,即处理日志的速度决定了租户数据可能超出设定容量上限的量,速度越快则可能超出的量越小,反之越大。为加快日志的处理,可以让多个服务器同时进行日志处理。具体地,将租户的某一属性参数如用户名进行哈希计算,相同哈希值段的租户日志被记录到相同的日志文件中,不同的服务器处理不同哈希值段的租户日志。
另一方面,从上述统计方法得以实现的硬件基础上来看:本发明云存储服务中租户数据容量的统计系统,包含统计线程上位机、含一台以上服务器的云存储服务集群及受用服务的租户群体,所有服务器和统计线程上位机均通过网络互联。利用统计线程上位机和网络对云存储服务中各服务器进行模块化升级,具体如下:
服务器初始化模块,每个服务器各自将租户的容量上限及已使用容量载入内存,并开辟一块记录租户在本服务器上容量变化的缓存。
云存储进程模块,在接受云存储服务请求后发生存储动作的服务器检查租户的已使用容量与本次请求增加的容量之和是否超过容量上限,若超过则拒绝本次请求,若未超过则执行请求,且服务器更新内存中保存的已使用容量,同时在缓存中记录本次容量变化。
记录日志模块,各个服务器将两次以上容量变化累加记录至本地磁盘的日志文件中。
处理日志模块,在容量变化累积一段自定义时段后,统计线程上位机将各个服务器上租户该时间段内日志所记录的容量变化进行累加并汇集合一,而后删除日志文件,并将新的已使用容量更新至每台服务器。
通过对云存储服务通过软件和硬件的双环节改造,从而得到了该方便数据容量变化统计且用户体验更优越的服务体验。从更直观的实施例来进一步理解,如图1所示的状态示意图可见,本实施例中涉及两台服务器,且租户初始数据占空为0。从图示可见,在第一个自定义时段中,两台服务器各发生了四次容量变化,此时日志处理处于挂空状态,而当第一个自定义时段结束并跳转第二个自定义时段时,日志记录处于挂空状态,日志处理开始,各个服务器各自累加其日志的容量变化,第一个服务器数据容量变化为-200(单位为MB或G等不作限定、下同),第二个服务器数据容量变化为+600,并由统计线程上位机汇集合并结果得到该时段的总容量变化为+400,同步更新到各个服务器的内存中,完成后各个服务器的日志清空,开始第二个自定义时段的记录日志,图示可见该时段中两台服务器各发生了五次容量变化,同样日志处理此时挂空,在该时段末尾,重复处理日志的相关操作,在已使用容量+400的基础上第一个服务器数据容量变化为+900,第二个服务器数据容量变化为+2300,由此归集合并后为+3200,成为下一时段该租户云存储服务的已使用容量,以此类推不断延续至服务终点。
从应用层面的实施来理解:有很多应用如Office类应用在使用云存储服务的过程中会创建临时文件,然后写临时文件造成已使用容量增加,然后又删除临时文件造成已使用容量减少。基于日志的统计可以将这些临时文件增加和减少的容量在内存中就被合并,且记录日志时每个服务器单独记录自己的日志,避免了租户在和服务器间频繁交互时,服务器之间频繁的互斥操作。
此外,本发明该基于日志的容量统计方法也适用于统计云存储服务中的文件数目。实施原理相同,故不再详述。
综上关于实施例的详细描述可见,本发明技术方案应用于云存储服务中租户数据容量统计下,相对于现有技术其有益效果体现在:设计简单,无需考虑服务器间的互斥问题;提高了租户的请求响应时间,使租户有更好的体验;同时有效控制了租户的数据超限规模。
本发明尚有多种实施方式,凡采用等同变换或者等效变换而形成的所有技术方案,均落在本发明的保护范围之内。
Claims (5)
1.一种云存储服务中租户数据容量的统计方法,涉及含一台以上服务器的云存储服务及受用服务的租户群体,其特征在于:对任一租户包括步骤:
服务器初始化:每个服务器各自将租户的容量上限及已使用容量载入内存,并开辟一块记录租户在本服务器上容量变化的缓存,全部所述服务器的时间同步,并按照相同的自定义时段间隔地记录日志、同步处理日志,且记录日志和处理日志中对同一日志文件的访问时间相错开;
云存储进程:租户向云存储服务发送上传文件的请求,发生存储动作的服务器检查租户的已使用容量与本次请求增加的容量之和是否超过容量上限,若超过则拒绝本次请求,若未超过则执行请求,且服务器更新内存中保存的已使用容量,同时在缓存中记录本次容量变化,其中超出容量上限的数据量大小与处理日志的速度成反比,提升处理日志速度的方法为:基于租户的属性参数进行哈希计算,将相同哈希值段的租户日志记录到相同的日志文件中,各个服务器处理各哈希值段的租户日志;
记录日志:各个服务器将两次以上容量变化累加记录至本地磁盘的日志文件中;
处理日志:在容量变化累积一段自定义时段后,统计线程上位机将各个服务器上租户该时段内日志所记录的容量变化进行累加并汇集合一,而后删除日志文件,并将新的已使用容量更新至每台服务器。
2.根据权利要求1所述云存储服务中租户数据容量的统计方法,其特征在于:各个自定义时段中记录在不同的日志文件中。
3.根据权利要求1所述云存储服务中租户数据容量的统计方法,其特征在于:所述云存储进程中超出容量上限的风险度与自定义时段的长度成正比。
4.根据权利要求1所述云存储服务中租户数据容量的统计方法,其特征在于:所述自定义时段的长度设置与网络传输速度成反比。
5.一种云存储服务中租户数据容量的统计系统,其特征在于包含统计线程上位机、含一台以上服务器的云存储服务集群及受用服务的租户群体,其中对应任一租户:
服务器初始化模块,每个服务器各自将租户的容量上限及已使用容量载入内存,并开辟一块记录租户在本服务器上容量变化的缓存;
云存储进程模块,租户向云存储服务发送上传文件的请求,发生存储动作的服务器检查租户的已使用容量与本次请求增加的容量之和是否超过容量上限,若超过则拒绝本次请求,若未超过则执行请求,且服务器更新内存中保存的已使用容量,同时在缓存中记录本次容量变化;
记录日志模块,各个服务器将两次以上容量变化累加记录至本地磁盘的日志文件中;
处理日志模块,在容量变化累积一段自定义时段后,统计线程上位机将各个服务器上租户该时段内日志所记录的容量变化进行累加并汇集合一,而后删除日志文件,并将新的已使用容量更新至每台服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710831445.8A CN107633045B (zh) | 2017-09-15 | 2017-09-15 | 一种云存储服务中租户数据容量的统计方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710831445.8A CN107633045B (zh) | 2017-09-15 | 2017-09-15 | 一种云存储服务中租户数据容量的统计方法及其系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107633045A CN107633045A (zh) | 2018-01-26 |
CN107633045B true CN107633045B (zh) | 2021-05-11 |
Family
ID=61101269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710831445.8A Active CN107633045B (zh) | 2017-09-15 | 2017-09-15 | 一种云存储服务中租户数据容量的统计方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107633045B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108897707A (zh) * | 2018-06-26 | 2018-11-27 | 郑州云海信息技术有限公司 | 一种多控制器的容量统计方法、装置及设备 |
CN109241178A (zh) * | 2018-07-20 | 2019-01-18 | 华为技术有限公司 | 管理存储空间的方法和装置 |
CN109117093B (zh) * | 2018-08-20 | 2021-10-01 | 赛凡信息科技(厦门)有限公司 | 保证分布式对象存储中的数据、流量、容量一致性的方法 |
CN109508318B (zh) * | 2018-11-15 | 2021-01-22 | 北京金山云网络技术有限公司 | 一种存储量统计方法、装置、电子设备和可读存储介质 |
CN111198853B (zh) * | 2018-11-16 | 2023-08-22 | 北京微播视界科技有限公司 | 数据处理方法、装置、电子设备及计算机可读存储介质 |
CN112165508B (zh) * | 2020-08-24 | 2021-07-09 | 北京大学 | 一种多租户云存储请求服务的资源分配方法 |
CN113452022B (zh) * | 2021-07-06 | 2022-09-23 | 中电科技集团重庆声光电有限公司 | 一种采集设备用电数据的方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136055A (zh) * | 2011-11-25 | 2013-06-05 | 国际商业机器公司 | 用于在数据库服务中控制对计算资源的使用的方法和装置 |
CN103514258A (zh) * | 2013-08-09 | 2014-01-15 | 北京龙存科技有限责任公司 | 一种基于离线缓存文件操作集中记录预处理并重放的方法 |
CN105074674A (zh) * | 2013-05-15 | 2015-11-18 | 株式会社日立制作所 | 计算机系统以及资源管理方法 |
CN106303593A (zh) * | 2015-05-11 | 2017-01-04 | 杭州海康威视系统技术有限公司 | 云存储服务的安全认证方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8073942B2 (en) * | 2009-10-20 | 2011-12-06 | Dell Products, Lp | System and method for storage discovery in a storage area network using device domains under control of a storage device |
US20120016681A1 (en) * | 2010-07-13 | 2012-01-19 | Salesforce.Com, Inc. | System, method and computer program product for analyzing monitored usage of a resource |
-
2017
- 2017-09-15 CN CN201710831445.8A patent/CN107633045B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103136055A (zh) * | 2011-11-25 | 2013-06-05 | 国际商业机器公司 | 用于在数据库服务中控制对计算资源的使用的方法和装置 |
CN105074674A (zh) * | 2013-05-15 | 2015-11-18 | 株式会社日立制作所 | 计算机系统以及资源管理方法 |
CN103514258A (zh) * | 2013-08-09 | 2014-01-15 | 北京龙存科技有限责任公司 | 一种基于离线缓存文件操作集中记录预处理并重放的方法 |
CN106303593A (zh) * | 2015-05-11 | 2017-01-04 | 杭州海康威视系统技术有限公司 | 云存储服务的安全认证方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107633045A (zh) | 2018-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107633045B (zh) | 一种云存储服务中租户数据容量的统计方法及其系统 | |
Dong et al. | Optimizing Space Amplification in RocksDB. | |
US9792344B2 (en) | Asynchronous namespace maintenance | |
CN103020255B (zh) | 分级存储方法和装置 | |
US20160350302A1 (en) | Dynamically splitting a range of a node in a distributed hash table | |
US9313270B2 (en) | Adaptive asynchronous data replication in a data storage system | |
US11449479B2 (en) | Data migration methods and system | |
US10970190B2 (en) | Hybrid log viewer with thin memory usage | |
US10838830B1 (en) | Distributed log collector and report generation | |
CN109947668A (zh) | 存储数据的方法和装置 | |
CN103440244A (zh) | 一种大数据存储优化方法 | |
US9984139B1 (en) | Publish session framework for datastore operation records | |
US20190087437A1 (en) | Scheduling database compaction in ip drives | |
CN102902762B (zh) | 一种删除重复数据的方法、装置和系统 | |
CN109714229B (zh) | 一种分布式存储系统的性能瓶颈定位方法 | |
DE112014000448T5 (de) | Auszugabruf beruhend auf Ähnlichkeitssuche bei Datendeduplizierung | |
CN111984191A (zh) | 一种支持分布式存储的多客户端缓存方法及系统 | |
US8924642B2 (en) | Monitoring record management method and device | |
KR20190063835A (ko) | 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템 | |
CN104572505A (zh) | 一种保证海量数据缓存最终一致性的系统及方法 | |
US20170097787A1 (en) | Dynamic two-tier data storage utilization | |
US10713216B2 (en) | Using relative generation numbers to deduplicate file system events | |
WO2021082928A1 (zh) | 数据缩减的方法、装置、计算设备和存储介质 | |
US9578120B1 (en) | Messaging with key-value persistence | |
US20230252029A1 (en) | On-board data storage method and system |
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 |