Broadcom最近推出了他们的新产品broadview,提供telemetry的监控方式,将问题定位至芯片级别,其架构如下:
在交换机侧加入agent,提供对芯片级别的操作:包括信息采集以及报文注入等,北向提供REST接口提供信息交互,控制器侧提供操作的具体逻辑。其官网介绍的功能如下:
- Buffer statistics tracking
- Packet tracing and injection
- Black hole detection
- Performance metrics for BST
- Drop counters due to congestion
- Support for StrataXGS and StrataDNX silicon families
- Reference implementation for applications: OpenStack, OpenDaylight, Ganglia
- Network level path tracing
- Provisioning optimized network fabric for storage traffic
我将之总结为以下4大功能。
1. Buffer统计跟踪 (Buffer Statistics Tracking, BST)
BST功能能够监控芯片buffer的使用情况,broadview agent可以主动向控制器上报设备的buffer统计信息(asynchronously mode),也可以根据控制器的请求发送buffer统计信息(polled mode)。BST目前主要有以下三大功能:
1.1 buffer使用情况追踪
包括当前情况和峰值的追踪,支持polled和asynchronously两种获取方式。BST功能能够追踪当前的buffer使用情况,也可以追踪buffer使用的峰值,可以在每次report的时候,返回最近一次的buffer利用率峰值。BST能够追踪的buffer使用类别有很多种,可以根据配置选择一个或者多个进行追踪。
1.2 buffer使用监控通知(triger report)
可以针对每类buffer使用情况设置threshold,如果设置了threshold,当该类buffer的使用超过threshold的时候,并且对设备使能了异步(asynchronous)发送的配置,agent会主动发送notification report通知控制器。
1.3 端口统计
BST功能能够对最拥塞的若干个端口情况进行统计,并且能够对端口,队列等进行进行丢包统计。
2. Packet Trace (PT)
当数据包进入交换机时,它会被处理并在一个或多个目标端口上转发。通常,中间分组处理步骤的结果是不可见的。数据包跟踪功能提供关于这些中间过程的详细信息,如LAG和ECMP的出口散列信息。
数据包跟踪功能(Packet Trace)允许客户端将数据包注入入口,然后将其处理成像在其中一个前面板端口上接收一样。数据包跟踪功能记录内部转发状态。这可以用于诊断意外错误或作为离线调试工具。
总结来说就是,控制器侧构造报文,给定入端口,下发给broadview-agent,broadview-agent进行CPU发包模拟,指示报文的转发状态,包括从哪个端口进来,有哪些ecmp或者lacg组,从哪个ecmp端口出去,是否转发成功的结果。
3. Live-PT
与PT功能类似,预下发五元组对指定流进行监控,对于所有经过交换机的匹配报文,都会输出一份profile文件上到控制器,指示报文的转发状态,包括从哪个端口进来,有哪些ecmp或者lacg组,从哪个ecmp端口出去,以及整个报文内容。与PT的不同之处在于PT是注入报文监控,而Live-PT是对实时流量进行监控。
4. Black-hole detect
提供对黑洞的检测,此处不做详细介绍。
参考
https://www.broadcom.com/products/ethernet-connectivity/software/broadview