本期将由 KaiwuDB 高级研发工程师孙路明博士为大家介绍《SUFS: 存储资源使用量预测服务》,本文将公布于 ICDE 2023。
一、背景介绍
1. 存储资源使用量预测的意义
在典型的 IT 服务或利用中,计算、网络、存储是撑持下层应用服务的三个根底,保障存储系统的可用性对服务和利用的稳固运行有重要意义。存储系统可用性的一个重要方面就是有足够的容量,能够满足写入、存储的需要,所以正当布局存储系统的空间资源就十分重要。为了布局存储系统资源,就须要对资源的使用量进行预测,在预测的根底上进行资源的布局、扩缩容等操作。
因为目前很多存储是以云服务的模式提供的,对存储资源进行预测对于服务的提供商和使用者都很重要。对服务商来说,精确的预测资源使用量能够帮忙他们在保障服务的 SLA 同时防止额定的开销;对用户来说,能够在满足本人业务需要的状况下更正当的申请配额(Quota)或者购买资源。
本文关注的存储系统范畴比拟宽泛,包含传统的文件存储、各式各样的分布式存储系统,比方最典型的 HDFS,也包含各种数据库系统,比方 MySQL 这类关系型数据库或者各类的 NoSQL 数据库等等。
2. 存储资源使用量预测的现状和挑战
当初一些存储系统的容量布局比拟依赖启发式规定或者人的教训常识,对将来的使用量预测的不准,这种不精确又能够分为高估(overestimation)和低估(underestimation),这两种不精确也会产生不同的影响。
如果高估了将来的资源用量,那就会过多的配置存储资源,导致空间节约和不必要的开销;如果预测的偏低,那可能会造成存储资源有余,重大的话会导致数据无奈写入和数据失落的危险,影响零碎的可用性。
如下图所示,造成启发式规定或传统时序预测模型在存储资源使用量预测工作中无奈提供精确预测的起因次要有两个:
- 不同存储系统、同一存储系统的不同用户,其存储使用量曲线的模式区别十分大
- 存储资源使用量中存在突增突降,对模型预测产生极大的影响
因而,本文提出了一种加强的 LSTM 神经网络应答存储资源使用量时序数据中的突增突降问题,提出了自适应的模型集成计划解决不同零碎、同一零碎内不同用户存储资源使用量模式差别大的挑战。
二、SUFS 架构与算法
如上图所示,SUFS 在不同的存储系统中应用 Agent 采集存储空间使用量的历史数据并存储,在对数据进行预处理后,应用自适应模型集成办法对将来多天的存储资源使用量进行预测,依据预测后果提供资源的监控告警、容量布局、动静扩缩容等服务。
1. 加强 LSTM 神经网络
LSTM(Long Short-Term Memory)是一种循环神经网络 RNN 的变体,本文提出的加强的 LSTM 神经网络,在一般 LSTM 神经网络的 Input Gate 前退出额定的一个信号量,该信号量的值与磁盘使用量的值是否为突增突降无关,而判断是否突增突降应用了 IQR 测验办法。
其工作原理为 :如果 IQR 判断以后的磁盘应用量值是突增或突降,则该信号量是一个极小的值,在 LSTM 外部就能够管制以后使用量不对已有状态产生影响,使得模型疏忽掉这些渐变;而当没有遇到突增突降时,这个加强的 LSTM 神经网络模块与一般 LSTM 无异。
此外,这个神经网络还思考到属于同一用户或服务的存储资源应用具备相似模式的景象,通过存储资源实体编码嵌入网络,将这种先验常识退出到模型的预测中。
2. 自适应模型集成算法
为了在一个对立的预测服务中实现不同模式时序数据的预测,这篇文章提出了一种自适应的模型集成办法:
模型集成(Model Ensemble):机器学习的一种范式,在模型集成时,通常会训练多个模型解决雷同的问题,并且把这些模型的后果联合起来以取得更好的后果。
这些被集成的模型称为弱学习器或者叫基模型,当基模型被正当的组合起来的时候,咱们能够失去更精确或者更鲁棒的预测后果。一些常见的模型集成办法包含 Bagging、Boosting、Stacking 等,本文中用到的办法属于 Stacking 这一类,是将多个基于不同算法的基模型的预测后果,通过某种形式将后果组合起来。
应用模型集成的出发点就是因为不同的基模型对于不同模式的时序数据会有不同准确率,比方后面提出的加强的 LSTM 神经网络会更实用于带有渐变的时序数据,而 SARIMA 模型更实用于带有周期性的时序数据等。
在将多个基模型的预测后果进行集成时,一种简略并且常见的计划是将不同基模型的预测后果进行加权均匀,比方对某一天的使用量预测一个是 10,一个是 8,那集成后的后果就是 9。然而这种均匀的集成计划还是存在弊病,不能充分发挥某一个基模型对其适宜数据的预测能力,本文提出的模型集成则具备两个特点:
- 不同存储资源使用量序列的模型集成权重不同(Sequence-wise)
- 同一序列、将来多天预测时,每天预测值的模型集成权重不同(Step-wise)
三、试验与总结
本文在多个实在生产环境的存储系统上进行了试验后果验证,从预测误差散布、典型特例剖析、存储代价节俭、模型预测开销等多个角度验证了提出办法在存储资源使用量预测工作中的有效性。
本文所解决的存储空间使用量预测问题,是应用人工智能技术帮助零碎运维的一个利用,属于 AI for DB 的领域。AI for DB 蕴含的内容很多,波及到数据库的各个方面,KaiwuDB 的 KAP 自治平台, 同样提供蕴含存储空间预测在内的多项自治运维服务。