首页
学习
活动
专区
工具
TVP
发布

智能运维实践:存储性能预测技术

智能运维实践:存储性能预测技术

背景:

性能是存储系统提供的最重要能力之一,对数据中心的顺畅运维非常关键。作为IT系统IO栈的基座,存储如果出现性能问题,会导致上层应用的一系列问题,通常而言这些问题都非常难定位(需要全栈性能分析)。所以对数据中心的运维人员,一个重大挑战是如何确保存储性能满足业务系统的需求,避免性能问题。解决这个问题的前提,是对存储系统的性能需求有明确的了解,并能准确预测未来需求:

业务系统的性能需求非常复杂,不同的业务系统有不同诉求(IOPS、带宽、时延);同一个业务系统在不同时间段有不同诉求(如:工作时间与非工作时间,交易业务与月度/季度/年度结算等);随着企业发展,业务系统的性能诉求也在不断变化(如客户量提升带来的性能要求变化)。这就导致很难通过人工来管理和预测性能变化,从而提前准备预案(存储扩容,业务迁移、均衡等)。这也加大了出现性能问题的概率,增加了数据中心的运维成本(OPEX:Operating Expenditure)。

传统解决方案通过性能超配(Over Provisioning)方式来规避问题。即购买更多、更好的存储,满足未来长时间的性能需求。这个解决方案极大的增加了数据中心的采购成本(CAPEX:Capital Expenditure)。

很显然,如果能提前获知性指标的变化趋势,就可以帮助客户数据中心提前规划,降低性能事故率;也可以避免超配,以最小的代价满足性能要求;从而极大降低数据中的总体拥有成本(TCO:Total Cost of Ownership, TCO = CAPEX + OPEX)。在智能运维领域最重要的实践之一,就是性能进行预测。

性能趋势是否可以预测

性能预测是一个极具挑战性的问题,简单算法根本无法应对复杂的实际情况。但随着大数据和机器学习算法的进步,准确预测成为可能。

存储设备会定期对性能指标进行采样,这些性能数据是典型的时间序列,性能预测实质就是实践序列的预测问题,这是一件极具挑战性的工作。虽然有很多预测算法,包括HMM,ARIMA,Holter-Winter等经济型模型,以及机器学习中SVR,随机森林,以及LSTM等算法都能对某些特征的序列进行预测,但是对通用时间序列进行高精度预测仍有巨大挑战。不同的时间序列,要根据其自身的特征选择最合适的方法才能做到精准预测。同时,在不同的存储设备上,同样的业务表现出的存储性能虽然不尽相同,但是仍然表现出一些相似点。利用人工智能技术,基于这些业务特点,根据时间序列的周期性,增长趋势,以及脉冲波动等特征选择一个最优算法进行性能预测是可行的。

另一方面,机器学习也在不断推陈出新,为预测问题带来了更多的方法和全新视角。如在全球最权威的计算机视觉竞赛ILSVRC(ImageNet Large Scale Visual Recognition Challenge)上,通过不断增加深度学习算法中神经网络层数等,不断刷新图片类别预测精度。而DRL(Deep Reinforcement Learning:深度强化学习)机制也让AlphaGO演进到AlphaZero,在无先验知识的情况下,自主学习,最终完胜人类顶级围棋高手。这些最先进的技术都在不断推动相关领域的进步。

性能预测模型训练过程

一个性能预测模型的训练程主要分为数据收集,数据预处理,数据集划分和算法研发几步,具体过程如下:

性能预测模型训练过程

数据收集。存储设备或上层运维系统会等周期性地对存储设备的性能数据进行采样。这些连续采样就形成了标准的时间序列,并作为算法研发的数据集输入。

数据预处理。采样数据中,因为采样方法或者设备问题等,经常会采集到一些异常数据,这些数据不仅不能作为训练算法的数据,一旦被使用还会成为噪音,影响算法稳定性以及真实规律的挖掘。因此在算法研发之前,需要对数据集进行预处理,主要包括异常值检测和空缺值填充等。需强调的是,预处理是为了让数据更真实,而不是为了提高数据的可预测性。

数据集划分。不同于其他预测,时间序列预测最大特点是数据具有时间维度,因此必须按时间进行训练集和测试集的划分。一个典型的做法是,将数据集最后两周的数据作为测试集,将之前的所有数据作为训练输入,然后进行时间序列预测。

算法研发与集成学习。使用数据特征聚类,再加集成LSTM,HMM,ARIMA,Bayesian,SVR等多种机器学习算法对性能指标时间序列进行分析预测。根据不同类别时间序列的特点,进行动态调参,最终实现较好的预测效果。此外,华为存储团队也在投入基于强化学习的算法研究,目前已经取得初步成果。

华为存储的性能预测能力

华为存储智能运维团队基于业务的真实数据,结合性能数据特征进行特征提取,分类,然后利用多种机器学习算法进行集成学习,经过数据预处理,离群点识别,空缺值填充后,在规律复杂,震荡严重的性能预测上,仍可以将预测的RMSE(Root-Mean-Square Error:方均根差,用于衡量预测数据与实际数据的差异度,越小越好)控制在10%以内;在部分业务,预测的准确性甚至达到低于5%的水平,可以满足主要业务场景的预测需求。

性能预测算法结果

上图,纵轴为IOPS,横轴为时间。褐线为业务的真实IOPS值,蓝色实线为IOPS预测值。此外,还给出了性能指标可能出现的最大波动范围(蓝色区域为95%的可信区间)。在将类似算法用在趋势相对稳定的容量预测上,可以做到相对误差低于10%,部分容量预测精度可控制在0.1%以内。而正在引入的强化学习机制,也将让整个预测过程更加自动化,智能化。

基于当前的研究成果,华为存储可通过云端运维系统eService提供在线性能的精准预测;同时在华为STaaS(Storage as a Service:华为存储的Management SDS方案)解决方案中,也可以为封闭数据中心场景提供性能预测功能。

展望:基于性能、容量预测,优化存储运维

性能预测是存储智能运维最重要的能力之一。利用这个能力(以及基于类似原理的容量预测能力),我们可以在存储运维上做大量优化:

利用性能预测优化存储运维

资源优化。基于性能、容量预测数据,可大幅减少资源超配比例,并可根据预测提前做好资源扩容工作,提升设备利用率,降低TCO。

采购推荐。结合目前业务对于存储性能和容量的消耗趋势,准确评估业务在未来一段时间的存储需求,准确,定向的采购符合要求的设备。可以有效避免设备采购不足带来的二次采购,也可以避免设备采购过剩带来的资源闲置浪费。更加智能的系统,可以在采购设备时进行推荐,确保最优投资收益比。

等级调整。基于性能预测和性能走势分析,可以准确定位业务未来的SLA(Service Level Agreement)等级,便于在业务安置,QoS策略调整上更加合理。

数据流动。业务性能的需求是数据流动的一个重要影响因数,准确的把握数据的性能变化,就有助于进行准确的数据流动。

瓶颈识别。在存储设备,组网信息等基础上,通过各业务的性能预测,可以及时准确的识别到整个网络及各设备的瓶颈点,有助于提前发现问题。

异常检测。利用性能时序数据的趋势分析开展异常检测,不仅能将数据的动态变化性考虑进去,避免误报,还能有效识别正常范围内的异常情况,降低漏报率,有助于性能异常的及时、正确被发现,并采取相关动作。

综上所述,性能预测可以帮助用户更高效,简易,放心的使用存储,降低数据中心存储侧的TCO,是存储智能运维最重要的实践之一,也是华为在智能运维上最早投入的方向之一。在智能运维这个方向,华为存储将持续投入,将人工智能时代的创新技术应用到更多场景,为客户带来更大价值。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180227G1FBHB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券