眼见为实:利用数据可视化改变数据中心网络的效能

原创
2023/10/26 20:01
阅读数 15


01

 背景 

在OPPO数据中心,当前网络拓扑图是手动绘制的。人工绘制的拓扑,随着网络架构的变化,绘制的拓扑图会逐渐维护不上,同时在绘图软件上绘制的静态拓扑图,是没法展示实时数据的。这就需要一个自动绘制,同时叠加实时网络数据的可视化网络拓扑图。


02

 挑战及解决方案 

数据收集:

动绘制网络拓扑,最容易想到是根据LLDP协议来发现设备互联信息,有了互联信息,即可绘制网络拓扑。然而现实并不那么简单。

初步接触后,发现在数据中心内,网络设备获得的LLDP信息,存储在MIB中,需通过SNMP协议来获得,这有不小的挑战。OPPO基础网络使用的厂商众多,各厂商格式,内容并不完全一样;更艰难的问题是厂商存在bug,会导致信息采集不全,修正需要升级,但不是每台设备都能不中断业务升级。

此外,机房众多,历经多年演变,从开始的传统网络架构,到云化数据中心网络架构,到全球混合云网络架构,导致网络拓扑复杂多变。有传统的烟囱式网络架构,全三层的Spine-Leaf架构,最新的facebook多平面的Spine-Leaf网络架构,同时还有一些非标的网络区域、扩展区域。如何收集和处理网络拓扑数据,是最开始的挑战。

数据处理:


我们最先遇到的问题其实是看起来非常简单的问题,就是网络设备的命名标准化,一般来说通过命名,是可以获得设备位置、类型、厂商型号等信息。但实际情况不是那么简单,历任网络运维人员都会有一些自己的命名习惯,或者是无意的错误命名,另外还有网络架构上的变化导致的命名上增加字段,比如最新的F4网络架构,就需要标识不同平面的网络。为此需要制定命名标准,整改设备名称。

当然光有设备命名标准化是不够的,还有其他网络数据的标准化,这里不一一列举。

标准化设备命名后,摆在眼前的问题是:

  • 如此杂乱复杂的网络拓扑如何展示?老的机房是多次扩建,网络拓扑层层叠加,资深的网络运维都不愿意操作这些网络,深怕因各种原因出现断网故障;

  • 大的机房有数千台网络设备,全部展示,拓扑图的可视化效果不强;

熟悉网络架构的同学,一般会采用做网络区域聚合的方法,因为数据中心网络是有一定架构标准的,而数据中心内接入层交换机占了其中的一半左右,如果聚合这些设备,拓扑图展示的节点数量将少很多。

那么如何聚合?一般做法是对每个Leaf-Tor区域,这里称网络POD做节点聚合展示。遇到的挑战是数据中心网络演变过程中,很多网络区域架构并不标准,存在接入层交换直接连接SCORE(super core)、也有接入层交换机直连BD(Border Device机房入口),多层接入交换机叠加、多层CORE叠加、多层SCORE叠加等等情况,甚至有直接拉线到EXT区域(外网区域)。这里选取了一个区域的网络拓扑做展示,初步看层级不清,连线复杂,这样的图形前端是难于绘制的,绘制了展示效果也不好。

如何解决?我们采取的方法首先是针对非标的网络架构做梳理,通过查看网络流量情况,与业务方沟通,下线或者迁移,所幸大部分是可以处理的,因为非标的网络架构一般也是测试或者临时场景需求,只是用完后,未回收。前后我们下线整个几十台设备。其次是梳理网络区域,采取接入层上联设备的位置信息+AS号方式来划分网络区域。这是梳理整理后的,聚合程度相对好点。但层级还是不明确。


自动分层算法:

如何解决设备的层级问题?在数据中心的网络,其层级应是相对清楚的,不同类型的设备归属不同层级,比如接入交换机,是网络拓扑的最后一层,BD设备是进入内网的入口。最初想法是根据设备类型来划分层级,但实际是没法做到的,前面叙述过,甚至BD也下联了接入层设备。这使得层级划分困难,让后端对各种特殊网络架构做if/else,这样后端代码无疑是无可维护性的。

我们的方案是在机房内选定一个根节点设备,通过计算设备到该根节点的距离来实现,这样生成的层级是动态的,可根据网络拓扑自动计算,实现了自动层级划分。

节点聚类算法:

自动层级划分后,与前端进行了初步的机房拓扑绘图,如下所示,可以说不理想,连线非常多,节点跨度大。

随后与前端研发研究前端开源绘图框架,发现主要问题在于节点及连线是随机的,导致开源绘图框架生成图形跨度大,效果差。随后对节点进行了排序,相同类型的节点放置在一起,连线也根据节点位置重新获取,得到的效果好了很多(如下图所示)。尝试多次,排序因子为:设备类型+AS号+位置,效果较好。前提是命名的标准化,及AS号的标准化。

仍存问题是设备连线交叉仍严重,类似:第一层的最上面的设备,下联第二层的设备,在拓扑图最下面,可视化效果非常不好。因为对网络拓扑图来说,清晰区分网络区域的关联关系是非常重要的,类似金融区域,测试开发区域等,与普通区域混杂在一起,就很难分辨,非常影响可视化效果。如下图所示,第一层上面的设备的下联设备到了第二层的下面。

采取的方法相对直接,多重排序,从入口设备后的设备开启多重排序,以入口设备的排序因子起始,后续不断叠加上一层级的排序因子。下图是多重排序后的结果。可以看到相关设备相对聚合了,设备连线交叉变少,能分辨不同区域设备。

双重策略保障拓扑数据采集:

上述2个问题解决后,回到最开始snmp遇到的挑战,LLDP采集不完整怎么办?联系厂家,即便能解决,但仍有无法中断业务升级的问题,主要原因是部分接入设备是堆叠配置,无法做到平滑升级,变更代价大。我们的解决方案是:对应网络设备互联,一般是需要配置互联IP的,通常是一个/30或者/31的网段。这个配置是固定,可以标准化。通过收集交换机配置文件,并解析其中的互联互通IP同样可以得到设备互联信息。Lldp采集+配置文件解析互联互通双重查询保障,可以得到完善的网络拓扑信息。

高级功能和扩展:

完成拓扑绘制后,接下来的工作是丰富网络拓扑数据展示,增强可视化效果。聚合节点上我们展示了区域类型,接入层设备展示了宿主机网段信息,存在容器网段的还展示了容器网段。其他包括网络带宽使用情况、收敛比、网络区域延时,IP使用率等。

连线上,通过线条名称、粗细、颜色,展示出网络区域繁忙程度。下图是机房网络拓扑最终效果图,可以直接看出黄色线条对应网络区域是比较繁忙的,网络区域划分也清晰可辨。业务方通过拓扑图也能查找到自己在数据中心的部署位置,了解当前网络的运行状况。 


03

 小结 

要实现网络可视化,离不开网络数据的标准化,上述提到的命名标准化、AS配置标准化、互联互通IP识别的标准化等等,都是实现网络拓扑绘制自动化,进而实现网络可视化的前提。制定标准,整改是最耗时耗力的,这次做了一些工作,但仍不够理想,因为变更网络仍是一件繁琐、难于推进的事项。

可视化带来的收益是显著的,例如可视化后,发现了DCI中部分线路不均衡(入下图所示,黄色线条表示该线路更繁忙),经过排查,发现是设备balance配置问题,解决后就不存在该问题了。有同学认为标准化、可视化收益不大,标准化约束更多,给运维带来不必要的麻烦。诚然,告警已经有了,数据监控也有了,再多一个图是为了好看吗?网络可视化或许不能带来绝对的收益,但长期看对数据的运维、挖掘、展示,是打开了一扇新的门,更丰富的信息,让大家可以发现更隐秘的问题和开发更丰富的应用工具,当然这需要深入了解及使用可视化能力。短期看也有利于从全局视角上观测网络、辅助网络运维。

可视化数据展示能有效地传达信息,帮助用户获得洞察力并作出决策,建立数字化,可视化的能力,是夯实OPPO云基础设施的关键措施,我们一直在深耕及持续投入,可做的事情还很多、也期待更多伙伴的参与。


作者介绍
林健  云计算高级工程师

主要负责数据中心网络研发方向,当前专注于网络的数字化、可观测能力建设。

林洪宇 网络高级工程师 

主要从事数据中心基础网络方向,关注于网络运维、架构优化和技术演进等方向。

END
About AndesBrain

安第斯智能云
OPPO 安第斯智能云(AndesBrain)是服务个人、家庭与开发者的泛终端智能云,致力于“让终端更智能”。安第斯智能云提供端云协同的数据存储与智能计算服务,是万物互融的“数智大脑”。



本文分享自微信公众号 - 安第斯智能云(OPPO_tech)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部