一种基于极限学习机的慢盘检测方法及系统与流程

文档序号:12733382阅读:236来源:国知局
一种基于极限学习机的慢盘检测方法及系统与流程

本发明涉及计算机存储领域,尤其涉及一种基于极限学习机的慢盘检测方法及系统。



背景技术:

随着大型计算机信息系统的不断投入使用,例如云存储系统或磁盘阵列系统(RAID,Redundant Array of Independent Disks)等数据存储系统获得了越来越广泛的应用。数据存储系统通常需要使用大量磁盘等存储介质对数据进行存储。本发明中将使用至少一个存储介质存储数据的设备或装置统称为数据存储系统。

作为一种数据存储方式,RAID的作用是提供专用服务器中接入多个磁盘时,以磁盘阵列方式组成一个超大容量、响应速度快、可靠性高的存储系统。作为另一种数据存储方式,云存储是在云计算(cloud computing)概念上延伸和发展出来的一个新的概念,是一种新兴的网络存储技术,是指通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。当云计算系统运算和处理的核心是大量数据的存储和管理时,云计算系统中就需要配置大量的存储设备,那么云计算系统就转变成为一个云存储系统,所以云存储是一个以数据存储和管理为核心的云计算系统。简单来说,云存储就是将存储资源放到云上供人存取的一种新兴方案。使用者可以在任何时间、任何地方,透过任何可连网的装置连接到云上方便地存取数据。

然而,对于上述数据存储系统中的磁盘等存储介质,随着使用时间的推移或者其他原因,磁盘的机械部件或者存储介质等都可能出现一定程度的老化或损坏,导致磁盘的性能明显降低,使得磁盘输入输出(I/O)响应时间变长,上述老化或损坏的磁盘被定义为慢盘。慢盘会导致整体的读写操作变慢或者无法进行读写操作,拖慢整个数据存储系统的处理性能,严重情况下,会导致系统业务中断。如何准确地检测数据存储系统中的慢盘,对于提升数据存储系统的整体性能来说至关重要。

但是,现有技术中的慢盘检测方式常常将正常的磁盘判断为慢盘,误判率较高。例如现有的慢盘检测方式将I/O响应时间超过某一阈值的磁盘判断为慢盘。但上述检测方式未考虑磁盘工作负荷等实时状况,例如,当磁盘已经满负荷运行时,如果处理器仍然不断的下发I/O给磁盘,磁盘不能及时响应后续的I/O从而导致后续I/O被统计为响应时间较大,在这些情况下,很可能导致数据存储系统的成员盘被误判为慢盘,导致将正常磁盘错误地判断为慢盘。并且现有技术中也没有基于神经网络检测慢盘的方案。



技术实现要素:

为了解决上述问题,本发明的主要目的在于提供一种基于极限学习机的慢盘检测方法及系统,结合神经网络技术,便于优化慢盘检测过程,提高慢盘检测的准确性。

根据本发明的一个方面,本发明提供了一种基于极限学习机的慢盘检测方法,应用于数据存储系统中,包括:

步骤S1:构建极限学习机单隐含层前馈神经网络;

步骤S2:获取所述数据存储系统中磁盘的历史磁盘数据;

步骤S3:将磁盘状态划分为正常磁盘、疑似慢盘以及慢盘,根据所述历史磁盘数据计算所述数据存储系统中磁盘的检测值;

步骤S4:基于被划分为上述三种状态的检测值构建所述极限学习机的训练样本集;

步骤S5:确定所述极限学习机的激活函数、隐含层节点数、前馈神经网络的输入权值和隐含层阈值;

步骤S6:计算隐含层节点的输出矩阵;

步骤S7:根据输出矩阵和期望输出矩阵计算输出权重;

步骤S8:根据隐含层节点的输出矩阵、前馈神经网络的输入权值、隐含层阈值以及输出权重确定基于极限学习机的慢盘检测模型,根据所述慢盘检测模型对所述数据存储系统进行检测,确定所述数据存储系统中的慢盘。

优选地,步骤S2中的历史磁盘数据包括磁盘I/O标准响应时间TR、磁盘I/O实际响应时间TC、磁盘服务时间TS、磁盘工作负荷L、磁盘I/O故障类型F,在获取到历史磁盘数据后将其存储于所述数据存储系统的数据库中。

优选地,步骤S3中根据所述历史磁盘数据计算所述数据存储系统中磁盘的检测值的步骤具体如下:检测值V=aTR+bTC+cTS+dL+eF,其中,a、b、c、d、e分别为磁盘I/O标准响应时间TR、磁盘I/O实际响应时间TC、磁盘服务时间TS、磁盘工作负荷L、磁盘I/O故障类型F的权重。

优选地,步骤S3进一步包括:在计算出检测值后,确定检测阈值TV,判断检测值V与检测阈值TV的大小。当检测值V>=TV,则被检测磁盘处于疑似慢盘状态,并且结合检测周期内所述被检测磁盘处于疑似慢盘状态的次数共同判断被检测磁盘是否是慢盘,当被检测磁盘处于疑似慢盘状态,并且所述检测次数大于等于磁盘检测次数阈值TN时,则所述磁盘被认定为慢盘;而当被检测磁盘处于疑似慢盘状态,并且所述检测次数小于磁盘检测次数阈值TN时,则所述磁盘被认定为疑似慢盘;当检测值V<TV时,则所述磁盘被认定为正常磁盘。

优选地,将极限学习机的训练样本集构建如下:

训练样本集Xtrain,其中,为第i个训练样本,为第i个训练样本对应的样本标签,m为磁盘状态类别数,R为特征向量维度,N为训练样本数。

优选地,基于以下公式计算步骤S6中的输出矩阵:

其中,H为隐含层节点的输出矩阵,g(x)为激活函数,M为隐含层节点数,bi为隐含层阈值,输入权值wi=[wi1,wi2,…,win∈]T,m为磁盘状态类别数,T为期望输出矩阵。

优选地,步骤S8中的基于极限学习机的慢盘检测模型可表示为:Γ=Hβ。

优选地,所述方法还包括:在检测出磁盘为慢盘时,产生报警信息,提醒管理员进行处理。

优选地,所述方法还包括:在检测出磁盘为慢盘时,对慢盘进行隔离或者备份。可选地,慢盘检测系统判断是否可以向慢盘写入数据或者读取慢盘中的数据。可选地,在检测出磁盘为慢盘时,将所述慢盘中的数据备份至空闲磁盘或其他磁盘,在备份成功后移除所述慢盘,或者将空闲磁盘取代所述慢盘而加入数据存储系统。可选地,对于处于慢盘状态的磁盘,可以采用降级读的方式读取其中的数据,对于不能降级读的数据直接读取存储盘中的数据,防止系统业务被慢盘拖死。

优选地,所述方法还包括信息收集步骤,收集磁盘的健康状态和磁盘数据,包括磁盘I/O标准响应时间TR、磁盘I/O实际响应时间TC、磁盘服务时间TS、磁盘工作负荷L、磁盘I/O故障类型F等各种磁盘数据。

根据本发明的另一方面,本发明提供了一种基于极限学习机的慢盘检测系统,应用于数据存储系统中,包括:

神经网络构建模块,用于构建极限学习机单隐含层前馈神经网络;

历史磁盘数据获取模块,用于获取所述数据存储系统中磁盘的历史磁盘数据;

检测值计算模块,用于将磁盘状态划分为正常磁盘、疑似慢盘以及慢盘,根据所述历史磁盘数据计算所述数据存储系统中磁盘的检测值;

训练样本获取模块,用于基于被划分为上述三种状态的检测值构建所述极限学习机的训练样本集;

模型建立模块,用于确定所述极限学习机的激活函数、隐含层节点数、前馈神经网络的输入权值和隐含层阈值;

输出矩阵计算模块,用于计算隐含层节点的输出矩阵;

输出权重计算模块,用于根据输出矩阵和期望输出矩阵计算输出权重;

慢盘检测模块,用于根据隐含层节点的输出矩阵、前馈神经网络的输入权值、隐含层阈值以及输出权重确定基于极限学习机的慢盘检测模型,根据所述慢盘检测模型对所述数据存储系统进行检测,确定所述数据存储系统中的慢盘。

优选地,历史磁盘数据获取模块获取的历史磁盘数据包括磁盘I/O标准响应时间TR、磁盘I/O实际响应时间TC、磁盘服务时间TS、磁盘工作负荷L、磁盘I/O故障类型F,在获取到历史磁盘数据后将其存储于所述数据存储系统的数据库中。

优选地,检测值计算模块根据以下公式计算所述数据存储系统中磁盘的检测值:检测值V=aTR+bTC+cTS+dL+eF,其中,a、b、c、d、e分别为磁盘I/O标准响应时间TR、磁盘I/O实际响应时间TC、磁盘服务时间TS、磁盘工作负荷L、磁盘I/O故障类型F的权重。

优选地,检测值计算模块进一步用于:在计算出检测值后,确定检测阈值TV,判断检测值V与检测阈值TV的大小。当检测值V>=TV,则被检测磁盘处于疑似慢盘状态,并且结合检测周期内所述被检测磁盘处于疑似慢盘状态的次数共同判断被检测磁盘是否是慢盘,当被检测磁盘处于疑似慢盘状态,并且所述检测次数大于等于磁盘检测次数阈值TN时,则所述磁盘被认定为慢盘;而当被检测磁盘处于疑似慢盘状态,并且所述检测次数小于磁盘检测次数阈值TN时,则所述磁盘被认定为疑似慢盘;当检测值V<TV时,则所述磁盘被认定为正常磁盘。

优选地,训练样本获取模块将极限学习机的训练样本集构建如下:

训练样本集Xtrain,其中,为第i个训练样本,为第i个训练样本对应的样本标签,m为磁盘状态类别数,R为特征向量维度,N为训练样本数。

优选地,输出矩阵计算模块基于以下公式计算输出矩阵:

其中,H为隐含层节点的输出矩阵,g(x)为激活函数,M为隐含层节点数,bi为隐含层阈值,输入权值wi=[wi1,wi2,…,win∈]T,m为磁盘状态类别数,T为期望输出矩阵。

优选地,该基于极限学习机的慢盘检测模型可表示为:Γ=Hβ。

优选地,所述基于极限学习机的慢盘检测系统还包括报警模块,用于在检测出磁盘为慢盘时,产生报警信息,提醒管理员进行处理。

优选地,所述基于极限学习机的慢盘检测系统还包括隔离备份模块,用于在检测出磁盘为慢盘时,对慢盘进行隔离或者备份。可选地,慢盘检测系统还包括读写判断模块,用于判断是否可以向慢盘写入数据或者读取慢盘中的数据。可选地,在检测出磁盘为慢盘时,将所述慢盘中的数据备份至空闲磁盘或其他磁盘,在备份成功后移除所述慢盘,或者将空闲磁盘取代所述慢盘而加入数据存储系统。可选地,对于处于慢盘状态的磁盘,可以采用降级读的方式读取其中的数据,对于不能降级读的数据直接读取存储盘中的数据,防止系统业务被慢盘拖死。

优选地,所述基于极限学习机的慢盘检测系统还包括信息收集模块,用于收集磁盘的健康状态和磁盘数据,包括磁盘I/O标准响应时间TR、磁盘I/O实际响应时间TC、磁盘服务时间TS、磁盘工作负荷L、磁盘I/O故障类型F等各种磁盘数据。

本发明实施例提供的基于极限学习机的慢盘检测方法及系统,通过对历史磁盘数据进行特征提取,从中选择特征向量进行训练,实现了基于神经网络检测慢盘的方案,优化了慢盘检测过程,提高了慢盘检测准确性并降低了计算复杂度;同时在实际使用过程中,随着历史磁盘数据数量的增加,越来越多的样本被不断训练,模型精度越来越高,进一步提升了准确率,保证了数据存储系统始终处于最佳工作状态。

附图说明

下面,结合附图和实施例对本发明作出进一步地描述,其中,

图1是图示本发明的基于极限学习机的慢盘检测方法的流程图;

图2是图示本发明的基于极限学习机的慢盘检测系统的示意图。

具体实施方式

下面,将结合附图对本发明实施例中的技术方案进行清楚、完整地描述。所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。本领域普通技术人员基于本发明实施例所获得的任意改变或替代,都落入本发明保护的范围。

图1是图示本发明的基于极限学习机的慢盘检测方法的流程图。本实施例的执行主体为慢盘检测系统,该系统可以采用硬件和/或软件的方式实现,优选地,该系统可以设置在装载存储介质的数据存储系统上,以便于对上述存储介质进行检测。本发明的存储介质是指用于存储各种数据的任何介质,包括但不限于磁盘、软盘、光盘、磁带、DVD、闪存、U盘、SD卡等任何存储介质,存储介质也可称为存储设备、存储装置等,以下以磁盘为例进行描述。具体地,如图1所示,所述方法包括:

步骤S1:构建极限学习机单隐含层前馈神经网络。

随着神经网络技术发展,神经网络在计算机、自动化、人工智能等领域都有了广泛的实用性。单隐含层前馈神经网络(SLFN)已经在自动控制、模式检测及数据挖掘等领域取得了广泛应用,但基于梯度原理的训练算法的传统前馈神经网络存在诸多问题,成为制约其发展的主要瓶颈,如需要多次迭代、容易陷入局部极小、需要明确性能指标和学习率的确定等问题。极限学习机(ELM,Extreme Learning Machine)是一种有效的单隐含层前馈神经网络,该神经网络随机产生输入层与隐含层之间的输入权值及隐含层阈值,且在训练过程中无需调整,只需要设置隐含层节点的个数,便可以获得唯一的最优解。与传统的神经网络相比,该神经网络具有学习速度快、泛化性能好、鲁棒性好等优点。

具体而言,本发明实施例在构建极限学习机单隐含层前馈神经网络时,所构建的极限学习机单隐含层前馈神经网络包括输入层、隐含层和输出层,输入层到隐含层、隐含层到输出层的节点之间均采用全连接。本发明中可根据数据存储系统的磁盘数据种类构建上述神经网络,优选地,根据本发明中判断磁盘是否为慢盘所使用的磁盘数据种类来构建上述神经网络,这些磁盘数据在以下步骤中将进行描述。

步骤S2:获取数据存储系统中磁盘的历史磁盘数据。

其中,所述历史磁盘数据包括磁盘I/O标准响应时间TR、磁盘I/O实际响应时间TC、磁盘服务时间TS、磁盘工作负荷L、磁盘I/O故障类型F,在获取到历史磁盘数据后将其存储于数据存储系统的数据库中。磁盘I/O标准响应时间TR是指预置或默认的I/O响应时间,通常情况下,其由磁盘厂商所设置或提供。磁盘I/O实际响应时间TC是指实际运行中磁盘处理I/O的响应时间,例如,系统可以记录下发给磁盘处理I/O请求的时刻为t,磁盘收到I/O后响应的时刻为t’,那么上述磁盘I/O实际响应时间TC=t’-t。磁盘服务时间TS是指磁盘累计使用时间。磁盘工作负荷L是指磁盘运行中的实时负荷。磁盘I/O故障类型F包括使得磁盘成为慢盘的那些故障类型,例如,无I/O响应信息、无法读写数据、I/O请求发送失败等。当然,本发明也可获取其他历史磁盘数据,例如磁盘型号、品牌、I/O模型等数据,以综合考量影响磁盘性能的各种因素。

优选地,所述方法还包括信息收集步骤,收集磁盘的健康状态和磁盘数据,包括磁盘I/O标准响应时间TR、磁盘I/O实际响应时间TC、磁盘服务时间TS、磁盘工作负荷L、磁盘I/O故障类型F等各种磁盘数据。在收集到磁盘数据后,慢盘检测系统也可实时更新上述步骤所获取的历史磁盘数据。磁盘健康状态是指已知的或者人为指定的磁盘损坏等各种健康状态。

步骤S3:将磁盘状态划分为正常磁盘、疑似慢盘以及慢盘,根据所述历史磁盘数据计算数据存储系统中磁盘的检测值。

其中,根据所述历史磁盘数据计算数据存储系统中磁盘的检测值的步骤具体如下:检测值V=aTR+bTC+cTS+dL+eF,其中,a、b、c、d、e分别为磁盘I/O标准响应时间TR、磁盘I/O实际响应时间TC、磁盘服务时间TS、磁盘工作负荷L、磁盘I/O故障类型F的权重。在另一实施例中,在获取到上述其他历史磁盘数据后,本发明也可为上述其他数据赋予权重,参与计算数据存储系统中磁盘的检测值。本发明在计算磁盘的检测值时,多方面考量磁盘数据,解决了现有技术中仅采用I/O响应时间作为标准而判断磁盘是否慢盘的缺陷,使慢盘检测变得更加可靠。

并且,所述方法进一步包括:在计算出检测值后,确定检测阈值TV,判断检测值V与检测阈值TV大小。当检测值V>=TV,则被检测磁盘处于疑似慢盘状态,并且结合检测周期内所述被检测磁盘处于疑似慢盘状态的次数,当被检测磁盘处于疑似慢盘状态,并且所述检测次数大于等于磁盘检测次数阈值TN时,则所述磁盘被认定为慢盘;而当被检测磁盘处于疑似慢盘状态,并且所述检测次数小于磁盘检测次数阈值TN时,则所述磁盘被认定为疑似慢盘;当检测值V<TV时,则所述磁盘被认定为正常磁盘。具体地,可以在检测周期内的预定时刻检测磁盘,检测周期可以为一天检测一次或多次,一月检测一次或多次,一年检测一次或多次,也可以根据用户需要而具体设定检测周期。并且,所述检测阈值TV和检测次数阈值TN可以预先设置,也可以根据实际计算结果进行设置。

步骤S4:基于被划分为上述三种状态的检测值构建所述极限学习机的训练样本集。

具体地,将极限学习机的训练样本集构建为训练样本集Xtrain

其中,为第i个训练样本,为第i个训练样本对应的样本标签,m为磁盘状态类别数,R为特征向量维度,N为训练样本数。

本发明中,获取的历史磁盘数据的数量直接关系到最终训练得到的极限学习机的准确性,训练样本集中的历史磁盘数据数量越少,准确性越差,反之,训练样本集中的历史磁盘数据数量越多,准确性越好。随着数据存储系统的不断使用,慢盘检测系统可以收集到更多的历史磁盘数据,从而不断更新训练样本集,使得慢盘检测的准确性越来越高。

步骤S5:确定所述极限学习机的激活函数、隐含层节点数、前馈神经网络的输入权值和隐含层阈值。

具体地,M个隐含层节点的前馈神经网络的数学模型可表示为:

其中,激活函数g(x)可以选用径向基函数,例如g(x)=exp((x-u)/σ,M为隐含层节点数,bi为隐含层阈值,输入权值wi=[wi1,wi2,…,win∈]T,βi是隐含层节点和输出节点之间的输出权重,oj表示归一化后的输出样本。

此处,具有M个隐含层节点的单隐层前馈神经网络可以零误差逼近,意味着网络实际输出可等于期望输出,也就是则

进一步简化为Hβ=T,其中,H为隐含层节点的输出矩阵,β为隐含层节点和输出节点之间的输出权重,T为期望输出矩阵。

步骤S6:计算隐含层节点的输出矩阵。

具体地,基于以下公式计算隐含层节点的输出矩阵H:

此处,通过以下公式训练极限学习机单隐含层神经网络,以优化隐含节点参数:

步骤S7:根据输出矩阵和期望输出矩阵计算输出权重。

具体地,β=H+T,其中,H+为输出矩阵H的Moore-Penose广义逆,且可表示为

其中,C为可设置的常量值。

步骤S8:根据隐含层节点的输出矩阵、前馈神经网络的输入权值、隐含层阈值以及输出权重确定基于极限学习机的慢盘检测模型,根据所述慢盘检测模型对所述数据存储系统进行检测,确定所述数据存储系统中的慢盘。

具体地,该基于极限学习机的慢盘检测模型可表示为:Γ=Hβ,从而根据该模型计算检测数据存储系统,判断其中的磁盘是否为慢盘。

这样,本发明实施例的神经网络训练完成。基于极限学习机的慢盘检测系统即可用于检测数据存储系统中的磁盘,在系统检测出某个磁盘是慢盘后,将该磁盘设置为慢盘状态。

优选地,在检测出磁盘为慢盘时,产生报警信息,提醒管理员进行处理。

优选地,在检测出磁盘为慢盘时,对慢盘进行隔离或者备份。可选地,慢盘检测系统判断是否可以向慢盘写入数据或者读取慢盘中的数据。可选地,在检测出磁盘为慢盘时,将所述慢盘中的数据备份至空闲磁盘或其他磁盘,在备份成功后移除所述慢盘,或者将空闲磁盘取代所述慢盘而加入数据存储系统。可选地,对于处于慢盘状态的磁盘,可以采用降级读的方式读取其中的数据,对于不能降级读的数据直接读取存储盘中的数据,防止系统业务被慢盘拖死。

根据本发明实施例的基于极限学习机的慢盘检测方法可以基于慢盘检测模型确定待检测磁盘的输出值,从而优化了慢盘检测过程,提高了慢盘检测的准确性。另外,随着历史磁盘数据数量的增加,慢盘检测系统可实时更新训练样本集,产生新的训练样本集,随着样本的不断训练,模型精度越来越高,进一步提升了准确率,保证了数据存储系统始终处于最佳工作状态。

以下将参照图2描述本发明的另一实施例。图2是图示本发明的基于极限学习机的慢盘检测系统的示意图。参照图2,该系统主要包括神经网络构建模块、历史磁盘数据获取模块、检测值计算模块、训练样本获取模块、模型建立模块、输出矩阵计算模块、输出权重计算模块及慢盘检测模块。具体地,所述系统包括:

神经网络构建模块,用于构建极限学习机单隐含层前馈神经网络。

具体而言,本发明实施例的所构建极限学习机单隐含层前馈神经网络包括输入层、隐含层和输出层,输入层到隐含层、隐含层到输出层的节点之间均采用全连接。本发明中可根据数据存储系统的磁盘数据种类构建上述神经网络,优选地,根据本发明中判断磁盘是否为慢盘所使用的磁盘数据种类来构建上述神经网络,这些磁盘数据在以下步骤中将进行描述。

历史磁盘数据获取模块,用于获取数据存储系统中磁盘的历史磁盘数据。

其中,所述历史磁盘数据包括磁盘I/O标准响应时间TR、磁盘I/O实际响应时间TC、磁盘服务时间TS、磁盘工作负荷L、磁盘I/O故障类型F,所述系统将获取的历史磁盘数据存储于数据存储系统的数据库中。磁盘I/O标准响应时间TR是指预置或默认的I/O响应时间,通常情况下,其由磁盘厂商所设置或提供。磁盘I/O实际响应时间TC是指实际运行中磁盘处理I/O的响应时间,例如,系统可以记录下发给磁盘处理I/O请求的时刻为t,磁盘收到I/O后响应的时刻为t’,那么上述磁盘I/O实际响应时间TC=t’-t。磁盘服务时间TS是指磁盘累计使用时间。磁盘工作负荷L是指磁盘运行中的实时负荷。磁盘I/O故障类型F包括使得磁盘成为慢盘的那些故障类型,例如,无I/O响应信息、无法读写数据、I/O请求发送失败等。当然,本发明也可获取其他历史磁盘数据,例如磁盘型号、品牌、I/O模型等数据,以综合考量影响磁盘性能的各种因素。

优选地,所述系统还包括信息收集模块,用于收集磁盘的健康状态和磁盘数据,包括磁盘I/O标准响应时间TR、磁盘I/O实际响应时间TC、磁盘服务时间TS、磁盘工作负荷L、磁盘I/O故障类型F等各种磁盘数据。在收集到磁盘数据后,慢盘检测系统也可实时更新所获取的历史磁盘数据。磁盘健康状态是指已知的或者人为指定的磁盘损坏等各种健康状态。

检测值计算模块,用于将磁盘状态划分为正常磁盘、疑似慢盘以及慢盘,根据所述历史磁盘数据计算数据存储系统中磁盘的检测值。

其中,检测值计算模块根据以下公式计算数据存储系统中磁盘的检测值:检测值V=aTR+bTC+cTS+dL+eF,其中,a、b、c、d、e分别为磁盘I/O标准响应时间TR、磁盘I/O实际响应时间TC、磁盘服务时间TS、磁盘工作负荷L、磁盘I/O故障类型F的权重。在另一实施例中,在获取到上述其他历史磁盘数据后,本发明也可为上述其他数据赋予权重,参与计算数据存储系统中磁盘的检测值。本发明在计算磁盘的检测值时,多方面考量磁盘数据,解决了现有技术中仅采用I/O响应时间作为标准判断磁盘是否慢盘的缺陷,使慢盘检测变得更加可靠。

在计算出检测值后,检测值计算模块确定检测阈值TV,判断检测值V与检测阈值TV大小。当检测值V>=TV,则被检测磁盘处于疑似慢盘状态,并且基于检测周期内所述被检测磁盘处于疑似慢盘状态的次数,当所述检测次数大于等于磁盘检测次数阈值TN时,则所述磁盘被认定为慢盘;而当所述检测次数小于磁盘检测次数阈值TN时,则所述磁盘被认定为疑似慢盘;当检测值V<TV时,则所述磁盘被认定为正常磁盘。具体地,可以在检测周期内的预定时刻检测磁盘,检测周期可以为一天检测一次或多次,一月检测一次或多次,一年检测一次或多次,也可以根据用户需要而具体设定检测周期。并且,所述检测阈值TV和检测次数阈值TN可以预先设置,也可以根据实际计算结果进行设置。

训练样本获取模块,用于基于被划分为上述三种状态的检测值构建所述极限学习机的训练样本集。

具体地,将极限学习机的训练样本集构建为训练样本集Xtrain

其中,为第i个训练样本,为第i个训练样本对应的样本标签,m为磁盘状态类别数,R为特征向量维度,N为训练样本数。

本发明中,获取的历史磁盘数据的数量直接关系到最终训练得到的极限学习机的准确性,训练样本集中的历史磁盘数据数量越少,准确性越差,反之,训练样本集中的历史磁盘数据数量越多,准确性越好。随着数据存储系统的不断使用,慢盘检测系统可以收集到更多的历史磁盘数据,从而不断更新训练样本集,使得慢盘检测的准确性越来越高。

模型建立模块,用于确定所述极限学习机的激活函数、隐含层节点数、前馈神经网络的输入权值和隐含层阈值。

具体地,M个隐含层节点的前馈神经网络的数学模型可表示为:

其中,激活函数g(x)可以选用径向基函数,例如g(x)=exp((x-u)/σ,M为隐含层节点数,bi为隐含层阈值,输入权值wi=[wi1,wi2,…,win∈]T,βi是隐含层节点和输出节点之间的输出权重,oj表示归一化后的输出样本。

此处,具有M个隐含层节点的单隐层前馈神经网络可以零误差逼近,意味着网络实际输出可等于期望输出,也就是则

进一步简化为Hβ=T,其中,H为隐含层节点的输出矩阵,β为隐含层节点和输出节点之间的输出权重,T为期望输出矩阵。

输出矩阵计算模块,用于计算隐含层节点的输出矩阵。

具体地,基于以下公式计算隐含层节点的输出矩阵H:

此处,通过以下公式训练极限学习机单隐含层神经网络,以优化隐含节点参数:

输出权重计算模块,用于根据输出矩阵和期望输出矩阵计算输出权重。

具体地,β=H+T,其中,H+为输出矩阵H的Moore-Penose广义逆,且可表示为

其中,C为可设置的常量值。

慢盘检测模块,用于根据隐含层节点的输出矩阵、前馈神经网络的输入权值、隐含层阈值以及输出权重确定基于极限学习机的慢盘检测模型,根据所述慢盘检测模型对数据存储系统进行检测,确定所述数据存储系统中的慢盘。

具体地,该基于极限学习机的慢盘检测模型可表示为:Γ=Hβ,从而根据该模型计算检测数据存储系统,判断其中的磁盘是否为慢盘。

这样,本发明实施例的神经网络训练完成。基于极限学习机的慢盘检测系统即可用于检测数据存储系统中的磁盘,在系统检测出某个磁盘是慢盘后,将该磁盘设置为慢盘状态。

优选地,所述基于极限学习机的慢盘检测系统还包括报警模块,在检测出磁盘为慢盘时,产生报警信息,提醒管理员进行处理。

优选地,所述基于极限学习机的慢盘检测系统还包括隔离备份模块,在检测出磁盘为慢盘时,对慢盘进行隔离或者备份。可选地,慢盘检测系统还包括读写判读模块,用于判断是否可以向慢盘写入数据或者读取慢盘中的数据。可选地,在检测出磁盘为慢盘时,将所述慢盘中的数据备份至空闲磁盘或其他磁盘,在备份成功后移除所述慢盘,或者将空闲磁盘取代所述慢盘而加入数据存储系统。可选地,对于处于慢盘状态的磁盘,可以采用降级读的方式读取其中的数据,对于不能降级读的数据直接读取存储盘中的数据,防止系统业务被慢盘拖死。

根据本发明实施例的基于极限学习机的慢盘检测系统可以基于慢盘检测模型确定待检测磁盘的输出值,从而优化了慢盘检测过程,提高了慢盘检测的准确性。另外,随着历史磁盘数据数量的增加,慢盘检测系统可实时更新训练样本集,产生新的训练样本集,随着样本的不断训练,模型精度越来越高,进一步提升了准确率,保证了数据存储系统始终处于最佳工作状态。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

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