IEEE最近批准了802.3az EEE(能效以太网)标准,未来的采用者将获得很大的节能效果。尽管一段时间以来,业内人士对降低以太网捆绑链路的能耗做了一些研究,但这些研究都没有考虑EEE的使用。本文描述了一种在捆绑链路中优化EEE使用的技术,它能提供较以往方案更好的响应,最大限度减少了帧延迟与丢失。该技术还能够独立地实现每个链路的端点,便于部署。在流量为异步的情况下,这一技术能显着地改善能效。
EEE标准的目标是每年节能4 TWhrs以上,它为以太网设备规定的降低能耗方式是定义低功耗模式。一个没有可发送帧的收发器就可以进入低功耗模式。当有新帧到达时,收发器会在数微秒内返回活动模式,从而实现了对协议上层几乎透明的节能。某个给定链路的能量节省直接取决于收发器处于低功耗模式下的时间。这个时间又取决于流量负荷,并且由于模式转换的开销要占掉负荷的几个百分点,节能效果大打折扣,这意味着当链路工作负荷大于10%时,EEE提供的节能效果有限。
在以太网中,经常采用捆绑链路的方法来提供更大的容量,其动因来自于一系列旨在优化捆绑以太链路上能耗的研究。这些方法会动态地使一组捆绑的活动链路数量适应于流量负荷,这意味着当捆绑负荷较轻时,可以节省相当数量的能耗。不过,这些方法并没有考虑到EEE标准的使用。
链路聚合
IEEE标准化了IEEE 802.3ad中以太网的链路聚合,该组织后来重新命名了IEEE 802.1ax,以保持与其它802.3标准的一致性。该标准能将多个以太链路捆绑为一个逻辑链路:LAG(链路聚合群)。IEEE 802.3规定,链路聚合必须发生在MAC (介质访问控制器)层上,整个帧送至某个聚合链路的MAC层。链路聚合提供了多种优点。例如,聚合后的链路容量是各链路容量的总和,因此增加了链路的容量,而不同以太网技术的容量因数通常小于10倍。聚合链路还可以用于提供PHY(物理)层所不能达到的容量。链路聚合亦增加了链路的可用性,因为只有所有链路都不能用时,聚合链路才不可用。
但链路的聚合会造成帧的随意分配问题,如帧重新排序。帧重新排序的出现情况是:一个先到的长帧通过一个链路传输,而紧接第一帧到达的第二个短帧则通过一个不同链路传输,从而比第一帧先到。帧的重新排序会给较高层协议带来一些麻烦,因此,IEEE 802.3ad标准的开发者在设计时避免了帧的重新排序问题。只有对属于相同会话的帧,帧的重新排序才是一个问题。因此,将各帧给各链路做传输分配的算法就要确保属于同一会话的帧通过相同链路传输,从而保持帧的顺序。这些算法确保了这些帧能保持正确顺序,但将一个会话能获得的最大带宽限制在一个链路上。
图1给出了链路聚合的子层。帧分配块将各个帧分配给各链路传输,它必须确保来自一个会话的所有帧都通过相同链路传输。帧采集块接收来自于不同端口的帧,将它们转送给MAC客户。帧采集块必须确保只让来自相同端口的帧通过,以到达MAC客户端。这种设计使帧采集块独立于帧分配块的算法,避免了聚合器中的缓存与重新排序工作。这种设计还避免了碎片与再装配问题。
图1,帧分配块将各帧分配给链路做传输,必须确保来自一个会话的所有帖都通过相同链路传输。帧采集块接收来自不同端口的帧,并将它们转发给MAC客户。
链路聚合也可以使用其它替代方法。例如,链路可以在PHY层做聚合。采用这种方法时,帧传输是将各帧划分为段,然后分配到各链路上传输。在接收时,这种方法会将各段重新装配,重构原始帧。WAN(广域网络)的聚合广泛地采用了这种策略。这种情况下,一个会话的各段会通过所有链路传输;因此,单个会话可以使用到聚合链路的全部容量。不过,IEEE 802.3ad标准并没有选择这种类型的设计,因为它会使帧的分配与采集过程复杂化。
为了高效地利用聚合链路的容量,分配算法会尝试用一种方法做会话在链路上的分配,即每个链路上的负荷都是相近的。当同时有很多会话发生时,这种方法能够获得高链路使用率。会话可以定义在不同的层次上,取决于网络拓扑与流量。标准的附录A中讨论了各种不同选项,如使用以太源地址或目标地址来区分一个会话。这些情况下,用较高层协议的信息来定义一个会话更方便些。例如,有些方法会将一个会话定义为一个TCP(传输控制协议)连接。标准还提供了一些机制,可将会话重新分配给不同链路,并确保帧的顺序。这一功能对于链路负载的动态平衡很有用处。
当流量负载较低,而所有聚合链路都处于活动状态时,链路聚合可能消耗相当大的能量,因为一旦链路处于活动态,则PHY层器件的功耗就基本独立于流量负荷。一种方法的建议是,活动状态链路的数量应与流量负荷相适应,当流量较少时,只有少数链路保持在活动状态。链路活动模式与等待模式之间的转换需要链路各方采用LACP(链路聚合控制协议)来协调。这种情况下的转换可能要花费数百毫秒时间,因为链路必须重新建立,从而需要大量的时间。LACP从整体上管理各个链路,即链路的双向都为活动或都为空闲,但不能一个方向活动,另一个方向空闲。这种方案可以大大降低聚合链路中的能耗,但不包含与EEE的协调。
捆绑链路中的EEE
一旦EEE获得了广泛的采用,则在链路使用率较低时,每一个具备EEE能力的聚合链路都能确保能效,因为各个链路一般都处于低功耗模式。有了这种概念,就没必要采用那些让活动链路数与流量负荷相匹配的方法。但是,EEE只有在负荷低的情况下,节能效果才显着。例如,当一个捆绑链路只有15%负荷时,EEE提供的节能效果有限,而当流量只集中在某些捆绑链路上时,则可能节省相当大的能耗。因此,即使业界采纳了EEE,对于在这些负荷下运行的聚合链路,研究更多的能效策略也很有用处。
还有一种方法也能在EEE的LAG中使能所有链路,而在低功耗模式下不为链路分配会话,意味着在这些链路上没有帧的传输。因此,对于大多数EEE PHY与MAC层,我们就可以独立地管理链路方向的状态;一个方向可以是低功耗模式,而另一个方向则是活动模式。这种方法简化了哪个链路为等待模式的选择,因为本地就可以做出决定,而无需与另一端协调,保证低功耗模式为同一链路。图2表示了两种可能的配置。当传输只发生在每个链路的一个方向上时,接收端就无需抑制近端的串扰与回响,因此,当这种方法与PHY器件的智能管理结合实现时,就能节省相当多的能耗。
图2,当链路处于低功耗模式时,可以单独地管理这些链路 (a);否则,链路方向会同时进入低功耗模式 (b)。
本地的帧分配块监控着流量负荷,决定为会话指定的链路数量。如果流量下降,则该块可以将会话重新指定给较少的链路,以减少功耗。反之,如果流量上升,则该块可以为会话使用更多链路。这些重新指定的方式等同于将会话动态地按负荷平衡做再分配。图3给出了一种算法,它只需要重新指定会话,以减少活动链路的数量。那些未被指定会话的链路会自动地进入并保持在EEE低功耗模式,直到负荷提高。此时,方案会将一些会话指定给链路,它进入EEE活动模式后,就可以立即开始帧的传输。
图3,这个算法将链路与EEE捆绑起来。
该算法的主要参数是负荷阈值,它确定了链路数量的变化。实现时应定义一个延迟机制,可以避免频繁的变动,如采用两个阈值,增加和减少活动链路的数量。不过,单个阈值也是够用的。假设这个阈值大(负荷接近于链路容量的100%),则由于高队列占用率而使链路延迟增加,而当队列溢出时有丢弃帧的可能性,因此也会出现相同的情况。如果阈值小,则链路负荷轻,降低了能耗。所以,在演示这种方案时,选择了一个折中的阈值,即80%的链路容量。
与传统帧分配机制类似,本方案是在各个活动链路中做负荷均衡(即已为它们指定了会话),以确保各个会话能获得近似的服务,而与它们的链路分配无关。这种方案有效地将EEE与链路聚合结合起来,多数情况下节能效果要好于单独采用EEE的情况。
图4,链路聚合算法比较四种技术的能效。
在使用EEE的链路聚合实现中,聚合中的每个链路都获得相同的负荷,并根据是否有要传输的帧,而进入或退出活动状态。因此,其功耗就等于聚合中的链路数量乘以一个在该负荷水平上的链路功耗。而在其它方案中,功耗是直接取决于活动链路数量。
性能评估
为评估这种方法的节能潜力,做了1250字节帧的一系列仿真实验。这些实验还模拟了其它帧长度,得到的结果近似。帧的接收服从泊松分布,这是一种离散的概率分布,表示在固定时间或空间(或两者)间隔内某个给定数量事件发生的概率,如果这些事件是以一种已知的平均速率发生,而与上次事件以来的时间无关。在LAN流量中,帧的到达并不符合泊松模型,因此这种仿真只是一种粗略的近似。不过,对于来自多源的聚合流量LAG,泊松假设在短的时间间隔内是有效的,这种短时间间隔是针对这种方案的时间尺度。
假设存在着可独立管理的链路方向,并假设MAC与PHY层都可以非对称地进入低功耗模式。另外假设低功耗模式下的功耗为活动模式功耗的10%,而在状态转换期间的功率与活动状态下相同。状态转换的时间周期符合IEEE 802.3az标准。其它方法则假设链路在等待模式下没有功耗,因为这些链路实际处于空闲状态,而不是EEE的低功耗模式,后者要将一些部件保持在活动态,并有刷新周期。
图4比较了不同负荷与技术下的功耗结果。此时,聚合算法包含的是四个10BaseT链路。对100BaseTX与1000BaseT链路的实验得到的结果类似。下一个实验考虑了两个链路的聚合(图5)。功耗与负荷的总体形状与其它链路数的情况相类似。更多的实验采用了不同大小的帧,结果也相近:大多数节能效果源于低功耗模式的链路,主要取决于LAG的负荷,而不是帧的大小。
图5,链路聚合算法比较两种链路的能效。
迄今为止,结果都集中在一个链路方向上,但流量有时是非对称的,即一个方向上有大的负荷,而另一个方向则小得多。在这些情况下,本文所描述的技术能够使每个方向上有不同数量的活动链路。仿真可以模拟那些非对称流量链路上的节能,这些链路一个方向上为1250字节帧,另一个方向则有相同数量的125字节帧(图6)。此时,仿真会估算出每个方向的功耗,并计算均值,提供一个规范的结果。实验表明,与仅采用EEE相比,各种链路负荷下都能节省更多的能耗。
图6,在一个有非对称流量的链路上,提议的链路聚合算法性能超过传统算法。
全部0条评论
快来发表一下你的评论吧 !