随着数据中心架构的发展和Vxlan、RDMA等新技术的应用,传统的SNMP等运维手段已经无法满足当前IDC运维需求。更大规模、更复杂的云数据中心和高性能计算集群都对运维提出了更高的要求,如何找到更加精细化、智能化的运维手段,实现对网络更高效、及时地监控和运维,成为数据中心网络运维面临的一大挑战。
在前几期的《技术干货》中,我们介绍了基于交换机硬件芯片的INT(In-bandNetworkTelemetry,带内网络遥测技术)技术实现运维可视化的方案,本文将在前文基础上详细介绍INT技术具体如何实现运维可视化。
INT技术背景及可视化方案
Telemetry是一项远程的从物理设备或虚拟设备上高速采集数据的技术。设备通过推模式(PushMode)主动向采集器推送设备数据信息,提供更实时更高效的数据采集能力。
Telemetry模型
Telemetry技术采取推送方式,由设备主动向后台监控服务器推送自身信息,从而避免了查询模式下查询请求造成的在网络中的额外延时,以及大量查询请求给网络和设备带来的压力。与传统的SNMP、CLI、SYSLOG等方式相比,Telemetry可以实现亚秒级监控精度。理论上,通过Telemetry技术可以获取设备所有信息。
INT技术是由Barefoot、Arista、Dell、Intel和VMware在Telemetry的基础上共同提出的一种新的Telemetry模型。INT技术是通过在数据层面收集和报告网络的状态来实现对网络状态的监控,这个过程不需要控制层面的参与。
INT架构模型中的术语:
INTheader:任何包含INT信息的packetheader;
INTSource:在报文中嵌入INTheader的设备;
INTInstruction:收集数据信息的定义;
INTMetadata:监控对象信息,即在每台设备上收集的数据信息;
INTTransitHop:加入本设备节点INTMetadata信息的设备;
INTSink:拆除INTheader报文头,并收集上送INTMetadata信息的设备。
基于INT实现运维可视化的具体流程:
1、业务报文进入第一台交换机(INTSource),通过交换机上设置的采样方式采样并镜像出该业务流报文,INTSource在报文中封装一个INTheader,同时定义INTInstruction,并在INTheader后添加INTMetadata,将需要收集的交换机信息填入INTMetadata中。
2、报文转发至下一台路径上的交换机(INTTransitHop),INTTransitHop根据上一台设备的INTMetadata内容继续添加本机的INTMetadata信息。
3、经过所有INTTransitHop,报文转发至最后一台交换机(INTSink),INTSink将INTHeader拆除,并将其中的路径信息通过gRPC报文发送给后端的监控服务器进行解析和呈现。
可视化网络
通过上图我们可以清楚地了解到INT的具体流程,简单地说INT就是在报文转发路径上的每台设备上收集Metadata数据,通过对Metadata数据的分析来准确监控网络状态。那么Metadata中有哪些数据可以提供给我们来监控网络呢?
INTMetadata报文信息详解
INTMetadata报文格式:
从上图中可以看到INTMetadata报文包含8个字节的报文头和多个Metadata数据,每个Metadata数据,即每一跳设备收集的数据信息。
INTMetadata报文头中包含几个关键的字段:
Ver(2bit):版本号;
Flags(9bit):包括复制允许、超过最大跳数置位等以及5bit的Reserved预留;
InstructionCount(5bit):Metadata中收集数据项的数量;
MaxHopCount(8bit):最大跳数,即报文中可封装的Metadata数据的最大数量;
TotalHopCount(8bit):当前总跳数,即当前报文中封装的Metadata数据的数量;
InstructionBitmap(8bit):Metadata数据的具体内容。
InstructionBitmap字段8个bit分别对应8个数据选项,每个bit的置位代表该项数据需要收集到Metadata中。
bit0:交换机ID
bit1:入端口号
bit2:转发时间
bit3:队列占用
bit4:入时间戳
bit5:出端口号
bit6:队列拥塞状态
bit7:出端口链路利用率
举个例子,上图是一个INTMetadata报文头,我们看下其中的具体信息:
InstructionCount字段数值为2,表示Metadata中共收集两项数据;
MaxHopCount字段数值为16,表示最大支持16跳,可封装16个Metadata数据;
TotalHopCount字段数值为3,表示当前为第3跳,报文已封装了3个Metadata数据;InstructionBitmap字段,2个bit置位,表示Metadata数据中包含两个数据项,交换机ID(bit0)和队列占用(bit3);
Metadata数据部分即为每一跳交换机封装的交换机ID以及队列占用信息。
总结一下,INT技术可以基于交换机芯片提供的可视化能力,通过收集分析数据报文在交换机网络中转发的详细信息,实现流量转发的路径可视化和延时可视化,为实现数据中心网络运维可视化提供了新的解决方案。锐捷网络新一代25G/100G数据中心网络解决方案已全面支持INT功能,欢迎留言交流。