作者:DellEMC中国研发集团翁凌冬 刘冰
摘要
用户更加关注存储系统的性能和可靠性。尽管存储系统设计了一系列机制来抵御磁盘故障。实现可靠性目标仍然面临许多挑战。本文针对磁盘故障预测问题,提出了一种企业级的机器学习解决方案。磁盘数据集来自DellEMC的AutoSupport(ASUP)数据库。该数据集包含了2014-2018年57914个SAS盘的数据。结果表明所选择的机器学习模型,随机森林能够提前14天预测90%左右的故障,误报率在0.5%以下,可以带来良好的业务价值,满足客户对存储系统的需求。
关键词:机器学习; 客户体验;硬盘故障预测
1. 简介
磁盘故障严重影响了存储系统的可靠性。一旦磁盘发生故障,它不仅会造成暂时的数据丢失,还会造成永久性的数据丢失。因此,能够主动识别有问题的磁盘对存储可靠性至关重要。主动预测磁盘故障在业界有着悠久的历史。主要有三种方法:阈值法、统计方法和机器学习。大部分的工作都是利用磁盘的Self-Monitoring,Analysis and Reporting Technology(SMART)信息。SMART存在于大多数硬盘中,报告硬盘的多项数据。
通过机器学习预测磁盘故障只是研究过程中的一部分,其长期目标是在磁盘完全失效之前识别和替换故障磁盘,改进存储系统性能,并将客户的损失降到最低。本文提出了一种基于随机森林方法预测方法,且准确率高。到目前为止,我们已经完成了三项工作。第一,数据处理,包括从ASUP数据库中提取数据和数据去噪。第二,选择随机森林算法构建机器学习模型。第三,通过优化超参数对机器学习模型调优。分析结果显示我们的随机森林模型能够有效的提升系统的可靠性并减少客户的损失。
2 机器学习模型
在本研究中,我们利用数据库中的数据,通过随机森林的方法建立了能够提前多天预测磁盘故障的模型。该模型具有好的预测性能的同时,用户可以分析导致磁盘故障的主要因素。图1是模型构建过程。
![ea5c5859c0dc16a33bdd0663736e7084.png](https://i-blog.csdnimg.cn/blog_migrate/e15f539b46ee881633f2d714885687e0.jpeg)
2.1 测试方法
每块磁盘都有许多按时间戳排序的样本。测试方法通过每个样本预测结果确定磁盘是否失败。测试时只观察时间窗口(一个超参数)的数据并依次预测该时间窗口内的数据。一旦其中一个样本被预测为“坏盘”,然后评估之前n天的样本,并如果其中一半以上的样本被预测为损坏,那么磁盘将会预测为坏盘。图2是测试方法原理图。
![93fabfef779cf56b5d3eead12e29e6ba.png](https://i-blog.csdnimg.cn/blog_migrate/2dec01270a5d77d82644562d20140c0b.png)
2.2 性能评估
通过计算性能指标,对已建立的机器学习模型进行定量评估。召回率(TPR)是被正确分类为坏盘的百分比,误报率(FPR)是被错误标记为故障的好盘的百分比。此外,利用ROC曲线显示模型的性能,它表明了TPR与FPR之间关系。曲线下面积(AUC)值可以反映分类模型的分类效果。当AUC值越接近1,模型性能越好。
3 数据采集和处理
3.1 数据采集
实验中的数据集均来自ASUP数据库,用户系统的硬件配置、运行时间的统计和事件日志等数据每天都会上传到ASUP数据库。针对磁盘故障预测,数据库中有多项与磁盘属性相关的表格,提供了有价值的信息,包括磁盘型号、供应商、SMART属性、BMS属性(SAS硬盘)、时间记录和磁盘健康/故障的分类标记。
3.2 数据处理
来自ASUP的原始数据是不可直接使用,它没有经过格式化处理并且包含大量数据噪音。为了建立机器学习模型,原始数据需要经过一系列的数据处理步骤。图3显示了这些步骤。
![c785804635a1a9f3ce2908f86549920e.png](https://i-blog.csdnimg.cn/blog_migrate/66d3c29339617069ebe85838e8805a13.jpeg)
![3bff9f41fbc05ee31f06222c93a55aa1.png](https://i-blog.csdnimg.cn/blog_migrate/d8246b6b4e2f1fca46edb9f56568d213.png)
3.2.1数据格式化
原始数据在ASUP数据库中是乱序的。格式化处理是将每一个样本按磁盘的序列号分组,每一块盘中的样本具有相同的磁盘序列号。随后,从第一天到收集日期对磁盘中的样本进行排序。对于每个样本,都有自己的驱动器健康/故障标记。一旦磁盘中的某一样本被标记为“FAILED”,则此磁盘中的所有样本都将被标记为“-1”。否则所有样本都标记为“1”。数据格式化和标记如图4所示。
3.2.2数据降噪
原始数据集中包含大量缺失数据。因此数据去噪是建立模型的关键。首先,应该过滤包含大量空值(样本中超过一半的特征值为空)的样本。其次,磁盘中出现样本被标记为“FAILED”时,舍弃之后的所有样本。模型只使用实际故障发生之前的样本。最后,对于那些数据过滤后缺失值数量可接受的样本,用不同的策略填充空值。第4节将分别讨论用0、中位数和-999替换空值的结果。
3.2.3数据分离
根据数据记录的时间顺序,将前70%的数据做为训练集,其余30%作为测试集。由于磁盘故障的情况相对少见,ASUP数据库中,SAS盘的故障率只有不到0.5%。训练一个不平衡数据集会导致悖论:只要预测大多数磁盘是好盘,模型准确率就会超过99.5%。因此在生成训练集时,需要对好盘的数据进行缩减。本文中,好盘量与坏盘量的比率为5:1,这也与相关工作相符。
3.3 特征值处理
大部分基于机器学习的磁盘故障预测中,使用的特征值都选自SMART属性。除了SMART参数,BMS(BackgroundMediaScan)参数也与磁盘状态预测紧密相关。如前所述,所有采集到的SMART和BMS参数都设置为基本特征,随机森林模型将自动选择特征。然而,通常情况下,SMART和BMS参数记录的是磁盘属性在使用周期内的累积计数。比起直接使用这些累计记录,了解磁盘属性最近的变化率更有洞察力。因此,增加了两组新的特征,即每个基本特征的变化率和方差。下面的公式计算了某一属性A的这两个特征:
![5d14b721473b190974d87e16110887bb.png](https://i-blog.csdnimg.cn/blog_migrate/427b12335dcdf850db7f330ba6faae1a.png)
其中,Ai是特征值A在第i天的值,μ是特征值A的平均值。
4 实验结果
4.1 数据集构建
本文中的磁盘故障分析采用DellEMC DataDomain的ASUP数据库。该数据库有不同类型的磁盘。文中,我们针对Seagate的一款磁盘建立了坏盘预测模型并进行评估。数据集中包含了2014年1月至2018年1月的所有磁盘监测数据。去除无效磁盘数据和数据预处理后,最终数据集涵盖12181块磁盘,其中包括219块坏盘和11962块好盘。
4.2 评估随机森林模型
4.2.1缺失值处理
从ASUP数据库下载的原始数据包含缺失值。在建立随机森林模型时,尝试了三种不同的策略来处理原始数据中的空值。表1为不同策略的结果。用0代替空值是最直接的方法,因此以该方法的结果作为基线测试结果。用中值替换空值后,没有明显改善。相比于好盘,坏盘缺失值更多。为了扩大这个差异,所有缺失的值都被填入一个虚拟值,-999。该方法有效地将TPR提高了18%。因此,用-999替换空值是一种更适合ASUP数据库的数据处理方式。之后的验数据均以这种方法处理。
4.2.2特征值选取
在选取所有有用参数作为随机森林模型的基本特征后,分别添加了变化率和方差两个新特征。根据公式设计时间窗口,计算各基本特征在最近n天的变化率和方差。从时间窗设置为1、3、5、7、14、21时的结果可以很自然地发现,这两组特征都可以提高模型的TPR,但时间窗设置对模型性能的影响并不严重。结合应用,实验中,时间窗口设置为7天。考虑到改变率和方差对机器学习模型都有贡献,我们将它们一起加入模型的特征值中。表2中显示,显示了当两组特征一起加入模型时,TPR高于只加入两组特征中的一组的TPR。图5为分别在加和不加两组特征的下模型的ROC曲线。这说明两个模型的超参数都已经被调整到适当数值,但是在加上两组特征值的情况下模型具有更好的预测能力。
![efb9adeae8f039c181c596508fda145c.png](https://i-blog.csdnimg.cn/blog_migrate/1b47711766aebc8084409cf4965c1e1e.png)
![566e1b88b25a03d45cac60cebb379526.png](https://i-blog.csdnimg.cn/blog_migrate/424fb68f02f8d6eb2b08e9b84b08661b.png)
4.3 预测性能
4.3.1磁盘故障预测
通过数据处理、模型训练和超参数整定,得到了性能最佳的预测模型。用户可以直接从混淆矩阵中得到重要结果。最终结果如图6所示,FPR小于0.5%,TPR在90%左右。图7是硬盘损坏实际提前预测天数的柱状图。超过50%的故障磁盘可以在14天前预测出来。这带来的商业价值是巨大的,因为它确保工程师在发现磁盘故障后有足够的时间来维护数据和替换磁盘。它还可以降低数据丢失的风险和用户成本。出现的另一种现象是,只有一小部分故障磁盘可以提前1天预测。推测是某些磁盘突然出现意外故障,比如硬件故障等。
4.3.2特性值的权重
在实验结果的最后我们加上了特征值的权重,以帮助用户在实际环境下分析随机森林模型。每个特征值对磁盘故障预测的贡献都是不同的。这里,最重要的5个特性是uncorr_rd_err、realloc_sector、power_on_hours、medium_err_change_rate、num_bms。表示,模型认为磁盘故障主要是由这些属性引起的。值得一提的是,这5个特征值可以分为两类:一类是由介质逐渐退化引起的磁盘扇区错误;另一类属性,其值都随着磁盘使用时间的增加而增加。用户可以从误差相关性的角度分析结果。一旦预先发现这些特征值的异常,就可以决定是否需要替换或维护磁盘。也就是说,只要通过查看重要特征就能及时预知硬盘的损坏。
![648541397b33e0b5f1178071d525487e.png](https://i-blog.csdnimg.cn/blog_migrate/a5876607f20217bf70ab31245beb410c.jpeg)
![10095466a48c7448a4de8ea77fabb391.png](https://i-blog.csdnimg.cn/blog_migrate/636d3e7c6d1b35dedf6b25304a4437c6.png)
![df5b7f4c5a6944e949b88313ee5a1ff4.png](https://i-blog.csdnimg.cn/blog_migrate/8d1b7b91560ecc4b5dcdde40eb4ee6e1.jpeg)
5 结论
本文提出了一种利用ASUP数据库,基于随机森林方法的磁盘状态预测模型。该方案可以自动提取原始数据集和数据处理/并利用机器学习方法生成强磁盘故障预测器。实验结果证明,该方案性能良好,TPR在90%左右,FPR在0.5%以下。与现有的磁盘故障预测方法相比,此方法有望为客户带来巨大价值和商业创新。首先,首次提出了一种基于ASUP数据库的磁盘状态预测方法。其次,模型可以在磁盘不可用之前预测磁盘故障,从而避免永久性的数据丢失。此外,这种方法对未来预测慢盘也十分有效。第三,从客户的角度,可以减少更换磁盘所带来的时间和费用成本。