第 22卷第 3期2023年 3月
Vol.22 No.3
Mar.2023软件导刊
Software Guide
基于深度强化学习的故障硬盘预测与处理方法
管文白1,2,房笑宇1,2,夏彬1,2
(1.南京邮电大学计算机学院、软件学院、网络空间安全学院;
2.江苏省大数据安全与智能处理重点实验室,江苏南京 210023)
摘要:大数据技术发展产生的海量数据急需一种可靠的数据存储方法,现有的主动故障预测方法相比被动容错机
制可取得更好的效果,但是故障硬盘预测领域仍有一些问题亟待解决。当前的故障硬盘预测方法大多是离线的,通
过滑动窗口将硬盘数据切分为样本,使用欠采样或过采样解决样本不平衡问题。然而,硬盘数据的分布会随时间变
化,下采样可能会丢失一些有用特征,过采样可能会导致训练过拟合,该样本使用方式也忽略了样本之间的时间相关
性。为了解决这些问题,将存储系统中硬盘的整个运行维护过程视为一个顺序决策过程,使用深度强化学习DQN算
法求解。在强化学习语境下,样本不平衡问题转化为稀疏奖励问题。通过奖励塑造及探索机制解决稀疏奖励问题,
在模型部署后利用经验回放实现模型在线学习。在开源数据集BackBlaze上的实验验证了该方法的有效性。
关键词:硬盘故障;故障预测;深度强化学习;DQN算法;奖励塑造
DOI:10.11907/rjdk.222490开放科学(资源服务)标识码(OSID):
中图分类号:TP333;TP18  文献标识码:A文章编号:1672-7800(2023)003-0018-09
Deep Reinforcement Learning Based on Disk Failure Prediction and
Operation Method
GUAN Wen-bai1,2, FANG Xiao-yu1,2, XIA Bin1,2
(1.School of Computer Science, Nanjing University of Posts and Telecommunications;
2.Jiangsu Key Laboratory of Big Data Security and Intelligent Processing, Nanjing 210023, China)
Abstract:The massive amount of data generated by the development of big data technology urgently requires a reliable data storage method. The existing proactive failure prediction methods have achieved better performance than traditional reactive methods, but some problems still exist to be solved in the disk failure prediction. Most current methods are offline and divide data into samples through a sliding window with subsampling or oversampling to solve the imbalance problem. However, the distribution of hard disk data changes over time, subsampling may lose some valuable features, and oversampling may lead to training overfitting. Meanwhile, these methods ignore the temporal dependency of disk data. To solve these problems, the proposed method casts a hard disk′s entire operation and maintenance process in the storage system as a markov decision proc
ess, which is solved using the reinforcement learning method DQN. Based on reinforcement learning, the imbalance problem turns into the sparse reward problem, which is solved by reward shaping and exploration. The replay buffer can update the model on⁃line by the stored tuples. Experiments on the open-source dataset BackBlaze verify the effectiveness of the proposed method.
Key Words:hard disk failure; failure prediction; deep reinforcement learning; DQN; reward shaping
0 引言
随着大数据技术的发展,云服务提供商需要可靠的数据存储方法来提供稳定的交互服务。数据中心通常部署着上千到上百万个硬盘协同工作,据统计,当前超过90%的数据都储存在这些硬盘上[1-2]。然而,在此大规模系统中,硬盘是最常发生故障的部件[3-4]。硬盘故障不仅会导
收稿日期:2022-12-14
基金项目:国家自然科学基金面上项目(61872186);南京邮电大学校级自然科学基金项目(NY221070)
作者简介:管文白(1999-),男,南京邮电大学计算机学院、软件学院、网络空间安全学院硕士研究
生,研究方向为智能运维;房笑宇(1997-),男,南京邮电大学计算机学院、软件学院、网络空间安全学院硕士研究生,研究方向为智能运维;夏彬(1989-),男,博士,南京邮电大学计算机学院、软件学院、网络空间安全学院副教授、硕士生导师,研究方向为推荐系统、智能运维和深度学习。本文通讯作者:夏彬。
第 3 期管文白,房笑宇,夏彬:基于深度强化学习的故障硬盘预测与处理方法
致服务器停机,如果数据中心未部署好数据备份方案,还会造成数据丢失,导致巨大的经济损失。因此,保障服务的可靠性对于改善用户体验和避免经济损失十分重要。
目前提出的提高服务可靠性的方法可分为被动容错和主动故障预测方法。被动容错技术如纠错码和独立磁盘冗余阵列是在故障已发生后恢复数据,该方法的效率很低且需要额外的开销。因此,采用主动故障预测方法可在硬盘实际损坏前作出预防措施,以避免进一步的损失。
硬盘制造商使用自我监控、分析和报告(Self-Monitor⁃ing Analysis and Reporting Technology,SMART)技术实时监控硬盘驱动器运行状况,为主动故障预测方法提供了数据支撑。硬盘制造商主要使用基于阈值的方法预测可能出现的故障,但为了避免错误更换健康硬盘带来的高昂代价,阈值的设置往往过于保守,因此该方法的故障检测率仅为3%~10%,误报率为0.1%[5]。为了改善这种情况,研究者提出一系列面向SMART数据的机器学习方法和深度学习方法来预测即将到来的故障,并取得了不
错的效果。
在硬盘从健康到损坏过程中,大部分数据都是健康状态下的数据,能够体现硬盘故障特征的样本很少,即出现数据不平衡问题。大部分现有方法采取欠采样或过采样来解决此问题,但是欠采样可能会丢失部分有价值的样本,过采样需要对少数类样本进行复制来扩大数据集,容易造成过拟合,因此需要寻一种方法解决该问题。此外,现有的故障预测方法大多是离线的,在训练故障预测模型前需要获得所有训练数据,且在完成训练后无法根据新数据更新模型。而在现实中,由于硬盘数据随着时间以数据流的形式到达,新的硬盘SMART数据分布可能会与原先不同,即出现概念漂移现象[6],导致模型性能变差。
本文提出的基于深度强化学习的故障硬盘预测与处理方法将一块硬盘从健康到故障的整个生命周期视为一个顺序决策过程,通过设计奖励函数和探索机制引导智能体完成训练,从而解决故障硬盘预测领域的数据不平衡问题。现有的深度学习方法会结合循环神经网络(Recurrent Neural Network,RNN)[7]或长短期记忆(Long Short-Term Memory, LSTM)[8]提取SMART数据中的时序特征,本文方法使用更简单的网络实现了同样的效果。在实际环境中,新的硬盘数据随时间到达,在模型给出硬盘当前状态下处理方案的同时,每次互动结果都会以元组形式储存在经验池中。强化学习智能体每次从经验池中采样一批元组进行训练,经验池中存储的元组可被反复利用。新到来的硬盘数据经过智能体处理后产生的元组也会存入经验池,从而保证了经验池能不断更新。在此基础上训练强化学习智能体,实现在数据
流上递增地更新模型。
1 相关工作
1.1 故障硬盘预测
故障硬盘预测是近年来数据中心研究的热点问题之
一[3]。由于采用被动容错机制处理硬盘故障开销太大,而保守的阈值方法预测故障的效果远不能令人满意,因此研究者提出了很多不同的主动预测方法,其中大多是以
SMART数据为基础,结合统计学方法和机器学习模型作出预测。目前常见的方法是将故障硬盘预测问题视为一个二元分类问题,其任务是预测目标硬盘在未来一定时间内是否会发生故障。研究者在此基础上关注故障硬盘预测领域的不同问题,主要包括:
(1)数据不平衡问题。硬盘发生故障是一个小概率事件,因此在整个数据集中健康硬盘样本的数量远多于故障硬盘样本。研究表明,传统面向SMART数据的方法在此不平衡数据集中的预测表现不佳[9]。文献[3]提出一种基于欠采样、正则化贪心森林和迁移学习的方法;文献[10]提出一种基于时间卷积神经网络的模型,针对训练样本不平衡问题设计损失函数;文献[11]考虑计算机视觉领域的异常检测问题与故障硬盘预测问题的相似之处,构建基于生成对抗网络的编解码器模型,只使用健康样
本训练数据,以提高模型泛化能力。
(2)特征选择问题。因为部分SMART属性不能反映硬盘恶化过程,所以有必要筛除这些属性,使模型更关注数据中的有效信息。文献[12]设计一种结合效应量统计指标和遗传算法的特征选择算法过滤无关特征;文献[13]使用一种基于KL散度和递归特征消除的特征选择方法筛选出与硬盘故障强相关的特征;文献[14]对原始高维SMART数据进行降维,以减少原始数据中噪声特征的影响,并突出与数据特点更相关的特征,从而提高故障预测的准确率。
(3)时序特征提取问题。尽管许多方法都通过对SMART数据的分析来预测故障和评估健康状态,但其往往忽视了硬盘不是突然出现故障的,故障硬盘都经历了一个较为长期的故障恶化过程,单个时间戳的数据并不足以提供关于硬盘状态的可靠信息。受此启发,许多方法选择从SMART数据的时间序列中提取信息预测故障。文献[15]提出平滑编码方法,以解决时间序列数据中过渡样本对模型泛化能力的影响,并结合门控循环单元预测硬盘故障;文献[7]、[8]分别使用RNN和LSTM提取SMART数据中的时间相关性;文献[16]在贝叶斯网络基础上考虑了与SMART数据变化趋势相关的属性。
(4)邻域信息提取问题。数据中心里部署在同一台机器上的硬盘称为相邻硬盘,研究者认为相邻硬盘共享计算环境,并且协同处理计算和存储需求,因而相邻硬盘也有相同的故障模式。文献[17]提出基于邻域时间注意力模型的方法,提取相邻硬盘数据之间的关系,从而辅助故障硬盘预测;文献[18]提出层次分类概念,先预测一台机器上是否有故障硬盘,再预测每块硬盘是否可能出现故障。
(4)故障硬盘预测任务构建问题。虽然现有方法的目标都是在硬盘实际损坏前给出预警,但是研究者在实现该
正则化解决什么问题·
·19
2023 年软件导刊
目标时有着不同的任务构建和问题定义。文献[7]将任务定义为评估硬盘的健康程度;文献[19]定义任务为回归问题(预测故障发生在未来哪一天)和分类问题(预测未来一段时间内是否会发生故障);文献[20]用硬盘健康程度指示硬盘在实际故障发生前还有多久的寿命,并分别训练在贝叶斯网络中使用的分类器组合。
(5)模型老化问题。硬盘SMART数据的分布会随时间发生变化,导致在原来数据上训练出来的模型性能逐渐变差。为了解决此问题,文献[21]使用在线随机森林模型实现在线学习;文献[22]提出基于流挖掘的主动故障预测方法,可以自动检测流数据中SMART特征分布是否发生变化,并同步更新模型。
目前还没有研究使用强化学习方法解决故障硬盘预测问题,本文认为硬盘序列数据随时间到达和模型给
出预测结果的过程可视作一个顺序决策过程。数据不平衡问题在转化为强化学习后体现为整个决策过程过长,且奖励过于稀疏,因此本文通过奖励塑造(Reward Shaping)设置日常奖励与探索机制以解决此问题。强化学习的另一个优势在于智能体会代替数据中心管理员直接决定是否更换硬盘,并确保该行为能取得的期望收益最大。
1.2 深度Q网络
强化学习(Reinforcement Learning, RL)是机器学习的一个分支,主要研究如何使一个智能体在与环境交互过程中学习到最优策略,以解决各领域的顺序决策问题。在强化学习中,智能体在接收到环境的当前状态后,将根据某种策略选择一个动作执行。环境状态会因为该动作执行而改变,并给出一个关于该行为的反馈。智能体的目标是根据反馈不断调整策略,使其能够在一次完整的顺序决策过程中获得最大的累积回报。
Q-Learning是一种基于值函数的强化学习方法。此类强化学习方法的基本步骤是先评估值函数,再利用值函数改善当前策略。策略决定了智能体在不同情况下采取什么行为,即智能体在当前状态下采取各个行为的概率。当智能体采取策略π时,累积回报服从一个分布。Q-learning学习状态—行为值函数,该函数给出智能体在给定状态和行为下能获得累积回报的期望值。具体来说,Q-learning维护一张记录状态—行为期望值的表格,通过遍历足够多的情况更新表格,完成学习后用Q表格指导智能体选择最优行为。Q值更新公式如式(1)所示:
Q(S t,a t)←Q(S t,a t)+α[r t+γargmax a Q(s t+1,a t+1)-Q(s t,a t)(1)
其中,α是学习率,γ是折扣系数。针对状态空间维度很大或连续空间的问题,值函数无法用表格表示,需要用函数逼近表示。深度Q网络(Deep Q Network, DQN)[23]使用深度神经网络代替表格来拟合值函数。此外,DQN还使用了经验回放和目标网络,打破了数据的相关性,使训练过程更加稳定。
文献[24]使用DQN算法训练智能体玩雅达利游戏,取得了不错的效果。后来学者在此基础上提出一系列改进方法。文献[25]提出Dueling DQN对状态价值评估进行改进,使用状态函数只评估状态好坏,使用行为优势函数评估该状态下行为的好坏,取得了更好的效果;文献[26]提出优先级经验池,根据训练时的损失及到达时间为元组增加采样时的优先级,不仅加快了训练速度,而且提升了效果;文献[27]提出Double DQN,使用两个相同的网络分别负责目标动作选择和目标Q值计算,解决了DQN的过估计问题;文献[28]整合了当前一些DQN的扩展,在此基础上提出的Agent57方法首次在所有雅达利游戏中都超过了人类的平均水平。
DQN算法除应用在雅达利游戏等模拟环境中外,也有学者致力于使用DQN算法解决各种现实问题。文献[29]尝试将DQN应用于交通灯控制问题,以交通灯的相位和交通状况作为状态输入,以智能体对交通信号灯的切换控制作为行为,根据交叉路口的队列长度、吞吐量设计奖励。通过DQN训练智能体,最终在真实环境中验证了该方法的有效性。
在故障硬盘预测问题中,本文把一段时间内的SMART数据视为RL中的一个状态,SMART属性数量和取值范围决定了本文的状态空间是高维连续的,动作空间是低维离散的,因此使用DQN可很好地解决强化学习下的故障硬盘预测问题。
2 基于DQN的故障硬盘预测方法
本文提出一个基于DQN的故障硬盘预测框架,主要包括基于马尔可夫决策过程(Markov Decision Process, MDP)的故障硬盘仿真环境以及基于DQN的故障硬盘预测模型。方法框架如图1所示。
硬盘的SMART日志数据随时间到达,智能体要根据硬盘当前的状况自主决定是否更换硬盘,智能体应尽可能地更换即将发生故障的硬盘,并保证健康硬盘不被误更换。在训练阶段,本文方法将已有的SMART数据集预处理成单块硬盘的数据流,模拟真实环境中硬盘日志数据到达的形式,建立基于MDP的故障硬盘预测系统。该系统通过滑动窗口切分状态并给出各行为的奖励,通过与该系统的互动训练智能体。完成训练后,部署在真实环境中的智能体在处理随时间到达的硬盘数据流时,会将互动情况以元组形式存入经验池。智能体对经验池中的元组进行循环采样训练,实现在线学习。
2.1 数据预处理
硬盘厂商利用SMART技术监控硬盘内的硬件运行情况,SMART属性值分为原始值和归一化值两种。原
始值是该属性在硬盘使用过程中产生的计数值或对应物理状态的值,归一化值是将原始值标准化至1~253之间后的值
··20
第 3 期管文白,房笑宇,夏彬:基于深度强化学习的故障硬盘预测与处理方法
(1表示最坏情况,253表示最好情况)。因为不是所有属性都能反映出硬盘故障趋势,所以首先需要去除不相关的属性。文献[30]比较了故障和健康硬盘每个SMART属性的平均值,候选了22个在两类样本中具有显著差异的属性。本文认为这些属性在故障硬盘预测任务中发挥了更重要的作用,因此筛选出这些属性。表1列出了选择的
SMART属性。
由于不同的SMART属性取值范围不同,为了避免误差,需要进行标准化。具体公式如下:
s′=S-S min
S max-S min(2)其中,S是某SMART属性的原始值,S max是数据集中该属性的最大值,S min是数据集中该属性的最小值。
数据集以天为单位存储所有硬盘的日志数据,而在工业实践中,单块硬盘的日志数据随着时间以流的形式到达。本文方法将数据集中每块硬盘的SMART数据还原成时间序列分别进行存储,构建硬盘仿真环境。该环境每次采样出一块硬盘的序列数据,使用滑动窗口切分出各个状态,并通过预测窗口记录硬盘寿命,构建马尔可夫决策过程。
2.2 基于MDP的故障硬盘仿真环境
在数据中心中,每天都有大量硬盘数据到达,数据中心管理员需要根据这些数据判断哪些硬盘存在潜在的故障风险,并且决定是否在当天更换这块硬盘,以防止更大的经济损失。因此,可将数据中心中每一块硬盘的维护过程视作一个序贯决策问题,硬盘的整个生命周期就是一个完整的顺序决策过程。本文考虑将故障硬盘预测问题建模成一个马尔可夫决策过程(MDP),使用强化学习方法解决此问题。
智能体要根据硬盘过去一段时间内的数据决定是否更换该硬盘,本文定义:状态窗口m为智能体采取一次行为需要观察的硬盘序列长度;预测窗口n为预测未来多久时间内是否会发生故障,奖励函数需要根据硬盘剩余寿命判断智能体的行为是否合适,若硬盘在预测窗口内发生故障则需要更换,否则不更换;剩余寿命l为当前状态下硬盘距离故障发生还有多少天,当预测窗口内没有故障时,该
Table 1 Selected SMART attributes 表1 选择的SMART属性
SMART属性SMART_4_RAW SMART_5_RAW SMART_7_NORM SMART_7_RAW SMART_9_RAW SMART_12_RAW SMART_183_RAW SMART_184_RAW SMART_187_RAW SMART_188_RAW SMART_189_RAW SMART_190_NORM SMART_190_RAW SMART_192_RAW SMART_193_RAW SMART_194_RAW SMART_197_RAW SMART_198_RAW SMART_199_RAW SMART_240_RAW SMART_241_RAW SMART_242_RAW
含义
电机启停次数
重映射扇区计数
寻道错误率
寻道错误率
通电时间
设备开关计数
串口降速错误计数
I/O错误检测
无法校正的错误
命令超时
高飞写入
气流温度
气流温度
断电返回计数
磁头加载/卸载计数
温度
当前待映射扇区计数
脱机无法校正的扇区计数
访问校验错误率
磁头飞行时间
LBA写入总数
读取剩余寿命
SMART数据集
数据中心
Fig. 1 Framework of the hard diskfailure prediction method based on DQN
图1 基于DQN的故障硬盘预测方法框架
··21
2023 年软件导刊
值为-1;滑动窗口k为切分状态时移动的窗口长度。
马尔可夫决策过程通常由元组(S,A,P,R,γ)定义,其中S为有限的状态集,A为有限的动作集,P为策略,R为回报函数,γ为折扣因子,用来计算累积回报。下面给出故障硬盘预测与处理的马尔可夫决策过程各个元素的定义。
(1)状态集S。考虑使用硬盘过去一段时间内的SMART数据,因此S的维度为(m*n),其中m为状态窗口大小,n为SAMRT属性个数。硬盘在使用过程中并非突然损坏,其在故障实际发生之前会经历一个
较长的恶化过程,单独一个时间步的数据不足以支撑模型作出有效判断,因此需要充分考虑数据中的时序特征。本文方法选择叠加一个时间窗口的数据作为马尔可夫决策过程中的单个状态。
(2)动作集A。本文定义动作集为{0,1},其中0是继续使用该硬盘,1为更换该硬盘。强化学习智能体在每块硬盘的整个生命周期中,能采取的行为只有继续使用和更换两种。因此,在故障硬盘预测与处理问题中,动作集为一个离散的有限集。
(3)策略P。策略是当前状态下智能体采取各个行为的概率,在强化学习的语境下属于随机性策略。
(4)奖励函数R。本文设置奖励函数,旨在引导智能体提前更换可能发生故障的硬盘。在智能体每次采取行动后,奖励函数都会根据预测窗口内该硬盘SMART数据的failure属性值判断该行为是否合适。failure属性标识当天该硬盘是否发生了故障,如果是则为1,反之则为0。如算法1所示,分别对应故障已经发生、故障还有很久才会发生、故障即将发生3种情况下采取不同行为能获得的奖励。其中,λ和μ是较大的常数(λ>μ),δ是较小的常数。总体而言,更换了还有较长寿命的硬盘或者直到故障发生都没有更换硬盘会得到很大的惩罚,在预测窗口内更换了硬盘会得到较大的正奖励。然而,过早更换故障硬盘可能会增加成本,太迟更换故障硬盘可能会来不及对数据进行备份和迁移,因此本文方法将正确更换行为的奖励设计成线性函数,当故障发生在预测窗口中央时采取更换行为将会获得最大的正奖励,在两端采取更换行为将会获得最小的正奖励。一块硬盘的整个生命周期中大部分都是健康状态,当智能体在该
状态下选择继续使用硬盘时,本文给出一个很小的正奖励δ作为日常奖励,鼓励其继续探索更长远的情况以解决奖励稀疏问题。设置较小的日常奖励可防止结算奖励被稀释。
算法1奖励计算方法
输入:当前状态(s t),剩余寿命(l t),采取的行为(a t)
输出:奖励r t
1. IF l t= 0 THEN
2. IF a t=0 THEN
3. r t=-λ
4. ELSE a t=1
5. r t=μ
6. END IF
7. ELSE IF l t= -1 THEN
8. IF a t=0 THEN
9. r t=δ
10. ELSE a t=1
11. r t=-λ
12. END IF
13. ELSE
14. IF a t=0 THEN
15. r t=-δ
16. ELSE a t=1
17. r t=μ+2()λ-μn|||l t-n2|||
18. END IF
19. END IF
20. END
(5)折扣因子γ。折扣因子用来计算累积回报,在强化学习中决定了智能体在作决策时考虑多长远,具体数值在实验部分给出。
在强化学习的每个回合(Episode)中,智能体以多元时间序列形式获得一块硬盘的所有数据。本文将一块硬盘的整个运维过程视为强化学习的一个回合,在每个回合中,智能体会与仿真环境进行多次交互,一次交互即为回合中的一步。每一步的状态为一个时间窗口内的硬盘序列数据,智能体根据当前状态采取最优行为,环境根据预测窗口内failure属性的值判断采取的行为是否合理,并给出正奖励或负奖励,之后进入到该回合的下一步重复上述过程,直到整个回合结束。
2.3 基于DQN的故障硬盘预测模型
由强化学习的设置可见,故障硬盘预测系统的状态空间连续且相当复杂,动作空间离散且较为简单。传统基于值迭代的方法,如表格型强化学习需要在内存中维护一张表格记录状态—动作对应的价值。对于一个状态—动作空间复杂度高的问题,遍历所有状态十分消耗资源。DQN是深度学习与强化学习的结合,使用深度神经网络以近似状态—行为值函数,解决了Q学习在复杂状态空间中的维度灾难问题。在
此基础上,DQN作出了两个重要改进:一是经验回放,强化学习采集的数据之间存在关联性,并不是独立同分布的,通过将经验数据以元组{S
t
,a t,r t,S t+1}存储在经验池中进行采样训练,打破了数据间的关联,使训练过程更加稳定;二是目标网络,处理时间差分算法中的TD偏差。
本文使用DQN算法求解上述强化学习问题。在故障硬盘预测与处理环境中,硬盘SMART数据流随时间到达,智能体根据现有数据判断硬盘健康状况,决定是否更换即将发生故障的硬盘。如图2所示,本文模型主要由输入层、多层感知机、决策层组成。
状态是过去一段时间内的SMART数据,单个时间戳
··22

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。