一种ceph分布式计算机故障诊断方法
技术领域
1.本发明涉及计算机故障诊断技术领域,具体涉及一种ceph分布式计算机故障诊断方法。
背景技术:2.数据中心ceph是一种巨大规模的分布式存储系统,该技术基于大量对象存储(object storage cluster,osd)和集群监视器(cluster monitors,cmon)组成,各osd下的磁盘常年处于饱和读写状态。对于基于硬盘驱动器(hard disk drive,hdd)的ceph存储系统,长时间的运行容易出现磁头劣化性故障,在ceph中,各osd下的磁盘是由独立磁盘冗余阵列(redundant array of independent disks,raid)的方式组成一个osd的,osd的性能和负载受cmon监测和控制,ceph读写过程中由于内劣化的osd下的磁盘可能存在延迟过大,甚至让劣化的osd下的磁盘部分超时,影响整个流程操作性能的情况。若不及时检测ceph的效能变化,及时更换劣化的osd下的磁盘,在数据中心中,由于业务重要性极高,严重的性能下降会导致osd无法响应,甚至出现局部计算机停机的问题。
3.目前,常见的对分布式存储系统中计算机进行故障诊断的方法为:根据分布式存储系统中磁盘的实时读写速率,判断磁盘是否异常。直接根据实时读写速率判断磁盘是否异常,当磁盘出现异常时已经影响了计算机的使用,未实现提前预警,不能在故障未发生时及时更换磁盘。
技术实现要素:4.为了解决上述技术问题,本发明的目的在于提供一种ceph分布式计算机故障诊断方法,所采用的技术方案具体如下:
5.获取各对象存储下的磁盘的iops负载特征指标、各对象存储对应的暂态上下行流量和缓冲区队列深度;其中,所述iops负载特征指标包括:iops总性能极差、iops总性能方差和iops总性能最低值包络值;
6.对于任意对象存储,分别计算固定时间段内的各所述iops负载特征指标的频率波动程度作为第一波动程度、第二波动程度和第三波动程度;分别计算各所述iops负载特征指标的幅度波动程度作为第四波动程度、第五波动程度和第六波动程度;计算固定时间段内的所述缓冲区队列深度的波动程度作为第七波动程度;计算固定时间段内的所述暂态上下行流量的波动程度作为第八波动程度;
7.由第一、第二、第三、第四、第五、第六、第七和第八波动程度构建特征矩阵;将各所述对象存储对应的所述特征矩阵进行聚类,得到多个聚类簇;
8.将所述特征矩阵转化成行列式,所述行列式的值的绝对值作为负载故障隐患指数;将所述负载故障隐患指数输入特征矩阵所属聚类簇对应的隐患指数发展趋势模型,输出预测负载故障隐患指数;基于所述预测负载故障隐患指数对计算机的磁盘进行故障判断。
9.优选的,所述第一波动程度的计算公式为:
[0010][0011]
其中,a1为所述第一波动程度;a
i+1
为固定时间段内的第i+1个iops总性能极差;ai为固定时间段内的第i个iops总性能极差;a
i-1
为固定时间段内的第i-1个iops总性能极差;mean(a)为固定时间段内的iops总性能极差的均值;abs()函数为绝对值函数。
[0012]
优选的,所述第四波动程度的获取方法为:
[0013]
由固定时间段内的iops总性能极差构建窗口性能极差序列;计算所述窗口性能极差序列中最大的iops总性能极差和最小的iops总性能极差的差值,作为最大极差;计算窗口性能极差序列中最大的iops总性能极差和所述窗口性能极差序列中所有iops总性能极差的均值的差值,作为波动极差;所述最大极差和所述波动极差的比值为所述第四波动程度。
[0014]
优选的,所述第七波动程度的计算公式为:
[0015][0016]
其中,a7为所述第七波动程度;mean(s)为固定时间段内的缓冲区队列深度的均值;var(s)为固定时间段内缓冲区队列深度构成的窗口深度序列的方差;si为固定时间段内的第i个缓冲区队列深度;s
i+1
为固定时间段内的第i+1个缓冲区队列深度。
[0017]
优选的,所述第八波动程度的计算公式为:
[0018][0019]
其中,a8为所述第八波动程度;mean(t)为固定时间段内的暂态上下行流量的均值;var(t)为固定时间段内暂态上下行流量构成的窗口流量序列的方差;ti为固定时间段内的第i个暂态上下行流量;t
i+1
为固定时间段内的第i+1个暂态上下行流量。
[0020]
优选的,所述将各所述对象存储对应的所述特征矩阵进行聚类,得到多个聚类簇,包括:
[0021]
利用量子聚类算法将多个所述特征矩阵进行聚类,得到多个聚类簇。
[0022]
优选的,所述隐患指数发展趋势模型,包括:
[0023]
对于任意聚类簇,获取多个时间段对应的多个负载故障隐患指数;对所述负载故障隐患指数进行平稳化处理,得到多个子分量;将多个所述子分量重组为隐患指数发展趋势模型的输入数据,并划分为训练集和测试集;其中,每个聚类簇对应一个隐患指数发展趋势模型。
[0024]
优选的,所述基于所述预测负载故障隐患指数对计算机的磁盘进行故障判断,包括:
[0025]
当所述预测负载故障隐患指数大于预设隐患阈值时,认为所述计算机中对应的磁盘出现故障。
[0026]
本发明实施例至少具有如下有益效果:
[0027]
本发明涉及计算机故障诊断技术领域。首先获取各对象存储下的磁盘的iops负载特征指标、各对象存储对应的暂态上下行流量和缓冲区队列深度;由于面向的是隐式故障,而非直接导致无法使用的显式故障,故分析出波动异常程度而非直接设定iops异常值。对于任意对象存储,分别计算固定时间段内的各iops负载特征指标、缓冲区队列深度和暂态上下行流量的波动程度;由波动程度构建特征矩阵;将各对象存储对应的特征矩阵进行聚类,得到多个聚类簇;将特征矩阵转化成行列式,行列式的值的绝对值作为负载故障隐患指数;将负载故障隐患指数输入特征矩阵所属聚类簇对应的隐患指数发展趋势模型,输出预测负载故障隐患指数;基于预测负载故障隐患指数对计算机的磁盘进行故障判断。本发明首先基于机器学习自动分析最细粒度的磁盘故障乃至osd计算机的性能故障乃至osd计算机的性能故障,且通过输入负载故障隐患指数至训练好的隐患指数发展趋势模型,输入预测负载故障隐患指数,使得在预测故障隐患指数较大的情况下提前预警。
附图说明
[0028]
为了更清楚地说明本发明实施例或现有技术中的技术方案和优点,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
[0029]
图1为本发明一个实施例所提供的一种ceph分布式计算机故障诊断方法的方法流程图。
具体实施方式
[0030]
为了更进一步阐述本发明为达成预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明提出的一种ceph分布式计算机故障诊断方法,其具体实施方式、结构、特征及其功效,详细说明如下。在下述说明中,不同的“一个实施例”或“另一个实施例”指的不一定是同一实施例。此外,一或多个实施例中的特定特征、结构或特点可由任何合适形式组合。
[0031]
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。
[0032]
本发明实施例提供了一种ceph分布式计算机故障诊断方法的具体实施方法,该方法适用于计算机故障诊断场景。该场景为分布式存储系统,其中osd包括各osd下的磁盘。分布式存储系统具体的层次为:ceph下层含配套cmon及其各osd服务,配套cmon及其各osd服务下层含osd服务,osd服务下层含osd下的磁盘。为了解决根据实时读写速率未实现磁盘异常提前预警的问题。本发明通过输入负载故障隐患指数至训练好的隐患指数发展趋势模型,输入预测负载故障隐患指数,使得在预测故障隐患指数较大的情况下提前预警,且基于机器学习自动分析最细粒度的磁盘故障乃至osd计算机的性能故障乃至osd计算机的性能故障,实现了在磁盘未发生故障时进行提前预警的目的。
[0033]
下面结合附图具体的说明本发明所提供的一种ceph分布式计算机故障诊断方法的具体方案。
[0034]
请参阅图1,其示出了本发明一个实施例提供的一种ceph分布式计算机故障诊断
方法的步骤流程图,该方法包括以下步骤:
[0035]
步骤s100,获取各对象存储下的磁盘的iops负载特征指标、各对象存储对应的暂态上下行流量和缓冲区队列深度;其中,所述iops负载特征指标包括:iops总性能极差、iops总性能方差和iops总性能最低值包络值。
[0036]
采集监测分布式存储系统中所用到的信息特征,对其进行后续的分析。需要说明的是,分布式存储系统是将数据分散存储在多台独立的设备上;传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。故一个分布式存储系统中对应多个计算机磁盘。
[0037]
首先获取各对象存储下的磁盘的iops负载特征指标。该iops负载特征指标包括:iops总性能极差、iops总性能方差和iops总性能最低值包络值。在cmon内各个osd下的磁盘上部署iops性能探针,探针输出的数值经过tcp/ip协议传输至数据采集服务或者cmon的log系统。
[0038]
osd的iops性能最低值经过滑动平均法得到包络,至此形成了负载特征,获取到iops总性能极差、iops总性能方差和iops总性能最低值包络值。其中,cmon内各个osd下的磁盘是ceph的最小单元,但不是现有cmon能控制的最小单元。对于各个负载特征指标,其采集频率为5秒采集一次,经过长时间的采集可以形成时间序列:iops总性能极差序列、iops总性能方差序列和iops总性能最低值包络值序列。
[0039]
在使用探针得到各对象存储下的磁盘的三项iops负载特征指标之后,由于负载特征随着数据磁道位置、型号、工作因素和劣化长度来讲是多样化的,采集到的osd的iops性能极差信号有很大的可能是osd读写分载不均匀但因素不同的混合信号,这些混合信号至少包括三个因素:
[0040]
1.osd磁盘的性能劣化情况不同,导致读写过程中的iops情况不同;
[0041]
2.osd隐式故障可能是cpu性能受其他业务限制导致的;
[0042]
3.各磁盘raid组态关系不同导致的iops性能不同。
[0043]
因此采集的负载特征是多元化的,但主要的检测目的是为了观察osd和osd下的磁盘的隐式故障,故为了提高监测准确率,增加两项指标:各对象存储对应的暂态上下行流量和缓冲区队列深度。通过增加的这两项指标约束读写的特征含义,从而提高最终评估结果的准确性。
[0044]
其中,获取各对象存储对应的暂态上下行流量时,各osd对应的暂态上下行流量探针设置在osd服务端口,采集各osd下磁盘的暂态上下行流量,通过各暂态上下行流量率的不同来辅助判断cmon内部的负载特征来源,各暂态上下行流量的采集为5秒采集一次,长时间能够形成时间序列:暂态上下行流量序列。获取缓冲区队列深度时,将缓冲区队列深度探针设置在osd服务中,以便于直接读取。由于个别osd的某些硬盘硬件的磁头寻道问题,osd在模拟数据中心服务器的大负载情况下可能产生非正常的高延迟,导致读写请求被迫排队。同时,异常磁盘硬件的磁头寻道会造成cmon内的其他osd缓冲区队列深度异常。缓冲区队列深度采集频率为5秒采集一次,长时间采集能够得到时间序列:缓冲区队列深度序列。
[0045]
因所有数据信息的采集方式都在较为极限的测试环境下进行,因此很有可能出现
系统正常性能抖动带来的数据噪声,影响后续判断的结果,故需要把数据进行降噪与平滑处理。优选的,利用中值滤波器划过所采集的所有时间序列,减少噪声对最终的结果判断带来的误差,后续所有的计算与分析都基于由中值滤波器过滤后的数据上。其中,所有时间序列包括:iops总性能极差序列、iops总性能方差序列、iops总性能最低值包络值序列、暂态上下行流量序列和缓冲区队列深度序列。
[0046]
步骤s200,对于任意对象存储,分别计算固定时间段内的各所述iops负载特征指标的频率波动程度作为第一波动程度、第二波动程度和第三波动程度;分别计算各所述iops负载特征指标的幅度波动程度作为第四波动程度、第五波动程度和第六波动程度;计算固定时间段内的所述缓冲区队列深度的波动程度作为第七波动程度;计算固定时间段内的所述暂态上下行流量的波动程度作为第八波动程度。
[0047]
设定12个采集时刻点的时间序列为滑动窗口,每5秒向前滑动一个单元,后续的计算过程基于该滑动窗口的短序列计算,也即对固定时间段内的时间序列进行后续的计算,在本发明实施例中固定时间段的长度为60秒,在其他实施例中实施者可根据实际情况调整该取值。
[0048]
由于面向的是隐式故障,而非直接导致无法使用的显式故障,故分析出波动异常程度而非直接设定iops异常值。各iops难以设定,即便是设定了也有可能是突发负载导致的,对osd的影响不大,对单个osd影响大,且基于hdd技术的osd下的磁盘容易磁头性能劣化,导致读写状态是非线性的,故需要大量测试数据进行比对。
[0049]
对于任意对象存储,分别计算固定时间段内的各iops负载特征指标的频率波动程度作为第一波动程度、第二波动程度和第三波动程度。计算滑动窗口内的各个采集时刻值与下一时刻的差值的绝对值的比值,与滑动窗口内的均值乘积的累计和作为频率波动程度。当累计和越大,意味着波动约频繁,很可能是电极劣化导致的读写不均匀,这种情况下很有可能出现负载特征异常。
[0050]
其中,第一波动程度为固定时间段内iops总性能极差的频率波动程度。
[0051]
第一波动程度a1的计算公式为:
[0052][0053]
其中,a
i+1
为固定时间段内的第i+1个iops总性能极差;ai为固定时间段内的第i个iops总性能极差;a
i-1
为固定时间段内的第i-1个iops总性能极差;mean(a)为固定时间段内的iops总性能极差的均值;abs()函数为绝对值函数。
[0054]
第二波动程度为固定时间段内iops总性能方差的频率波动程度。
[0055]
该第二波动程度a2的计算公式为;
[0056][0057]
其中,v
i+1
为固定时间段内的第i+1个iops总性能方差;vi为固定时间段内的第i个iops总性能方差;v
i-1
为固定时间段内的第i-1个iops总性能方差;mean(v)为固定时间段内的iops总性能方差的均值;abs()函数为绝对值函数。
[0058]
第三波动程度为固定时间段内iops总性能最低值包络值的频率波动程度。
[0059]
该第三波动程度a3的计算公式为:
[0060][0061]
其中,ge
i+1
为固定时间段内的第i+1个iops总性能最低值包络值;gei为固定时间段内的第i个iops总性能最低值包络值;ge
i-1
为固定时间段内的第i-1个iops总性能最低值包络值;mean(ge)为固定时间段内的iops总性能最低值包络值的均值;abs()函数为绝对值函数。
[0062]
进一步的,分别计算各iops负载特征指标的幅度波动程度作为第四波动程度、第五波动程度和第六波动程度。对于第四、第五和第六波动程度为三个iops负载特征指标的波动幅度因子,由滑动窗口内的指标最大值与指标最小值的差值,指标最大值与滑动窗口内指标的均值之间的比值作为波动幅度因子,当波动幅度因子的数值越大,则对应的滑动窗口内的时间序列的波动幅度越大。
[0063]
其中,第四波动程度为固定时间段内iops总性能极差的幅度波动程度。第四波动程度的获取方法,具体的:由固定时间段内的iops总性能极差构建窗口性能极差序列;计算窗口性能极差序列中最大的iops总性能极差和最小的iops总性能极差的差值,作为最大极差;计算窗口性能极差序列中最大的iops总性能极差和窗口性能极差序列中所有iops总性能极差的均值的差值,作为波动极差;该最大极差和波动极差的比值为第四波动程度。
[0064]
该第四波动程度a4的计算公式为:
[0065][0066]
其中,a
max
为窗口性能极差序列中最大的iops总性能极差;a
min
为窗口性能极差序列中最小的iops总性能极差;mean(a)为固定时间段内的iops总性能极差的均值,也即窗口性能极差序列中所有iops总性能极差的均值。
[0067]
其中,第五波动程度为固定时间段内iops总性能方差的幅度波动程度。第五波动程度的获取方法,具体的:由固定时间段内的iops总性能方差构建窗口性能方差序列;计算窗口性能方差序列中最大的iops总性能方差和最小的iops总性能方差的差值,作为最大方差;计算窗口性能方差序列中最大的iops总性能方差和窗口性能方差序列中所有iops总性能方差的均值的差值,作为波动方差;该最大方差和波动方差的比值为第五波动程度。
[0068]
该第五波动程度a5的计算公式为:
[0069][0070]
其中,v
max
为窗口性能方差序列中最大的iops总性能方差;v
min
为窗口性能方差序列中最小的iops总性能方差;mean(v)为固定时间段内的iops总性能方差的均值,也即窗口性能方差序列中所有iops总性能方差的均值。
[0071]
其中,第六波动程度为固定时间段内iops总性能最低值包络值的幅度波动程度。第六波动程度的获取方法,具体的:由固定时间段内的iops总性能最低值包络值构建窗口包络值序列;计算窗口包络值序列中最大的iops总性能最低值包络值和最小的iops总性能最低值包络值的差值,作为最大方差;计算窗口包络值序列中最大的iops总性能最低值包
络值和窗口包络值序列中所有iops总性能最低值包络值的均值的差值,作为波动包络值;该最大包络值和波动包络值的比值为第六波动程度。
[0072]
该第六波动程度a6的计算公式为:
[0073][0074]
其中,ge
max
为窗口包络值序列中最大的iops总性能最低值包络值;ge
min
为窗口包络值序列中最小的iops总性能最低值包络值;mean(ge)为固定时间段内的iops总性能最低值包络值的均值,也即窗口包络值序列中所有iops总性能最低值包络值的均值。
[0075]
计算固定时间段内的缓冲区队列深度的波动程度作为第七波动程度;计算固定时间段内的暂态上下行流量的波动程度作为第八波动程度。其中,由固定时间段内的缓冲区队列深度构建窗口深度序列;由固定时间段内的暂态上下行流量构建窗口流量序列。由滑动窗口内的均值、方差与前后时刻的比值的累计和的乘积组成,当缓冲区队列深度的波动幅度和波动频率越大,则对应的第七波动程度越大,同样的,当暂态上下行流量的波动幅度和波动频率越大,则对应的第八波动程度越大。
[0076]
该第七波动程度a7的计算公式为:
[0077][0078]
其中,mean(s)为固定时间段内的缓冲区队列深度的均值;var(s)为固定时间段内缓冲区队列深度构成的窗口深度序列的方差;si为固定时间段内的第i个缓冲区队列深度;s
i+1
为固定时间段内的第i+1个缓冲区队列深度。
[0079]
该第八波动程度a8的计算公式为:
[0080][0081]
其中,mean(t)为固定时间段内的暂态上下行流量的均值;var(t)为固定时间段内暂态上下行流量构成的窗口流量序列的方差;ti为固定时间段内的第i个暂态上下行流量;t
i+1
为固定时间段内的第i+1个暂态上下行流量。
[0082]
即在固定时间段内进行数据处理得到了八个运行因素特征。也即基于前12个采集时刻点进行数据处理得到了八个运行因素特征。
[0083]
步骤s300,由第一、第二、第三、第四、第五、第六、第七和第八波动程度构建特征矩阵;将各所述对象存储对应的所述特征矩阵进行聚类,得到多个聚类簇。
[0084]
通过分析与计算得到了ceph各osd的运行过程中负载特征指标、osd的暂态上下行流量和缓冲区队列深度的数据序列所构建的ceph各osd的运行因素特征。基于八个运行因素特征构建能够反映运行情况的特征矩阵该特征矩阵的列为八项运行因素特征;特征矩阵的行为同一运行因素特征在固定时间段内1~t不同时刻的取值,也即对
于当前时刻t,其对应的特征矩阵为需要说明的是,特征矩阵随着时间的变化不断的更新。
[0085]
ceph系统中每个ceph各osd的特征矩阵构建完成,构建该特征矩阵的目的是为了将负载特征指标、各osd的暂态上下行流量和缓冲区队列深度因素相结合,计算过程特征,最终得到一个准确度更高、信息更严谨、代表性更强的运行情况的特征矩阵,根据该特征矩阵分析负载特征是否异常。
[0086]
因ceph系统内的osd的较多、并且体系结构较大、运行工况较为复杂。故每台ceph内的osd的状态都会有所差别,为了提高最终评估结果的准确性,需要将当下不同的osd的情况给区分开,区分开的方法是根据上述构建的特征矩阵u进行聚类。
[0087]
将各osd对应的特征矩阵进行聚类,得到多个聚类簇。具体的:利用量子聚类算法将多个特征矩阵进行聚类,得到多个聚类簇。其中,量子聚类算法是一种基于划分的聚类算法,并且是一种无监督聚类算法,该算法不需要预先设定聚类中心和聚类个数,该量子聚类算法的基本思想为:基于量子理论,研究样本的分布规律,基于迭代梯度下降算法和不显含时间的薛定谔方程求解每个研究样本的势能,势能为零或最小的研究样本周围会分布着其他研究样本,因此以势能为零或者最小的研究样本为聚类簇的聚类中心,聚类中心周围分布的其他研究样本则分到该聚类簇内。波函数被用来描述微观粒子的量子态,薛定谔方程被用来求解具有势场约束的波函数,在本发明实施例中采用不显时间的薛定谔方程,即假设势场不随时间的变化而变化,不显含时间的薛定谔方程如下:
[0088][0089]
其中,h表示哈密顿算子,表示波函数,v(x)表示势能函数,e表示哈密顿算子的能量特征值,表示劈形算子,σ表示波函数的宽度调节参数,除了σ参数需要实施者自行确定,在本发明实施例中将σ设置为需要说明的是,其余的公式内部的展开计算公式为本领域技术人员的公知技术,不再详细展开。
[0090]
步骤s400,将所述特征矩阵转化成行列式,所述行列式的值的绝对值作为负载故障隐患指数;将所述负载故障隐患指数输入特征矩阵所属聚类簇对应的隐患指数发展趋势模型,输出预测负载故障隐患指数;基于所述预测负载故障隐患指数对计算机的磁盘进行故障判断。
[0091]
基于得到的各osd对应的特征矩阵将不同运行状态的osd进行聚类后,根据各聚类簇的工作情况求出负载特征变化趋势,将求出的特征矩阵u拆分转化为8*8的行列式。其中,行列式的行为八项运行因素特征;行列式的列为八个采集时刻点,也即行列式的列为同一运行因素特征在八个不同的采集时刻点的取值。即该行列式是各osd的8个采集时刻的各个运行因素特征的变化情况,每八个采集时刻点得到一个行列式。如共有16个采集时刻点,则可将特征矩阵拆分转化为两个行列式,分别为和
[0092]
计算行列式的值的绝对值作为负载故障隐患指数。行列式的值的计算公式可简单解释为该行列式中的右斜乘积之和减去左斜乘积之和的结果。即每个行列式会得到一个对应的负载故障隐患指数,也即每8个时刻点会生成一个负载故障隐患指数。长时间的采集与计算可以得到对应的时间序列:负载故障隐患指数序列。
[0093]
进一步的,使用ceemd-gru组合模型进行负载故障隐患指数w的发展趋势评估。本发明提出一种基于互补集合经验模态分解(complementary ensemble empirical mode decomposition,ceemd)与门控循环单元(gated recurrent unit,gru)组合的负载故障隐患指数发展趋势模型。首先基于ceemd算法将输入的负载故障隐患指数序列分解为多个本征模态函数分量和一个残差分量,以深度挖掘数据隐含的波动信息。然后利用ceemd分解出来的负载故障隐患指数序列各分量和输出故障隐患指数序列构建ceemd-gru负载故障隐患指数发展趋势模型,简称隐患指数发展趋势模型。
[0094]
对于任意聚类簇,该聚类簇对应的隐患指数发展趋势模型的构建方法为:
[0095]
选取该聚类簇内多个osd所采集的负载故障隐患指数,得到多个负载故障隐患指数序列。在本发明实施例中选取50个负载故障隐患指数序列作为数据集,在其他实施例中实施者可根据实际情况选取数据集数量。为了便于后续模型训练,将样本数据进行归一化。对于归一化后的负载故障隐患指数序列,通过ceemd分解方法对归一化后的负载故障隐患指数序列进行平稳化处理,以深度挖掘数据隐含的波动信息,得到多个子分量以及残差分量。将多个子分量重组为隐患指数发展趋势模型的输入数据,并划分为训练集和测试集。其中,训练集和测试集的比例为20:1。以重组的数据作为隐患指数发展趋势模型的输入,以归一化后的负载故障隐患指数序列作为隐患指数发展趋势模型输出,进行多输入单输出的gru神经网络训练,利用gru神经网络的记忆能力充分训练归一化后的负载故障隐患指数序列。满足收敛条件后得到基于ceemd-gru组合模型的隐患指数发展趋势模型。
[0096]
对于每个聚类簇,分别构建对应各聚类簇对应的隐患指数发展趋势模型。使得将负载故障隐患指数输入特征矩阵所属的聚类簇对应的隐患指数发展趋势模型,输出预测负载故障隐患指数。
[0097]
该隐患指数发展趋势模型评估出了未来的负载特征发展趋势,能够基于负载特征发展趋势提前发现osd的负载特征的异常,提前预警给工作人员,减少后期的二次损失。基于预测负载故障隐患指数对计算机的磁盘进行故障判断,具体的:当预测负载故障隐患指数大于预设隐患阈值时,认为计算机中对应的磁盘出现了故障。在本发明实施例中预设隐患阈值的获取方法为:获取多次测试得到的多个负载故障隐患指数所对应的中值w,设定上浮比例为20%,根据上浮比例调整后的中值为预设隐患阈值,也即预设隐患阈值为120%*w。
[0098]
通过隐患指数发展趋势模型可以预测出达到该阈值时的异常时间点,故可以设置提前几天时间进行异常的评估提醒,提前更换故障磁盘。相较于磁盘smart信息直接判断、传统的osd性能监视程序等参数、性能指标的阈值监控方法。本发明能够基于机器学习自动分析最细粒度的磁盘故障乃至osd计算机的性能故障,且能够在故障隐患较大的情况下提前预警。
[0099]
综上所述,本发明首先获取各对象存储下的磁盘的iops负载特征指标、各对象存储对应的暂态上下行流量和缓冲区队列深度;对于任意对象存储,分别计算固定时间段内
的各iops负载特征指标的频率波动程度作为第一波动程度、第二波动程度和第三波动程度;分别计算iops负载特征指标的幅度波动程度作为第四波动程度、第五波动程度和第六波动程度;计算固定时间段内的缓冲区队列深度的波动程度作为第七波动程度;计算固定时间段内的暂态上下行流量的波动程度作为第八波动程度;由第一、第二、第三、第四、第五、第六、第七和第八波动程度构建特征矩阵;将各对象存储对应的特征矩阵进行聚类,得到多个聚类簇;将特征矩阵转化成行列式,行列式的值的绝对值作为负载故障隐患指数;将负载故障隐患指数输入特征矩阵所属聚类簇对应的隐患指数发展趋势模型,输出预测负载故障隐患指数;基于预测负载故障隐患指数对计算机的磁盘进行故障判断。基于机器学习自动分析最细粒度的磁盘故障乃至osd计算机的性能故障,且能够在故障隐患较大的情况下提前预警。
[0100]
需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0101]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
[0102]
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:1.一种ceph分布式计算机故障诊断方法,其特征在于,该方法包括以下步骤:获取各对象存储下的磁盘的iops负载特征指标、各对象存储对应的暂态上下行流量和缓冲区队列深度;其中,所述iops负载特征指标包括:iops总性能极差、iops总性能方差和iops总性能最低值包络值;对于任意对象存储,分别计算固定时间段内的各所述iops负载特征指标的频率波动程度作为第一波动程度、第二波动程度和第三波动程度;分别计算各所述iops负载特征指标的幅度波动程度作为第四波动程度、第五波动程度和第六波动程度;计算固定时间段内的所述缓冲区队列深度的波动程度作为第七波动程度;计算固定时间段内的所述暂态上下行流量的波动程度作为第八波动程度;由第一、第二、第三、第四、第五、第六、第七和第八波动程度构建特征矩阵;将各所述对象存储对应的所述特征矩阵进行聚类,得到多个聚类簇;将所述特征矩阵转化成行列式,所述行列式的值的绝对值作为负载故障隐患指数;将所述负载故障隐患指数输入特征矩阵所属聚类簇对应的隐患指数发展趋势模型,输出预测负载故障隐患指数;基于所述预测负载故障隐患指数对计算机的磁盘进行故障判断。2.根据权利要求1所述的一种ceph分布式计算机故障诊断方法,其特征在于,所述第一波动程度的计算公式为:其中,a1为所述第一波动程度;a
i+1
为固定时间段内的第i+1个iops总性能极差;a
i
为固定时间段内的第i个iops总性能极差;a
i-1
为固定时间段内的第i-1个iops总性能极差;mean(a)为固定时间段内的iops总性能极差的均值;abs()函数为绝对值函数。3.根据权利要求1所述的一种ceph分布式计算机故障诊断方法,其特征在于,所述第四波动程度的获取方法为:由固定时间段内的iops总性能极差构建窗口性能极差序列;计算所述窗口性能极差序列中最大的iops总性能极差和最小的iops总性能极差的差值,作为最大极差;计算窗口性能极差序列中最大的iops总性能极差和所述窗口性能极差序列中所有iops总性能极差的均值的差值,作为波动极差;所述最大极差和所述波动极差的比值为所述第四波动程度。4.根据权利要求1所述的一种ceph分布式计算机故障诊断方法,其特征在于,所述第七波动程度的计算公式为:其中,a7为所述第七波动程度;mean(s)为固定时间段内的缓冲区队列深度的均值;var(s)为固定时间段内缓冲区队列深度构成的窗口深度序列的方差;s
i
为固定时间段内的第i个缓冲区队列深度;s
i+1
为固定时间段内的第i+1个缓冲区队列深度。5.根据权利要求1所述的一种ceph分布式计算机故障诊断方法,其特征在于,所述第八波动程度的计算公式为:
其中,a8为所述第八波动程度;mean(t)为固定时间段内的暂态上下行流量的均值;var(t)为固定时间段内暂态上下行流量构成的窗口流量序列的方差;t
i
为固定时间段内的第i个暂态上下行流量;t
i+1
为固定时间段内的第i+1个暂态上下行流量。6.根据权利要求1所述的一种ceph分布式计算机故障诊断方法,其特征在于,所述将各所述对象存储对应的所述特征矩阵进行聚类,得到多个聚类簇,包括:利用量子聚类算法将多个所述特征矩阵进行聚类,得到多个聚类簇。7.根据权利要求1所述的一种ceph分布式计算机故障诊断方法,其特征在于,所述隐患指数发展趋势模型,包括:对于任意聚类簇,获取多个时间段对应的多个负载故障隐患指数;对所述负载故障隐患指数进行平稳化处理,得到多个子分量;将多个所述子分量重组为隐患指数发展趋势模型的输入数据,并划分为训练集和测试集;其中,每个聚类簇对应一个隐患指数发展趋势模型。8.根据权利要求1所述的一种ceph分布式计算机故障诊断方法,其特征在于,所述基于所述预测负载故障隐患指数对计算机的磁盘进行故障判断,包括:当所述预测负载故障隐患指数大于预设隐患阈值时,认为所述计算机中对应的磁盘出现故障。
技术总结本发明涉及计算机故障诊断技术领域,具体涉及一种CEPH分布式计算机故障诊断方法。首先基于各对象存储下的磁盘的IOPS负载特征指标、各对象存储对应的暂态上下行流量和缓冲区队列深度的波动程度构建特征矩阵;将各对象存储对应的特征矩阵进行聚类得到多个聚类簇;将特征矩阵转化成行列式,行列式的值的绝对值作为负载故障隐患指数;将负载故障隐患指数输入特征矩阵所属聚类簇对应的隐患指数发展趋势模型输出预测负载故障隐患指数;基于预测负载故障隐患指数对计算机的磁盘进行故障判断。本发明通过输入负载故障隐患指数至隐患指数发展趋势模型输入预测负载故障隐患指数,使得在预测故障隐患指数较大的情况下提前预警。测故障隐患指数较大的情况下提前预警。测故障隐患指数较大的情况下提前预警。
技术研发人员:赵大鹏 房静 张璞 刘竹 翟慧
受保护的技术使用者:河南职业技术学院
技术研发日:2022.07.21
技术公布日:2022/11/1