一种检测慢盘的方法及装置与流程

文档序号:11133781阅读:1270来源:国知局
一种检测慢盘的方法及装置与制造工艺

本发明涉及计算机领域,尤其涉及一种检测慢盘的方法及装置。



背景技术:

存储系统中的硬盘在使用过程中,由于硬盘的磁性退化、坏道或振动等其他环境和机械的问题,会导致硬盘在进行读写操作,即输入输出(英文:input/output,缩写:I/O)操作时的延时增大,这种进行I/O操作时延时增大的硬盘称为慢盘。

通常,为了降低慢盘对存储系统的读写性能的影响,一般在存储系统运行过程中,可以通过实时监控存储系统中的各个硬盘进行I/O操作时的延时,检测这些硬盘是否为慢盘。具体的,以一个硬盘为例,统计该硬盘在每个第一周期内进行I/O操作的平均延时,并将该平均延时与预设的时间阈值进行比较,若该平均延时大于或等于时间阈值,则记为一次阈值事件;以及统计该硬盘在每个第二周期(第二周期大于第一周期)内出现阈值事件的次数,并将该次数与预设的次数阈值进行比较,若该次数大于或等于预设的次数阈值,则可确定该硬盘为慢盘。

然而,为了避免硬盘某次读写较大数据时导致平均延时增大,出现检测错误的现象,通常将时间阈值设置的比较大,因此可能会使得检测慢盘的准确度下降。



技术实现要素:

本发明实施例提供一种检测慢盘的方法及装置,能够提高检测慢盘的准确度。

第一方面,本发明实施例提供一种检测慢盘的方法,所述方法包括:

在检测周期内,周期性地进行采样,在每次采样周期内,执行如下方法:

获取本次采样周期内硬盘读写数据的第一延时以及第一延时相关指标值,其中,所述第一延时相关指标值为延时相关指标值的一个具体值,所述延时相关指标值为一个会随延时变化而发生相应变化的一个值;

确定所述第一延时相关指标值所属的第一区间;其中,所述第一区间为预先针对最大延时相关指标值划分的多个区间中的一个;

若所述第一区间是已满区间,则计算所述第一延时与区间平均延时的比值,得到第一比值;其中,所述已满区间是在所有采样周期内获取到的所有延时相关指标值落入到该区间的个数达到第一阈值的区间,所述区间平均延时为所述第一区间中的多个第二延时的平均值,所述多个第二延时一一对应于第一多个采样周期,每个第二延时在与之对应的采样周期内被获取,其中,每个采样周期对应于一个延时相关指标值;

在每次检测周期结束后,下一个检测周期开始前,执行如下方法:

若在本次检测周期内的所有采样周期内获取到的所有延时相关指标值落入到各个已满区间的个数大于或等于第二阈值,则计算第二多个采样周期内计算的多个第一比值的平均值,得到第一比值平均值,所述第二多个采样周期为获取到落入各个已满区间的多个延时相关指标值的采样周期;

若所述第一比值平均值大于或等于第三阈值,则确定所述硬盘为慢盘。

结合第一方面,在第一方面的第一种可能的实现方式中,在每次采样周期内,所述确定所述第一延时相关指标值所属的第一区间之后,所述方法还包括:

记录经过本次采样后,在所有采样周期内获取到的所有延时相关指标值落入到所述第一区间的个数为第一个数,其中,每个采样周期对应于一个延时相关指标值;

判断所述第一个数是否达到所述第一阈值;

若所述第一个数达到所述第一阈值,则确定所述第一区间是已满区间;

若所述第一个数没有达到所述第一阈值,则确定所述第一区间不是已 满区间,并进入下次采样周期采样。

结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,

所述延时相关指标值为所述硬盘读写数据的利用率;或者,

所述延时相关指标值为所述硬盘读写数据的读写速度。

结合第一方面或第一方面的第一种可能的实现方式至第二种可能的实现方式中的任一种实现方式,在第一方面的第三种可能的实现方式中,所述第一阈值为N,所述第一区间对应N个第二延时,N为大于或等于1的整数,所述计算所述第一延时与区间平均延时的比值之前,所述方法还包括:

计算所述N个第二延时中的所述多个第二延时的平均值,得到所述区间平均延时。

结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,

所述N个第二延时按照采样顺序依次排列,所述多个第二延时为所述N个第二延时中的前M个第二延时,M为整数,N/3≤M≤2N/3,且N/3和2N/3均取整数。

结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,M=N/2,

所述多个第二延时为所述N个第二延时中的前N/2个第二延时,且N/2取整数。

结合第一方面或第一方面的第一种可能的实现方式至第五种可能的实现方式中的任一种实现方式,在第一方面的第六种可能的实现方式中,

所述多个第二延时的平均值为所述多个第二延时的算术平均值或者所述多个第二延时的几何平均值;

所述多个第一比值的平均值为所述多个第一比值的算术平均值或者所述多个第一比值的几何平均值。

结合第一方面或第一方面的第一种可能的实现方式至第六种可能的实现方式中的任一种实现方式,在第一方面的第七种可能的实现方式中, 所述方法应用于多个硬盘的场景,针对第一硬盘执行,所述第一硬盘为所述多个硬盘中的其中一个硬盘;所述方法还包括:

获取与所述多个硬盘中除所述第一硬盘外的其他硬盘一一对应的多个第一比值平均值,其中,所述其他硬盘中的每个硬盘对应的第一比值平均值的获取方法与所述第一硬盘对应的第一比值平均值的获取方法相同;

当与所述多个硬盘中的每个硬盘对应的第一比值平均值均小于所述第三阈值时,所述方法还包括:

计算与所述多个硬盘一一对应的多个第一比值平均值的平均值,得到第一平均值;

计算与所述多个硬盘中的每个硬盘对应的第一比值平均值与所述第一平均值的比值,得到多个第二比值;

确定所述多个第二比值中,与大于或等于第四阈值的第二比值对应的硬盘为慢盘。

第二方面,本发明实施例提供一种检测慢盘的装置,所述装置包括:

采样单元,用于在检测周期内,周期性地进行采样,且在每次采样周期内,完成如下过程:

获取本次采样周期内硬盘读写数据的第一延时以及第一延时相关指标值,其中,所述第一延时相关指标值为延时相关指标值的一个具体值,所述延时相关指标值为一个会随延时变化而发生相应变化的一个值;

确定所述第一延时相关指标值所属的第一区间;其中,所述第一区间为预先针对最大延时相关指标值划分的多个区间中的一个;

若所述第一区间是已满区间,则计算所述第一延时与区间平均延时的比值,得到第一比值;其中,所述已满区间是在所有采样周期内获取到的所有延时相关指标值落入到该区间的个数达到第一阈值的区间,所述区间平均延时为所述第一区间中的多个第二延时的平均值,所述多个第二延时一一对应于第一多个采样周期,每个第二延时在与之对应的采样周期内被获取,其中,每个采样周期对应于一个延时相关指标值;

检测单元,用于在每次检测周期结束后,下一个检测周期开始前,完成如下过程:

若在本次检测周期内的所有采样周期内获取到的所有延时相关指标值落入到各个已满区间的个数大于或等于第二阈值,则计算所述采样单元在第二多个采样周期内计算的多个第一比值的平均值,得到第一比值平均值,所述第二多个采样周期为获取到落入各个已满区间的多个延时相关指标值的采样周期;以及若所述第一比值平均值大于或等于第三阈值,则确定所述硬盘为慢盘。

结合第二方面,在第二方面的第一种可能的实现方式中,

所述采样单元,还用于在每次采样周期内,确定所述第一延时相关指标值所属的第一区间之后,记录经过本次采样后,在所有采样周期内获取到的所有延时相关指标值落入到所述第一区间的个数为第一个数;并判断所述第一个数是否达到所述第一阈值;以及若所述第一个数达到所述第一阈值,则确定所述第一区间是已满区间;若所述第一个数没有达到所述第一阈值,则确定所述第一区间不是已满区间,并进入下次采样周期采样,其中,每个采样周期对应于一个延时相关指标值。

结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,

所述延时相关指标值为所述硬盘读写数据的利用率;或者,

所述延时相关指标值为所述硬盘读写数据的读写速度。

结合第二方面或第二方面的第一种可能的实现方式至第二种可能的实现方式中的任一种实现方式,在第二方面的第三种可能的实现方式中,所述第一阈值为N,所述第一区间对应N个第二延时,N为大于或等于1的整数,

所述采样单元,还用于在计算所述第一延时与区间平均延时的比值之前,计算所述N个第二延时中的所述多个第二延时的平均值,得到所述区间平均延时。

结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,

所述N个第二延时按照采样顺序依次排列,所述多个第二延时为所述N个第二延时中的前M个第二延时,M为整数,N/3≤M≤2N/3,且N/3和 2N/3均取整数。

结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,M=N/2,

所述多个第二延时为所述N个第二延时中的前N/2个第二延时,且N/2取整数。

结合第二方面或第二方面的第一种可能的实现方式至第五种可能的实现方式中的任一种实现方式,在第二方面的第六种可能的实现方式中,

所述采样单元计算的所述多个第二延时的平均值为所述多个第二延时的算术平均值或者所述多个第二延时的几何平均值;

所述检测单元计算的所述多个第一比值的平均值为所述多个第一比值的算术平均值或者所述多个第一比值的几何平均值。

结合第二方面或第二方面的第一种可能的实现方式至第六种可能的实现方式中的任一种实现方式,在第二方面的第七种可能的实现方式中,所述装置应用于多个硬盘的场景,所述装置针对第一硬盘进行检测,所述第一硬盘为所述多个硬盘中的其中一个硬盘;

所述检测单元,还用于获取与所述多个硬盘中除所述第一硬盘外的其他硬盘一一对应的多个第一比值平均值;并当与所述多个硬盘中的每个硬盘对应的第一比值平均值均小于所述第三阈值时,计算与所述多个硬盘一一对应的多个第一比值平均值的平均值,得到第一平均值;且计算与所述多个硬盘中的每个硬盘对应的第一比值平均值与所述第一平均值的比值,得到多个第二比值;以及确定所述多个第二比值中,与大于或等于第四阈值的第二比值对应的硬盘为慢盘,其中,所述其他硬盘中的每个硬盘对应的第一比值平均值的获取方法与所述第一硬盘对应的第一比值平均值的获取方法相同。

本发明实施例提供一种检测慢盘的方法及装置,该方法包括在检测周期内,周期性地进行采样,且在每次采样周期内:获取本次采样周期内硬盘读写数据的第一延时以及第一延时相关指标值,其中,第一延时相关指标值为延时相关指标值的一个具体值,所述时相关指标值为一个会随延时变化而发生相应变化的一个值;确定第一延时相关指标值所属的第一区 间;其中,第一区间为预先针对最大延时相关指标值划分的多个区间中的一个;若第一区间是已满区间,则计算第一延时与区间平均延时的比值,得到第一比值;其中,已满区间是在所有采样周期内获取到的所有延时相关指标值落入到该区间的个数达到第一阈值的区间,区间平均延时为第一区间中的多个第二延时的平均值,多个第二延时一一对应于第一多个采样周期,每个第二延时在与之对应的采样周期内被获取,其中,每个采样周期对应于一个延时相关指标值。在每次检测周期结束后,下一个检测周期开始前:若在本次检测周期内的所有采样周期内获取到的所有延时相关指标值落入到各个已满区间的个数大于或等于第二阈值,则计算第二多个采样周期内计算的多个第一比值的平均值,得到第一比值平均值,第二多个采样周期为获取到落入各个已满区间的多个延时相关指标值的采样周期;若第一比值平均值大于或等于第三阈值,则确定硬盘为慢盘。

基于上述技术方案,本发明实施例提供的检测慢盘的方法中,首先,由于延时相关指标值会随延时的变化而发生相应的变化,即延时与延时相关指标值密切相关,因此通过将最大延时相关指标值划分区间,并在每个区间内采样与属于该区间的延时相关指标值对应的延时,可以保证一个区间内采样的延时有统一的衡量标准,从而提高检测慢盘的准确度。其次,在第一区间是已满区间(即在所有采样周期内获取到的所有延时相关指标值落入到第一区间的个数达到第一阈值)后才计算第一比值(在没满之前的采样过程可认为是学习过程),可以保证在第一区间获取足够多个延时相关指标值(即在第一区间采样足够多次)后再计算第一比值,从而能够提高检测慢盘的准确度。再次,本发明实施例在每次检测周期内的所有采样周期内获取到的所有延时相关指标值落入到各个已满区间的个数大于或等于第二阈值时再计算第一比值平均值,可以保证在大部分区间已经结束学习过程,即大部分区间已经采样了足够多次后再计算第一比值平均值,也能够提高检测慢盘的准确度。此外,由于本发明实施例计算的第一比值平均值为由多个第一比值得到的一个比例平均值,其并不是实际的延时数值,因此该第一比值平均值可以准确地体现硬盘的性能变化趋势,通过设置第三阈值,以及将第一比值平均值与第三阈值进行比较,可以在硬 盘性能发生变化时准确地检测出硬盘是慢盘,从而进一步提高检测慢盘的准确度。

附图说明

图1为本发明实施例提供的云存储系统的架构示意图;

图2为本发明实施例提供的一种检测慢盘的方法流程图一;

图3为本发明实施例提供的一种检测慢盘的方法流程图二;

图4为本发明实施例提供的一种检测慢盘的方法流程图三;

图5为本发明实施例提供的一种检测慢盘的方法流程图四;

图6为本发明实施例提供的一种检测慢盘的装置的结构示意图;

图7为本发明实施例提供的一种检测慢盘的装置的硬件示意图。

具体实施方式

本发明实施例提供的检测慢盘的方法及装置可以应用于硬盘检测场景中。具体的,本发明实施例提供的检测慢盘的方法及装置可以应用于云存储系统中的硬盘检测场景中。

云存储系统是在云计算(英文:cloud computing)系统的概念上延伸和发展出来的一个新的概念,是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。当云计算系统运算和处理的核心是大量数据的存储和管理时,云计算系统中就需要配置大量的存储设备,例如硬盘,那么云计算系统就转变成为一个云存储系统,所以云存储系统是一个以数据存储和管理为核心的云计算系统。

如图1所示,为本发明实施例提供的一种云存储系统的架构示意图。由于云存储系统中包括大量的存储设备,例如图1中的各种各样的硬盘,因此为了提高云存储系统的性能(例如存储性能和管理性能),通常需要对这些存储设备进行维护。以存储设备为各种各样的硬盘为例,由于这些硬盘在使用过程中,可能由于某些硬盘的磁性退化、坏道或振动等其他环境和机械问题,而导致某些硬盘在进行读写操作时的延时较大,因此为了 提高云存储系统的存储效率,需要及时对这些硬盘进行检测,以检测出进行读写操作时延时较大的硬盘,即慢盘。当检测出慢盘后,可以通过从云存储系统中隔离(例如从软件上删除或者从硬件上自动弹出等)慢盘,从而提高云存储系统的存储效率。

本发明实施例提供的硬盘可以为固态硬盘(英文:solid state drive,缩写:SSD);也可以为硬盘驱动器(英文:Hard Disk Drive,缩写:HDD);还可以为混合式硬盘(英文:hybrid hard drive,缩写:HHD)等其他类型的硬盘,具体的本发明不作限定。其中,SSD采用闪存颗粒来存储;HDD采用磁性碟片来存储;HHD是把磁性硬盘和闪存集成到一起的一种硬盘。

下面结合附图对本发明实施例提供的检测慢盘的方法及装置进行详细地说明。其中,本发明实施例提供的检测慢盘的方法的执行主体可以为检测慢盘的装置,该检测慢盘的装置可以为云存储系统中的一个检测节点,该检测节点可以为一个独立的计算机节点,也可以为一个集成在计算机节点中的功能单元等,本发明不作具体限定。以下实施例中,为了更清楚、完整地说明本发明实施例提供的检测慢盘的方法,该方法的执行主体均以检测节点为例进行示例性的说明。

实施例一

在云存储系统中,由于本发明实施例提供的检测慢盘的方法对每个硬盘的检测过程均类似,因此本实施例以一个硬盘为例对本发明实施例提供的检测慢盘的方法进行示例性的说明。

如图2所示,本发明实施例提供一种检测慢盘的方法,该方法可以包括:

S10、在检测周期内,检测节点周期性地进行采样,在每次采样周期内,检测节点执行S100-S102。

S100、检测节点获取本次采样周期内硬盘读写数据的第一延时以及第一延时相关指标值,其中,第一延时相关指标值为延时相关指标值的一个具体值,延时相关指标值为一个会随延时变化而发生相应变化的一个值。

本发明实施例中,第一延时相关指标值为本次采样周期内获取到的延时相关指标。

其中,上述第一延时/延时统计的是一段时间内硬盘读写数据的平均延时。由于该平均延时为本领域技术人员所公知的技术,因此此处不再详述。

本发明实施例中,“第一延时”以及“第一延时相关指标值”中的前缀“第一”仅表示为一个特定的延时或者延时相关指标值,在后续其他步骤中出现的“第一”、“第二”等前缀均表示类似的含义。

其中,上述延时相关指标值是指跟硬盘读写数据时的延时(即上述的平均延时)相关的一个指标的值,即该指标的值跟延时之间存在具有一定规律的对应关系。具体的,延时相关指标值可以为硬盘读写数据的“利用率”或者硬盘读写数据的“读写速度”等跟硬盘读写数据的延时之间存在一定对应关系的指标。例如,延时大时,对应的利用率会高(或者,对应的读写速度会低)。上述延时相关指标值为硬盘读写数据的“利用率”和硬盘读写数据的“读写速度”仅是为了对本发明实施例的检测慢盘的方法进行示例性的说明,其并不对本发明实施例形成任何限定,即本发明实施例也不限定延时相关指标值可以取其他能够随延时变化而发生相应变化的值。

同时,为了后续方便说明,本发明实施例中,并不对“利用率”与“利用率的值”或者其他类似的情况(如“指标”与“指标的值”)进行严格区分,本领域技术人员可以理解他们表示的是相同的意思。例如,如果出现“利用率”为XX时,本领域技术人员可以理解,实际上也可以表示“利用率的值”为XX。

本发明实施例中,第一延时相关指标值可以是硬盘读写数据的“利用率”的一个值(如20%、40%之类的值),该值越高,第一延时也越大;或者,第一延时相关指标值可以是硬盘读写数据的“读写速度”的一个值(如20M/s、50M/s之类的值)时,该值越高,说明系统很繁忙,第一延时也越大。

本发明实施例中,第一延时以及第一延时相关指标值可以通过多种路径获取。示例性的,可以基于操作系统自带的一些工具获取,例如,基于Linux操作系统的iostat工具,可以通过iostat工具获取一段时间内硬盘 的利用率以及硬盘读写数据的平均延时等数据;或者,也可以自定义开发一些工具来获取。如何通过系统自带的工具以及如何自己开发用于获取这些数据的工具都属于本领域技术人员所公知的技术,这里不再赘述。

S101、检测节点确定第一延时相关指标值所属的第一区间,其中,第一区间为预先针对最大延时相关指标值划分的多个区间中的一个。

本发明实施例提供的检测慢盘的方法中,可以由软件开发人员预先获取硬盘读写数据的最大延时相关指标值,并将硬盘读写数据的最大延时相关指标值进行划分,以得到多个区间,以及将这多个区间写入检测慢盘时执行的软件程序中。

由于延时相关指标值不同,其获取的方法可能不同,因此下面分别以上述延时相关指标值为硬盘读写数据的“利用率”和硬盘读写数据的“读写速度”为例,对获取硬盘读写数据的最大延时相关指标值的方法进行示例性的说明。

当上述延时相关指标值为硬盘读写数据的“利用率”时,一般情况下,软件开发人员可直接认为最大延时相关指标值为在理论上硬盘读写数据的“利用率”的最大值,例如,软件开发人员可直接认为最大延时相关指标值为100%。极少数情况下,软件开发人员可以通过iostat工具获取最大延时相关指标值,这种情况下,最大延时相关指标值是由iostat工具在硬盘读写数据时根据硬盘的介质设置的,例如,iostat工具根据硬盘的介质不同,可以将最大延时相关指标值设置为理论上硬盘读写数据的“利用率”的最大值的整数倍(如200%之类的值)。

当上述延时相关指标值为硬盘读写数据的“读写速度”时,最大延时相关指标值可以有以下几种获取方法。第一种获取方法是软件开发人员根据开发经验获取,比如软件开发人员在了解应用系统的设计及应用进行I/O操作的方式后,可以估算出一个可能的值作为最大延时相关指标值。第二种获取方法是软件开发人员在无开发经验的情况下,可以在硬盘上运行一个读写测试,并根据该读写测试获取最大延时相关指标值。第三种获取方法是软件开发人员可以直接使用硬盘的标称值作为最大延时相关指标值,该标称值通常由硬盘厂商提供,例如,在购买硬盘时,可以看到硬盘的参 数中有“最大持续数据传输率”(如210M/s之类的值),软件开发人员可以将该“最大持续数据传输率”作为最大延时相关指标值。上述三种获取方法中第一种获取方法获取的最大延时相关指标值的精确程度最高,第二种方法次之,第三种方法最低。

示例性的,若延时相关指标值为硬盘读写数据的“利用率”,则可以将硬盘读写数据的最大利用率进行划分;例如,假设硬盘读写数据的最大利用率为100%,则可以按照以20%为间隔对0-100%进行划分,即可以划分为[0,20%)、[20%,40%)、[40%,60%)、[60%,80%)和[80%,100%]等五个区间。若延时相关指标值为硬盘读写数据的“读写速度”,则可以将硬盘读写数据的最大读写速度(实际中最大读写速度可以为单位时间内最多读写的数据量)进行划分;例如,假设硬盘读写数据的最大读写速度为50M/s,则可以按照以10M/s为间隔对0-50M/s进行划分,即可以划分为[0,10M/s)、[10M/s,20M/s)、[20M/s,30M/s)、[30M/s,40M/s)和[40M/s,50M/s]等五个区间。

需要说明的是,上述对硬盘读写数据的最大延时相关指标值进行划分的描述仅是示例性的列举,本发明包括但不限于上述描述的划分方法。其中,上述将硬盘读写数据的最大延时相关指标值划分为若干个区间的区间数量可以根据实际检测慢盘的过程中,获取的最大延时相关指标值的精准程度、第一阈值(用于限定需获取的落入每个区间的延时相关指标值的最大个数)的大小以及对检测慢盘的准确度的要求等进行设定,本发明不作具体限定。一方面,当获取的最大延时相关指标值的精准程度比较低时,划分的区间数量可以多一些,以提高检测慢盘的准确度;反之划分的区间数量可以少一些。一方面,为了提高检测慢盘的准确度,第一阈值可以设置的大一些,但是如果划分的区间数量太多的话可能会导致每个区间达到第一阈值的时间变长,从而检测慢盘的灵敏度会降低,所以考虑这个因素可能划分的区间数量要少一些。另一方面,当对检测慢盘的准确度的要求较高时,划分的区间数量可以多一些。总之,可以基于上述三个方面,在划分区间时进行均衡,以划分合适数量的区间,从而在检测慢盘的准确度和灵敏度之间达到均衡。

检测节点获取到硬盘读写数据的第一延时相关指标值后,检测节点需在预先划分的多个区间中,确定出第一延时相关指标值所属的第一区间。以第一延时相关指标值为硬盘读写数据的“读写速度”的一个值,例如“第一读写速度”为例,若“第一读写速度”为33M/s,则第一延时相关指标值为33M/s,即第一延时相关指标值所属的第一区间为[30M/s,40M/s)这个区间。

进一步地,检测节点在确定本次获取的第一延时相关指标值所属的第一区间之后,检测节点需要记录本次采样后,在所有采样周期(包括本次采样周期及前面所有的采样周期)内获取到的所有延时相关指标值(包括本次采样之前获取的所有延时相关指标值和本次获取的第一延时相关指标值)落入到第一区间的个数,这里记为“第一个数”。本发明实施例中,在每个采样周期内,只获取一个延时相关指标值,其中,有一些延时相关指标值会落入到第一区间,有一些不会落入,此时,第一个数即表示所有落入到第一区间的延时相关指标值的个数。例如,假设所有的采样周期共有100个,通过这些采样周期共获取100个延时相关指标值,其中,有80个延时相关指标值落入到了第一区间,则第一个数为80。

可以比较容易地看到,第一个数是一个会不断累加的参数,因此,上述记录第一个数的过程也可以看成是“更新第一个数”的过程。实际应用中,为了记录第一个数,可以有很多种方法。例如,一种常用的方法是可以通过设置一个变量,每当采样周期内获取的延时指标值落入到第一区间时,就对这个变量进行累加(例如,加1),可以用程序语言表示为:first_number=first_number+1,其中,first_number代表“第一个数”。

例如,假设在本次采样前,检测节点已经记录的落入第一区间的延时相关指标值的个数为630,在本次采样中,检测节点确定本次采样的第一延时相关指标值所属的第一区间后,检测节点“更新第一个数”,即在630基础上加1,得到更新后的第一个数为631。

可以理解的是,本发明实施例提供的检测慢盘的方法中,检测节点在每个区间对硬盘的检测过程均类似,因此,本实施例及以下实施例均以一个区间,即第一区间为例进行示例性的说明,对于其他区间的检测过程与 第一区间的检测过程均类似,本发明实施例不再赘述。

S102、若第一区间是已满区间,则检测节点计算第一延时与区间平均延时的比值,得到第一比值。

其中,本发明实施例中的已满区间是指在所有采样周期内获取到的所有延时相关指标值落入到该区间的个数达到第一阈值的区间,通过S101可知,如果某个采样周期内获取的延时相关指标值落入到第一区间,则该延时相关指标值的个数就会被记录,依次类推,检测节点可以记录所有采样周期内获取到的所有延时相关指标值落入到该第一区间的个数,即第一个数,后续检测节点就可以根据这个第一个数来判断获取到的所有延时相关指标值落入到该区间的个数是否已经达到第一阈值。

其中,区间平均延时为第一区间中的多个第二延时的平均值,多个第二延时一一对应于多个采样周期,每个第二延时在与之对应的采样周期内被获取,这些采样周期都为获取到的所有延时相关指标值落入到第一区间的个数达到第一阈值,即第一区间已满之前的采样周期。具体的,由于检测周期内会有多个采样周期,每个采样周期检测节点都会执行S100,因此,在第一区间已满之前,每个采样周期内,检测节点都会采集到与这个周期对应的延时相关指标值(这里可以称第二延时相关指标值)以及硬盘读写数据的延时(这里可以称为第二延时)。

其中,上述第二延时统计的是一段时间内硬盘读写数据的平均延时。由于该平均延时为本领域技术人员所公知的技术,因此此处不再详述。

可选的,本发明实施例中的第一阈值可以根据实际检测需求进行设置。例如,可以根据对硬盘的检测准确度的要求进行设置。可以理解的是,对硬盘的检测准确度的要求越高(需采样的数据越多),第一阈值就设置的越大;对硬盘的检测准确度的要求越低(需采样的数据越少),第一阈值就设置的越小。具体可以根据实际使用场景及其他检测需求进行适应性地调整,本发明不作限定。

举例来说,假设上述第一阈值为1000,即第一区间需采样1000次,则在第一区间已满前,检测节点需分别在1000个采样周期内采样1000次,即获取1000个第二延时相关指标值和1000个第二延时。上述多个 第二延时可以为该1000个第二延时中的多个第二延时,例如多个第二延时可以为该1000个第二延时,也可以为该1000个第二延时中的部分第二延时。

上述区间平均延时为上述多个第二延时的平均值。例如,若上述多个第二延时为上述获取的1000个第二延时,则区间平均延时为这1000个第二延时的平均值;若上述多个第二延时为上述获取的1000个第二延时中的部分第二延时,则区间平均延时为该部分第二延时的平均值。具体的,多个第二延时的选取可根据实际检测需求进行选取,本发明不作限定。

可选的,上述多个第二延时的平均值可以多个第二延时的算术平均值,也可以为多个第二延时的几何平均值,本发明不作具体限定。其中,多个第二延时的算术平均值可以为不加权算术平均值或加权算术平均值;多个第二延时的几何平均值可以为不加权几何平均值或加权几何平均值。

例如,以不加权算术平均值和不加权几何平均值为例,假设需计算5个第二延时的平均值,5个第二延时的平均值分别为10秒、11秒、12秒、12秒和10秒,则5个第二延时的算术平均值=(10+11+12+12+10)/5=11(秒);5个第二延时的几何(秒)。

本领域技术人员可以理解,上述5个第二延时仅是为了说明算术平均值和几何平均值的计算方法进行的示意性的举例,其并不对本发明实施例形成任何限定。实际应用过程中,多个第二延时选取的通常都比较多,例如在上述1000个第二延时中,可以选取500个第二延时或800个第二延时等。

在采样周期内,若已经获取到的所有延时相关指标值落入到第一区间的个数已经达到第一阈值,即第一区间为已满区间,则检测节点可计算本次采样周期内采样到的第一延时与区间平均延时的比值,得到一个第一比值。

可以理解的是,本发明实施例中,在检测周期内,在本次采样周期后,当该采样周期内采样到的硬盘读写数据的第一延时相关指标值所属的第一区间为已满区间(即在所有采样周期内获取到的所有延时相关指标值落入到该第一区间的个数已经达到第一阈值)时,检测节点需计算本次采样 到的硬盘读写数据的第一延时与区间平均延时的比值,得到第一比值。

进一步地,由于一个检测周期包含多个采样周期,因此在本次采样周期后,若本次检测周期还未结束,则检测节点需返回S100继续执行。

本发明实施例提供的检测慢盘的方法,在每个检测周期内,检测节点周期性地进行采样,并在每个采样周期内执行上述S100-S102,直至该检测周期结束。

S11、在每次检测周期结束后,下一个检测周期开始前,检测节点执行S110-S111。

S110、若在本次检测周期内的所有采样周期内获取到的所有延时相关指标值落入到各个已满区间的个数大于或等于第二阈值,则检测节点计算多个采样周期内计算的多个第一比值的平均值,得到第一比值平均值,本步骤中的多个采样周期为获取到落入各个已满区间的多个延时相关指标值的采样周期。

需要说明的是,本步骤中的出现的“多个采样周期”与介绍步骤102时出现的几处“多个采样周期”的意思并不相同,本领域技术人员可以根据上下文清楚地知道在各个步骤中“多个采样周期”的准确含义,因此,为了说明方便,这里并不严格用“第一”、“第二”之类的术语进行限定。同理,也不对后续出现的“多个采样周期”进行限定区分,本领域技术人员可以结合上下文清楚地确定后续出现的“多个采样周期”的含义。

本发明实施例中,一个检测周期内可能存在多个区间都属于已满区间的情况,这样,在该检测周期内的所有采样周期内获取到的所有延时相关指标值中会有一部分落入到各个已满区间,另外一部分落入到各个未满区间。在该检测周期结束后,下一个检测周期开始前,检测节点需要判断在本次检测周期内的所有采样周期内获取到的所有延时相关指标值落入到各个已满区间的个数是否大于或等于第二阈值。并在该个数大于或等于第二阈值时,再计算多个采样周期内计算的多个第一比值的平均值,得到第一比值平均值。其中,多个采样周期为获取到落入各个已满区间的多个延时相关指标值的采样周期。该个数大于或等于第二阈值意味着大部分区间学习过程已经结束,即大部分区间已经为已满区间,且获取到的延时相关 指标值的个数已经足够多,这个时候再计算第一比值平均值可以保证检测慢盘的准确度较高。

假设总共有6个区间,在上一次检测周期完后,已满区间有3个,分别为区间A、区间B和区间C;未满区间有3个,分别为区间D、区间E和区间F。本次检测周期内获取到的延时相关指标值的个数为30个,其中:

落入区间A的延时相关指标值的个数为5个,

落入区间B的延时相关指标值的个数为8个,

落入区间C的延时相关指标值的个数为6个,

落入区间D的延时相关指标值的个数为5个,

落入区间E的延时相关指标值的个数为4个,

落入区间F的延时相关指标值的个数为2个,则:

落入各个已满区间的延时相关指标值的个数=落入区间A的延时相关指标值的个数+落入区间B的延时相关指标值的个数+落入区间C的延时相关指标值的个数=5+8+6=19。

可选的,上述第二阈值可以为根据实际检测需求预先设定的,本发明不作具体限定。

第二阈值可以用于限定每次检测周期结束后获取到的所有延时相关指标值落入到各个已满区间的个数,第二阈值越大,表示需采样的采样数据越多,采样结果就越收敛,相应的,利用这些采样结果检测慢盘的准确度也就越高,但由于需要采样的数据多,因此,需要的时间也多,灵敏度(反映检测时间快慢)也相对较低;相反,第二阈值越小,表示需采样的采样数据越少,这样准确度就低一点,但所需的时间少,灵敏度相对就更高。

优选的,为了在检测慢盘的准确度和灵敏度之间取得一个更好的综合收益,可以将上述第二阈值设定为一个检测周期内获取到的所有延时相关指标值的总个数(即一个检测周期内采样的总采样次数)的二分之一。例如,若一个检测周期是5分钟,一个采样周期是10秒钟,即每10秒钟采样一次,一次采样获取一个延时相关指标值,则该检测周期内获取到的所 有延时相关指标值的总个数为30个,如此,可以将第二阈值设置为30的二分之一,即15。

示例性的,上述例子中,在本次检测周期内的所有采样周期内获取到的所有延时相关指标值落入到各个已满区间的个数为19,其大于第二阈值15,则检测节点可以计算第一比值平均值。

本发明实施例中,检测节点在每个采样周期都采样一次,即获取一个延时相关指标值,并且在该采样周期内,若本次采样周期采样到的第一延时相关指标值所属的第一区间为已满区间,则需计算本次采样到的第一延时与区间平均延时的比值,即第一比值。可以理解,对于未满区间,检测节点不会计算第一比值。而对于已满区间,若获取一个落入该已满区间的延时相关指标值(即采样一次),则就在获取该延时相关指标值的采样周期内计算一个第一比值。

在上述例子中,本次检测周期内,若在本次检测周期内的所有采样周期内获取到的所有延时相关指标值落入到区间A的个数为5,则在获取到落入区间A的5个延时相关指标值的5个采样周期内分别计算出5个第一比值;

相应的,若在本次检测周期内的所有采样周期内获取到的所有延时相关指标值落入到区间B的个数为8,则在获取到落入区间B的8个延时相关指标值的8个采样周期内分别计算出8个第一比值;

若在本次检测周期内的所有采样周期内获取到的所有延时相关指标值落入区间C的个数6,则在获取到落入区间C的6个延时相关指标值的6个采样周期内分别计算出6个第一比值。

上述在多个采样周期内计算的多个第一比值分别为:上述计算的5个第一比值、8个第一比值以及6个第一比值,即总共19个第一比值。检测节点通过计算这19个第一比值的平均值,得到第一比值平均值。

可选的,多个第一比值的平均值可以为多个第一比值的算术平均值,也可以为多个第一比值的几何平均值,本发明不作具体限定。其中,多个第一比值的算术平均值可以为不加权算术平均值或加权算术平均值;多个第一比值的几何平均值可以为不加权几何平均值或加权几何平均值。

对于多个第一比值的算术平均值的计算方法具体可以参见上述多个第二延时的算术平均值的计算方法;且多个第一比值的几何平均值的计算方法具体可以参见上述多个第二延时的几何平均值的计算方法,此处不再赘述。

S111、若第一比值平均值大于或等于第三阈值,则检测节点确定硬盘为慢盘。

当检测节点计算出的第一比值平均值大于或等于第三阈值的时候,检测节点可确定被检测的硬盘为慢盘。

其中,上述第三阈值可以根据实际检测需求进行设定,本发明不作具体限定。示例性的,若要求检测慢盘的准确度较高,则可以将第三阈值设置的较大一些,这样可能会使得检测节点在比较多的检测周期才能检测出慢盘,因此检测慢盘的准确度较高;但是由于进行检测的检测周期比较多,因此检测慢盘的灵敏度较低。若要求检测慢盘的灵敏度较高,则可以将第三阈值设置的较小一些,这样可能会使得检测节点在比较少的检测周期内就能检测出慢盘,因此检测慢盘的灵敏度较高;但是由于进行检测的检测周期比较少,因此检测慢盘的准确度较低。

进一步地,检测节点确定被检测的硬盘为慢盘后,检测节点可将检测结果通过打印日志、告警或者界面展示的方式告知相关的处理模块,从而该处理模块可以对该硬盘进行隔离,例如,处理模块可以从软件上将该硬盘从云存储系统中删除,或者从硬件上将该硬盘自动弹出。

本发明实施例提供的检测慢盘的方法,检测节点通过在检测周期内,周期性地进行采样,且在每次采样周期内获取本次采样周期内硬盘读写数据的第一延时以及第一延时相关指标值;并确定第一延时相关指标值所属的第一区间;以及若第一区间是已满区间,则计算第一延时与区间平均延时的比值,得到第一比值;检测节点在每次检测周期结束后,下一个检测周期开始前,若在本次检测周期内的所有采样周期内获取到的所有延时相关指标值落入到各个已满区间的个数大于或等于第二阈值,则计算多个采样周期内计算的多个第一比值的平均值,得到第一比值平均值,多个采样周期为获取到落入各个已满区间的多个延时相关指标值的采样周期;以及 若第一比值平均值大于或等于第三阈值,则确定硬盘为慢盘。

基于上述技术方案,本发明实施例提供的检测慢盘的方法中,首先,由于延时相关指标值会随延时的变化而发生相应的变化,即延时与延时相关指标值密切相关,因此通过将最大延时相关指标值划分区间,并在每个区间内采样与属于该区间的延时相关指标值对应的延时,可以保证一个区间内采样的延时有统一的衡量标准,从而提高检测慢盘的准确度。其次,在第一区间是已满区间(即在所有采样周期内获取到的所有延时相关指标值落入到第一区间的个数达到第一阈值)后才计算第一比值(在没满之前的采样过程可认为是学习过程),可以保证在第一区间获取足够多个延时相关指标值(即在第一区间采样足够多次)后再计算第一比值,从而能够提高检测慢盘的准确度。再次,本发明实施例在每次检测周期内的所有采样周期内获取到的所有延时相关指标值落入到各个已满区间的个数大于或等于第二阈值时再计算第一比值平均值,可以保证在大部分区间已经结束学习过程,即大部分区间已经采样了足够多次后再计算第一比值平均值,也能够提高检测慢盘的准确度。此外,由于本发明实施例计算的第一比值平均值为由多个第一比值得到的一个比例平均值,其并不是实际的延时数值,因此该第一比值平均值可以准确地体现硬盘的性能变化趋势,通过设置第三阈值,以及将第一比值平均值与第三阈值进行比较,可以在硬盘性能发生变化时准确地检测出硬盘是慢盘,从而进一步提高检测慢盘的准确度。

实施例二

基于上述实施例一,本发明实施例提供了一种检测慢盘的方法。

可选的,结合图2,如图3所示,本发明实施例提供的检测慢盘的方法中,对于上述S10,在每次采样周期内,检测节点仍然执行S103-S105,或者执行S103-S104和S106。具体的,在S101,即检测节点确定第一延时相关指标值所属的第一区间之后,本发明实施例提供的检测慢盘的方法还可以包括:

S103、检测节点记录经过本次采样后,在所有采样周期内获取到的所 有延时相关指标值落入到第一区间的个数为第一个数,其中,每个采样周期对应于一个延时相关指标值。

本发明实施例中,对于检测节点记录经过本次采样后,在所有采样周期内获取到的所有延时相关指标值落入到所述第一区间的个数,第一个数的具体描述和举例可以参见上述实施例的S101中的相关描述和举例,此处不再赘述。

S104、检测节点判断第一个数是否达到第一阈值。

由于第一阈值用于限定需获取的落入每个区间的延时相关指标值的最大个数(即各个区间的学习过程中需采样的延时相关指标值的个数),因此检测节点可在每次采样后,通过记录在所有采样周期内获取到的所有延时相关指标值落入到第一区间的个数,并将该第一个数和第一阈值对比,判断第一区间的学习过程是否结束,即第一区间的采样数据是否已经足够多。

S105、若第一个数达到第一阈值,则检测节点确定第一区间是已满区间。

S106、若第一个数没有达到第一阈值,则检测节点确定第一区间不是已满区间,并进入下次采样周期采样。

如果检测节点记录的第一个数已经达到第一阈值,则检测节点确定第一区间是已满区间;相反,若检测节点记录的第一个数还没有达到第一阈值,则检测节点确定第一区间不是已满区间,且检测节点进入下次采样周期采样。例如,若第一阈值为1000,如果检测节点记录的第一个数为1000,则检测节点确定第一区间是已满区间;如果检测节点记录的第一个数为800,则检测节点确定第一区间不是已满区间,且检测节点进入下次采样周期进行第801次采样。

本发明实施例中,在一个检测周期内的每个采样周期内,在S101之后,检测节点执行S103-S105,执行完S103-S105后接着执行S102,执行完S102后返回到S100继续执行(即执行完S102后进入下次采样周期采样),直至该检测周期结束。或者,在S101之后,检测节点执行S103-S104和S106,执行完S103-S104和S106后返回到S100继续执 行(即执行完S106后进入下次采样周期采样),直至该检测周期结束。

可选的,结合图2,如图4所示,上述实施例中的第一阈值为N,上述第一区间对应N个第二延时,上述S102、若第一区间是已满区间,则检测节点计算第一延时与区间平均延时的比值,得到第一比值之前,本发明实施例提供的检测慢盘的方法还包括:

S107、若第一区间是已满区间,检测节点计算N个第二延时中的多个第二延时的平均值,得到区间平均延时。

其中,本发明实施例中,N可以取大于或等于1的整数。

上述S102具体可以为:

S102a、检测节点计算第一延时与区间平均延时的比值得到第一比值。

本发明实施例中,当第一区间为已满区间时,与第一区间对应的第二延时的数量与第一阈值相等。本实施例中,与第一区间对应的第二延时的数量为N个。上述多个第二延时可以为N个第二延时,也可以为N个第二延时中的部分第二延时,具体可根据实际检测需求进行选取,本发明不作限定。

可选的,上述N个第二延时按照采样顺序依次排列,多个第二延时为N个第二延时中的前M个第二延时,M为整数,N/3≤M≤2N/3,且N/3和2N/3均取整数。

其中,当N为3的倍数时,N/3和2N/3均为整数,此时M取该整数;当N不是3的倍数时,N/3和2N/3均为小数,此时M取N/3和2N/3的整数部分。

示例性的,假设N=100,则100/3可以取33,200/3可以选取66,从而M的取值范围为33≤M≤66。

当然,本发明实施例中,当N不是3的倍数时,M也可以取N/3的整数部分加1;相应的,M也可以取2N/3的整数部分加1。例如,M可以取100/3的整数部分33加1,即34。

优选的,M=N/2,上述多个第二延时为N个第二延时中的前N/2个第二延时,且N/2取整数。

其中,当N为偶数时,N/2为整数,此时M取该整数;当N为奇数时,N/2为小数,此时M取N/2的整数部分。

例如,当N为100时,N/2为50,此时M可以取50,即M个第二延时为100个第二延时中的前50个第二延时;当N为121时,N/2为60.5,此时M可以取60,即M个第二延时为121个第二延时中的前60个第二延时。

当然,本发明实施例中,当N为奇数时,M也可以取N/2的整数部分加1。例如M可以取121/2的整数部分60加1,即61。

本发明实施例中,由于选取的第二延时的数量决定了检测慢盘的准确度和灵敏度,因此若选取的第二延时的数量越多,则表示检测所用的采样数据越多,采样结果就越收敛,从而检测慢盘的准确度也就越高;相应的,由于选取的第二延时的数量越多,可能会导致区间平均延时的值较大,因此会不太容易检测出慢盘(可能需要在比较多的检测周期才能检测出慢盘),即检测慢盘的灵敏度较低。若选取的第二延时的数量越少,则表示检测所用的采样数据越少,采样结果就越分散,从而检测慢盘的准确度也就越低;相应的,由于选取的第二延时的数量越少,可能会导致区间平均延时的值较小,因此会比较容易检测出慢盘(可能在比较少的检测周期就能检测出慢盘),即检测慢盘的灵敏度较高。

示例性的,下面以多个第二延时取N个第二延时中的前N/2个第二延时为例,来详细说明上述多个第二延时的具体选取。

假设在实际应用中,第一区间已满之前采样到11个第二延时,且该11个第二延时存在某一次采样后突然上升的情况,例如,该11个第二延时分别为13S、14S、15S、17S、20S、21S、22S、24S、25S、28S和30S。其中,该11个第二延时中的前5个第二延时的平均值,即区间平均延时约为16S;该11个第二延时的平均值,即区间平均延时约为21S。

在上述列举的11个第二延时中,如果取该11个第二延时中的前一半(11/2=5.5,5.5取整数部分为5)第二延时,即该11个第二延时中的前5个第二延时,则这前5个第二延时的平均值,即区间平均延时约为16S,由于在计算第一比值(第一延时/区间平均延时)时,区间平均延时会作为 分母,因此,区间平均延时越小,第一比值就越大,而多个第一比值的平均值就越大,从而也就越容易超过设定的第三阈值,即也就会比较容易检测出慢盘,检测慢盘的灵敏度就越高;相应的,由于只取了该11个第二延时中的前一半第二延时,因此可能会导致检测的结果不准确,从而检测慢盘的准确度较低。而如果取该11个第二延时,则该11个第二延时的平均值,即区间平均延时约为21S,由于区间平均延时越大,第一比值就越小,而多个第一比值的平均值就越小,从而也就越不容易超过设定的第三阈值,即也就会不太容易检测出慢盘,从而检测慢盘的灵敏度就越低;相应的,由于取了该11个第二延时,因此可能会使得检测的结果比较准确,从而检测慢盘的准确度较高。

本发明实施例提供的检测慢盘的方法,在选取多个第二延时时,可以选取与第一区间对应的N个第二延时,即采用N个第二延时的平均值作为区间平均延时。当然,也可以选取N个第二延时中的部分第二延时。具体的,由于在实际应用中,采样的数据通常都会存在“突然上升”的情况,因此为了保证检测慢盘的准确度和灵敏度均衡,通常优选的可以选取N个第二延时中的前2/N个第二延时。具体的,可根据实际检测需求进行设定,本发明不作限定。

本发明实施例提供的检测慢盘的方法中,与选取N个第二延时计算区间平均延时相比,通过在与第一区间对应的N个第二延时中选取前M个第二延时计算区间平均延时,能够保证计算的第一延时与区间平均延时的比值,即第一比值较大,从而使得计算的多个第一比值的平均值就越大,这样可以在保证检测慢盘的准确度的情况下,适当地提高检测慢盘的灵敏度,进而达到检测慢盘的准确度和灵敏度之间的均衡。

实施例三

基于上述各实施例,本发明实施例提供一种检测慢盘的方法,该方法应用于多个硬盘的场景,检测节点针对第一硬盘执行该方法,第一硬盘为多个硬盘中的其中一个硬盘。

如图5所示,本发明实施例还提供一种检测慢盘的方法,该方法包括:

S201、检测节点获取与第一硬盘对应的第一比值平均值。

基于上述实施例一和实施例二的描述,检测节点通过针对第一硬盘执行上述实施例中如图2所示的各个步骤中除S111之外的其他步骤(包括S10中的S100-S102以及S11中的S110);或者执行上述实施例中如图3所示的各个步骤中除S111之外的其他步骤(包括S10中的S100-S105,或S10中的S100-S101、S103-S104和S106,以及S11中的S110);或者执行上述实施例中如图4所示的实施例中除S111之外的其他步骤(包括S10中的S100-S101、S107和S102a,以及S11中的S110),获取与第一硬盘对应的第一比值平均值。

S202、检测节点获取与多个硬盘中除第一硬盘外的其他硬盘一一对应的多个第一比值平均值。

其中,上述其他硬盘中的每个硬盘对应的第一比值平均值的获取方法与第一硬盘对应的第一比值平均值的获取方法相同。具体可参见上述与第一硬盘对应的第一比值平均值的获取方法,此处不再赘述。

特别的,与多个硬盘中的每个硬盘对应的第一比值平均值均为与该硬盘对应的多个第一比值计算得到。对于第一比值的描述可参见上述如图2所示的实施例中对第一比值的相关描述,此处不再赘述。

检测节点通过针对多个硬盘中的每个硬盘执行上述所述的各个步骤,可以获取到与多个硬盘一一对应的多个第一比值平均值。若与这多个硬盘中的每个硬盘对应的第一比值平均值均小于第三阈值,即对这多个硬盘分别进行检测未检测到有慢盘,则如图5所示,本发明实施例提供的检测慢盘的方法还可以包括:

S203、检测节点计算与多个硬盘一一对应的多个第一比值平均值的平均值,得到第一平均值。

为了保证检测慢盘的准确度,本发明实施例提供的检测慢盘的方法中,多个硬盘之间的检测也是在同一个区间内进行的。例如本实施例中,多个硬盘之间的检测是在第一区间内进行的。

例如,假设有5个硬盘,分别为硬盘A、硬盘B、硬盘C、硬盘D和硬盘E。检测节点分别获取到硬盘A的第一比值平均值为TA、硬盘B的 第一比值平均值为TB、硬盘C的第一比值平均值为TC、硬盘D的第一比值平均值为TD和硬盘E的第一比值平均值为TE后,检测节点再计算TA、TB、TC、TD和TE的平均值,即第一平均值。

其中,多个第一比值平均值的平均值可以是多个第一比值平均值的算术平均值,也可以是多个第一比值平均值的几何平均值,本发明不作具体限定。其中,多个第一比值平均值的算术平均值可以为不加权算术平均值或加权算术平均值;多个第一比值平均值的几何平均值可以为不加权几何平均值或加权几何平均值。

对于多个第一比值平均值的算术平均值的计算方法具体可以参见上述如图2所示的实施例中多个第二延时的算术平均值的计算方法;多个第一比值平均值的几何平均值的计算方法具体可以参见上述如图2所示的实施例中多个第二延时的几何平均值的计算方法,此处不再赘述。

S204、检测节点计算与多个硬盘中的每个硬盘对应的第一比值平均值与第一平均值的比值,得到多个第二比值。

S205、检测节点确定多个第二比值中,与大于或等于第四阈值的第二比值对应的硬盘为慢盘。

可选的,上述第四阈值可以为根据实际检测需求预先设定的,本发明不作具体限定。

由于多个硬盘为同质盘,因此多个硬盘的性能比较接近,且盘间波动较小,所以第四阈值可以用于衡量每个硬盘相对于所有硬盘的平均值的波动。本发明实施例中,第四阈值越小,表示要求每个硬盘相对于所有硬盘的平均值的波动就越小,从而在检测时,若硬盘稍微有波动,则可能会导致第二比值超过第四阈值,进而可以提高检测慢盘的准确度和灵敏度。

优选的,本发明实施例提供的检测慢盘的方法中,为了保证检测慢盘的准确度,由于在对单盘进行检测时,为了避免硬盘性能突然波动可能会导致检测结果不准确,因此可将第三阈值设置的较大一些,以提高检测慢盘的准确度。而在对多个硬盘进行检测时,由于多个硬盘间的波动通常较小,因此可将第四阈值设置的较小一些,以提高检测慢盘的准确度。

本发明实施例提供的检测慢盘的方法中,当检测节点对多个硬盘分别 进行检测未检测到有慢盘(即与这多个硬盘一一对应的多个第一比值平均值均小于第三阈值)时,该检测节点还可以采用上述如图5所示的方法在多个硬盘之间进行检测,从而可能会检测出单盘检测时未检测出的慢盘,进而能够提高检测慢盘的准确度。

进一步地,检测节点确定多个硬盘中的某个硬盘为慢盘后,检测节点可将检测结果通过打印日志、告警或者界面展示的方式告知相关的处理模块,从而该处理模块可以对该硬盘进行隔离,例如,处理模块可以从软件上将该硬盘从云存储系统中删除,或者从硬件上将该硬盘自动弹出。

本发明实施例提供一种检测慢盘的方法,该方法应用于多个硬盘的场景,则当上述实施例中检测节点获取的与多个硬盘中的每个硬盘对应的第一比值平均值均小于第三阈值,即对单个硬盘分别检测未检测到有慢盘时,还可以进一步对多个硬盘进行盘间检测,即本发明实施例利用同质盘之间的参数和性能相似的特性,对与每个硬盘对应的第一比值平均值相对于第一平均值(与多个硬盘一一对应的多个第一比值平均值的平均值)的比值,即第二比值进行检测,从而可能会在与某个硬盘对应的第一比值平均值相对于第一平均值稍微有波动时,就可能会被检测出,进而可以在对单个硬盘分别检测未检测到有慢盘的情况下检测出慢盘,能够提高检测慢盘的准确度。

实施例四

如图6所示,本发明实施例提供一种检测慢盘的装置,该检测慢盘的装置可以为云存储系统中的一个检测节点,该检测节点可以为一个独立的计算机节点,也可以为一个集成在计算机节点中的功能单元等,本发明不作具体限定。

具体的,本发明实施例提供的检测慢盘的装置可以包括采样单元10和检测单元11;其中,

所述采样单元10,用于在检测周期内,周期性地进行采样,且在每次采样周期内,完成如下过程:

获取本次采样周期内硬盘读写数据的第一延时以及第一延时相关指 标值,其中,所述第一延时相关指标值为延时相关指标值的一个具体值,所述延时相关指标值为一个会随延时变化而发生相应变化的一个值;

确定所述第一延时相关指标值所属的第一区间;其中,所述第一区间为预先针对最大延时相关指标值划分的多个区间中的一个;

若所述第一区间是已满区间,则计算所述第一延时与区间平均延时的比值,得到第一比值;其中,所述已满区间是在所有采样周期内获取到的所有延时相关指标值落入到该区间的个数达到第一阈值的区间,所述区间平均延时为所述第一区间中的多个第二延时的平均值,所述多个第二延时一一对应于多个采样周期,每个第二延时在与之对应的采样周期内被获取,其中,每个采样周期对应于一个延时相关指标值。

检测单元11,用于在每次检测周期结束后,下一个检测周期开始前,完成如下过程:

若在本次检测周期内的所有采样周期内获取到的所有延时相关指标值落入到各个已满区间的个数大于或等于第二阈值,则计算所述采样单元在多个采样周期内计算的多个第一比值的平均值,得到第一比值平均值,所述多个采样周期为获取到落入各个已满区间的多个延时相关指标值的采样周期;以及若所述第一比值平均值大于或等于第三阈值,则确定所述硬盘为慢盘。

可选的,所述采样单元10,还用于在每次采样周期内,确定所述第一延时相关指标值所属的第一区间之后,记录经过本次采样后,在所有采样周期内获取到的所有延时相关指标值落入到所述第一区间的个数为第一个数;并判断所述第一个数是否达到所述第一阈值;以及若所述第一个数达到所述第一阈值,则确定所述第一区间是已满区间;若所述第一个数没有达到所述第一阈值,则确定所述第一区间不是已满区间,并进入下次采样周期采样,其中,每个采样周期对应于一个延时相关指标值。

可选的,所述延时相关指标值为所述硬盘读写数据的利用率;或者,

所述延时相关指标值为所述硬盘读写数据的读写速度。

可选的,所述第一阈值为N,所述第一区间对应N个第二延时,N为大于或等于1的整数,

所述采样单元10,还用于在计算所述第一延时与区间平均延时的比值之前,计算所述N个第二延时中的所述多个第二延时的平均值,得到所述区间平均延时。

可选的,所述N个第二延时按照采样顺序依次排列,所述多个第二延时为所述N个第二延时中的前M个第二延时,M为整数,N/3≤M≤2N/3,且N/3和2N/3均取整数。

可选的,M=N/2,

所述多个第二延时为所述N个第二延时中的前N/2个第二延时,且N/2取整数。

可选的,所述采样单元10计算的所述多个第二延时的平均值为所述多个第二延时的算术平均值或者所述多个第二延时的几何平均值;

所述检测单元11计算的所述多个第一比值的平均值为所述多个第一比值的算术平均值或者所述多个第一比值的几何平均值。

可选的,所述装置应用于多个硬盘的场景,所述装置针对第一硬盘进行检测,所述第一硬盘为所述多个硬盘中的其中一个硬盘;

所述检测单元11,还用于获取与所述多个硬盘中除所述第一硬盘外的其他硬盘一一对应的多个第一比值平均值;并当与所述多个硬盘中的每个硬盘对应的第一比值平均值均小于所述第三阈值时,计算与所述多个硬盘一一对应的多个第一比值平均值的平均值,得到第一平均值;且计算与所述多个硬盘中的每个硬盘对应的第一比值平均值与所述第一平均值的比值,得到多个第二比值;以及确定所述多个第二比值中,与大于或等于第四阈值的第二比值对应的硬盘为慢盘,其中,所述其他硬盘中的每个硬盘对应的第一比值平均值的获取方法与所述第一硬盘对应的第一比值平均值的获取方法相同。

本发明实施例提供的检测慢盘的装置,当该装置对多个硬盘分别进行检测未检测到有慢盘(即与这多个硬盘中的每个硬盘对应的第一比值平均值均小于第三阈值)时,该装置还可以在多个硬盘之间进行检测,从而可能会检测出单盘检测未检测出的慢盘,进而能够提高检测慢盘的准确度。

本发明实施例提供一种检测慢盘的装置,首先,由于该装置获取的延 时相关指标值会随延时的变化而发生相应的变化,即延时与延时相关指标值密切相关,因此通过将最大延时相关指标值划分区间,并在每个区间内采样与属于该区间的延时相关指标值对应的延时,可以保证一个区间内采样的延时有统一的衡量标准,从而提高检测慢盘的准确度。其次,该装置在第一区间是已满区间(即在所有采样周期内获取到的所有延时相关指标值落入到第一区间的个数达到第一阈值)后才计算第一比值(在没满之前的采样过程可认为是学习过程),可以保证在第一区间获取足够多个延时相关指标值(即在第一区间采样足够多次)后再计算第一比值,从而能够提高检测慢盘的准确度。其次,该装置在每次检测周期内的所有采样周期内获取到的所有延时相关指标值落入到各个已满区间的个数大于或等于第二阈值时再计算第一比值平均值,可以保证在大部分区间已经结束学习过程,即大部分区间已经采样了足够多次后再计算第一比值平均值,也能够提高检测慢盘的准确度。此外,由于本发明实施例的检测慢盘的装置计算的第一比值平均值为由多个第一比值得到的一个比例平均值,其并不是实际的延时数值,因此该第一比值平均值可以准确地体现硬盘的性能变化趋势,通过设置第三阈值,以及将第一比值平均值与第三阈值进行比较,可以在硬盘性能发生变化时准确地检测出硬盘是慢盘,从而进一步提高检测慢盘的准确度。

实施例五

如图7所示,本发明实施例提供一种检测慢盘的装置,所述检测慢盘的装置可以为云存储系统中的一个检测节点,该检测节点可以为一个独立的计算机节点,也可以为一个集成在计算机节点中的功能单元等,本发明不作具体限定。

具体的,本发明实施例提供的所述检测慢盘的装置可以包括处理器20、存储器21、通信接口22,以及系统总线23。所述处理器20、存储器21以及通信接口22之间通过所述系统总线23连接并完成相互间的通信。

所述处理器20可以是一个中央处理器(英文:central processing unit,缩写:CPU),或者是特定集成电路(英文:application specific integrated circuit,缩写:ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。

所述通信接口22可以为所述检测慢盘的装置与其他设备进行通信的通信接口。

所述存储器21可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);所述存储器21也可以包括非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read-only memory,缩写:ROM),快闪存储器(英文:flash memory),SSD、HDD或HHD;所述存储器21还可以包括上述种类的存储器的组合。

当本发明实施例提供的所述检测慢盘的装置运行时,所述处理器20可以通过读取存储在存储器的程序来执行图2~图5任意之一所述的方法流程,具体包括:

所述处理器20,用于在检测周期内,周期性地进行采样,且在每次采样周期内,完成如下过程:

获取本次采样周期内硬盘读写数据的第一延时以及第一延时相关指标值,其中,所述第一延时相关指标值为延时相关指标值的一个具体值,所述延时相关指标值为一个会随延时变化而发生相应变化的一个值;

确定所述第一延时相关指标值所属的第一区间;其中,所述第一区间为预先针对最大延时相关指标值划分的多个区间中的一个;

若所述第一区间是已满区间,则计算所述第一延时与区间平均延时的比值,得到第一比值;其中,所述已满区间是在所有采样周期内获取到的所有延时相关指标值落入到该区间的个数达到第一阈值的区间,所述区间平均延时为所述第一区间中的多个第二延时的平均值,所述多个第二延时一一对应于多个采样周期,每个第二延时在与之对应的采样周期内被获取,其中,每个采样周期对应于一个延时相关指标值。

所述处理器20,还用于在每次检测周期结束后,下一个检测周期开始前,完成如下过程:

若在本次检测周期内的所有采样周期内获取到的所有延时相关指标值落入到各个已满区间的个数大于或等于第二阈值,则计算所述采样单元在多个采样周期内计算的多个第一比值的平均值,得到第一比值平均值,所述多个采样周期为获取到落入各个已满区间的多个延时相关指标值的采样周期;以及若所述第一比值平均值大于或等于第三阈值,则确定所述硬盘为慢盘。

所述存储器21,用于存储所述处理器20执行上述检测慢盘的过程的软件程序,从而所述处理器20通过执行所述软件程序,完成上述检测慢盘的过程。

可选的,所述处理器20,还用于在每次采样周期内,确定所述第一延时相关指标值所属的第一区间之后,记录经过本次采样后,在所有采样周期内获取到的所有延时相关指标值落入到所述第一区间的个数为第一个数;并判断所述第一个数是否达到所述第一阈值;以及若所述第一个数达到所述第一阈值,则确定所述第一区间是已满区间;若所述第一个数没有达到所述第一阈值,则确定所述第一区间不是已满区间,并进入下次采样周期采样,其中,每个采样周期对应于一个延时相关指标值。

可选的,所述延时相关指标值为所述硬盘读写数据的利用率;或者,

所述延时相关指标值为所述硬盘读写数据的读写速度。

可选的,所述第一阈值为N,所述第一区间对应N个第二延时,N为大于或等于1的整数,

所述处理器20,还用于在计算所述第一延时与区间平均延时的比值之前,计算所述N个第二延时中的所述多个第二延时的平均值,得到所述区间平均延时。

可选的,所述N个第二延时按照采样顺序依次排列,所述多个第二延时为所述N个第二延时中的前M个第二延时,M为整数,N/3≤M≤2N/3,且N/3和2N/3均取整数。

可选的,M=N/2,

所述多个第二延时为所述N个第二延时中的前N/2个第二延时,且N/2取整数。

可选的,所述处理器20计算的所述多个第二延时的平均值为所述多个第二延时的算术平均值或者所述多个第二延时的几何平均值;

所述处理器20计算的所述多个第一比值的平均值为所述多个第一比值的算术平均值或者所述多个第一比值的几何平均值。

可选的,所述装置应用于多个硬盘的场景,所述装置针对第一硬盘进行检测,所述第一硬盘为所述多个硬盘中的其中一个硬盘;

所述处理器20,还用于获取与所述多个硬盘中除所述第一硬盘外的其他硬盘一一对应的多个第一比值平均值;并当与所述多个硬盘中的每个硬盘对应的第一比值平均值均小于所述第三阈值时,计算与所述多个硬盘一一对应的多个第一比值平均值的平均值,得到第一平均值;且计算与所述多个硬盘中的每个硬盘对应的第一比值平均值与所述第一平均值的比值,得到多个第二比值;以及确定所述多个第二比值中,与大于或等于第四阈值的第二比值对应的硬盘为慢盘,其中,所述其他硬盘中的每个硬盘对应的第一比值平均值的获取方法与所述第一硬盘对应的第一比值平均值的获取方法相同。

本发明实施例提供的检测慢盘的装置,当该装置对多个硬盘分别进行检测未检测到有慢盘(即与这多个硬盘中的每个硬盘对应的第一比值平均值均小于第三阈值)时,该装置还可以在多个硬盘之间进行检测,从而可能会检测出单盘检测未检测出的慢盘,进而能够提高检测慢盘的准确度。

本发明实施例提供一种检测慢盘的装置,首先,由于该装置获取的延时相关指标值会随延时的变化而发生相应的变化,即延时与延时相关指标值密切相关,因此通过将最大延时相关指标值划分区间,并在每个区间内采样与属于该区间的延时相关指标值对应的延时,可以保证一个区间内采样的延时有统一的衡量标准,从而提高检测慢盘的准确度。其次,该装置在第一区间是已满区间(即在所有采样周期内获取到的所有延时相关指标值落入到第一区间的个数达到第一阈值)后才计算第一比值(在没满之前的采样过程可认为是学习过程),可以保证在第一区间获取足够多个延时相关指标值(即在第一区间采样足够多次)后再计算第一比值,从而能够提高检测慢盘的准确度。其次,该装置在每次检测周期内的所有采样周期 内获取到的所有延时相关指标值落入到各个已满区间的个数大于或等于第二阈值时再计算第一比值平均值,可以保证在大部分区间已经结束学习过程,即大部分区间已经采样了足够多次后再计算第一比值平均值,也能够提高检测慢盘的准确度。此外,由于本发明实施例的检测慢盘的装置计算的第一比值平均值为由多个第一比值得到的一个比例平均值,其并不是实际的延时数值,因此该第一比值平均值可以准确地体现硬盘的性能变化趋势,通过设置第三阈值,以及将第一比值平均值与第三阈值进行比较,可以在硬盘性能发生变化时准确地检测出硬盘是慢盘,从而进一步提高检测慢盘的准确度。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软 件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1