vlambda博客
学习文章列表

光模块智能运维AIOps

1.什么是运维?

运维,顾名思义,运行+维护(Operation and maintenance),一般是指对大型组织已经建立好的网络软硬件(如数据中心)的维护。一个数据中心的日常运维工作涉及到很多方面,从数据中心机房的设计、暖通、动力、服务器、存储、网络、综合布线、系统、应用、开发、数据分析、数据挖掘。负责数据中心运维的人叫做运维工程师。

2.传统运维的痛点和智能运维的优点

所谓传统运维,直白的理解就是主要靠人工来进行维护。随着数据中心业务的增长,以人工为主的传统运维逐渐暴露出很多痛点。你想象中的数据中心应该是这样子的

但现实中的数据中心一般是这样子的

光模块智能运维AIOps

你想象中的运维工程师应该西装革履,手握笔记本,自信满满,是这样子的

光模块智能运维AIOps
光模块智能运维AIOps

但现实中的运维工程师其实很苦逼很累,是这样子的

光模块智能运维AIOps

然后,智能运维AIOps横空出世,直白的理解,AIOps就是使用人工智能、大数据、机器学习等等等等一系列高端大气上档次的技术进行数据中心维护,是一种以机器为主,人工为辅的运维方式。

光模块智能运维AIOps

智能运维的特点有:①稳定可靠(机器不会闹情绪),②省钱(机器不用发工资),③速度快(机器计算反应快)

3.光模块智能运维AIOps的内容

光模块作为数据中心必不可少的组成部分,又以故障率高而著称,因此也是智能运维的重点关注对象。市面上有很多厂家,包括设备商、互联网商家,都发布过针对光模块智能运维的相关系统,从故障发生的时间维度上看,光模块智能运维AIOps的功能可分为三个:①故障发生前预测,②故障发生时检测,③故障发生后定位+诊断+自愈。

按照H公司发布的《数据中心基础设施智能运维白皮书》,将运维分成了6个等级,颇有种自动驾驶分级的感觉。

光模块智能运维AIOps

按照上图的定义,如果AIOps实现了①故障发生前预测,②故障发生时检测,③故障发生后定位,则可以认为其达到了L3级别,如果能够把故障诊断+治愈也实现掉,那么就可以达到L4/L5级别。但实际上,单纯使用AI算法来达到L5基本是不可能的,其中的原因要从AI的特点说起。

人工智能专家告诉过我们,AI擅长解决的问题有下面三个特点:①单一领域,②海量数据,③完全信息和确定性。

对于光模块的AI算法来说,①单一领域,是本身属性,天生就满足。②海量数据,可以通过提高运维系统对光模块的信息采集速率,减小时间颗粒度来实现。

这里的海量数据具体有哪些呢?

光模块的高速引脚一般和交换机中的PHY芯片连接,低速引脚则和交换机中的CPLD连接。CPLD通过I2C或者MDIO协议将光模块中的寄存器直接映射了一份,存储到了CPLD中,这其中包括了DDM信息,TEC温度电流,CDR LOL告警等等,具体可以参考MSA协议SFF-8472,SFF-8636。所谓的海量数据其实就是通过CPLD收集上来的这些光模块寄存器值。

③完全信息和确定性,这个才是难点。围棋的规则很简单很明确,Alpha狗获得的是完整的信息,但是对于光模块故障,原因可能来源于很多方面,非常复杂,AI算法很难获取到完全的信息。

即便是获取了完整的信息,AI算法也无法提取出数据中的因果关系,也就说无法诊断出故障原因,后面的故障维修+系统治愈就更加不可能了。

4.使用AIOps后,运维工程师会失业吗?

答案是不会,其中的原因其实在上文中已经提到了,这边小黄人想多啰嗦些可能和主题无关的内容。

现在基于大数据和机器学习的AI技术兴起,很多人爱说一句话,叫做“知道相关性就够了”,比如最知名的沃尔玛“啤酒与尿不湿的销量在周末总会出现成比例增长”的例子,超市知道这个相关性后,其实不需要明白其中的因果关系,只需要把啤酒和尿不湿的货架放到一起,减少 顾客的行走时间就够了。

但是相关不是因果,这是一个很重要的论断,这个论断确保了运维人员在AIOps后也不会面临失业。

Judea Pearl和Dana Mackenzie 在《为什么:因果关系的新科学》(The Book of Why: The New Science of Cause and Effect Hardcover)中将因果思维分为了三级,第一级:观察寻找关联,通过数据分析进行预测;第二级,干预,预判一个行动的结果;第三级,想象,对以前发生的事情进行反思,反事实分析。

光模块智能运维AIOps

三个级别的三个代表性问题:这件事发生了,那件事情是否也会跟着发生?我采取这个行动后,会有什么后果?如果当初我没有这么做,现在会是怎么样的?

回答第一个问题,只要有数据就行了,这个AI很擅长,但是回答第二和第三个问题,就需要因果关系了,目前的AI是无法get到数据中的因果关系的,但是人却可以。

众多的AI算法如聚类、随机森林、时间序列分析,本质上都还是在寻找数据之间的相关性,AI能发现你和你大爷长得很像,但不能回答为啥你和你大爷长得很像这个原因。

AI只能在下面这个因果之梯的第一层活动,而我们人类可以活动在第二第三层。

光模块智能运维AIOps

那使用AIOps后,运维人员具体能干啥呢?

简单的说,AI算法负责从海量数据中挖掘寻找出相关性,运维人员使用只有人类才能发现的因果关系对这些相关性进行裁剪,给出应对策略,这些信息会被录入到专家知识库(类似于鱼骨图),AIOps后续就会从专家知识库中寻找故障的根因,进行故障诊断,乃至后期的故障自愈。

比如说,皇上发现自己的一个妃子怀孕了,但是感觉孩子的爹不是他,于是下旨彻查此事。这时候后宫的AIOps系统上报,发现该妃子、太监A和朝中大臣B前段时间经常一起出现在后宫的小森林里,那么你要问AIOps妃子肚子里孩子的爹是太监A还是大臣B?AIOps此时表示一脸闷逼,但如果你提前在专家知识库中告诉AIOps太监的生理缺陷,这时候AIOps就会告诉你正确答案了,事实上,太监A只是被妃子叫来望风的吃瓜群众罢了。至于应对策略嘛,不如就让大臣B也获得生理缺陷好了。

5.AIOps的本质和其他难点

灵魂之问,为啥要搞AIOps,它的本质是什么?

小黄人觉得是因为人的本性之一:获取并满足控制感。

毕竟数据中心里一颗一颗的光模块都是花钱买来的,就像是皇上后宫里面的妃子。早些年的时候,皇上只能靠着大臣、太监和宫女这些人工途径来管理并获取妃子们的信息。而现在有了智能手环、视频监控这些高科技手段,那管理起来真的是满满的控制感呢。

十几年前的非典时期,政府获取信息的途径有限,管控方式也不多,今年的新冠,情形就完全不一样了,绿码,人脸识别,轨迹追踪啥的,信息途径和管控方式简直太多了。

甚至有观点认为以前计划经济不灵光主要也是因为政府获取数据和信息的渠道有限,信息和数据的获取速度慢,如今科技发展极大地改善了这些问题,比如YL监控,雪亮工程,在这种条件下,计划经济完全是不是可以比市场经济玩的更好呢?小黄人不知道,也不敢多说。

那么光模块的AIOps在实现上还有其他哪些难点呢?

首先是信息保密上,AI要从客户的设备中收集信息用于训练和优化AI模型,这一点很多客户是不会同意的。当然一般设备商都宣传说数据只会保存在本地,不会联网,那TikTok都把服务器放在美国,连领导层都换成美国人了,不照样还是被川普大胸弟搞废了。因此很多互联网厂家会自己搞AIOps,为的就是数据保密吧。

其次是数据收集的准确性上,如今国内厂家生产的数据中心光模块中很多都是没有MPD的,原因很简单,为了省成本。可是没了MPD,光模块DDM中发射光功率这个数据就没有啥参考价值了,要知道发射光功率是一个很重要的性能参数。

只有确保了收集到的数据准确,AI才能够寻找出合理的相关性,否则系统动不动就来一个误报警,客户是很难接受的。

6.业内厂家AIOps的相关信息

锐捷

锐捷的AIOps信息是从论坛上找的,见链接1,内容比较直白,大家看看就行

光模块智能运维AIOps
光模块智能运维AIOps

美团

美团的AIOps来源于链接2,有一定的信息量

五、光模块异常预测与自愈,美团将光模块故障场景归纳为三种:端口闪断,秒级恢复;端口反复抖动;端口异常down。端口反复抖动是常规监控手段难以发现,美团专门为其探索一种光模块预测方式,通过对交换机日志和光模块数据进行分析,预判哪些端口模块会出现异常,从而防患于未然。

六、光模块故障数据分析,自愈系统与预测系统结合,可以在第一时间自动切掉流量,极大降低端口持续故障影响业务的可能性。对故障模块原因和故障模块类型进行分析,可以发现发光器异常占了70%,CMDM4类型模块占比最大超过了50%,所以需要在下一个POC阶段对CWDM4模块的发光器件进行重点测试。通过对100G光模块的故障管理,我们可以发现发光器件属于易损部件,在后续400G迭代中需要重点关注。

华为

作为行业龙头,华为的AIOps在网上公开的资料很多,这里仅放了链接3,链接4,其中的信息量就已经很大了。

其次,故障定位难。传统运维采用SNMP协议每5分钟收集一次网络信息,周期长、效率低。而且,传统运维的定位手段只能通过查看日志的方式从海量的故障告警和日志信息中根据个人经验排查定位问题,效率极其低下。据统计,一个故障的平均定位时间需要至少76分钟。网络运维人员直呼“宝宝心里苦啊”。

面对这些网络运维的难题,华为提出了从“网络应用—>网络路径-->网络设备”三个层面进行关联分析的FabricInsight网络智能分析器,构建基于AI的“秒级故障感知、分钟级故障定位”的智能运维能力。

现在,华为云数据中心网络每万个监控指标的告警量已由2014年的每天10个大幅下降到了0.5个,这主要有赖于对历史告警的大数据分析持续优化了监控告警阈值的设定,同时结合不同的网络场景使用过滤、去重和Flapping抑制等方法减少了无效告警数量。

光模块是云数据中心网络中故障率最高的部件,据华为统计,每年运行中故障率大概在2‰。而光模块一旦出现故障会造成丢包等问题,对业务影响很大,现网中就曾经发生过由于骨干链路上的一个光模块故障导致网络丢包、最终影响到了几十个应用的案例。因此,如果能通过对光模块的检测和预测提前识别问题就可以避免对业务造成严重影响。

为此,华为对影响光模块运行状态的指标进行了严密监控,每天收集现网80000个光模块的运行信息,结合专家经验和机器学习方法发掘光模块各指标与异常故障之间的关联,并循环调优检测算法,迅速识别已经故障的模块;同时,依靠机器学习和时间序列分析方法对未来一段时间内的多指标进行预测,判定光模块的未来状态是否满足异常故障的条件,并将已故障模块的历史指标序列作为输入样本来确定和调优预测算法,使得目前故障光模块的预测准确性已接近50%。

上面两段话虽短,却足够看得出菊花厂的技术沉淀之深刻,寥寥数语就把小黄人前文中那么多废话的意思给表达清楚了。

只是最后那个预测准确性接近50%,小黄人有点不太理解。一个模块的状态无非就是故障或者正常,就算瞎猜,也有50%的预测准确性啊,有可能是华为比较谦虚,没有把实际的准确率写进去吧。

参考内容

链接1:http://bbs.ruijie.com.cn/thread-37465-1-1.html

链接2:http://www.iccsz.com/site/cn/News/2020/06/02/20200602012931135404.htm

链接3:http://www.c114.com.cn/news/126/a1094128.html

链接4:https://e.huawei.com/cn/publications/cn/ict_insights/201708032013/special/201708041029