vivo数据中心网络链路质量监测的探索实践
时间:2026-10-08 16:45 来源:未知 人气:
一、概述
数据中心的建设是一个从无到有从小到大的过程,在数据中心建设初期,由于量级很小,我们想要了解网络状况是比较轻松的,在两台服务器上获取其网络延迟简直轻而易举,输入Ping命令和IP地址便可以随时获取网络延迟。然而,当业务滚雪球式的增长,数据中心随之扩容或新建,服务器数量达千级、万级、十万级甚至更多时,想要随时获取机房各链路的网络延迟以定位网络故障原因就变得十分具有挑战性。我们开始思考如何建立一个用于大规模数据中心网络延迟测量和分析的系统,以便于更高效、快捷的维护数据中心。
二、背景
经典的数据中心网络架构有三层,分为核心层(网络的高速交换主干)、汇聚层(提供基于策略的连接)、接入层(将工作站接入网络),在庞大的数据中心网络中,难免在某些时刻某些业务出现问题。那么如何确定问题是否是网络问题?如何定位一个网络故障?如何提前预测网络故障,确保数据中心基础网络的可用性(SLA)不受影响?由于分布式系统庞大、可扩展、依赖多的性质,许多故障显示为“网络”问题,例如,某些组件故障,端到端对接时由于某一端CPU负载突然增加导致响应延迟,或者网络拥塞导致的排队延迟,又或者数据包丢失也会增加用户感知的网络延迟。其中一部分问题其实并不是所谓的“网络”问题,然而要判断这些问题是否是由网络故障引起的,或者定位网络故障的原因,是一个费时费力的过程。为了应对这些挑战和简化网络运维繁复的工作,我们的网络质量监测中心就应运而生。
三、什么是网络质量监测中心
网络质量监测中心是一个用于数据中心网络延迟测量和分析的大型系统。通过部署在服务器上的Agent发起5次ICMP
Ping以获取端到端之间的网络延迟和丢包率并推送到存储与分析模块进行聚合和分析与存储。控制器负责分发PingList(需要相互执行Ping的IP列表)并通过数据中心内部消息通道将PingList下发至每台服务器上的Agent,而PingList就是每个Agent需要发起Ping的目标服务器列表。
3.1 Agent
Agent是整个项目的数据采集器,负责接收来自控制器下发的PingList,PingList中有该Agent需要发出Ping目标的IP地址,最后将探测数据上报存储与分析模块。Agent要覆盖所有机房的绝大多数物理机,才能保证探测数据汇总后的有效性和真实性,所以,在Agent对PingList中的目标IP进行Ping操作时,Agent所占用的CPU资源不能超过5%,是Agent设计时要保证的核心要点。Agent由机房内部消息通道统一分发部署、更新、启动和停止。
3.2 控制器
控制器是整个网络质量监测中心的任务调度器,决定了服务器应该如何相互探测,负责PingList生成算法与下发通知,以及网络拓扑的定时更新。