“ 传统监控手段在SDN/云化背景下面临失效的威胁,利用硬件芯片功能的丰富可以实时监控网络状态,解决丢包和延时问题。”
01
—
技术背景
传统的网络流量监控工具,比如RMON 和SNMP 都是使用轮询(Polling)的机制来收集流量数据的,轮询的周期一般都是秒级。这个秒级的周期会带来什么样的问题?数据中心发展到今天,所用到的网络设备接口带宽已经到10Gb、25Gb 甚至40Gb、100Gb级别。以10Gb 接口举例,在一秒的周期内,该端口从空闲到线速转发(双向)可能产生超过2800 万个数据包,而在传统的轮询机制中,这2800 万个数据包就可能是看不见的。当然我们可以通过减小轮询的周期来达到目的,但是这会极大增加网络设备和监控设备的负载和开销,所以实际上还是无法真正解决这个问题。
相比于秒级,网管或者运维人员更希望能有毫秒甚至微秒级的拥塞数据收集工具,而更具吸引力的是实时的拥塞事件预上报,基于上报信息,网管或者运维人员可以预知自己所管理的网络产生拥塞,通过网络容量管理工具执行相应策略以避免或者减缓拥塞,而不用等到上层应用因性能问题丢包才知道发生了拥塞。

SDN交换机支持硬件级的Hardware Monitor功能,可以实时的监控网络拥塞情况,并及时上报管理员以执行相应的流量管理策略。Hardware Monitor 包含Buffer Monitor 和Latency Monitor 两个功能,前者用于监控网络拥塞情况,后者用于监控报文转发时延。
02
—
Buffer Monitor 原理介绍
在拥塞发生时(即转发到交换机某一接口的流量超过了其最大转发能力),交换机会试图通过缓存(Buffer)的方式来管理拥塞,将无法立即转发的报文暂时缓存起来,等待拥塞减缓或者不再拥塞的时候再将其转发出去。但是交换机的缓存也是有限的,当缓存耗尽时一样会发生丢包,即使缓存没有耗尽,被缓存的报文也会增加相应的时延。在上层应用因为丢包或者延迟增大而感知到网络拥塞之前,最早可以检测到拥塞事件的是交换机接口的Buffer 占用情况。

Buffer Monitor 功能可以根据用户自定义的高、低阈值(High/LowThreshold)监控接口的Buffer 占用情况,实时上报接口当前占用的Buffer Cell 数值以及拥塞开始或者结束事件。在使能了Buffer Monitor 的接口上,交换机会以10 毫秒为周期记录当前接口的Buffer 占用数值,并打上当前时间戳,时间戳的精度可达到纳秒级。当接口的Buffer 占用持续增长到超过High Threshold 时,交换机会立即向CPU 上报一个 “Congestion Start”事件并带上当前的时间戳,以通知管理员该接口产生了拥塞;当接口的Buffer 占用从超过High Threshold 持续减小到低于Low Threshold 时,交换机会立即向CPU 上报一个“Congestion End”事件并带上当前的时间戳,以通知管理员该接口拥塞结束了。同时,如果开启了Buffer Monitor Notify 功能,系统会以管理员自定义的时间间隔向指定服务器定时发送一个Buffer Stats Notify 报文,内容是被监控端口的名称、Buffer 占用情况以及消息上报时的时间戳,并且当“Congestion Start”或者“Congestion End”事件发生时,会立即向指定服务器发送一个Micro-burst Start Notify 或者Micro-burst Stop Notify 报文,内容也是被监控端口的名称、Buffer 占用情况以及事件产生时的时间戳。
03
—
Latency Monitor 原理介绍
网络拥塞或者报文长度增加会导致报文转发延迟增大,一些延迟敏感(Delay Sensitive)业务,如即时语音、视频会议、网络游戏等应用的用户会直观的感受到这种变化,并带来非常不友好的体验。能实时监控经过网络设备的报文时延对网管或运维人员的帮助是巨大的,使其即时优化流量策略和调整业务部署成为可能。

Latency Monitor 功能可以根据用户自定义的8 个Latency 区间,在使能了Latency Monitor 功能的接口上以10 毫秒为周期上报落在各区间的报文个数,并且,可以根据用户自定义的高、低阈值(High/Low Threshold)和丢弃阈值(Drop Threshold),当某个报文的转发时延超过High Threshold 时,交换机会立即向CPU 上报一个 “Delay Start”事件并带上当前的时间戳、报文的Latency 以及报文的入端口信息;当某一时刻报文的转发时延变为低于Low Threshold 时,交换机会立即向CPU 上报一个 “Delay End”事件并带上当前的时间戳、报文的Latency 以及报文的入端口信息;当报文的转发时延超过Drop Threshold 时,该报文会被丢弃。同时,如果开启了LatencyMonitor Notify 功能,系统会以管理员自定义的时间间隔向指定服务器定时发送一个Latency Stats Notify 报文,内容是被监控端口的名称和这段时间内各Latency 区间统计到的报文个数,并且当“Delay Start”或者“Delay End”事件发生时,会立即向指定服务器发送一个Latency Event Start Notify 或者Latency Event Stop Notify 报文,内容是被监控端口的名称、造成该事件的报文的入端口名称、该报文的转发时延以及事件产生时的时间戳。
03
—
SDN系统集成
有了Buffer Moniter和Latency Monitor两个利器之后,SDN控制器就可以通过南向接口获取网络状态信息,并且由上层应用软件预先执行相应策略以避免或者减缓拥塞。

关注留言获取更多信息!


