万成威,王 霞,王 猛
(北京航天飞行控制中心,北京 100094)
数据存储子系统是各类信息系统或设备必不可少的组成部分之一,硬盘是数据存储子系统的核心部件。然而,硬盘也是影响信息系统或设备性能和工作状态的重要因素[1]。固态硬盘(Solid State Disk,SSD)可极大提高硬盘的数据读写性能,然而硬盘的经常性失效问题仍不可避免,业界普遍采用独立冗余磁盘阵列(Redundant Array of Independent Disk,RAID)技术实现硬盘失效时的数据完整性保护。同时,硬盘健康状态的预测研究也日渐受到业界的重视[2-4],期望通过硬盘自身的状态日志、设备运行状态、机房位置等信息,准确预测硬盘的健康状态[5],最终实现硬盘剩余寿命的准确预测,为实现数据管理、设备运维等提供相应的支撑手段。
机械硬盘(Hard Drive Disk,HDD)在大规模数据中心、大容量数据存储系统中广泛应用,其故障一般分为两种:可预测的和不可预测的。不可预测的硬盘故障偶尔发生,如芯片突然失效、机械振动或撞击等,但如磁盘磁头磨损、盘片磁介质性能下降等,均属于可预测情况,通过磁盘监控技术,检测磁盘某些重要的状态参数实现磁盘健康状态的预警。1995年,康柏公司联合多家硬盘生产商提出该技术方案,并于1996年正式成为行业技术标准。然而,准确地实现硬盘健康状态预测仍然具有很强的挑战性,主要原因来自两个方面[6]:一是软件系统优化设计后可较好地适配硬件系统部分功能失效情况,导致系统操控管理人员对包含硬盘故障在内的硬件系统部分功能失效情况的重视程度不够;二是各种不同品牌和型号规则的硬盘在数据中心内部广泛使用,但考虑到商业利益因素,大量的研究仅公开了少量的采样获取的自我检测分析与报告(Self Monitoring Analysis and Reporting Technology,SMART)数据,难以支撑大规模的开放性研究,而且研究重点也主要着眼于不同类型硬盘的某些特性,如结构、器件或等对异常产生原因的分析。
近年来,随着BackBlaze、Alibaba等云服务商逐步开放其超大数据中心硬盘的SMART数据,基于机器学习、深度学习等方式的硬盘健康状态预测研究[7-11]也随之逐年增加,针对硬盘失效问题的深度分析也逐步展开。清华大学交叉信息研究院的徐葳团队[6]联合百度公司对百度数据中心2012—2016年以来的290 000个硬件失效问题进行了研究,从失效问题发生的时间、产品线、空间位置、部件以及用户的响应等5个维度进行了分析。从部件维度看,HDD硬盘故障占硬件系统故障的82%,其中约30%的故障直接由SMART属性值反应出来,其他部分故障也可由相关的SMART属性与之对应,同时,研究结果表明,HDD失效与高负载、人员操作等均具有一定的潜在关联性。Lu等人[5]针对HDD硬盘的SMART数据、硬盘的性能数据、硬盘的空间位置信息等3类数据,采用朴素贝叶斯分类、随机森林[12]、梯度增强决策树(Gradient Boosted Decision Tree,GBDT)[13-14]、长短时记忆网络(Long Short Term Memory Network,LSTM)等深度学习方法,实现对HDD硬盘工作状态的预测,并详细比较了上述3类信息不同组合条件下的预测准确性,结果表明,3类信息联合情况下可获得最优的预测性能,原因在于硬盘的性能数据体现了其工作负载,硬盘的空间位置体现了其运行环境,这些因素均会影响硬盘的工作状态。
随着SSD硬盘在数据中心应用的逐步深入,针对其工作状态的预测研究也逐步展开[15-16],这些研究方法对HDD硬盘工作状态预测具有较好的借鉴意义。
本文将HDD作为研究对象,基于BackBlaze公布的HDD硬盘SMART日志数据,采用机器学习方法,完成硬盘健康状态的分类预测。
SMART技术为硬盘行业标准,依托该技术,硬盘会自动检测其磁头、盘片、马达、电路等运行状态,并通过不同的属性值记录下来,实现其工作状态的记录,当属性值超出安全值范围时,就会自动向用户发出告警。一般而言,硬盘会周期性产生SMART记录数据。考虑到硬盘大部分时间均处于正常工作状态,已有研究表明,对硬盘工作状态预测而言,每天一条SMART数据记录即可满足应用 要求[5]。目前,Alibaba、BackBlaze等大型云服务提供商均开源了其部分数据中心硬盘的SMART数据。典型的SMART属性如表1所示。
表1 典型SMART属性值 Tab.1 Typical SMART attributies
SMART属性数据以二进制代码的形式记录于硬盘的系统保留区内,除标准属性外,厂商可根据自己产品的特性提供不同的SMART属性数据。目前公开的SMART数据集中,除SMART属性的原始数据外,同时包含每个属性的归一化值,联合起来作为硬盘的SMART属性。单条SMART记录包含日期、序列号(或ID)、硬盘型号、工作状态及属性值等。一般情况下,硬盘的大部分属性值为空,不同厂商、不同型号规格的硬盘,为空的属性值也有所不同。为此,根据硬盘SMART属性是否非空,定义SMART数据模式如下:给定的SMART数据记录中,若某一属性非空,则该属性的数据模式为“1”;否则,该属性的数据模式为“0”,由所有属性数据模式组成的二进制字符串即为该SMART记录的数据模式。
从已开放的SAMRT数据看,尽管不同厂商、不同型号规格硬盘的SMART数据各不相同,但仍体现出明显的特点,具体如下:
1)SMART数据具稀疏特性。尽管最新标准中定义了多达256项SMART属性,然而,一般硬盘在日志中仅记录了其中几十项属性值,且其中大部分属性为空,形成典型的稀疏特性。
2)SMART数据模式类型有限。SMART数据模式指硬盘所有非空SAMRT属性的组成规律。大型数据中心中存在不同品牌、不同型号规格的硬盘,然而,这些硬盘的SMART数据模式类型较为有限,如本文后文所述,并非如直观印象中有大量不同的数据模式类型。
3)SMART数据具有明显的不均衡性。SMART数据的不均衡性主要表现在硬盘状态正常与失效的SMART数据数量相差极大。硬盘技术和制造工艺的进步,使得硬盘失效概率明显降低,大部分时间内硬盘处于正常工作状态,因此SMART数据中失效数据比例也较低。
考虑SMART数据模式类型有限的特点,且同一数据模式下硬盘SMART属性完全一致,更趋于表现出一致的运行状态,基于此,本文提出基于SMART数据模式分类的HDD硬盘工作状态预测方法。
现有研究主要以SMART属性值及其归一化属性值作为特征,采用各种机器学习、深度学习算法,实现硬盘工作状态的预测。尽管针对大型数据中心硬件系统故障问题的长期统计分析表明,硬盘负载、机房环境等对其工作状态具有一定的影响[5],从表1也可以看到,上述信息在SMART属性数据中也有一定的体现。另外,现有基于SMART数据的硬盘工作状态预测研究中,一般考虑算法的通用性,期望算法可广泛适用于所有类型的硬盘,通常仅选择十几项典型的属性值作为硬盘工作状态预测算法的特征,然而,除常用的典型属性外,不同型号规格的硬盘可定义不同SMART属性,这将导致部分信息的丢失[16]。为此,本文在深入分析SMART数据特点的基础上,提出相应的HDD硬盘工作状态预测算法。
为了避免现有算法选择少量典型SMART属性作为特征引起的信息丢失问题,结合SMART数据的特点,本文提出基于SMART数据模式的机器学习(SMART Data Mode Based Machine Learning,SDM-ML)算法,以实现HDD硬盘工作状态的准确预测,其基本思想如下:
SMART技术作为硬盘行业标准,反映了硬盘的各种工作状态,其属性的设计均具有一定的针对性。直观理解,选取的属性越多,包含的硬盘信息也相应增多,利于机器学习算法更充分识别硬盘的工作状态,对其做出更加准确的预测。经统计分析,硬盘SMART数据模式较为有限,为此,SDM-ML算法先根据数据模式类型,将SMART数据分为不同的子集,不同子集的数据分别采用有监督机器学习算法进行训练和验证测试,综合多种机器学习算法测试结果,选择性能最优算法的输出结果作为最终预测结果。
如图1所示,算法分为数据预处理、数据模式分类、按数据模式分类机器学习预测。实际过程中,根据数据模式类型,将预处理后的SMART数据输入训练好的机器学习组件中,即可完成HDD硬盘状态的预测。
图1 基于数据模式分类的HDD硬盘工作状态预测
数据预处理主要完成原始SMART数据的规范化处理,包含:以序列号为关键字,将单个硬盘的SMART数据按照日期先后顺序归档整理;仅以SMART属性的实际值作为研究对象,不考虑数据提供方给出的归一化属性值;将属性值为空的SMART属性统一填充0,若硬盘当日SMART属性均为空,即表示当日未成功获取SMART日志记录,则删除当天SMART记录。
数据模式分类主要根据硬盘SMART记录中的原始属性数据,确定该硬盘的SMART数据模式类型。所有数据模式类型中均包含该SMART数据的所有属性,不对其进行筛选、过滤、聚合等处理。
并行训练主要将分类后的SMART数据分别按照数据模式输入监督机器学习算法进行算法的训练。对于每块硬盘,均选择N天的SMART记录依次拼接组合作为机器学习的输入数据。其中,对于发生失效问题的硬盘,选择从失效当天起的前N天SMART数据作为故障类数据(类型为“1”);对于未发生失效问题的硬盘,随机选择连续N天的SMART数据作为正常数据(类型为“0”)。所有数据根据对应属性值,按式(1)进行归一化处理:
(1)
2.3.1 数据集
本文以BackBlaze开放的2020年3季度云存储系统中硬盘SMART日志作为数据集,用于评估SDM-ML算法性能。该数据集包含2020年7月1日—9月30日期间共151 166块HDD硬盘的SMART日志,其中发生失效问题的硬盘324块。按照SMART数据模式,上述记录中共包含18种不同的数据模式,各类SMART数据模式统计信息如表2所示。
表2 SMART数据模式统计
表2中主要统计工作时间不少于10(N=10)天的HDD硬盘,考虑到发生失效的硬盘数量远小于正常硬盘数量,为进一步增加失效硬盘SMART样本数量,对于SMART记录多于10天的失效硬盘,依次从失效前第10,15,20…天开始,并取连续10天的SMART数据,均作为失效硬盘SMART数据。考虑到HDD硬盘状态预测的应用场景,扩充的失效硬盘SMART数据最长不超过失效前30天。尽管如此,仍有部分SMART数据模式的失效样本数量过少,如第4,8,9,10,11,12,13,15类数据模式,难以形成有效的训练、测试数据集,本文暂不将其作为HDD硬盘工作状态预测研究的数据集。
2.3.2 测试结果
本文采用K近邻(K-Nearest+Neighbor,KNN)[12]、线性回归(logreg)[10]、支持向量机(Suppot Vector Machine,SVM[8]等3种机器学习算法,分别按照不同的SMART数据模式类型,从预测准确率、F1指数、马修斯相关系数(Matthews Correlation Coefficient,MCC)等3个方面对HDD硬盘工作状态预测性能进行了评估。M根据预处理后正常样本与失效样本的比例关系确定。测试结果如图2所示。
图2 SDM-ML算法评估结果
可以看到,SDM-ML算法普遍可实现80%以上的分类准确率,达到与现有强分类器相同的预测精度。从F1指数和MCC系数看,SDM-ML算法表现出相同或类似的测试性能,即按照SMART数据模式分类后,再采用常见的机器学习算法,即可获得强分类器相近的预测结果。从机器学习算法看,线性回归和SVM算法针对不同类型的SMART数据模式均表现出较为一致的预测性能,且优于KNN。从SMART数据模式看,第1和17类数据模式的MCC系数测试结果相对较差,这也反映出不同型号规格硬盘产品在SMART属性上的差异及其对机器学习算法特征选择的影响,与文献[16]中针对SSD硬盘SMART属性的研究结果一致。同时,这也说明特征选择对机器学习算法性能的影响。本文提出在SMART数据模式分类后再进行机器学习预测HDD硬盘工作状态,主要目的也是为了尽可能简化众多SMART属性条件下的特征选择过程,测试结果也表明了本文方法的有效性。同时,本文方法在通用机器学习算法下即可获得较好的预测效果,可有效降低因使用强机器学习算法带来的计算、存储等资源消耗,具有较好的实际应用效果。
本文研究了基于SMART数据的HDD硬盘工作状态预测算法,针对现有算法普遍以少量通用SMART属性作为机器学习特征,存在信息丢失现象的问题,提出先按照数据模式对SMART数据进行分类,然后采用机器学习算法进行硬盘工作状态预测,在保证SMART信息完整性的同时,简化了机器学习算法的特征选择过程,有效降低了算法的资源消耗。实际测试结果表明,在这种数据处理方式下,采用常用的机器学习算法即可获得与强分类器相近的预测结果,充分证明了算法的有效性。