2.9 其他组件
思科数据中心I/O整合
我们目前讨论的是实现I/O整合所需要的基本组件,其他还有一些技术可以帮助实现更大规模的I/O整合部署。在下一节中,我们将介绍以下组件:
发现协议(例如,DCBX);
带宽管理器(例如,ETS);
拥塞管理(例如,BCN/ QCN)。
DCBX:数据中心桥接交换
DCBX的名称来自于IEEE 802.1数据中心桥接工作小组,它涉及文档中所描述的大多数以太网扩展。DCBX是数据中心桥接的管理协议,由IEEE 802.1Qaz项目定义。DCBX是链路层发现协议(LLDP,参见IEEE 802.1AB-2005)的扩展。LLDP是一种与供应商无关的2层网络协议,允许网络设备向本地网络广播其身份及其支持的功能。
DCBX为以下协议提供逐跳支持:
基于优先级的流量控制(PFC);
带宽管理(ETS);
拥塞管理(BCN/ QCN);
应用程序(例如,FCoE);
逻辑链路中断。
DCBX能够发现链路两端节点支持的功能,并且能够检查它们的一致性。DCBX能够通知设备管理器节点配置不匹配的问题,并且如果其中一个节点未进行配置,DCBX还能够提供基本的配置。
图2-8展示了一种使用DCBX的网络部署场景。支持DCBX的链路能够交换DCB的功能,并向相应的管理节点发送冲突告警。例如,图中是用网络边界来表示支持和不支持拥塞管理的设备。
带宽管理
IEEE 802.1Q-2005定义了8种优先级,但是没有一种简单、有效和统一的调度机制来处理它们。调度机制的目标一般包括带宽、延迟和抖动控制。
产品一般实现了某种形式的差额加权轮询(DWRR),但是并没有统一的实现机制,因此在产品配置和互操作方面仍然会出现问题。
在802.1Qaz项目中,IEEE 802.1 DCB定义了一种硬件高效的双层差额加权轮询(DWRR)机制,支持严格优先级(Strict Priority),我们称之为增强传输选择(Enhanced Transmission Selection,ETS)。
图2-9说明了如何通过ETS将优先级归到第一级调度的优先级分组中,然后再通过第二级调度器对优先级分组进行调度。
通过这种结构,就可以给每一个优先级分组分配带宽(例如,40% LAN、40% SAN和20% IPC)。在每一个优先级分组中,多个流量类型可以共享该分组的带宽(例如,VoIP和大流量可以共享40%的LAN带宽)。
这种架构不仅能够控制带宽,也能够控制延迟时间。延迟时间对于数据中心而言越来越重要,特别是在IPC应用程序中。
拥塞管理
无损耗以太网的缺点之一是,当出现拥塞现象时,它会造成头节点阻塞(HOL)。这是因为无损耗以太网会将拥塞散播到整个网络。
在802.1Qau项目中,IEEE 802.1 DCB定义了一个2层的端到端拥塞通知协议。它的实际效果是将拥塞从网络核心转移到网络边缘,从而避免拥塞散播。在网络边缘,拥塞更容易处理,因为网络边缘的数据流数量远远少于网络核心,因此导致拥塞发生的数据流更容易被隔离,并且被限制速率。
这里考虑使用的算法包括反向拥塞通知(Backward Congestion Notification,BCN)和量化拥塞通知(Quantized Congestion Notification,QCN),其中QCN正处于标准化过程中。它们非常类似,其作用如图2-11中所示。
在使用拥塞通知机制时,出现拥塞的交换机(例如,拥塞点或CP)会向拥塞源发送消息(例如,响应点或RP),发出其拥塞状态的信令,另外还需要通过整形进入网络的流量从而减小传输速度。
在接收到拥塞通知消息时,它会在拥塞源的最近位置安装一个速度限制器,可能就位于产生流量的主机上,这样就能够减轻网络核心的拥塞现象,同时又不会导致拥塞扩散。
这种信令机制与PAUSE的主要区别是,PAUSE采用逐跳的工作方式而拥塞通知消息则可以通过所有路径到达拥塞源(参见图2-12)。
速度限制参数会根据拥塞点的反馈来进行动态调整。这与TCP在传输层(ISO OSI模型的第4层)的工作方式相似,但它是在2层协议上实现的,因此适用于所有流量类型,而不仅仅局限于TCP。这里使用的算法是Additive Increase Multiplicative Decrease(AIMD)速度控制算法。在不存在拥塞时,它会线性增加带宽的使用,但是在遇到拥塞时,它会以指数方式减小带宽的使用(例如,带宽减半)。MDS交换机的光纤通道也实现了类似的模式,被称为光纤通道拥塞控制(Fibre Channel Congestion Control,FCCC)。
延迟丢包
延迟丢包意味着使用PFC或PAUSE缓解短时间突发流量的影响,而对于长时间的拥塞则维持丢弃帧的处理方式。
延迟丢包允许将交换机缓存区实际上扩展到了前一跳。通过使用PFC,延迟丢包可以实现按优先级控制,并且特别适用于处理有损耗优先级,可以减少因暂时拥塞而造成的丢帧数量。具体的实现方法是判断有限时间段中优先级的PFC。
采用延迟丢包的主要原因之一是交换机的缓存区空间有限。由于能够从前一个交换机借用缓存区空间,所以可以缓解瞬时拥塞问题(例如,isolated burst),而且不会在有损耗优先级上出现丢帧现象。
在特定的时间段过去之后,或者峰值回落时,流量流回归正常,或者像标准以太网一样将帧丢弃。
图2-13显示了一种延迟丢包的实现方式,它使用代理队列测量突发流量的时长。在正常运行状态中,当帧增加或减少时,代理队列(实际上不存在,只是一组计数器)会模拟实际队列。如果接收到突发流量,实际队列会设置高位标记,然后发送一个PAUSE或PFC,阻止帧继续到达。代理队列远远大于实际队列,可以模拟继续接收帧的状态。当代理队列被填满时,PAUSE或PFC就会被释放(例如,生成一个时间为零的PAUSE或PFC帧),这时,帧就被丢弃,因为发送端已经恢复传输,而实际队列已满。延迟丢包的具体表现如表2-1所示。
换而言之,在短时间的拥塞过程中,两个队列的排队量都会快速减少,实际队列会释放PAUSE。而在长时间的拥塞过程中,代理列队会继续排队直到高位标记,并释放PAUSE。实际队列就开始抛弃数据包,而拥塞管理则由高层协议来接管。