1.本技术实施例涉及计算机技术领域,尤其涉及一种慢盘检测方法、装置、电子设备及存储介质。
背景技术:2.在磁盘的使用过程中,由于磁盘的磁性退化、坏道或振动等原因,磁盘会出现i/o响应慢、性能降低等问题,这种磁盘就被称为慢盘。当存储系统中存在慢盘时,整个存储系统的读写操作会变慢,使得主机的业务处理效率受到影响,严重的情况下,还会导致主机业务的中断。因此,需要对存储系统中的磁盘进行实时检测,以保障主机的业务处理效率。
3.相关技术中,通常采用设定i/o响应时间门限值的方法来进行慢盘检测,即获取待检测磁盘在多个检测周期内的i/o响应时间,若该i/o响应时间均超过某一预设阈值,则确定待检测磁盘为慢盘。然而,由于硬件架构差异化、硬件老化、业务压力甚至机房环境等因素都会影响磁盘的i/o响应时间,因此,采用设定i/o响应时间门限值的方法进行慢盘检测的准确性较低。
技术实现要素:4.为解决现有存在的技术问题,本技术实施例提供了一种慢盘检测方法、装置、电子设备及存储介质,可以提高进行慢盘检测的准确性。
5.为达到上述目的,本技术实施例的技术方案是这样实现的:
6.第一方面,本技术实施例提供一种慢盘检测方法,所述方法包括:
7.针对服务器中的任一类型的多个磁盘,分别获取每个磁盘的至少一组性能数据;每组性能数据对应有一个设定的磁盘性能指标;
8.根据每个磁盘的性能数据和每组性能数据对应的磁盘性能指标,从所述多个磁盘中,分别确定至少一个待检测磁盘和至少一个样本磁盘;
9.根据所述至少一个样本磁盘的性能数据,分别建立每个磁盘性能指标对应的高斯模型;
10.根据每个磁盘性能指标对应的高斯模型,对每个待检测磁盘进行慢盘检测。
11.本技术实施例提供的慢盘检测方法,针对服务器中的任一类型的多个磁盘,分别获取每个磁盘的至少一组性能数据,根据每个磁盘的性能数据和每组性能数据对应的磁盘性能指标,从多个磁盘中,分别确定至少一个待检测磁盘和至少一个样本磁盘,并根据至少一个样本磁盘的性能数据,分别建立每个磁盘性能指标对应的高斯模型,进而根据每个磁盘性能指标对应的高斯模型,对每个待检测磁盘进行慢盘检测。由于可以采用服务器中包括的样本磁盘对应的性能数据来建立高斯模型,并采用建立的高斯模型对待检测磁盘进行慢盘检测,从而可以准确、有效地检测出待检测磁盘是否为慢盘,提高对磁盘进行慢盘检测的准确性,并且可以自适应和实时地对服务器中包括的多个磁盘进行慢盘检测。
12.在一种可选的实施例中,所述根据每个磁盘的性能数据和每组性能数据对应的磁
盘性能指标,从所述多个磁盘中,分别确定至少一个待检测磁盘和至少一个样本磁盘,包括:
13.根据每个磁盘的性能数据,确定存在故障或未使用的无效磁盘,并从所述多个磁盘中剔除所述无效磁盘,将剩余磁盘作为目标磁盘;
14.针对每个目标磁盘,根据每个磁盘性能指标对应的第一指标权重,对所述目标磁盘的性能数据进行加权求和,获得所述目标磁盘的磁盘性能值;
15.按照每个目标磁盘的磁盘性能值由高到低的顺序,从目标磁盘中选取设定数量的目标磁盘,并将所述设定数量的目标磁盘作为待检测磁盘;
16.将目标磁盘中除待检测磁盘以外的全部或部分目标磁盘作为样本磁盘。
17.在该实施例中,首先根据每个磁盘的性能数据,确定出存在故障或未使用的无效磁盘,并从多个磁盘中剔除无效磁盘,将剩余磁盘作为目标磁盘,然后针对每个目标磁盘,根据每个磁盘性能指标对应的第一指标权重,对目标磁盘的性能数据进行加权求和,获得目标磁盘的磁盘性能值,最后按照每个目标磁盘的磁盘性能值由高到低的顺序,从目标磁盘中选取设定数量的目标磁盘,并将设定数量的目标磁盘作为待检测磁盘,以及将目标磁盘中除待检测磁盘以外的全部或部分目标磁盘作为样本磁盘。从而可以准确和合理地从服务器中包括的多个磁盘中确定出样本磁盘和待检测磁盘。
18.在一种可选的实施例中,所述根据所述至少一个样本磁盘的性能数据,分别建立每个磁盘性能指标对应的高斯模型,包括:
19.针对每个磁盘性能指标,分别执行以下操作:
20.从所述至少一个样本磁盘的性能数据中,选择所述磁盘性能指标对应的第一组性能数据,并分别确定所述第一组性能数据包含的多个性能数据的均值和标准差;
21.根据所述第一组性能数据包含的多个性能数据的均值和标准差,建立所述磁盘性能指标对应的高斯模型。
22.在该实施例中,针对每个磁盘性能指标,可以从至少一个样本磁盘的性能数据中,选择该磁盘性能指标对应的第一组性能数据,并分别确定第一组性能数据包含的多个性能数据的均值和标准差,根据第一组性能数据包含的多个性能数据的均值和标准差,建立该磁盘性能指标对应的高斯模型。从而对于每个磁盘性能指标,可以建立一个合理且能够反映该磁盘性能指标对应的多个性能数据的数据分布的高斯模型。
23.在一种可选的实施例中,根据每个磁盘性能指标对应的高斯模型,对每个待检测磁盘进行慢盘检测,包括:
24.针对每个待检测磁盘,分别执行以下操作:
25.将所述待检测磁盘的每组性能数据分别输入到每个磁盘性能指标对应的高斯模型中进行检测,获得每个磁盘性能指标对应的初始检测值;
26.根据每个磁盘性能指标对应的第二指标权重,对每个磁盘性能指标对应的初始检测值进行加权求和,获得所述待检测磁盘对应的目标检测值;
27.若所述目标检测值大于设定阈值,则确定所述待检测磁盘为慢盘。
28.在该实施例中,针对每个待检测磁盘,可以将待检测磁盘的每组性能数据分别输入到每个磁盘性能指标对应的高斯模型中进行检测,获得每个磁盘性能指标对应的初始检测值,根据每个磁盘性能指标对应的第二指标权重,对每个磁盘性能指标对应的初始检测
值进行加权求和,获得待检测磁盘对应的目标检测值,若目标检测值大于设定阈值,则确定待检测磁盘为慢盘。由于可以采用每个磁盘性能指标对应的样本磁盘的性能数据所建立的该磁盘性能指标对应的高斯模型,来对该磁盘性能指标对应的待检测磁盘的性能数据进行检测,从而可以有效且准确地判断出待检测磁盘是否为慢盘,提高进行慢盘检测的准确性。
29.在一种可选的实施例中,所述将所述待检测磁盘的每组性能数据分别输入到每个磁盘性能指标对应的高斯模型中进行检测,获得每个磁盘性能指标对应的初始检测值,包括:
30.针对每个磁盘性能指标,分别执行以下操作:
31.从所述待检测磁盘的性能数据中,选择所述磁盘性能指标对应的第二组性能数据,并将第二组性能数据包含的多个性能数据的均值,作为所述第二组性能数据的均值;
32.根据所述磁盘性能指标对应的高斯模型,确定所述磁盘性能指标对应的性能阈值区间;
33.若所述第二组性能数据的均值位于所述性能阈值区间内,则确定所述磁盘性能指标对应的初始检测值为设定的第一检测值;
34.若所述第二组性能数据的均值位于所述性能阈值区间外,则确定所述磁盘性能指标对应的初始检测值为设定的第二检测值。
35.在该实施例中,针对每个磁盘性能指标,可以从待检测磁盘的性能数据中,选择磁盘性能指标对应的第二组性能数据,并将第二组性能数据包含的多个性能数据的均值,作为第二组性能数据的均值,根据磁盘性能指标对应的高斯模型,确定磁盘性能指标对应的性能阈值区间,若第二组性能数据的均值位于性能阈值区间内,则确定磁盘性能指标对应的初始检测值为设定的第一检测值,若第二组性能数据的均值位于性能阈值区间外,则确定磁盘性能指标对应的初始检测值为设定的第二检测值。由于采用每个磁盘性能指标对应的高斯模型对待检测磁盘的性能数据进行检测,从而可以根据准确且合理地判断出待检测磁盘的性能数据是否符合每个磁盘性能指标对应的数据分布。
36.第二方面,本技术实施例还提供了一种慢盘检测装置,所述装置包括:
37.数据获取单元,用于针对服务器中的任一类型的多个磁盘,分别获取每个磁盘的至少一组性能数据;每组性能数据对应有一个设定的磁盘性能指标;
38.数据处理单元,用于根据每个磁盘的性能数据和每组性能数据对应的磁盘性能指标,从所述多个磁盘中,分别确定至少一个待检测磁盘和至少一个样本磁盘;
39.模型建立单元,用于根据所述至少一个样本磁盘的性能数据,分别建立每个磁盘性能指标对应的高斯模型;
40.慢盘检测单元,用于根据每个磁盘性能指标对应的高斯模型,对每个待检测磁盘进行慢盘检测。
41.在一种可选的实施例中,所述数据处理单元,具体用于:
42.根据每个磁盘的性能数据,确定存在故障或未使用的无效磁盘,并从所述多个磁盘中剔除所述无效磁盘,将剩余磁盘作为目标磁盘;
43.针对每个目标磁盘,根据每个磁盘性能指标对应的第一指标权重,对所述目标磁盘的性能数据进行加权求和,获得所述目标磁盘的磁盘性能值;
44.按照每个目标磁盘的磁盘性能值由高到低的顺序,从目标磁盘中选取设定数量的
目标磁盘,并将所述设定数量的目标磁盘作为待检测磁盘;
45.将目标磁盘中除待检测磁盘以外的全部或部分目标磁盘作为样本磁盘。
46.在一种可选的实施例中,所述模型建立单元,具体用于:
47.针对每个磁盘性能指标,分别执行以下操作:
48.从所述至少一个样本磁盘的性能数据中,选择所述磁盘性能指标对应的第一组性能数据,并分别确定所述第一组性能数据包含的多个性能数据的均值和标准差;
49.根据所述第一组性能数据包含的多个性能数据的均值和标准差,建立所述磁盘性能指标对应的高斯模型。
50.在一种可选的实施例中,所述慢盘检测单元,具体用于:
51.针对每个待检测磁盘,分别执行以下操作:
52.将所述待检测磁盘的每组性能数据分别输入到每个磁盘性能指标对应的高斯模型中进行检测,获得每个磁盘性能指标对应的初始检测值;
53.根据每个磁盘性能指标对应的第二指标权重,对每个磁盘性能指标对应的初始检测值进行加权求和,获得所述待检测磁盘对应的目标检测值;
54.若所述目标检测值大于设定阈值,则确定所述待检测磁盘为慢盘。
55.在一种可选的实施例中,所述慢盘检测单元,还用于:
56.针对每个磁盘性能指标,分别执行以下操作:
57.从所述待检测磁盘的性能数据中,选择所述磁盘性能指标对应的第二组性能数据,并将第二组性能数据包含的多个性能数据的均值,作为所述第二组性能数据的均值;
58.根据所述磁盘性能指标对应的高斯模型,确定所述磁盘性能指标对应的性能阈值区间;
59.若所述第二组性能数据的均值位于所述性能阈值区间内,则确定所述磁盘性能指标对应的初始检测值为设定的第一检测值;
60.若所述第二组性能数据的均值位于所述性能阈值区间外,则确定所述磁盘性能指标对应的初始检测值为设定的第二检测值。
61.第三方面,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现第一方面的慢盘检测方法。
62.第四方面,本技术实施例还提供了一种电子设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器实现第一方面的慢盘检测方法。
63.第二方面至第四方面中任意一种实现方式所带来的技术效果可参见第一方面中对应的实现方式所带来的技术效果,此处不再赘述。
附图说明
64.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
65.图1为本技术实施例提供的一种慢盘检测方法的流程图;
66.图2为本技术实施例提供的一种确定待检测磁盘和样本磁盘的流程图;
67.图3为本技术实施例提供的一种建立高斯模型的流程图;
68.图4为本技术实施例提供的一种对待检测磁盘进行慢盘检测的流程图;
69.图5为本技术实施例提供的另一种慢盘检测方法的流程图;
70.图6为本技术实施例提供的一种慢盘检测装置的结构示意图;
71.图7为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
72.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
73.需要说明的是,本技术的文件中涉及的术语“包括”和“具有”以及它们的变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
74.下面将结合附图,对本技术实施例提供的技术方案进行详细说明。
75.下文中所用的词语“示例性”的意思为“用作例子、实施例或说明性”。作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。在本技术实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
76.本技术实施例提供了一种慢盘检测方法,如图1所示,包括如下步骤:
77.步骤s101,针对服务器中的任一类型的多个磁盘,分别获取每个磁盘的至少一组性能数据。
78.磁盘的类型可以有多种,例如,磁盘的类型可以为硬盘驱动器(hard disk drive,hdd)、固态驱动器(solid state drive,ssd)、非易失性内存主机控制器接口规范(non-volatile memory express,nvme)和傲腾(optane)等。
79.在一个采样周期内,针对服务器中包括的任一类型的多个磁盘,可以采集该类型对应的多个磁盘中的每个磁盘的性能数据。
80.在采集到每个磁盘的性能数据后,根据设定的至少一个磁盘性能指标,可以将每个磁盘的性能数据分为至少一组性能数据。其中,每组性能数据对应有一个设定的磁盘性能指标。
81.例如,本技术实施例中所采用的磁盘性能指标可以包括r/s、w/s、avgqu-sz、await和util共5种性能指标。其中,性能指标r/s为每秒完成的读i/o设备次数,性能指标w/s为每秒完成的写i/o设备次数,性能指标avgqu-sz为平均i/o队列长度,性能指标await为平均每次设备i/o操作的等待时间,性能指标util为一秒中有百分之多少的时间用于i/o操作,即被i/o消耗的cpu百分比。
82.步骤s102,根据每个磁盘的性能数据和每组性能数据对应的磁盘性能指标,从多个磁盘中,分别确定至少一个待检测磁盘和至少一个样本磁盘。
83.具体地,可以按照图2中示出的过程,从多个磁盘中确定待检测磁盘和样本磁盘,如图2所示,包括如下步骤:
84.步骤s201,根据每个磁盘的性能数据,确定出存在故障或未使用的无效磁盘。
85.在采集到任一类型的多个磁盘中每个磁盘的性能数据后,可以根据每个磁盘的性能数据,确定出存在故障或未使用的无效磁盘。
86.具体地,当采集到的某个磁盘的性能数据的数据值均为0,则可以确定该磁盘存在故障或者未使用,并将该磁盘作为无效磁盘。
87.步骤s202,从多个磁盘中剔除无效磁盘,将剩余磁盘作为目标磁盘。
88.步骤s203,针对每个目标磁盘,根据每个磁盘性能指标对应的第一指标权重,对该目标磁盘的性能数据进行加权求和,获得该目标磁盘的磁盘性能值。
89.例如,磁盘性能指标可以包括m1、m2、m3、m4和m5共5个性能指标,为每个性能指标设置的第一指标权重均为1,则根据每个磁盘性能指标对应的第一指标权重,对某个目标磁盘的性能数据进行加权求和,获得该目标磁盘的磁盘性能值为m1+m2+m3+m4+m5。
90.步骤s204,按照每个目标磁盘的磁盘性能值由高到低的顺序,从目标磁盘中选取设定数量的目标磁盘,并将设定数量的目标磁盘作为待检测磁盘。
91.步骤s205,将目标磁盘中除待检测磁盘以外的全部或部分目标磁盘作为样本磁盘。
92.例如,服务器中包括有属于hdd类型的目标磁盘有d1、d2、d3、d4、d5和d6共6个目标磁盘,根据每个磁盘性能指标对应的第一指标权重,对每个目标磁盘的性能数据进行加权求和,得到目标磁盘d1的磁盘性能值v1为10,目标磁盘d2的磁盘性能值v2为9,目标磁盘d3的磁盘性能值v3为5,目标磁盘d4的磁盘性能值v4为4,目标磁盘d5的磁盘性能值v5为3.5,目标磁盘d6的磁盘性能值v6为3。
93.假设设定数量为2,则可以将目标磁盘d1和目标磁盘d2作为待检测磁盘,将目标磁盘d3、目标磁盘d4、目标磁盘d5和目标磁盘d6全部作为样本磁盘。
94.步骤s103,根据至少一个样本磁盘的性能数据,分别建立每个磁盘性能指标对应的高斯模型。
95.具体地,针对每个磁盘性能指标,可以按照图3中示出的过程,建立该磁盘性能指标对应的高斯模型,如图3所示,包括如下步骤:
96.步骤s301,从至少一个样本磁盘的性能数据中,选择磁盘性能指标对应的第一组性能数据。
97.步骤s302,分别确定第一组性能数据包含的多个性能数据的均值和标准差。
98.对于每个磁盘性能指标,可以通过以下公式确定至少一个样本磁盘的性能数据中包括的该磁盘性能指标对应的第一组性能数据包含的多个性能数据的均值μ和标准差σ:
[0099][0100]
步骤s303,根据第一组性能数据包含的多个性能数据的均值和标准差,建立磁盘性能指标对应的高斯模型。
[0101]
高斯模型的公式为:即高斯模型满足高斯分布:x
~(μ,σ2)。
[0102]
例如,对于磁盘性能指标m1,根据至少一个样本磁盘的性能数据中包括的磁盘性能指标m1对应的第一组性能数据,确定第一组性能数据的均值μ为2,标准差σ为4,则建立磁盘性能指标m1对应的高斯模型g1为盘性能指标m1对应的高斯模型g1为即高斯模型g1满足高斯分布:x~(2,42)。
[0103]
步骤s104,根据每个磁盘性能指标对应的高斯模型,对每个待检测磁盘进行慢盘检测。
[0104]
具体地,针对每个待检测磁盘,可以按照图4中示出的过程,对待检测磁盘进行慢盘检测,如图4所示,包括如下步骤:
[0105]
步骤s401,对于每个磁盘性能指标,从待检测磁盘的性能数据中,选择该磁盘性能指标对应的第二组性能数据,并将第二组性能数据包含的多个性能数据的均值,作为第二组性能数据的均值。
[0106]
其中,第二性能数据包含的多个性能数据的均值μ可以通过以下公式进行确定:
[0107][0108]
步骤s402,根据该磁盘性能指标对应的高斯模型,确定该磁盘性能指标对应的性能阈值区间。
[0109]
磁盘性能指标对应的高斯模型满足高斯分布:x~(μ,σ2),可以确定磁盘性能指标对应的性能阈值区间可以为[μ-3σ,μ+3σ]。其中,μ为第一组性能数据包含的多个性能数据的均值,σ为第一组性能数据包含的多个性能数据的标准差。
[0110]
步骤s403,若第二组性能数据的均值位于性能阈值区间内,则确定该磁盘性能指标对应的初始检测值为设定的第一检测值,若第二组性能数据的均值位于性能阈值区间外,则确定该磁盘性能指标对应的初始检测值为设定的第二检测值。
[0111]
例如,磁盘性能指标可以包括m1、m2、m3、m4和m5共5个性能指标,对于性能指标m1,根据待检测磁盘的性能数据中包括的性能指标m1对应的第二组性能数据,确定性能指标m1对应的第二组性能数据的均值μ1为3;对于性能指标m2,根据待检测磁盘的性能数据中包括的性能指标m2对应的第二组性能数据,确定性能指标m2对应的第二组性能数据的均值μ2为4;对于性能指标m3,根据待检测磁盘的性能数据中包括的性能指标m3对应的第二组性能数据,确定性能指标m3对应的第二组性能数据的均值μ3为1;对于性能指标m4,根据待检测磁盘的性能数据中包括的性能指标m4对应的第二组性能数据,确定性能指标m4对应的第二组性能数据的均值μ4为1.5;对于性能指标m5,根据待检测磁盘的性能数据中包括的性能指标m5对应的第二组性能数据,确定性能指标m5对应的第二组性能数据的均值μ5为0.6。
[0112]
假设性能指标m1对应的高斯模型满足高斯分布x~(2,0.22),性能指标m2对应的高斯模型满足高斯分布x~(3,0.62),性能指标m3对应的高斯模型满足高斯分布x~(2,0.42),性能指标m4对应的高斯模型满足高斯分布x~(3,0.32),性能指标m5对应的高斯模型满足高斯分布x~(3,0.52)。
[0113]
根据性能指标m1对应的高斯模型,可以确定性能指标m1对应的性能阈值区间为[1.4,2.6];根据性能指标m2对应的高斯模型,可以确定性能指标m2对应的性能阈值区间为
[1.2,4.8];根据性能指标m3对应的高斯模型,可以确定性能指标m3对应的性能阈值区间为[0.8,3.2];根据性能指标m4对应的高斯模型,可以确定性能指标m4对应的性能阈值区间为[2.1,3.9];根据性能指标m5对应的高斯模型,可以确定性能指标m5对应的性能阈值区间为[1.5,4.5]。
[0114]
由于性能指标m1对应的第二组性能数据的均值μ1为3,位于性能指标m1对应的性能阈值区间[1.4,2.6]外,则可以确定性能指标m1对应的初始检测值为1;由于性能指标m2对应的第二组性能数据的均值μ2为4,位于性能指标m2对应的性能阈值区间[1.2,4.8]内,则可以确定性能指标m2对应的初始检测值为0;由于性能指标m3对应的第二组性能数据的均值μ3为1,位于性能指标m3对应的性能阈值区间[0.8,3.2]内,则可以确定性能指标m3对应的初始检测值为0;由于性能指标m4对应的第二组性能数据的均值μ4为1.5,位于性能指标m4对应的性能阈值区间为[2.1,3.9]外,则可以确定性能指标m4对应的初始检测值为1;由于性能指标m5对应的第二组性能数据的均值μ5为0.6,位于性能指标m5对应的性能阈值区间为[1.5,4.5]外,则可以确定性能指标m5对应的初始检测值为1。
[0115]
步骤s404,根据每个磁盘性能指标对应的第二指标权重,对每个磁盘性能指标对应的初始检测值进行加权求和,获得待检测磁盘对应的目标检测值。
[0116]
例如,磁盘性能指标可以包括m1、m2、m3、m4和m5共5个性能指标,为性能指标m1、性能指标m2和性能指标m3设置的第二指标权重为1,为性能指标m4和性能指标m5设置的第二指标权重为3.5,则根据每个磁盘性能指标对应的第二指标权重,对每个磁盘性能指标对应的初始检测值进行加权求和,获得待检测磁盘对应的目标检测值为1+0+0+3.5+3.5=8。
[0117]
步骤s405,若待检测磁盘对应的目标检测值大于设定阈值,则确定待检测磁盘为慢盘。
[0118]
例如,假设设定阈值为7,根据每个磁盘性能指标对应的第二指标权重,对每个磁盘性能指标对应的初始检测值进行加权求和,获得的待检测磁盘对应的目标检测值为8,大于设定阈值7,则可以确定待检测磁盘为慢盘。
[0119]
在一种实施例中,本技术实施例中提供的慢盘检测方法,还可以按照如图5所示的过程进行实现,如图5所示,包括如下步骤:
[0120]
步骤s501,获取服务器包括的至少一个磁盘中每个磁盘的性能数据。
[0121]
通过定时任务采集磁盘的性能数据,在一个采样周期内,获取到服务器包括的所有磁盘的性能数据。
[0122]
可选的,可以使用iostat系统工具实时地采集磁盘的性能数据。其中,iostat系统工具主要用于输出磁盘i/o和cpu的统计信息。
[0123]
步骤s502,根据每个磁盘的性能数据,确定每个磁盘所属的磁盘类型。
[0124]
采集到的磁盘的性能数据中包括有磁盘类型,则可以根据每个磁盘的性能数据,确定该磁盘所属的磁盘类型。
[0125]
其中,磁盘类型可以包括hdd、ssd、nvme和optane等类型。
[0126]
步骤s503,针对任一磁盘类型对应的多个磁盘的性能数据,确定存在故障或未使用的无效磁盘。
[0127]
针对每种磁盘类型对应的多个磁盘的性能数据,可以对多个磁盘的性能数据进行处理,确定出其中存在故障或未使用的无效磁盘。
[0128]
例如,服务器中共包含有80个磁盘,磁盘类型包括hdd、ssd、nvme和optane共4种类型,根据每个磁盘的性能数据,可以确定服务器中的20个磁盘属于hdd类型,10个磁盘属于ssd类型,25个磁盘属于nvme类型,25个磁盘属于optane类型。则可以分别对属于hdd类型的20个磁盘、属于ssd类型的10个磁盘、属于nvme类型的25个磁盘,以及属于optane类型的25个磁盘的性能数据进行处理,从而分别确定其中包括的存在故障或未使用的无效磁盘。
[0129]
步骤s504,从多个磁盘中剔除无效磁盘,并将剩余磁盘作为目标磁盘。
[0130]
由于无效磁盘的性能数据属于无效数据,会干扰后续建立高斯模型和慢盘检测的过程,因此需要从多个磁盘中剔除无效磁盘,并将剩余磁盘作为目标磁盘。
[0131]
步骤s505,根据每个磁盘性能指标对应的第一指标权重,对每个目标磁盘的性能数据进行加权求和,获得每个目标磁盘的磁盘性能值。
[0132]
步骤s506,按照每个目标磁盘的磁盘性能值由高到低的顺序,从目标磁盘中选取设定数量的目标磁盘,并将设定数量的目标磁盘作为待检测磁盘。
[0133]
可选的,在获得每个目标磁盘的磁盘性能值后,也可以将磁盘性能值最大的目标磁盘作为待检测磁盘。
[0134]
步骤s507,将目标磁盘中除待检测磁盘以外的全部或部分目标磁盘作为样本磁盘。
[0135]
步骤s508,根据样本磁盘的性能数据,分别建立每个磁盘性能指标对应的高斯模型。
[0136]
假设磁盘性能指标为m1、m2、m3、m4和m5共5个性能指标,则可以将样本磁盘的性能数据划分为5组样本数据,即样本数据组m1、样本数据组m2、样本数据组m3、样本数据组m4和样本数据组m5。其中,每个样本数据组包含有n个性能数据。则样本磁盘的性能数据可以表示为:
[0137][0138]
之后,可以根据划分得到的5组样本数据,建立5个高斯模型。
[0139]
常规的高斯建模有两种:第一种是取单组数据进行一维高斯建模,第二种是对多组数据进行多维高斯建模。
[0140]
其中,第一种高斯建模需要经过多周期迭代,采集到足够多的样本数据可以确保高斯模型的准确性;但在分布式存储系统场景下,多周期迭代的建模方式的时效性不能够满足要求,无法及时检测出慢盘,不能规避慢盘对磁盘集群的影响。
[0141]
第二种高斯建模在进行三维及以上的高斯建模时实现复杂,难度大。
[0142]
因此,本技术实施例采用多组样本数据建立多组高斯模型,即根据每组样本数据建立一个高斯模型,其技术实现简单,只需要进行单周期的性能数据采集。对于单个高斯模型,单周期内采集的样本数据,会牺牲一部分模型的准确性;但多组高斯模型,在多个维度上反应了当前磁盘的繁忙程度、响应速度;使用多组高斯模型来评估磁盘性能,能够在不损失准确性的前提下,保证时效性。且高斯模型随硬件环境、业务场景自动调整,也体现了自
适应性。
[0143]
步骤s509,对于每个待检测磁盘,根据每个磁盘性能指标对应的高斯模型,确定每个磁盘性能指标对应的初始检测值。
[0144]
每个磁盘性能指标对应的高斯模型满足高斯分布x~(μ,σ2),其中μ和σ都是根据对应于每个磁盘性能指标的样本磁盘的样本数据组确定的。
[0145]
根据每个磁盘性能指标对应的高斯模型,可以确定每个磁盘性能指标的对应的性能阈值区间为[μ-3σ,μ+3σ]。
[0146]
对于每个磁盘性能指标,如果对应于该磁盘性能指标的待检测磁盘的性能数据的均值位于该磁盘性能指标的对应的性能阈值区间内,则可以确定该磁盘性能指标对应的初始检测值为0,如果待检测磁盘的性能数据的均值位于该磁盘性能指标的对应的性能阈值区间外,则可以确定该磁盘性能指标对应的初始检测值为1。
[0147]
步骤s510,根据每个磁盘性能指标对应的第二指标权重,对每个磁盘性能指标对应的初始检测值进行加权求和,获得待检测磁盘对应的目标检测值。
[0148]
步骤s511,若待检测磁盘对应的目标检测值大于设定阈值,则确定待检测磁盘为慢盘。
[0149]
可选的,可以周期性地对服务器中的磁盘进行慢盘检测。例如,可以每隔2分钟对服务器中的磁盘进行慢盘检测,即在每个2分钟内获取服务器中磁盘的性能数据,根据确定出的服务器中的样本磁盘的性能数据建立多组高斯模型,根据建立的多组高斯模型分别对确定出的服务器中的待检测磁盘进行慢盘检测,以确定待检测磁盘是否为慢盘。
[0150]
本技术提供的一种慢盘检测方法,可以解决当前慢盘检测方法中存在的时延门限值无法动态调整、时效性不足等问题,通过利用高斯模型来分析磁盘的性能数据,能够实时、自适应的检测慢盘,且对于业务没有影响,保障集群的稳定运行。
[0151]
与相关技术相比,本技术提出的慢盘检测方法具有以下优势:
[0152]
一、自适应性,体现在:伴随集群业务压力波动,或者服务器硬件老化、服务器硬件架构差异化,本技术提出的慢盘检测方法均可以自适应的调整数据模型,有效检测出慢盘。
[0153]
二、实时性,体现在以下两个方面:1、本技术提出的慢盘检测方法在集群运行期间并行检测,不需要事后压力测试;2、本技术提出的慢盘检测方法在一个检测周期内就可以判断出慢盘,不需要多个周期判断。
[0154]
与图1所示的慢盘检测方法基于同一发明构思,本技术实施例中还提供了一种慢盘检测装置。由于该装置是本技术慢盘检测方法对应的装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见上述方法的实施,重复之处不再赘述。
[0155]
图6示出了本技术实施例提供的一种慢盘检测装置的结构示意图,如图6所示,该慢盘检测装置包括数据获取单元601、数据处理单元602、模型建立单元603和慢盘检测单元604。
[0156]
其中,数据获取单元601,用于针对服务器中的任一类型的多个磁盘,分别获取每个磁盘的至少一组性能数据;每组性能数据对应有一个设定的磁盘性能指标;
[0157]
数据处理单元602,用于根据每个磁盘的性能数据和每组性能数据对应的磁盘性能指标,从多个磁盘中,分别确定至少一个待检测磁盘和至少一个样本磁盘;
[0158]
模型建立单元603,用于根据至少一个样本磁盘的性能数据,分别建立每个磁盘性
能指标对应的高斯模型;
[0159]
慢盘检测单元604,用于根据每个磁盘性能指标对应的高斯模型,对每个待检测磁盘进行慢盘检测。
[0160]
在一种可选的实施例中,数据处理单元602,具体用于:
[0161]
根据每个磁盘的性能数据,确定存在故障或未使用的无效磁盘,并从多个磁盘中剔除无效磁盘,将剩余磁盘作为目标磁盘;
[0162]
针对每个目标磁盘,根据每个磁盘性能指标对应的第一指标权重,对目标磁盘的性能数据进行加权求和,获得目标磁盘的磁盘性能值;
[0163]
按照每个目标磁盘的磁盘性能值由高到低的顺序,从目标磁盘中选取设定数量的目标磁盘,并将设定数量的目标磁盘作为待检测磁盘;
[0164]
将目标磁盘中除待检测磁盘以外的全部或部分目标磁盘作为样本磁盘。
[0165]
在一种可选的实施例中,模型建立单元603,具体用于:
[0166]
针对每个磁盘性能指标,分别执行以下操作:
[0167]
从至少一个样本磁盘的性能数据中,选择磁盘性能指标对应的第一组性能数据,并分别确定第一组性能数据包含的多个性能数据的均值和标准差;
[0168]
根据第一组性能数据包含的多个性能数据的均值和标准差,建立磁盘性能指标对应的高斯模型。
[0169]
在一种可选的实施例中,慢盘检测单元604,具体用于:
[0170]
针对每个待检测磁盘,分别执行以下操作:
[0171]
将待检测磁盘的每组性能数据分别输入到每个磁盘性能指标对应的高斯模型中进行检测,获得每个磁盘性能指标对应的初始检测值;
[0172]
根据每个磁盘性能指标对应的第二指标权重,对每个磁盘性能指标对应的初始检测值进行加权求和,获得待检测磁盘对应的目标检测值;
[0173]
若目标检测值大于设定阈值,则确定待检测磁盘为慢盘。
[0174]
在一种可选的实施例中,慢盘检测单元604,还用于:
[0175]
针对每个磁盘性能指标,分别执行以下操作:
[0176]
从待检测磁盘的性能数据中,选择磁盘性能指标对应的第二组性能数据,并将第二组性能数据包含的多个性能数据的均值,作为第二组性能数据的均值;
[0177]
根据磁盘性能指标对应的高斯模型,确定磁盘性能指标对应的性能阈值区间;
[0178]
若第二组性能数据的均值位于性能阈值区间内,则确定磁盘性能指标对应的初始检测值为设定的第一检测值;
[0179]
若第二组性能数据的均值位于性能阈值区间外,则确定磁盘性能指标对应的初始检测值为设定的第二检测值。
[0180]
与上述方法实施例基于同一发明构思,本技术实施例中还提供了一种电子设备。该电子设备可以用于对服务器中的磁盘进行慢盘检测。在该实施例中,电子设备的结构可以如图7所示,包括存储器701以及一个或多个处理器702。
[0181]
存储器701,用于存储处理器702执行的计算机程序。存储器701可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及运行即时通讯功能所需的程序等;存储数据区可存储各种即时通讯信息和操作指令集等。
[0182]
存储器701可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,ram);存储器701也可以是非易失性存储器(non-volatile memory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd)、或者存储器801是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器701可以是上述存储器的组合。
[0183]
处理器702,可以包括一个或多个中央处理单元(central processing unit,cpu)或者为数字处理单元等等。处理器702,用于调用存储器701中存储的计算机程序时实现上述慢盘检测方法。
[0184]
本技术实施例中不限定上述存储器701和处理器702之间的具体连接介质。本公开实施例在图7中以存储器701和处理器702之间通过总线703连接,总线703在图7中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线703可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0185]
根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中的慢盘检测方法。
[0186]
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0187]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。
技术特征:1.一种慢盘检测方法,其特征在于,包括:针对服务器中的任一类型的多个磁盘,分别获取每个磁盘的至少一组性能数据;每组性能数据对应有一个设定的磁盘性能指标;根据每个磁盘的性能数据和每组性能数据对应的磁盘性能指标,从所述多个磁盘中,分别确定至少一个待检测磁盘和至少一个样本磁盘;根据所述至少一个样本磁盘的性能数据,分别建立每个磁盘性能指标对应的高斯模型;根据每个磁盘性能指标对应的高斯模型,对每个待检测磁盘进行慢盘检测。2.如权利要求1所述的方法,其特征在于,所述根据每个磁盘的性能数据和每组性能数据对应的磁盘性能指标,从所述多个磁盘中,分别确定至少一个待检测磁盘和至少一个样本磁盘,包括:根据每个磁盘的性能数据,确定存在故障或未使用的无效磁盘,并从所述多个磁盘中剔除所述无效磁盘,将剩余磁盘作为目标磁盘;针对每个目标磁盘,根据每个磁盘性能指标对应的第一指标权重,对所述目标磁盘的性能数据进行加权求和,获得所述目标磁盘的磁盘性能值;按照每个目标磁盘的磁盘性能值由高到低的顺序,从目标磁盘中选取设定数量的目标磁盘,并将所述设定数量的目标磁盘作为待检测磁盘;将目标磁盘中除待检测磁盘以外的全部或部分目标磁盘作为样本磁盘。3.如权利要求1所述的方法,其特征在于,所述根据所述至少一个样本磁盘的性能数据,分别建立每个磁盘性能指标对应的高斯模型,包括:针对每个磁盘性能指标,分别执行以下操作:从所述至少一个样本磁盘的性能数据中,选择所述磁盘性能指标对应的第一组性能数据,并分别确定所述第一组性能数据包含的多个性能数据的均值和标准差;根据所述第一组性能数据包含的多个性能数据的均值和标准差,建立所述磁盘性能指标对应的高斯模型。4.如权利要求1~3任一项所述的方法,其特征在于,根据每个磁盘性能指标对应的高斯模型,对每个待检测磁盘进行慢盘检测,包括:针对每个待检测磁盘,分别执行以下操作:将所述待检测磁盘的每组性能数据分别输入到每个磁盘性能指标对应的高斯模型中进行检测,获得每个磁盘性能指标对应的初始检测值;根据每个磁盘性能指标对应的第二指标权重,对每个磁盘性能指标对应的初始检测值进行加权求和,获得所述待检测磁盘对应的目标检测值;若所述目标检测值大于设定阈值,则确定所述待检测磁盘为慢盘。5.如权利要求4所述的方法,其特征在于,所述将所述待检测磁盘的每组性能数据分别输入到每个磁盘性能指标对应的高斯模型中进行检测,获得每个磁盘性能指标对应的初始检测值,包括:针对每个磁盘性能指标,分别执行以下操作:从所述待检测磁盘的性能数据中,选择所述磁盘性能指标对应的第二组性能数据,并将第二组性能数据包含的多个性能数据的均值,作为所述第二组性能数据的均值;
根据所述磁盘性能指标对应的高斯模型,确定所述磁盘性能指标对应的性能阈值区间;若所述第二组性能数据的均值位于所述性能阈值区间内,则确定所述磁盘性能指标对应的初始检测值为设定的第一检测值;若所述第二组性能数据的均值位于所述性能阈值区间外,则确定所述磁盘性能指标对应的初始检测值为设定的第二检测值。6.一种慢盘检测装置,其特征在于,包括:数据获取单元,用于针对服务器中的任一类型的多个磁盘,分别获取每个磁盘的至少一组性能数据;每组性能数据对应有一个设定的磁盘性能指标;数据处理单元,用于根据每个磁盘的性能数据和每组性能数据对应的磁盘性能指标,从所述多个磁盘中,分别确定至少一个待检测磁盘和至少一个样本磁盘;模型建立单元,用于根据所述至少一个样本磁盘的性能数据,分别建立每个磁盘性能指标对应的高斯模型;慢盘检测单元,用于根据每个磁盘性能指标对应的高斯模型,对每个待检测磁盘进行慢盘检测。7.如权利要求6所述的装置,其特征在于,所述数据处理单元,具体用于:根据每个磁盘的性能数据,确定存在故障或未使用的无效磁盘,并从所述多个磁盘中剔除所述无效磁盘,将剩余磁盘作为目标磁盘;针对每个目标磁盘,根据每个磁盘性能指标对应的第一指标权重,对所述目标磁盘的性能数据进行加权求和,获得所述目标磁盘的磁盘性能值;按照每个目标磁盘的磁盘性能值由高到低的顺序,从目标磁盘中选取设定数量的目标磁盘,并将所述设定数量的目标磁盘作为待检测磁盘;将目标磁盘中除待检测磁盘以外的全部或部分目标磁盘作为样本磁盘。8.如权利要求6所述的装置,其特征在于,所述模型建立单元,具体用于:针对每个磁盘性能指标,分别执行以下操作:从所述至少一个样本磁盘的性能数据中,选择所述磁盘性能指标对应的第一组性能数据,并分别确定所述第一组性能数据包含的多个性能数据的均值和标准差;根据所述第一组性能数据包含的多个性能数据的均值和标准差,建立所述磁盘性能指标对应的高斯模型。9.一种电子设备,其特征在于,其包括处理器和存储器,其中,所述存储器存储有程序代码,当所述程序代码被所述处理器执行时,使得所述处理器执行权利要求1~5中任一所述方法的步骤。10.一种计算机可读存储介质,其特征在于,其包括程序代码,当所述程序代码在电子设备上运行时,所述程序代码用于使所述电子设备执行权利要求1~5中任一所述方法的步骤。
技术总结本申请提供一种慢盘检测方法、装置、电子设备及存储介质,涉及计算机技术领域。针对服务器中的任一类型的多个磁盘,分别获取每个磁盘的至少一组性能数据,根据每个磁盘的性能数据和每组性能数据对应的磁盘性能指标,从多个磁盘中,分别确定至少一个待检测磁盘和至少一个样本磁盘,基于至少一个样本磁盘的性能数据,分别建立每个磁盘性能指标对应的高斯模型,并根据每个磁盘性能指标对应的高斯模型,对每个待检测磁盘进行慢盘检测。从而可以利用高斯模型对磁盘的性能数据进行分析,能够自适应、实时的对磁盘进行慢盘检测,准确且有效地检测出磁盘是否为慢盘。检测出磁盘是否为慢盘。检测出磁盘是否为慢盘。
技术研发人员:王磊
受保护的技术使用者:天翼云科技有限公司
技术研发日:2022.07.18
技术公布日:2022/11/1