当数据中心的网络规模变得很大时,不得不要增加网络设备,实现多层级联。现在的数据中心往往都是树形结构,核心放置几台转发容量超大的设备,然后下挂多层设备(因为端口数量不够,可能需要多层),数十台甚至几百台的网络设备级联到一起,一旦出了故障,如何能快速找到故障设备,经常困扰着很多网络运维人员。
数据中心的网络设备都是有冗余的,只要网络故障时找到故障设备,将其隔离即可恢复业务,然后再去慢慢排查故障原因,但从数百台的设备中找到具体哪台故障绝非易事。网络故障往往先从应用侧得到故障反馈,然后开始排障,这时应用人员往往描述的只是一个应用访问故障现象,他不会告诉你具体哪些地址到哪些地址不通,有时甚至是错误的信息,这极大延误了问题定位时长。问题定位大部分时间都是花在故障现象的整理过程中,怎么办?数据中心网络该如何快速排障?本文将给出答案。
网络故障如果要从应用侧反馈的故障现象去分析,这时已经晚了,而且容易被应用人员带入误区,有些应用人员反馈的现象只是他自己看到的,现象很可能只是一个局部现象,并不能反映出整个网络的故障情况。所以要靠自己,做好网络监控,通过监控去发现问题,从而迅速找到故障设备,做设备隔离或者解除故障。
早期的网络监控主要是对设备的一些日志和端口流量做监控,更多的时候这些信息并不够,并不能及时发现问题。很多网络设备厂商说自己的设备日志非常完整,但实际使用时仍有一些极端情况或者软件BUG导致故障时无日志输出,这时就要针对流量进行定位。到了这个时候,就需要网络人员去找应用人员了解故障现象,通过现场找出一些丢包或者不通的IP地址来,然后进行网络流通,对这个故障流量经过的设备都做流通,找到故障设备。既然是树形网络,每一层都有很多设备,这个流通量是相当大的,而且并不是所有的设备都能支持对所有特征的流量做统计,有不支持的设备就会使得统计不准,加大了寻找故障设备的难度,做网络运维的这些年都是这样坚持过来的。
显然,之前的网络排障方式有效但效率太低,定位故障时间长,对业务影响大。现在的网络监控都是针对数据流的,对网络中的具体数据流进行监控,这样一旦数据流量有中断,立即可以查明故障位置。在这里,要提到几种新兴的网络监控方法,也叫网络可视化技术,是快速排障的最有效方法。
- 首先是INT(In-band Network Telemetry,带内网络遥测技术)技术,INT通过在数据层面收集和报告网络的状态来实现对网络状态的监控。当数据报文进入***个网络设备时,设备上设置采样方式采样并镜像出该业务流报文,INT在报文基础上封装一个INT头,并将需要收集的交换机信息填入到INT数据段中,报文经过的所有网络设备均这样处理,直到***一个服务器连接的网络设备将INT头剥离。报文经过的每台设备都将采集到的INT报文通过gRPC报文发送到远端的监控服务器进行解析和呈现,INT报文中携带了报文转发的延迟、设备拥塞等情况,都能呈现到监控服务器上,一旦数据报文出现丢包或者不通情况,监控服务器立即感知到,并几秒就能确定问题范围和故障设备。
- 其次是ERSPAN(Encapsulated Remote Switch Port Analyzer,跨三层IP传输的远程网络流量监控技术),ERSPAN的报文基于GRE封装,并通过以太网转发到任何IP路由可达的地方。ERSPAN是将源端口报文复制一份通过GRE(Generic Routing Encapsulation)发送到目的服务器进行解析,采集服务器的物理位置不受限制,这样我们可以将整个网络的关键流量转发都通过ERSPAN发送到监控服务器上,流量在哪部分网络出现了丢弃,一目了然。
- 第三是sFlow和Netstream,这两种都是数据采样技术,Netstream采集的比较完整,但需要有专用的硬件来完成,在网络中部署sFlow和Netstream后,可以通过gRPC将监控数据发给服务器,由监控服务器计算和整理,并将结果图形化显示出现,一旦哪部分网络有问题,立即可以在监控服务器上显现。sFlow和Netstream采集的都是报文头的主要特征,而不是报文整个内容,这个和INT、ERSPAN有较大区别,应对绝大部分网络故障排查都没有问题,除非应用报文特征比较特殊,Netstream捕捉不到,这时只能求助INT和ERSPAN。在一个网络中,并不介意三种监控方案都部署,这样在故障时,可以从多个角度采集的数据去分析问题。还有一点很重要,尽量要将这些数据采集通过管理网发向监控服务器,否则一旦数据网出问题,可能监控的数据也无法正常达到监控服务器。大部分情况下,数据网络故障很少波及到管理网,所有设备依然可以正常访问,如果故障时,很多设备都无法通过管理网进行访问,基本可以判定这台设备就是故障点。
有了以上这些网络监控方法,出现故障时***时间发现就不难了,而且完全可以实现自动化,当发现故障时,由监控服务器自动下发隔离命令,将故障设备隔离,自动恢复。这样在应用报障过来之前,就可以找到网络故障位置,及时隔离故障设备,恢复业务,这样可以极大缩短故障分析时间,对业务影响很小,甚至业务部分根本感知不到故障。像INT和ERSPAN这些网络监控的技术实际应用的效果还未知,都是最近总被提及的技术,还有待实践的考验。SFLOW和Netstream技术比较成熟,但真正在网络排障时用到的还不多,需要加大这方面的推广。依靠这些监控技术,可以快速排除网络故障,这对于数据中心运维来说,意义重大,极大地提升了运维效率。