可在www.sciencedirect.com在线获取理论计算机科学电子笔记340(2018)41-54www.elsevier.com/locate/entcs基础设施即服务(Iaas)环境中的故障分析建模Bashir Mohammed,Babagana Modu,Kabiru MMaiyama Hassan Ugail,Irfan Awan英国布拉德福德大学电气工程与计算机科学学院Mariam Kiran2能源科学网络(ESnet)劳伦斯伯克利国家实验室美国加利福尼亚州伯克利摘要故障预测长期以来一直是一个具有挑战性的问题。随着技术的发展趋势和高性能云数据中心基础设施的日益复杂,关注故障变得非常重要,特别是在设计下一代系统时。 传统的运行时容错技术,如数据复制和周期性检查点,对于处理当前最先进的新兴计算系统不是很有效。这就迫切需要一个强大的系统,深入了解系统和组件故障,以及准确预测未来潜在系统故障的能力。在本文中,我们研究了国家能源研究科学计算中心(NERSC)在五年使用从计算机故障数据存储库(CFDR)收集的数据,我们开发了一个有效的故障预测模型,专注于高性能云数据中心基础设施。使用自回归移动平均(ARMA),我们的模型能够预测系统中潜在的未来故障我们的结果故障预测准确率达到95%,效果良好。因此,我们相信,我们的策略是实用的,可以适应在现有的实时系统中使用关键词:关键词:故障预测,Iaas,复制,HPC,检查点1引言故障是指组件或系统无法根据其规格执行所需的任务或功能。随着我们对计算的需求不断增长1电子邮件:bradford.ac.uk2电子邮件:mkiran@es.nethttps://doi.org/10.1016/j.entcs.2018.09.0041571-0661/© 2018由Elsevier B. V.这是一篇基于CC BY-NC-ND许可证的开放获取文章(http://creativecommons.org/licenses/by-nc-nd/4.0/)。42B. Mohammed et al. /Electronic Notes in Theoretical Computer Science 340(2018)41随着云计算资源和性能不断推动高性能系统和云数据中心的发展,对云系统故障和错误及其统计和经验属性的深入了解的需求也在不断增长[3]。了解这些关键特性有助于预测可能的故障,并评估不同技术的有效性,以提高整个系统的可用性。它还可以使研究人员能够为云服务提供商和客户设计和开发新的最先进的解决方案。云计算是一个用来描述广泛的在线服务的术语。根据美国国家标准与技术研究所(NIST)[32],云计算被定义为“一种模型,用于实现对可配置计算资源的共享池的无处不在的、方便的、按需的云计算服务提供对在线计算资源池(诸如虚拟机、计算服务器集群或网络存储)的方便、可扩展、按需访问[6]。值得注意的是,云计算系统的规模和复杂性使失败成为不可避免的这些故障可能是由系统资源不足或系统本身的意外故障引起的。因此,确保这些系统的可靠性和可用性至关重要[25]。云服务提供商(CSP)也迫切需要在出现故障时向其客户提供可扩展、高效和可靠的按需资源,从而满足其服务水平协议(SLA)。云基础设施中的组件故障很常见,但大型云数据中心的设计应保证业务系统的一定可用性。云结构即服务(IaaS)云提供计算资源(例如,CPU和内存)、存储资源和网络容量,以确保在出现此类故障时的高可用性[1]。云系统可能具有巨大的故障率,因为它们具有许多地理上分散的高工作负载服务器。如果故障得不到有效处理,此类系统的可用性可能会很快受到威胁[1]。为了保证云用户的服务可用性,云基础架构的设计应确保系统停机时间最小或无意义。数据复制和检查点技术是用于确保云服务可用性的一些常见的现有策略[2]。故障预测对于预测性维护是必要的,因为它能够防止故障事件和维护成本[38]。预测性维护是关于预测故障并采取主动行动[40]。机器学习和云存储的最新进展创造了利用云基础设施生成的大量数据为预测组件何时可能发生故障或故障提供了空间[3]。目前,数学和统计建模是用于故障预测的主要方法,这些方法分别基于设备退化、物理模型和机器学习技术[29]。根据[4],云计算通常与失败有关。失败的风险可以被看作是在云计算生命周期中遭受损失或暴露的可能性[33]-[36]。一般来说,B. Mohammed et al. /Electronic Notes in Theoretical Computer Science 340(2018)4143云计算风险管理包括用于降低云计算失败风险的流程、方法和技术云计算提供了三个层次的基本服务:基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。• 基础设施即服务(IaaS)是最基本和最重要的云服务模式,提供虚拟机、负载均衡、容错、防火墙和网络服务。向客户端或云用户提供供应处理、存储、网络和其他基础计算资源以部署和运行任意软件(诸如操作系统和应用)的能力。这些服务的常见示例包括Rackspace、GoGrid、EC2、Google Apps、Accuur、CiscoWebex、Citrix GoTo Meetings、Adobe Marketing Cloud、Facebook、Flickr和Amazon Cloud [8]。• 在PaaS模式下,提供包括API、操作系统及开发环境的计算平台,以及编程语言执行环境及网络服务器。客户端维护应用程序,而云提供商维护服务运行时、数据库、服务器软件、集成的面向服务器的架构和存储网络。各种类型的PaaS供应商可以提供完整的应用程序托管,开发,测试和广泛的集成服务,包括可扩展性和维护。一些关键的参与者包括微软Windows Azure和谷歌应用程序引擎Go-Daddy,Windows Azure,Apprenda,谷歌应用程序引擎,亚马逊网络服务,WordPress。这些服务的主要好处包括专注于高价值的软件而不是基础设施,利用规模经济并提供可扩展的进入市场能力[39]。•SaaS为客户端提供了使用在云基础设施上执行的提供商应用程序的能力整个应用程序可远程使用,并可通过瘦客户端界面(如Web浏览器)从多个客户端设备访问。云用户不管理或控制底层云基础设施[2],但提供商安装和操作应用软件。此服务的示例提供商包括Salesforce,Facebook和Google Apps,Amazon EC2,Rackspace , Microsoft Azure , Google Compute Engine 和 Amazon WebServices[9]-[11]。本研究的目的是开发一个准确的模型,用于预测未来的故障趋势的系统组件在一个高性能的数据中心云基础架构。本工作的主要贡献如下:• 探讨分析和预测公开失效数据集的意义。• 开发和测试分布式计算系统的时间序列模型故障预测,灵敏度和44B. Mohammed et al. /Electronic Notes in Theoretical Computer Science 340(2018)41• 以精确的定量方式估计所选故障数据集的可用性特征• 使用生产故障数据集测试和验证我们开发的模型的预测准确性。本文的其余部分组织如下:第2节简要总结了与本研究有关的工作第3节生动地描述了我们的方法,我们提出的系统模型制定和我们的数据集的简要概述。第4节讨论的结果,分析的系统故障分布在整个时间的研究和故障预测。第五部分是论文的最后总结。2相关工作故障对云数据中心基础设施、高性能计算和分布式服务器系统的可用性和可靠性的影响然而,很少有工作试图完全分析和预测高性能和云故障数据的经验特征。[12]中的作者已经很好地尝试分析由超过12,500台服务器组成的大规模生产云环境的故障数据,其中包括对云工作负载和服务器的故障和修复时间以及特征的研究,但他们从未分别考虑工作负载强度和系统大小之间的故障相关性。[13]中的作者从许多数据源描述了云计算中心的硬件可靠性,但未能分析工作负载的 故 障 , 并 且 在 实 验 中 没 有 使 用 公 开 的 数 据 集 。 Kavulya 等 人 [14] 从 生 产MapReduce超级计算集群中呈现工作负载故障特征他们也没有在工作中使用公开可用的数据集。作者在[3]中使用贝叶斯网络来预测失效概率。虽然这项研究看起来很有趣,但他们没有透露他们使用的数据集,因此很难复制或比较其他机器学习(ML)算法与他们提出的模型。[15]使用集成分类器在云基础设施上实现硬盘驱动器故障预测。他们进行工作的数据是通过两个来源获得的:Windows性能计数和自我监控,以及分析和报告技术(S.M.A.R.T或SMART)。这项研究与预期的工作非常然而,他们在云架构中只考虑了硬盘故障,而业务系统依赖于其他组件(如CPU,磁盘,DIMM,电缆等),而不仅仅是硬盘。最近,[16]使用从循环中获取的数据来预测集成电路(IC)故障。与[15]的情况一样,他们也仅考虑了一次硬件故障。他们分析了14个硬件样本,但他们使用的数据尚未公开。我们的方法是使用公开的硬件数据集来获得机器学习(ML)分类器来预测硬件故障,与大多数状态相反,B. Mohammed et al. /Electronic Notes in Theoretical Computer Science 340(2018)4145∼艺术品。我们决定使用公共数据集,使该领域的其他研究人员能够将他们的结果与我们获得的结果进行比较。此外,在这项工作中,我们不限制我们的实验,以一个单一的硬件,而是我们试图预测几个组件故障。对于其他学者的其他文学作品的更全面的评论,读者可以参考[17]-[25]。3方法本节生动地描述了我们的方法。由于该研究的重点是大规模基于云的基础设施中系统故障频率的数据驱动建模。从根本上说,故障数据流通常是时间相关的,并且在给定的规则时间跨度上被记录。这种情况使得应用时间序列模型(如自回归(AR)和移动平均(MA))成为可能,参见分支[30]。对于初步分析和时间序列建模[31],将部署R编程语言版本3.4.13.1时间序列我们将基于云的基础设施环境中的时间序列定义为在给定时间段内系统发生的故障数量。 设X1,X2,X3,···,Xt是系统的故障次数,数学定义为:Xt=f(Xt−1,Xt−2,Xt−3,···,Xt−n)+εt(1)其中Xt是X在时间t的值,则Xt−1,Xt−2,Xt−3,···,Xt−n表示Xt的过去值,εt表示白噪声,其分布为εt<$WN(0,σ2)。εt是一个随机项,不遵循任何模式,无法预测。基本上,系统故障是随机的,但从某些可识别的原因来看,它很少是狭义上的确定性。几十年来,时间序列模型已被用于预测的所有研究领域[28]。自回归(AR),移动平均(MA)和指数平滑等Box和Jenkins[31]开发了一个经典的时间序列模型,称为自回归综合移动平均(ARIMA)。这些技术成功地应用于各种领域,如数据中心,复杂的工业系统和运输网络以及医疗保健,以预测其系统的故障[28]-[31]。3.1.1自回归过程假设时间序列{Xt}在时间t有p个过去值Xt−1,Xt−2,Xt−3,···,Xt−p,则p阶AR过程表示为AR(p),定义为:Xt=<$1Xt−1+<$2Xt−2+<$3Xt−3+···+<$pXt−p+εt,(2)其中εtWN(0,σ2)和εt对于每个