引言
随着数据业务量的增长和对服务质量要求的提高,高可用性(High Availability)日益成为高性能网络最重要的特征之一。网络的高可用性是指系统以有限的代价换取最大运行时间,将故障引起的服务中断损失降到最低。具有高可用性的网络系统一方面需要尽量减少硬件或软件故障,另一方面必须对重要资源作相应备份。一旦检测到故障即将出现,系统能迅速将受影响的任务转移到备份资源上以继续提供服务。
网络的高可用性一般在系统、组件和链路三个级别上体现。系统级的高可用性要求网络拓扑必须有冗余节点和备份设计。组件级的高可用性着眼于网络设备自身,要求网络设备具有冗余部件和热备份机制。链路级的高可用性则要求传输线路备份,如果主要数据通路中断,备用线路将迅速启用。
传输链路的备份是提高网络系统可用性的重要方法。目前的技术中,以生成树协议(STP)和链路聚合(Link Aggregation)技术应用最为广泛。生成树协议提供了链路间的冗余方案,允许交换机间存在多条链路作为主链路的备份。而链路聚合技术则提供了传输线路内部的冗余机制,链路聚合成员彼此互为冗余和动态备份。
链路聚合技术
链路聚合技术亦称主干技术(Trunking)或捆绑技术(Bonding),其实质是将两台设备间的数条物理链路“组合”成逻辑上的一条数据通路,称为一条聚合链路,如Figure 1示意。交换机之间物理链路Link 1、Link2和Link3组成一条聚合链路。该链路在逻辑上是一个整体,内部的组成和传输数据的细节对上层服务是透明的。
链路聚合示意图
聚合内部的物理链路共同完成数据收发任务并相互备份。只要还存在能正常工作的成员,整个传输链路就不会失效。仍以上图的链路聚合为例,如果Link1和Link2先后故障,它们的数据任务会迅速转移到Link3上,因而两台交换机间的连接不会中断(参见Figure2)。
链路聚合成员相互备份
链路聚合的优点
从上面可以看出,链路聚合具有如下一些显著的优点:
提高链路可用性
链路聚合中,成员互相动态备份。当某一链路中断时,其它成员能够迅速接替其工作。与生成树协议不同,链路聚合启用备份的过程对聚合之外是不可见的,而且启用备份过程只在聚合链路内,与其它链路无关,切换可在数毫秒内完成。
增加链路容量
聚合技术的另一个明显的优点是为用户提供一种经济的提高链路传输率的方法。通过捆绑多条物理链路,用户不必升级现有设备就能获得更大带宽的数据链路,其容量等于各物理链路容量之和。聚合模块按照一定算法将业务流量分配给不同的成员,实现链路级的负载分担功能。
某些情况下,链路聚合甚至是提高链路容量的唯一方法。例如当市场上的设备都不能提供高于10G的链路时,用户可以将两条10G链路聚合,获得带宽大于10G的传输线路。
此外,特定组网环境下需要限制传输线路的容量,既不能太低影响传输速度,也不能太高超过网络的处理能力。但现有技术都只支持链路带宽以10为数量级增长,如10M、100M、1000M等。而通过聚合将n条物理链路捆绑起来,就能得到更适宜的、n倍带宽的链路。
链路聚合的标准
目前链路聚合技术的正式标准为IEEE Standard 802.3ad,由IEEE802委员会制定。标准中定义了链路聚合技术的目标、聚合子层内各模块的功能和操作的原则,以及链路聚合控制的内容等。
其中,聚合技术应实现的目标定义为必须能提高链路可用性、线性增加带宽、分担负载、实现自动配置、快速收敛、保证传输质量、对上层用户透明、向下兼容等等。
链路聚合控制协议LACP
链路聚合控制协议(Link Aggregation Control Protocol)是IEEE 802.3ad标准的主要内容之一,定义了一种标准的聚合控制方式。聚合的双方设备通过协议交互聚合信息,根据双方的参数和状态,自动将匹配的链路聚合在一起收发数据。聚合形成后,交换设备维护聚合链路状态,当双方配置变化时,自动调整或解散聚合链路。
LACP协议报文中的聚合信息包括本设备的配置参数和聚合状态等,报文发送方式分为事件触发和周期发送。当聚合状态或配置变化事件发生时,本系统通过发送协议报文通知对端自身的变化。聚合链路稳定工作时,系统定时交换当前状态以维护链路。协议报文不携带序列号,因此双方不检测和重发丢失的协议报文。
需要指出的是,LACP协议并不等于链路聚合技术,而是IEEE802.3ad提供的一种链路聚合控制方式,具体实现中也可采用其它的聚合控制方式。
分布式链路聚合技术
IRF
架构下的聚合技术
IRF技术将多台交换设备组合成一个高性能的整体,目的是以尽可能少的开销,获得尽可能高的网络性能和网络可用性。支持IRF技术的设备都具备三个重要特性:分布式设备管理DDM、分布式链路聚合DLA和分布式弹性路由DRR。这三项技术是完成IRF技术目标不可缺少的环节。其中,DLA用于提高传输链路的可用性和容量。
多台IRF交换机堆叠后,端口的数量增加了,要求DLA能支持更多的聚合组,每组能有更多的聚合成员。更多的聚合组意味着交换设备可提供更多的高速链路,而更多的聚合成员则不仅能提高链路容量,还能降低整个数据线路失效的风险。在不同的IRF设备上,上述两项参数不同,但IRF系统至少支持8组聚合链路,每组能提供一条总容量为80M、800M或8000M的传输链路。一些配置较高的交换机还允许两个10G端口的聚合,为用户提供一条带宽更高的链路。
除了能提供更大的带宽之外,DLA还实现了IEEE 802.3ad标准中聚合的其它目标:
带宽的增加是可控的、线性的,可以由用户的配置决定,不以 10为倍数增长。
传输流量时,DLA根据数据内容将其自动分布到各聚合成员上,实现负载分担功能。
聚合组成员互相动态备份,单条链路故障或替换不会引起链路失效。
聚合内工作链路的选择和替换等细节对使用该服务的上层应用透明。
交换设备的链路连接或配置参数变化时,DLA迅速计算和重新设置聚合链路,将数据流中断的时间降到最小。
如果用户没有手工设定聚合链路,系统可自动设置聚合链路,将条件匹配的物理链路捆绑在一起。
链路聚合结果是可预见的、确定的,只与链路的参数和物理连接情况相关,与参数配置或改变的顺序或无关。
聚合链路无论稳定工作还是重新收敛,收发的数据不会重复和乱序。
可与不支持聚合技术的交换机正常通信,也能与其它厂商支持聚合技术的设备互通。
用户可通过CONSOLE、SNMP、TELNET、WEB等方式配置聚合参数或查看聚合状态。
DLA的特征
作为一项新技术,IRF技术呈现出许多新特性,其分布式构架方式使其各功能具有与众不同的优势。DLA体现了IRF技术在链路聚合方面的独到之处:
支持非连续端口聚合
与之前的聚合实现方式不同,IRF系统不要求同一聚合组的成员必须是设备上一组连续编号的端口。只要满足一定的聚合条件,任意数据端口都能聚合到一起。用户可以根据当前交换系统上可用端口的情况灵活地构建聚合链路。
支持跨设备和跨芯片聚合
目前一些堆叠技术并不支持跨设备的聚合方式,即堆叠中只有位于相同物理设备的端口才能加入同一聚合组中,用户不能随意指定聚合成员。这种限制在一定程度上抵消了端口数量扩展的好处。例如,当用户打算通过聚合将一条传输线路的容量提高到800M时,如果每一单独的设备上的端口都不足8个,这一需求就无法满足。虽然整个系统还有足够可用的100M端口,但它们分散在各物理设备上,无法形成一条满足带宽要求的逻辑链路。
IRF则不同。在IRF看来,堆叠的多台设备(称为unit)是一个整体,链路聚合功能和操作也应是一个整体。DLA模块对用户屏蔽了端口的具体物理位置这一细节,其示意图见Figure3。只要聚合条件相同,用户就能将不同unit的端口聚合到一起,如图中的端口p1、p2、p3和p4,组成了一条逻辑链路。此时,unit1~4协同计算和选择聚合组内的工作链路。P1~p4彼此动态备份,跨设备实现数据收发和负载分担,最大限度地发挥了多设备的优势。
跨设备的聚合链路
此外,有些交换设备不支持跨芯片聚合,即位于同一设备不同交换芯片的端口不能聚合。这一限制对IRF设备同样不存在,DLA允许端口跨芯片形成聚合组。对一些使用子卡的IRF设备而言,子卡上端口同样能与本unit或其它unit上任一条件匹配的端口聚合。
分布式聚合控制
虽然IRF系统呈现为一个整体,但并不限制用户只能在某一特定的unit上操作。以聚合为例,用户可在系统的任一unit上对所有聚合链路进行配置和管理,查看全部聚合组和聚合端口的状态。通过CONSOLE、SNMP、TELNET或WEB方式连接到系统的任何一个unit上,用户就能创建或删除聚合组,显示聚合信息,也能进入具体的端口模式修改或显示其聚合参数。在这一过程中,DLA自动将用户命令交给端口所在的unit同步执行。接收命令的unit获取执行结果后提供给用户。
分布式聚合技术进一步消除了设备单点失效的问题,提高了链路的可用性。由于聚合成员可以来自不同设备,这样,即使系统内某些unit失效,其它正常工作的unit会继续控制和维护剩余的端口的状态,聚合链路也不会完全中断。这对核心交换系统以及一些高质量服务的网络意义重大。以下面的Figure4为例, IRF系统X1和X2之间有一条聚合链路。该链路由物理连接Link1~Link4构成,负责局域网LAN1和LAN2之间的通信。假如X1中交换机X11发生故障,导致Link1和Link2不可用,Link3与Link4不受影响,仍能聚合在一起收发数据。此后如果X2中X22也失灵,X1与X2之间至少还能通过Link3保持连接。
两个IRF系统之间的聚合链路
IRF设备可视为 “积木式”(scalable)的交换机。用户既可使用单台IRF交换机组网,也可以逐台增加从而按需增强网络设备的性能。同时这一高性能堆叠交换机也可以拆分,拆分后各unit恢复成为独立工作的交换设备。上述过程分别称为合并(merge)和拆分(split)。如果合并前两个系统各自创建了参数相同的聚合链路,IRF要求合并后这些聚合成员必须加入同一组,即聚合组也实现合并。合并后各个unit协同工作,在全局匹配配置参数、分配聚合组号、将端口加入对应组并重新计算和设置端口状态。同样,如果拆分前同一聚合组成员分布于不同unit上,拆分后它们仍留在各自创建的同名同类型聚合组中。DLA确保各unit保留当前的聚合配置,从组中删除已离开的端口,然后计算剩余端口的状态。
这一特性最大限度保护了用户的聚合配置。而且,当堆叠链路故障引起系统拆分时,该特性让IRF系统尽可能地维持已有的聚合链路,降低故障带来的数据传输损失。
多种聚合类型
DLA实现了三种类型的聚合方式:手工聚合、静态聚合和动态聚合。
手工和静态聚合组通过用户命令创建或删除,组内成员也由用户指定。创建后,系统不能自动删除聚合组或改变聚合成员,但需要计算和选择组内成员的工作状态。聚合成员是否成为工作链路取决于其配置参数,并非所有成员都能参加数据转发。
手工和静态聚合主要是聚合控制方式不同。手工聚合链路上不启用LACP协议,不与对端系统交换配置信息,因此聚合控制只根据本系统的配置决定工作链路。这种聚合控制方式在较早的交换设备上比较多见。静态聚合组则不同,虽然聚合成员由用户指定,但DLA自动在静态链路上启动LACP协议。如果对端系统也启用了LACP协议,双方设备就能交换聚合信息供聚合控制模块使用。
动态聚合控制完全遵循LACP协议,实现了IEEE802.3ad标准中聚合链路自动配置的目标。用户只需为端口选择动态方式,系统就能自动将参数匹配的端口聚合到一起,设定其工作状态。动态聚合方式下,系统互相发送LACP协议报文,交换状态信息以维护聚合。如果参数或状态发生变化,链路会自动脱离原聚合组加入另一适合的组。
上述三种聚合方式为IRF系统提供了良好的聚合兼容性。系统不仅能与不支持链路聚合的设备互连,还能与各种不同聚合实现的设备配合使用。用户能根据实际网络环境灵活地选择聚合类型,获得高性能高可靠的链路。
DLA
的应用例
与IRF的其它功能配合,DLA能在许多应用环境下发挥重要的作用。下面给出两个应用例。
DLA在办公楼区的应用
Figure5显示了IRF在一个办公楼群中的应用案例。整个楼群通过4台IRF交换机unit1~unit4与外网通信。Unit1~unit4分别位于4栋办公楼中。它们之间以光纤相连,组成一个IRF系统。IRF系统通过Link1~Link8与外部网络相连(Link1~Link8为100M带宽链路)。
Link1~Link8聚合后,整个IRF系统可为楼内用户提供高可靠的通信。以用户H1为例,正常情况下,H1与外网交换数据的速率理论上能达到800M。即使Link1和Link2发生故障,H1与外网的通信经由Link3~Link8转发,也能获得一条最大带宽为600M的线路。此外H1与网内邻居H2之间的通信也能由unit之间的光纤高速转发。
IRF-DLA应用于办公楼群
DLA在HPC系统内的应用
下图显示了IRF-DLA在一个高性能机群计算系统HPC(High Performance Computer)中的应用。HPC系统主要用于完成大计算量任务。机群的主节点将任务分成多个可独立进行的片段,交由各个计算节点完成。出于对高速计算的要求,HPC对数据吞吐速度和数据交换系统的可靠性有很高的要求。
图中所示的HPC服务器均通过两块网卡与IRF系统相连。其中主节点和备份节点上各使用2条10G链路分别与X1和X2相连,各计算节点分别使用2条1G的链路线路与之相连。X1和X2均正常工作时,主节点通过总容量20G的聚合链路将计算任务源源不断地发送给各计算节点,同时各计算节点将结果通过2G的链路提交给主节点。
当与主节点相连接的某条10G链路出现故障,或者X1失灵时,虽然系统的整体计算性能有一定程度的下降,但10G链路基本能满足HPC的要求,不会成为整个计算系统的性能瓶颈。
IRF-DLA应用于HPC系统
总结
链路聚合技术为网络系统提供了链路级的高可用性方案,同时为系统提供了更大的带宽。而IRF技术下的分布式链路聚合技术更将聚合技术提升到一个新的层次,实现了堆叠系统下跨设备跨芯片的聚合方式。其分布式的管理和控制不仅为用户提供了易扩展的聚合手段和方便的操作方式,也进一步消除了交换机故障时引发的单点失效问题。DLA的三种聚合方式最大程度满足了用户在不同组网环境下对聚合的需求。因而,由于采用了DLA技术,IRF架构将成为不同于已有聚合实现的全新的交换设备,在当今用户需求日益提升的数据通信领域中必将大放异彩。
|