CN111949486A - 一种实时集群业务监控的实现方法、装置 - Google Patents
一种实时集群业务监控的实现方法、装置 Download PDFInfo
- Publication number
- CN111949486A CN111949486A CN202010820204.5A CN202010820204A CN111949486A CN 111949486 A CN111949486 A CN 111949486A CN 202010820204 A CN202010820204 A CN 202010820204A CN 111949486 A CN111949486 A CN 111949486A
- Authority
- CN
- China
- Prior art keywords
- performance
- recording
- cluster
- service
- volume
- 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.)
- Granted
Links
- 238000012544 monitoring process Methods 0.000 title claims abstract description 25
- 238000000034 method Methods 0.000 title claims abstract description 21
- 230000004044 response Effects 0.000 claims abstract description 7
- 238000012545 processing Methods 0.000 claims description 10
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008140 language development Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种实时集群业务监控的实现方法、装置,该方法包括如下步骤:初始化存储池内记录性能的对象;接收业务IO请求并完成对IO请求的响应,将本次IO数据记录在内存中;将内存中记录的数据写入存储池内记录性能的对象;访问存储池内记录性能的对象,来确定集群基本状态及监控集群业务状态。将整个集群中所有的业务压力信息保存在了独立的对象中,通过定时任务心跳的形式进行查询,保证了查询集群性能的时效性。
Description
技术领域
本发明涉及实时集群业务监控技术领域,具体涉及一种实时集群业务监控的实现方法、装置。
背景技术
对于客户来说可以像使用物理硬盘一样格式化并建立任意文件***来使用块存储,所以块存储适用于大部分通用业务场景下的数据存储,有了越来越广泛的应用。在块存储场景中,卷承担了主要的功能实现和业务输出,目前在统计当前集群压力时,需要通过读取每个卷的元数据中记录的累计IO数量及总带宽实现,该流程需要频繁访问卷的元数据,对集群业务造成一定压力,且当集群规模较大、卷数量多时,该统计方式需要去访问每个卷的元数据所以耗时很长,无法很好的实时观测集群业务压力状态。
发明内容
针对目前在统计当前集群压力时,需要通过读取每个卷的元数据中记录的累计IO数量及总带宽实现,该流程需要频繁访问卷的元数据,对集群业务造成一定压力,且当集群规模较大、卷数量多时,该统计方式需要去访问每个卷的元数据所以耗时很长,无法很好的实时观测集群业务压力状态的问题,本发明提供一种实时集群业务监控的实现方法、装置。
本发明的技术方案是:
一方面,本发明技术方案提供一种实时集群业务监控的实现方法,包括如下步骤:
初始化存储池内记录性能的对象;
接收业务IO请求并完成对IO请求的响应,将本次IO数据记录在内存中;;
将内存中记录的性能数据写入存储池内记录性能的对象;
访问存储池内记录性能的对象,来确定集群基本状态及监控集群业务状态。
进一步的,初始化存储池内记录性能的对象的步骤之前包括:
创建每个卷时动态调整记录性能的对象的大小,为每个卷单独分配存储空间,并且在该存储空间中记录新创建卷的卷名。
进一步的,初始化存储池内记录性能的对象的步骤包括:
取消记录性能的对象的对象锁,由于为每个卷单独分配了存储空间,使得多个卷同时将自身性能数据纪录写入记录性能的对象。
进一步的,将内存中记录的性能数据写入存储池内记录性能的对象的步骤包括:
将本次IO完成的时间T2与上次将性能数据写入记录性能的对象的时间戳T1进行对比;
若T2-T1<N,不做处理;
若T2-T1≥N,将目前内存中记录性能数据写入记录性能的对象为该卷分配的空间中,其中,N为大于0的时间阈值。保证了核心业务的稳定性。
进一步的,访问存储池内记录性能的对象,来确定集群基本状态及监控集群业务状态的步骤包括:
定时服务以心跳的形式定时访问记录性能的对象;
定时服务在心跳中读取记录性能的对象中记录的数据,统计该时刻集群整体业务压力情况;
若读到的记录性能的对象内的时间戳与集群目前时间的差大于设定的阈值时,则认为记录性能对象中记录的性能数据为旧数据,即认为当前该卷或集群没有业务压力。通过定时任务心跳的形式进行查询,保证了查询集群性能的时效性。
进一步的,定时服务以心跳的形式定时访问记录性能的对象的步骤还包括:
定时服务以心跳的形式定时访问记录性能的对象,若访问失败,则认为该时刻集群异常,立刻上报告警。
进一步的,将内存中记录的性能数据写入存储池内记录性能的对象的步骤中,写入存储池内记录性能的对象的数据包括:
上次更新记录性能的对象的时间戳、上次更新记录性能的对象前1秒内该卷总IO数,即集群每秒进行读写操作的次数、上次更新记录性能的对象前一秒内该卷总IO的所有数据量,即集群该秒的总带宽。
另一方面,本发明技术方案提供一种实时集群业务监控的实现装置,包括初始化模块、处理模块、写入模块和监控模块;
初始化模块,用于初始化存储池内记录性能的对象;
处理模块,用于接收业务IO请求并完成对IO请求的响应,将本次IO数据记录在内存中;
写入模块,用于将内存中记录的性能数据写入存储池内记录性能的对象;
监控模块,用于访问存储池内记录性能的对象,来确定集群基本状态及监控集群业务状态。
进一步的,该装置还包括创建模块;
创建模块,用于创建每个卷时动态调整记录性能的对象的大小,为每个卷单独分配存储空间,并且在该存储空间中记录新创建卷的卷名。
进一步的,监控模块包括定时服务单元、判断单元;
定时服务单元,用于以心跳的形式定时访问记录性能的对象;
定时服务单元,用于在心跳中读取记录性能的对象中记录的数据,统计该时刻集群整体业务压力情况;
判断单元,用于对性能数据进行判断,若读到的记录性能的对象内的时间戳与集群目前时间的差大于设定的阈值时,则认为记录性能对象中记录的性能数据为旧数据,即认为当前该卷或集群没有业务压力。由定时任务单元以心跳的形式确定集群状态,并且定时从磁盘读取当前集群业务性能情况。
从以上技术方案可以看出,本发明具有以下优点:将整个集群中所有的业务压力信息保存在了独立的对象中,通过定时任务心跳的形式进行查询,保证了查询集群性能的时效性,更好的保证了核心业务的稳定性,也迎合了当前快速存储、高效存储的理念。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的装置的示意性框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
如图1所示,本发明实施例提供一种实时集群业务监控的实现方法,包括如下步骤:
S1:初始化存储池内记录性能的对象;
S2:接收业务IO请求并完成对IO请求的响应,将本次IO数据记录在内存中;
S3:将内存中记录的数据写入存储池内记录性能的对象;
S4:访问存储池内记录性能的对象,来确定集群基本状态及监控集群业务状态。
需要说明的是,初始化存储池内记录性能的对象的步骤之前包括:
创建每个卷时动态调整记录性能的对象的大小,为每个卷单独分配存储空间,并且在该存储空间中记录新创建卷的卷名。初始化存储池内记录性能的对象的步骤包括:取消记录性能的对象的对象锁,由于为每个卷单独分配了存储空间,使得多个卷同时将自身性能数据纪录写入记录性能的对象。
在有些实施例中,将内存中记录的性能数据写入存储池内记录性能的对象的步骤包括:
将本次IO完成的时间T2与上次将性能数据写入记录性能的对象的时间戳T1进行对比;
若T2-T1<N,不做处理;
若T2-T1≥N,将目前内存中记录性能数据写入记录性能的对象为该卷分配的空间中,其中,N为大于0的时间阈值。保证了核心业务的稳定性。
在有些实施例中,访问存储池内记录性能的对象,来确定集群基本状态及监控集群业务状态的步骤包括:
定时服务以心跳的形式定时访问记录性能的对象;若访问失败,则认为该时刻集群异常,立刻上报告警;
定时服务在心跳中读取记录性能的对象中记录的数据,统计该时刻集群整体业务压力情况;
若读到的记录性能的对象内的时间戳与集群目前时间的差大于设定的阈值时,则认为记录性能对象中记录的性能数据为旧数据,即认为当前该卷或集群没有业务压力。通过定时任务心跳的形式进行查询,保证了查询集群性能的时效性。为解决监控集群业务压力中的问题,在卷有业务IO时,将本次IO记录在内存中,并且定期将内存中记录的性能写入保存。由定时任务以心跳的形式确定集群状态,并且定时从磁盘读取当前集群业务性能情况。
在有些实施例中,将内存中记录的性能数据写入存储池内记录性能的对象的步骤中,写入存储池内记录性能的对象的数据包括:
上次更新记录性能的对象的时间戳、上次更新记录性能的对象前1秒内该卷总IO数,即集群每秒进行读写操作的次数、上次更新记录性能的对象前一秒内该卷总IO的所有数据量,即集群该秒的总带宽。
具体的,采用C++语言开发,在分布式存储***的RBD(Rados block device Rados块设备)层来实现,在卷有业务IO时,将本次IO记录在内存中,并且定期将内存中记录的性能数据及卷名和时间戳写入存储池内记录性能的对象。由定时任务以心跳的形式确定集群状态,并且定时从磁盘读取当前集群业务性能情况。记录性能的对象为perf对象;具体过程如下:
在创建存储池时初始化名为perf的对象;取消perf对象的对象锁,由于为每个卷单独分配了存储空间,使得多个卷可以同时将自身性能数据纪录写入perf对象;RBD层在创建每个卷时动态调整perf对象的大小,为每个卷单独分配一部分空间,并且在该空间中记录新创建卷的卷名:在RBD层接到IO请求并且该IO完成时,需要的处理过程:(a)在内存中记录的IO次数N加1(N=N+1);将本次IO的数据量m累加入M(M=M+m)记录在内存中,并且保存本次IO完成的时间记录为T2;(2)将T2与上次将性能写入perf对象的时间戳T1进行对比。在这里设置N=1;若T2-T1<1s,不做处理。若T2-T1≥1s,将目前内存中记录的N和M写入perf对象为该卷分配的空间中。
在集群中设置定时服务,该服务主要用于确定集群基本状态及监控集群业务状态,具体实现方案说明如下:a)在这里,定时服务会单独有一个线程以心跳的形式定时访问perf对象,如果访问失败则认为该时刻集群异常无法访问,立刻上报告警。b)定时服务在心跳中读取perf对象中记录的数据,统计该时刻集群整体业务压力情况,需要说明的是,也可以根据perf对象中记录的卷名查询每个卷各自的业务压力情况。c)对性能数据做判断,如果读到的perf对象内的时间戳与集群目前时间相差很大,也就是时间差大于设定的时间阈值,则认为perf对象中记录的性能数据为旧数据,即认为当前该卷或集群没有业务压力,则对上层返回0。需要说明的是,perf对象中保存的数据包括:(1)上次更新perf对象的时间戳T1,(2)上次更新perf对象前一秒内该卷总IO数N,即集群IOPS,(3)上次更新perf对象前一秒内该卷总IO的所有数据量M,既集群该秒总带宽。将整个集群中所有的业务压力信息保存在了独立的对象中,通过定时任务心跳的形式进行查询,保证了查询集群性能的时效性,更好的保证了核心业务的稳定性,也迎合了当前快速存储、高效存储的理念。
如图2所示,本发明实施例提供一种实时集群业务监控的实现装置,包括初始化模块、处理模块、写入模块和监控模块;
初始化模块,用于初始化存储池内记录性能的对象;
处理模块,用于接收业务IO请求并完成对IO请求的响应,将本次IO数据记录在内存中;
写入模块,用于定期将内存中记录的性能数据写入存储池内记录性能的对象;
监控模块,用于定时访问存储池内记录性能的对象,来确定集群基本状态及监控集群业务状态。
在有些实施例中,该装置还包括创建模块;
创建模块,用于创建每个卷时动态调整记录性能的对象的大小,为每个卷单独分配存储空间,并且在该存储空间中记录新创建卷的卷名。
在有些实施例中,监控模块包括定时服务单元、判断单元;
定时服务单元,用于以心跳的形式定时访问记录性能的对象;
定时服务单元,用于在心跳中读取记录性能的对象中记录的数据,统计该时刻集群整体业务压力情况;
判断单元,用于对性能数据进行判断,若读到的记录性能的对象内的时间戳与集群目前时间的差大于设定的阈值时,则认为记录性能对象中记录的性能数据为旧数据,即认为当前该卷或集群没有业务压力。由定时任务单元以心跳的形式确定集群状态,并且定时从磁盘读取当前集群业务性能情况。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种实时集群业务监控的实现方法,其特征在于,包括如下步骤:
初始化存储池内记录性能的对象;
接收业务IO请求并完成对IO请求的响应,将本次IO数据记录在内存中;
将内存中记录的数据写入存储池内记录性能的对象;
访问存储池内记录性能的对象,来确定集群基本状态及监控集群业务状态。
2.根据权利要求1所述的一种实时集群业务监控的实现方法,其特征在于,初始化存储池内记录性能的对象的步骤之前包括:
创建每个卷时动态调整记录性能的对象的大小,为每个卷单独分配存储空间,并且在该存储空间中记录新创建卷的卷名。
3.根据权利要求2所述的一种实时集群业务监控的实现方法,其特征在于,初始化存储池内记录性能的对象的步骤包括:
取消记录性能的对象的对象锁,使得多个卷同时将自身性能数据纪录写入记录性能的对象。
4.根据权利要求2所述的一种实时集群业务监控的实现方法,其特征在于,将内存中记录的性能数据写入存储池内记录性能的对象的步骤包括:
将本次IO完成的时间T2与上次将性能数据写入记录性能的对象的时间戳T1进行对比;
若T2-T1<N,不做处理;
若T2-T1≥N,将目前内存中记录性能数据写入记录性能的对象为该卷分配的空间中,其中,N为大于0的时间阈值。
5.根据权利要求2所述的一种实时集群业务监控的实现方法,其特征在于,访问存储池内记录性能的对象,来确定集群基本状态及监控集群业务状态的步骤包括:
定时服务以心跳的形式定时访问记录性能的对象;
定时服务在心跳中读取记录性能的对象中记录的数据,统计该时刻集群整体业务压力情况;
若读到的记录性能的对象内的时间戳与集群目前时间的差大于设定的阈值时,则认为记录性能对象中记录的性能数据为旧数据,即认为当前该卷或集群没有业务压力。
6.根据权利要求5所述的一种实时集群业务监控的实现方法,其特征在于,定时服务以心跳的形式定时访问记录性能的对象的步骤还包括:
定时服务以心跳的形式定时访问记录性能的对象,若访问失败,则认为该时刻集群异常,立刻上报告警。
7.根据权利要求5所述的一种实时集群业务监控的实现方法,其特征在于,将内存中记录的性能数据写入存储池内记录性能的对象的步骤中,写入存储池内记录性能的对象的数据包括:
上次更新记录性能的对象的时间戳、上次更新记录性能的对象前1秒内该卷总IO数,即集群每秒进行读写操作的次数、上次更新记录性能的对象前一秒内该卷总IO的所有数据量,即集群该秒的总带宽。
8.一种实时集群业务监控的实现装置,其特征在于,包括初始化模块、处理模块、写入模块和监控模块;
初始化模块,用于初始化存储池内记录性能的对象;
处理模块,用于接收业务IO请求并完成对IO请求的响应,将本次IO数据记录在内存中;
写入模块,用于将内存中记录的性能数据写入存储池内记录性能的对象;
监控模块,用于访问存储池内记录性能的对象,来确定集群基本状态及监控集群业务状态。
9.根据权利要求8所述的一种实时集群业务监控的实现装置,其特征在于,该装置还包括创建模块;
创建模块,用于创建每个卷时动态调整记录性能的对象的大小,为每个卷单独分配存储空间,并且在该存储空间中记录新创建卷的卷名。
10.根据权利要求9所述的一种实时集群业务监控的实现装置,其特征在于,监控模块包括定时服务单元、判断单元;
定时服务单元,用于以心跳的形式定时访问记录性能的对象;
定时服务单元,用于在心跳中读取记录性能的对象中记录的数据,统计该时刻集群整体业务压力情况;
判断单元,用于对性能数据进行判断,若读到的记录性能的对象内的时间戳与集群目前时间的差大于设定的阈值时,则认为记录性能对象中记录的性能数据为旧数据,即认为当前该卷或集群没有业务压力。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010820204.5A CN111949486B (zh) | 2020-08-14 | 2020-08-14 | 一种实时集群业务监控的实现方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010820204.5A CN111949486B (zh) | 2020-08-14 | 2020-08-14 | 一种实时集群业务监控的实现方法、装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111949486A true CN111949486A (zh) | 2020-11-17 |
CN111949486B CN111949486B (zh) | 2023-01-10 |
Family
ID=73342732
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010820204.5A Active CN111949486B (zh) | 2020-08-14 | 2020-08-14 | 一种实时集群业务监控的实现方法、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111949486B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838635A (zh) * | 2012-11-23 | 2014-06-04 | ***股份有限公司 | 主机健康度检测方法 |
CN107894921A (zh) * | 2017-11-09 | 2018-04-10 | 郑州云海信息技术有限公司 | 一种分布式块存储卷性能统计的实现方法及*** |
CN108804038A (zh) * | 2018-05-29 | 2018-11-13 | 新华三技术有限公司 | 日志数据迁移的方法、装置、服务器和计算机可读介质 |
-
2020
- 2020-08-14 CN CN202010820204.5A patent/CN111949486B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103838635A (zh) * | 2012-11-23 | 2014-06-04 | ***股份有限公司 | 主机健康度检测方法 |
CN107894921A (zh) * | 2017-11-09 | 2018-04-10 | 郑州云海信息技术有限公司 | 一种分布式块存储卷性能统计的实现方法及*** |
CN108804038A (zh) * | 2018-05-29 | 2018-11-13 | 新华三技术有限公司 | 日志数据迁移的方法、装置、服务器和计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111949486B (zh) | 2023-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220066691A1 (en) | Data writing method, device, storage server, and computer readable storage medium | |
US20180329921A1 (en) | Method and apparatus for storing time series data | |
WO2018153271A1 (zh) | 数据的推送方法、装置、存储介质及电子装置 | |
EP3944556B1 (en) | Block data storage method and apparatus, and block data access method and apparatus | |
CN103853671B (zh) | 一种数据写入控制方法及装置 | |
CN102968422A (zh) | 流数据存储控制***及其方法 | |
US8281103B2 (en) | Method and apparatus for allocating storage addresses | |
CN108595347B (zh) | 一种缓存控制方法、装置及计算机可读存储介质 | |
CN108399050B (zh) | 一种数据处理方法及装置 | |
CN113495889B (zh) | 一种分布式对象存储方法、装置、电子设备及存储介质 | |
CN110019502A (zh) | 在主数据库和备数据库之间的同步方法、数据库***和设备 | |
CN114217738A (zh) | 一种动态队列式循环存储方法、装置、设备及介质 | |
CN107894921A (zh) | 一种分布式块存储卷性能统计的实现方法及*** | |
CN115408149A (zh) | 一种时序存储引擎内存设计及分配方法及装置 | |
CN101923577A (zh) | 一种可扩展的计数方法与*** | |
CN113064553B (zh) | 数据存储方法、装置、设备及介质 | |
CN114090577A (zh) | 时序数据的存储、读取方法及装置 | |
CN111949486B (zh) | 一种实时集群业务监控的实现方法、装置 | |
US8756396B1 (en) | Conversion of in-memory data representations | |
CN112214493A (zh) | 一种历史记录存储方法、装置、电子设备以及存储介质 | |
CN103176753A (zh) | 存储设备及其数据管理方法 | |
CN111708775A (zh) | 自增id生成方法、装置及*** | |
EP2761470A1 (en) | Extreme large space allocation | |
CN112783711A (zh) | NodeJS上程序内存分析的方法、存储介质 | |
CN106998436B (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 |