基于大数据技术的服务器磁盘故障诊断方法
2022-08-19吴文波
吴文波
(闽南科技学院 福建 泉州 362000)
0 引言
服务器磁盘是一种安装在服务器当中,以磁性盘片作为数据载体的存储器,这种存储器结构具有非易失性特点,因此能够确保服务器运行中具备更有力的数据支撑。与服务器当中的中央处理器、内存等结构相比,磁盘的机械结构更加复杂,并且更加脆弱,在高速运转中极易受到磨损[1]。在大数据环境当中,多台服务器被放置在同一个机架结构当中,若其中一块磁盘出现故障问题,则会对整个服务器构成机架的运行造成严重影响,同时在众多服务器磁盘当中找出故障的磁盘难度也较大。尽管服务器中每一块磁盘配置备用数据块用于替换坏的数据块,但当备用数据块被用完后,若磁盘仍然持续受到磨损,则会造成数据丢失问题产生,进而影响到服务器的正常运行,并且对于用户而言会造成无法逆转的不利影响[2]。服务器磁盘在使用的前期阶段(1 年)中,磁盘的故障发生概率会呈现出先增加后降低的趋势。基于上述服务器磁盘的故障特征以及故障发生概率,为提高服务器磁盘及整体运行可靠性,本文将引入大数据技术,开展对服务器磁盘故障诊断方法的设计研究。
1 基于大数据技术的服务器磁盘故障诊断方法
为实现对服务器磁盘的故障诊断,本文采用服务器磁盘故障自诊和系统级诊断相结合的方式,实现对故障问题的综合诊断。为确保服务器磁盘的故障自诊和系统级诊断具备更可靠诊断依据,在对其进行详细设计前,首先利用大数据技术对服务器运行过程中的负载数据进行采集。
1.1 基于大数据技术的服务器磁盘运行中负载数据采集
考虑到服务器架构中包含众多磁盘,为确保获取所有具有高利用价值的负载数据,引入大数据技术[3],只针对磁盘运行中产生的磁盘利用率数据、磁盘读取速度数据、磁盘写入速度数据等进行采集,将负载数据的采集时间设定为每间隔5 min 完成1 次[4]。根据服务器磁盘的利用率数据,可实现对磁盘工作时间与磁盘通电时间比值的描述,通过5 min/次的数据采集,可以实现对5 min 时间内磁盘工作时间占比信息的获取[5]。若服务器磁盘的利用率越高,则说明磁盘的空闲时间越少,将这一数据作为磁盘负载的时间特征数据。通过服务器磁盘读取速度数据和写入数据,能够实现对从内存到磁盘当中数据传输的速度,每间隔5 min 完成1 次采集,能够实现对磁盘运行5 min 内平均传输速度的描述,同样将这一数据作为磁盘负载的空间特征数据。在获取到上述负载数据后,为实现对服务器磁盘运行的准确描述,可从时间角度,对服务器磁盘负载强度进行计算,其公式为:
上述公式中,D表示为服务器磁盘的负载强度;di表示为每间隔5 min 采集到的磁盘利用率数据;n表示为数据采集次数。通过上述公式计算得出,服务器磁盘的平均利用率越低,则说明磁盘负载强度越小;反之服务器磁盘的平均利用率越高,则说明磁盘负载强度越大[6]。再针对服务器磁盘在高利用率状态下的时间占比,实现对磁盘这一状态出现频率的计算,其公式为:
上述公式中,D' 表示为磁盘在高利用率状态当中的时间占比;ld表示为知识函数,若其逻辑表达式成立,则输出的数值为1;反之,若逻辑表达式不成立,则输出的数值为0。结合上述公式(2),对服务器磁盘利用率阈值进行设定,若计算得出的结果超出阈值范围,则此时指示函数的输出值为1,同时意味着服务器磁盘出现了一次高利用率情况;反之,若计算得出的结果未超过阈值范围或与阈值数值相同,则此时指示函数的输出值为0,同时意味着服务器磁盘的利用率在正常范围内。根据上述内容,实现对服务器磁盘高利用率情况出现次数的计量[7]。通常情况下,服务器磁盘的平均利用率若超过50%,则其故障发生概率会呈现出爆发式的上升趋势。因此,结合上述得出的计量结果,也能够为后续对磁盘是否出现故障问题的判断提供依据。
1.2 服务器磁盘故障自诊
在利用大数据技术完成对服务器磁盘运行中负载数据的采集后,采用划分等级的方式,完成对磁盘的故障诊断,等级分别为服务器磁盘自诊和系统级诊断。
在进行自诊前需要对服务器磁盘在运行中,对资源的使用情况以及节点在物理层面上的状态信息进行获取,其每个状态下的表征数据均为数值类型数据,可通过基于/proc 文件以及命令行采集相结合的方式获取。在采集过程中,在/proc 文件当中读取服务器磁盘故障自诊的相关文件,若文件存在并顺利打开,则对该文件进行解析,并得到所需的表征值数据信息。若文件无法打开或为空,则需要调用相关的命令并将得到的结果重定向为文件再重复上述操作获得表征数值。在实际执行上述操作时,由于服务器磁盘个体之间存在差异,且服务器的操作系统版本更新问题可能会对/proc 文件结构造成影响。因此,针对这一问题,引入基于命令行的采集方式,实现对上述操作的辅助,从而确保得到的表征数值更具可靠性。
在完成上述操作后,针对服务器磁盘故障自诊进行设计,服务器磁盘不同的故障类型,采用不同的监控方式,监控到的信息类型不一致,但均采用大数据技术周期性地获得相关状态表增值的方式,实现对数据的分类和对服务器磁盘的故障诊断,并最终得出服务器磁盘是否为故障。针对上述采集到的负载数据信息,针对不同数据类型,采用不同的监控方式[8]。例如,针对使用率、流量、输入输出性能等负载相关数据,采用基于proc 文件和基于命令行相结合的方式进行监控;针对核心服务进程、关键服务进程等负载相关数据,采用内核监控方法。前者在监控过程中,通过ps 命令、top 命令和who 命令,实现对监控信息的获取,并根据信息内容实现故障检测。在检测过程中,还需要对与服务器磁盘相连接的电源、风扇等结构的工作状态进行实时监控,并采取门限检测的方法,诊断服务器磁盘是否出现故障问题。服务器磁盘自诊流程图见图1。
上述服务器磁盘故障自诊过程中,可基于深度学习算法,构建磁盘故障诊断的模型,其表达式为:
上述公式中,S(t+△t)表示为故障诊断结果;S表示为服务器磁盘的状态当量;g(I(t),S(t))表示为通过上述操作获取到的磁盘运行负载数据。为提高服务器磁盘自诊的精度,在完成对诊断模型的构建后,将其应用到监督学习网络结构当中,并进行迭代训练。在完成训练后,将输出的结果作为最终服务器磁盘的自诊结果[9]。同时,为了区别服务器磁盘的自诊和系统级诊断,在实际应用中,对上述建立的故障诊断模型进行阈值设定,当采集到的负载数据没有达到自诊阈值范围时,则不会触发上述模型的运行,自诊模块不会启动。
1.3 服务器磁盘系统级诊断
针对服务器磁盘系统级故障诊断进行设计,需要完成对服务器中各个节点的配置,并构成一个完整的集群。每个节点都需要保存在同一个集群配置文件当中。在进行系统级故障诊断的过程中,阶段读取配置文件得到集群中各个节点状态[10]。在服务器磁盘处于健康状态中运行时,每一个节点的心跳模块都会生成一些状态线程,若集群中包含n 个节点,则每个节点的心跳模块都会生成n-1 个状态线程,利用获取到的集群节点状态实现对服务器磁盘运行状态的判断。假设某一节点a 与另一个节点b 之间的状态线程为ab,则每隔一定时间后,节点a 都会向节点b发送一个故障检测结果。时间间隔按照上述负载数据采集的时间间隔进行设置,即5 min。通过对节点a 到节点b发送结果可实现对服务器磁盘故障的诊断,其表达式为:
上述公式中,T表示为节点a 到节点b 发送时间;cT表示为当前时间节点;tT表示为超时时间节点。上述公式中,上半部分为超时情况下的检测结果;下半部分为正常情况下的检测结果。
在进行对服务器磁盘系统级诊断时,同样为了区分自诊和系统级诊断,以上述相同方式为系统级诊断的阈值进行设置,当数据没有达到系统级诊断的阈值范围时,则不会触发上述模块的运行,系统级诊断模块不会启动。如若数据不在自诊阈值范围同时也不在系统级诊断阈值范围,则自动认为服务器磁盘未发生故障问题,处于健康运行状态,以此实现对服务器磁盘故障的诊断。
2 对比实验
在上文论述基础上,引入大数据技术提出了一种针对服务器磁盘的故障诊断方法,为了进一步验证这一方法的应用优势,选择将基于无线传感网络的诊断方法作为对照组,将这一诊断方法的应用条件作为对照条件,本文基于大数据技术的诊断方法作为实验组,并按照上述论述该方法应用需要作为实验条件。利用两种方法对相同的服务器磁盘研究对象进行故障诊断。选择ST16000NM00 型号服务器磁盘作为实验研究对象,将该型号所有磁盘的历史运行信息汇总,并构成完成的数据集,将这一数据集作为实验数据集,其基本信息见表1。
表1 ST16000NM00 型号服务器磁盘实验数据集
将上述实验数据集用Python 编程语言进行编码,并对数据集中相关信息进行预处理、排序训练等。将处理后的实验数据集作为测试集,分别利用两种方法对测试集进行故障诊断。已知服务器磁盘在出现故障问题时,服务器通常会表现出3 种状态,分别为:服务暂停、进程异常和服务停止。利用两种方法对磁盘是否故障进行判断,并给出具体故障诊断类型,分别从故障判断结果和诊断故障类别结果两方面,对两种方法的诊断性能进行分析。将两种方法的故障判断结果记录,并绘制成表2。
表2 实验组与对照组故障判断结果记录表 单位:例
从表2 中记录的实验数据可以看出,两种故障诊断方法在对相同服务器磁盘故障进行诊断时,实验组磁盘故障和健康判断结果与实际情况完全相同,而对照组判断结果与实际相差较大。因此,从这一实验结果能够初步证明,本文提出的故障诊断方法在对服务器磁盘的故障和健康状态判断时,可实现99%的诊断精度。再针对两种诊断方法对服务器磁盘故障类型诊断的精度进行对比,结合上述3种服务器磁盘故障类型,将类型诊断结果记录,并绘制表3。
表3 实验组与对照组服务器磁盘故障类型诊断结果 单位:个
由表3 可知,实验组正确判断3 种故障类型的个数均高于对照组,因此,通过这一实验结果能够进一步证明,本文提出的基于大数据技术的诊断方法不仅能够实现对服务器磁盘故障状态与健康状态的准确判断,同时还能够实现对磁盘故障具体类型的诊断,得出的诊断结果对于服务器的运行和维护策略提出具有更高利用价值。
3 结语
服务器磁盘的故障原因可分为内部因素和外部因素两种,其中外部因素主要是受到外界物理破坏,而内部因素包括磁盘的接口等内部组件的运行质量,两方面因素的存在决定着磁盘的使用质量和维护质量。在明确服务器磁盘故障原因基础上,本文提出一种全新的故障诊断方法,并通过实验实现了对该诊断方法的应用优势验证,将该方法应用于实际可以促进服务器磁盘运行稳定性的进一步提升。