在主要主机故障转移过程中堆栈地址的保持的制作方法

文档序号:7629545阅读:200来源:国知局
专利名称:在主要主机故障转移过程中堆栈地址的保持的制作方法
技术领域
本发明一般涉及在数据通信网络内堆栈交换机系统的管理。具体而言,本发明涉及一种容错堆栈交换机系统,适合于检测和处理交换机故障以及从其中恢复,而不需要改变堆栈交换机系统的堆栈媒体访问控制(MAC)地址。
背景技术
可堆栈交换机是可以工作在独立模式,也可以在堆栈内工作的交换机或路由器。这些可堆栈交换机,在此称作交换机,耦合到称作堆栈的单个逻辑单元内。这些交换机通过在每个交换机上存在的一对指定堆栈端口操作地互连。堆栈交换机系统通常串联耦合,该系统的拓扑结构的特征通常在于称作环的闭合环路或者在此称作链的交换机开放链路。每个堆栈交换机适合于通过经堆栈端口发送分组来执行在它们自己的数据端口之间以及其它堆栈交换机的数据端口之间的切换,便于将这些分组有效地传输和切换到合适的堆栈交换机端口。
堆栈内的每个交换机可以被选择作为主要主机或次要主机。主要主机执行主要堆栈管理功能,可以包括保持和更新配置文件、路由信息和其它堆栈信息。次要主机用作主要主机的备份。在堆栈系统内通常选择一个主要主机交换机和一个次要主机交换机。这种选择机制可以通过本领域普通技术人员公知的各种选择标准来控制。这种选择标准例如由具有最低媒体访问控制(MAC)地址、具有最长正常工作时间或者具有最低堆栈标识符的交换机来控制。用户优先级也可以控制主要和次要主机的选择。
需要各种信息来有效地运行和与集成堆栈交换机系统通信。例如,通常使用一个网际协议(IP)地址和一个堆栈地址来标识堆栈交换机系统。这使得堆栈交换机系统看起来是一个逻辑单元,尤其对于与这种系统通信的外部设备来说更是如此。
将每个交换机单元提供给具有唯一本地MAC地址的客户。该地址是由制造商分配的全球分配的组织上唯一的标识符。通常将这个MAC地址存储在持久存储器内。在传统的或现有技术的堆栈交换机系统内,堆栈地址反映当前运行的主要主机的MAC地址。因而,当主要主机故障和次要主机开始作为主要主机工作时,堆栈交换机系统的堆栈地址也相应地改变以反映现在运行的主要主机的MAC地址。
无论何时出现故障转移,这种固定的改变不仅影响堆栈交换机系统,而且影响与这个堆栈通信的周边设备。例如对地址解析协议(ARP)表和其它第三层(Layer3)表格的影响。例如,我们假设周边设备知道可堆栈交换机系统,即堆栈A,具有堆栈地址M1。当出现故障转移时,次要主机开始工作作为新的主要主机,并相应地将堆栈地址改变为例如M2,即新的主要主机的MAC地址。堆栈A通告它的新堆栈地址-M2。已经将堆栈A与堆栈地址M1相关联的相邻或周边节点现在必需改变它们的ARP表格以将堆栈A与新堆栈地址M2相关联。这个在堆栈地址内的改变还需要使用新的堆栈地址M2更新和替换使用先前堆栈地址M1作为下一跳的所有路由。
根据IEEE 802.3ad链路集合标准,另一个可能受到影响的方面是链路集合。链路集合或中继是将物理网络链路组合成单条逻辑链路以提高带宽的方法。在一些现有技术的实施例中,改变堆栈地址导致对集合或中线的重新计算,这是因为该堆栈地址被用在计算提供链路集合必需的密钥的过程中中线。堆栈地址的改变因而生成使用新地址的一组新密钥。
另一个可能受影响的方面是根据生成树协议的生成树的重新计算。这个协议包含在IEEE 802.1D标准内。如果由于新主要主机的选择导致改变堆栈地址,则必须考虑这一改变而重新计算新的生成树。当新选择的主要主机变成新的根桥时,这特别麻烦。该根桥使用MAC地址作为它的参数之一。
堆栈地址的改变对网络和堆栈交换机系统的性能产生直接的影响。由于新堆栈地址的重新学习或新生成树或中继的重新计算,堆栈地址的改变产生更高的延迟。这还导致链路出现临时中断的情况。当出现多个主要主机向次要主机的故障转移时,这种影响也非常麻烦。因而,非常需要一种避免这种负面影响的方法。本发明满足这一需要。

发明内容
本发明的特点在于当出现主要主机交换机到次要主机交换机的故障转移时,避免影响堆栈交换机系统以及与这样一个系统通信的相邻节点的实施例。本发明的特点在于即使当出现多个主要主机向次要主机的故障转移时,通常也支持堆栈交换机系统将其堆栈地址保持固定或不确定的时间周期。这样,使某些协议-例如生成树和链路集合-的重新计算和某些表格-例如地址解析协议(ARP)和路由选择表格-的更新最小化。
在第一实施例中,本发明提供一种在堆栈系统内的交换设备,该堆栈系统包括串联耦合的多个堆栈交换机,多个堆栈交换机中的每个堆栈交换机具有它自己的本地地址。该交换设备包括两个堆栈端口,堆栈端口的至少之一可操作地耦合到多个堆栈交换机之一;和堆栈管理器。该堆栈管理器适合于选择主要主机交换机以执行堆栈交换机系统的主要堆栈管理功能;根据主要主机交换机的本地地址将堆栈地址分配给多个堆栈交换机;当主要主机交换机故障时,选择次要主机准备用作新的主要主机交换机;接收重新启动时间,其中该重新启动时间是确定的固定周期重新启动时间或不确定的时间周期;和当次要主机交换机用作新的主要主机交换机时,确定是否替换堆栈地址。在另一个实施例中,堆栈管理器还适合于当主要主机故障并且主要主机在确定的固定周期重新启动时间内不能加入堆栈交换机系统时,根据用作新的主要主机交换机的次要主机的本地地址,使用新的堆栈地址替换所述堆栈地址。
在另一个实施例中,本发明提供一种管理堆栈交换机系统的方法,该堆栈交换机系统包括多个堆栈交换机、选择作为第一主要主机交换机的多个堆栈交换机之一、选择作为第一次要主机交换机的多个堆栈交换机之一和被分配堆栈地址的堆栈交换机系统。该方法包括步骤接收表示确定的固定时间周期和不确定的时间周期的重新启动时间;当第一主要主机交换机故障时,使用第一次要主机交换机替换第一主要主机交换机以用作第二主要主机;仅当重新启动时间是确定的固定周期和第一主要主机在作为确定固定周期的重新启动时间内不能加入堆栈交换机系统时,或者当接收到使用新的堆栈地址替换所述堆栈地址的命令时,根据第二主要主机的本地地址使用新的堆栈地址替换所述堆栈地址。
在另一个实施例中,本发明提供一种交换设备。这个交换设备可以耦合到堆栈交换机系统,该堆栈交换机系统包括可操作地耦合的多个堆栈交换机、选择作为主要主机以执行主要堆栈管理功能的多个堆栈交换机之一和当主要主机故障时选择作为新的主要主机的次要主机的多个堆栈交换机中的另外一个堆栈交换机。该堆栈系统被分配有第一堆栈地址。该交换设备包括两个堆栈端口,至少一个堆栈端口适合于可操作地耦合多个堆栈交换机之一;和堆栈管理器,适合于通过用作新的主要主机的次要主机,使用第一堆栈地址执行主要堆栈管理功能,而不使用新的主要主机的本地地址。


本发明通过例子来进行说明,而不限制于附图,在附图中图1是根据本发明优选实施例的集成堆栈交换机(ISS)系统的功能方框图;图2是根据本发明优选实施例的在ISS系统内使用的堆栈交换机的功能方框图;图3是根据本发明优选实施例的表示堆栈交换机在启动过程中各阶段的状态图;图4A是图示根据本发明优选实施例的主要和次要主机交换机的选择和当次要主机用作新的主要主机时的流程图;图4B是图示根据本发明优选实施例的基于重新启动时间的高层操作的流程图;图4C是图示根据本发明实施例的使用新的堆栈地址替换旧的堆栈地址的操作的流程图;图5是图示根据本发明实施例的给加入的交换机单元分配当前堆栈地址的流程图;图6A、6B和6C图示根据本发明实施例的具有预先定义的确定重新启动时间、在故障转移到第二主机之前和之后和在先前的主要主机加入ISS之后的示例性的四单元ISS系统;图7A、7B、7C和7D图示根据本发明实施例的具有预先定义的确定重新启动时间、在故障转移到第二主机之前和之后和在重新启动时间结束之后的示例性的四单元ISS系统;图8A、8B、8C和8D图示根据本发明实施例的具有不确定的重新启动时间-未指定重新启动时间、在故障转移到第二主机之前和之后、在先前的主要主机加入ISS之后和在主要主机的另一个故障之后的示例性四单元ISS系统;图9A、9B和9C图示根据本发明实施例的具有预先定义的重新启动时间、在故障转移到第二主机之前和之后和在先前的主要主机加入ISS之后的示例性两单元ISS系统;图10A、10B和10C图示根据本发明实施例的具有预先定义的重新启动时间、在故障转移到第二主机之前和之后和在重新启动时间结束之后的示例性两单元ISS系统;和图11A、11B、11C和11D图示根据本发明实施例的具有不确定的重新启动时间-未指定重新启动时间、在故障转移到第二主机之前和之后、在先前的主要主机加入ISS之后和在主要主机的另一次故障之后的示例性两单元ISS系统。
具体实施例方式
下文的详细描述以使本领域的技术人员能够清楚地实现和使用本发明的方式通过例子来说明本发明,而不限制本发明的原理,并描述了多种实施例、修改、变型、替换和本发明的用途,包括相信当前是执行本发明的最佳模式的实施方式。
为了更好地理解附图,在下文的描述中在各幅图和描述中使用相同编号的附图标记来标识相同或类似的结构、动作、操作或处理步骤。此外,在图1中首先引入在一百序列内的参考数字,例如102和104,在图2中首先引入在二百序列内的参考数字,例如222和224,依此类推。因而,在图9中首先引入在九百序列内的参考数字,例如920和940。
图1图示在数据通信网络内的集成堆栈交换机(ISS)系统的功能方框图。ISS 120包括例如利用诸如双绞线对或光缆等堆栈链路110-113操作地串行链接以形成链条或环形拓扑的多个堆栈交换机100-103。交换设备100-103最好是通过本领域技术人员称作堆栈端口的一个或多个专用端口操作地相互耦合的可堆栈交换机。在此称作堆栈单元和单元的多个堆栈交换机100-103适合于在ISS 120的其它交换机之间以及通过诸如一个或多个局域网(LAN)、广域网(WAN)、城域网(MAN)或互联网等操作地耦合到ISS的一个或多个终端站和其它可寻址实体之间传送分组数据。
在优选实施例中,堆栈交换机100-103是适合于在开放系统互连(OSI)参考模型定义的第二层(数据链路层)和第三层(网络层)上使用协议数据单元(PDU),最好是帧和分组,执行交换和路由选择操作的多层交换机,尽管它们也可以执行第四层至第七层的交换操作。每个堆栈交换机100-103通常能够工作为独立的网桥、交换机或路由器。堆栈交换机100-103在一起协作以模拟单个交换设备。ISS系统120优选地具有由所有交换单元使用的单个堆栈地址和单个网际协议(IP)地址。
使用优选实施例的堆栈管理器,本发明的ISS 120最小化和控制通过网络操作地耦合到ISS 120的终端站或其它可寻址实体的表格,尤其是第二层和第三层表格的更新。本发明的ISS还最小化和控制当交换机管理故障转移出现时诸如链路集合和生成树协议等某些协议需要的计算更新。
图2图示在优选实施例的ISS 120系统内使用的堆栈交换机的功能方框图。该堆栈交换机200包括一个或多个网络接口模块(NIM)204、一个或多个交换控制器206和管理模块220,它们协作以通过每个外部端口202接收输入数据业务和发送输出数据业务。为了本实施例的目的,在此,将从另一个网络节点流入交换机200的数据称作输入数据,它包括输入协议数据单元。相反地,将内部传播到端口202以传送给另一个网络节点的数据称作输出数据,它包括输出PDU。多个端口202中的每个端口优选地是适合于接收输入数据和发送输出数据的双工端口。
NIM 204和204S优选地包括适合于通过网络通信链路(未图示)交换诸如以太网帧和IP分组的PDU的一个或多个物理层接口和数据链路层接口。其中,多个端口202是用于将特定堆栈交换机200合并到ISS 120中的双堆栈端口202S。与双堆栈端口202S相关联的堆栈端口NIM 204S例如是标准以太网端口,并适合于根据堆栈配置模式与各种兼容节点交换PDU常规数据业务以及与其它堆栈交换机的堆栈内通信。通过一个或多个输入数据总线205A将输入PDU从多个NIM 204和204S传送给交换控制器206。类似地,通过一个或多个输出数据总线205B将输出PDU从交换控制器206发送给多个NIM 204。
管理模块220通常包括用于保存和执行业务策略的策略管理器224。由策略管理器224执行的策略优选地部分基于从信源学习操作产生的第二层和/或第三层寻址信息、从其它路由选择设备接收到的路由信息和由网络管理员使用诸如简单网络管理协议(SNMP)消息226通过配置管理器222上载的过滤规则。根据信源学习得到的业务策略、其它网络节点和管理器可以由路由选择引擎230使用,并由转发表格254整体表示。
配置管理器222优选地也能够接收由网络管理员上载的配置信息。该配置信息包括用于确定是否使用新的堆栈地址替换ISS 120的堆栈地址的重新启动时间信息。该信息可以存储在堆栈信息模块230内,该模块230还可以包含用于管理ISS的路由选择和交换表格。该堆栈信息模块230支持各种交换机单元在堆栈环境中相互通信和协同工作。
除了业务策略之外,管理模块220还包括用于执行在下文中更详细地讨论的ISS堆栈交换功能的中央管理模块(CMM)210。优选实施例的CMM 210包括端口状态模块212和堆栈管理器214。端口状态模块212适合于使用诸如保持继续(keep-alive)信号监视堆栈端口202S的操作状态,并识别耦合到堆栈端口202S的相邻堆栈交换机的存在。
在优选实施例中的堆栈管理器214适合于参与确定每个堆栈交换机的管理职责的选择、处理用于监视其它交换机状态的管理消息,和如果需要的话,用作主要主机交换机(PMS)或次要主机交换机(SMS),其职责可以包括将堆栈地址分配和传送给一个或多个堆栈交换机100-103,和更新在ISS的交换操作中使用的交换和其它表格。此外,堆栈管理器214适合于确定ISS堆栈交换机的拓扑结构和处理在ISS 120的堆栈交换机之间交换的与拓扑结构相关的消息。具体而言,堆栈管理器214发送ISS拓扑结构请求,发送已知的ISS拓扑结构信息给其它堆栈交换机,和维护一个或多个本地拓扑结构表格。在一种实施例中,堆栈管理器214还负责检测单元的丢失、附加单元的插入(导致生成陷阱(trap))、从堆栈中单元的删除、和确定相关CMM 210的操作状态。堆栈管理器214还适合于读取它自己的本地媒体访问控制(MAC)地址218-通常由制造商分配,和接收ISS内的其它交换单元的本地MAC地址。该MAC地址优选地存储在只读存储器芯片内。
交换机100优选地包括至少一个网络处理器206,它能够执行但是并不限制于如在开放系统互连(OSI)参考模型中定义的第二层(数据链路层)和第三层(网络层)交换操作。用于将外部端口202可操作地耦合到有线和/或无线通信链路的可能的第二层协议组包括电气和电子工程师协会(IEEE)802.3和IEEE 802.11标准,而可能的第三层协议组包括在互联网工程任务组(IETF)提请评论(RFC)791中定义的网际协议(IP)第4版和在IETF RFC 1883中定义的IP第6版。
交换控制器206优选地包括路由选择引擎230和队列管理器240。路由选择引擎230包括分类器232,接收来自数据总线205A的输入PDU,检查PDU的一个或多个字段,使用内容可寻址存储器233将PDU分类成多个流之一,和从在高速存储器内包含的转发表254中提取转发信息。从转发表254提取出的转发信息优选地包括,但是并不限制于,用于指定准备输出的特定PDU必需的那些转发操作的流标识符,它可以包括下一跳的地址和服务等级(COS)或服务质量(QOS)规定。
转发处理器234接收带有相关转发信息的输入PDU,并在传送给合适的一个或多个输出端口之前执行一个或多个转发操作。该转发操作例如优选地包括但并不限制于用于重新打包数据的首部转换,用于将一个或多个VLAN标签添加给PDU的VLAN标签推进(pushing),用于从PDU删除一个或多个VLAN标签的VLAN标签推出(popping),用于预留网络资源的服务质量(QoS),用于监视客户业务的记帐和核算,多协议标签交换(MPLS)管理,用于选择地过滤PDU的鉴权,访问控制,包括地址解析协议(ARP)控制的更高层学习,用于再生和重定向PDU以便业务分析的端口镜像,信源学习,用于确定用于为PDU分配交换机资源的相对优先级的服务等级(CoS),用于修正和业务整形的颜色标记,和用于在ISS 120的交换机100-103之间有效地分配PDU的堆栈间交换机标签管理。
在转发处理器234之后,将PDU传送给和存储在队列管理器240内,直到带宽可用于将PDU发送给合适的输出端口。具体而言,将输出PDU缓存在缓冲器242内的多个优先级队列中的一个或多个之内,直到由调度器244通过输出数据总线205B将它们发送给外部端口202。
本发明的交换机200还包括MAC地址218。这个MAC地址218优选地是包含与交换机200相关的唯一MAC地址的存储器芯片。
图3图示根据本发明优选实施例的由ISS的堆栈交换机从启动到完全操作模式使用的自动调整机制的各个阶段的状态图。一旦初始化,堆栈交换机200进入可堆栈性确定状态302,其中交换机确定将其配置成用作独立交换机还是堆栈交换机。根据堆栈端口202S的物理和操作情况来确定可堆栈性。在本发明的某个实施例中,在交换机内可能不存在堆栈端口。如果将交换机配置用作独立操作304,则禁用堆栈管理器214,并且交换机根据具有所有数据端口202的多层交换机操作。
然而,当配置作为堆栈交换机时,端口状态模块212监视堆栈链路,并向堆栈管理器214指示两个堆栈链路中任一个的改变。堆栈管理器例如响应于链路连接,例如已经插入链路,或者链路拆除,例如已经删除链路,并相应地执行合适的动作,例如应付和处理一个或多个单元已经加入堆栈或者一个或多个单元已经离开堆栈的情况。堆栈管理器214在堆栈端口上监听保持有效消息或者表示相邻单元存在的其它信号。在不存在相邻堆栈交换机的情况下,交换机确定它是一个堆栈306,并前进到转发状态308,其中它在标准的数据端口202上接收和发送数据业务,同时在堆栈端口202S上监视一个或多个附加堆栈单元的引入。
如果在可堆栈性确定状态302中在堆栈端口202S上检测出一个或多个交换机,则交换机200前进到用于确定ISS 120的拓扑结构的发现状态310。随后,堆栈交换机200前进到选择状态312,其中ISS120的堆栈交换机执行用于识别哪些单元将分别用作主要主机交换机(PMS)和次要主机交换机的角色确定处理,这里的主要主机交换机和次要主机交换机在此也称作主要主机和次要主机。
确定哪些堆栈单元将用作主要主机和次要主机的标准是本领域的普通技术人员公知的。这样的选择标准的例子包括但是并不限制于选择具有最低MAC地址218的交换机单元作为主要主机,选择具有最长运行时间或正常运行时间的交换机单元作为主要主机,根据所分配的时隙编号选择主要主机和次要主机,和根据在配置文件内存储的用户偏好选择主要主机和次要主机。
主要主机负责ISS管理功能,包括处理所有的命令行接口输入和同步图像-即在堆栈交换机上同步不同的软件版本。该功能还可以包括同步各种表格和信息,例如交换表、路由选择表和配置信息。次要主机是主要主机的指定继任者,并且如果主要主机出现故障或者变得不能工作,则用作新的主要主机。虽然优选实施例的每个堆栈交换机可以假定主要和次要主机的角色,其余的堆栈交换机听从主机交换机,除非它们中的任意一个随后被选择作为主机。
当工作在转发状态308时,交换机200适合于转变成监控状态316和通过(PT)状态320,并从其中转变出。在监控状态316中,类似于用于交换继续有效消息的继续有效机制,单元200为了监控目的将监控消息发送给它的两个相邻单元。当例如将新的堆栈交换机插入到ISS 120中或者删除现有的交换机时,交换机200自动地与其它堆栈交换机交换拓扑结构信息,并更新它的堆栈交换机相邻表格。如果主要主机和次要主机同时故障,其余的堆栈交换机-很可能处于转发状态308-前进到选择状态312以选择新的主要主机。如果次要主机故障,则不存在选择,但是主要主机选择空闲单元之一作为次要主机。一旦选择这个单元,主要主机使用授予最大权威的选择指示消息向整个堆栈通知新的指定。如果主要主机故障,则不存在真正的选择,而是由次要主机推荐它自己变成新的主要主机,并选择空闲单元之一成为新的次要主机。一旦选择这个单元,则新的主要主机使用赋予最大权威的选择指示消息向整个堆栈通知新的指定。
在优选实施例中,存在通过状态320。在通过(PT)状态320中,完全禁用堆栈交换机的数据端口102,并配置路由选择引擎230以将数据业务从它的两个堆栈端口202S中的每一个传送给相对的堆栈端口。在PT状态320中,路由选择引擎320有效地模拟在两个相邻堆栈交换机的堆栈端口之间的固定线路连接,从而防止否则将会发生的在堆栈交换机120的系统的连续性中的中断。通过状态可以用于维持在与公共单元相邻的堆栈交换机之间的连续性而不是关闭,从而维护ISS 120,其中现有技术的堆栈交换机系统将使它们的环形拓扑结构恶化,或者建立两个独立的链路。并不用作任何主要或次要管理功能和并非通过交换机的交换机单元在此称作空闲交换机。
如图所示,堆栈交换机可以在发现状态310和监控状态316之间的任一方向上转变,因为当堆栈交换机检测到相邻单元和它因此应当执行在下文中更详细地描述的监控任务时,与发现状态310同样早地需要并执行监控。
图4A是根据本发明实施例的图示主要和次要主机交换机的选择和当次要主机承担主要主机交换机的作用时的高层流程图。通常,堆栈管理器分配堆栈地址和无限期地保存这些地址,除非存在如在下文中进一步讨论的指定的重新启动时间。
在堆栈的发现310之后,例如在启动之后,堆栈管理器214选择主要主机(步骤400)和次要主机(步骤402)。也可以由网络管理员例如通过管理模块220人工地强制执行这一选择处理。堆栈管理器214获得选定主要主机的本地MAC地址218,并使用这个地址作为堆栈地址(步骤404),随后将其传送给ISS系统的其它单元(步骤406)。随后,将这个堆栈地址例如存储(步骤408)在存储器内以便后续处理和比较。为了说明的目的,将这个堆栈地址称作M1。继续监视主要主机的存在(步骤410)以确定次要主机是否必需取代主要主机的角色。
如果选择的主要主机故障(测试412),次要主机自动地变成新的主要主机(步骤414)。主要主机的故障,优选地自动地,触发次要主机工作作为新的主要主机。在新的主要主机故障的情况下,随后选择(步骤416)新的次要主机。随后,确定是否保存当前的堆栈地址或用新的地址予以替换。这由堆栈地址别名模块来处理(步骤418)。如果通常遇到任何情况使得主要主机处于它不能执行它自己的主要主机功能,则将主要主机视为已经故障。触发主要主机交换机故障的情况是本领域的普通技术人员公知的。
图4B更详细地图示堆栈地址别名模块418。在第一操作中,堆栈管理器确定在ISS系统120中已经定义了何种类型的重新启动时间(步骤434)。优选地,存在两种重新启动时间-确定的重新启动时间和不确定的重新启动时间。确定的重新启动时间是任一固定的时间周期,包括0秒、20秒、50分钟、36小时、4周、等等。优选地由配置管理器222例如通过SNMP消息已经将重新启动时间配置在ISS系统120内。重新启动时间可以由网络管理员或者由堆栈管理员214来指定,还可以是系统缺省值。
确定的重新启动时间是支持先前的主要主机重新加入ISS系统,在使用反映新主要主机地址的新堆栈地址替换当前的堆栈地址之前的所指定的固定时间周期。在定义该重新启动时间时例如可以考虑临时故障转移条件-而不影响外部设备。这些临时条件例如可以包括由于电缆的偶然移动和主要主机的临时维护导致的主要主机脱机。该重新启动时间可以是任意时间周期,包括若干秒、小时、分钟、天、星期和月。定义不确定重新启动时间和确定重新启动时间,包括固定时间周期,的机制优选地包括在与本发明的设备200对接的网络管理系统内。在一种实施例中,未指定固定时间周期意味着已经为ISS系统120指定了不确定的重新启动时间。
不确定的重新启动时间通常向堆栈管理器指示应当尽可能长地维持和不改变堆栈地址。在一种实施例中,这可以用布尔标志来表示。在优选实施例中,仅当存在由堆栈管理器接收的(未图示)的命令强制它根据当前工作的主要主机的本地MAC地址将堆栈地址改变成新的堆栈地址时,或者当已经将确定的重新启动时间定义到系统内并且最近故障的主要主机不能在规定的确定重新启动时间内加入ISS 120时,才改变堆栈地址。可以通过多种方式实现不确定的重新启动时间值。在一个示例性的实施例中,向网络管理员提供使用布尔标志选择不确定的或确定的重新启动时间的选项。如果选择确定的重新启动时间,则网络管理员还能够输入固定周期以表示确定的重新启动时间。还可以由管理员通过在输入字段内输入诸如零值或空值来表示不确定的重新启动时间。
如果已经指定确定的重新启动时间(测试434),则执行检查以确认确定的重新启动时间是否已经到期(测试432)。如果重新启动时间尚未到期,则监视前一主要主机的存在(步骤436)。在优选实施例中,新的主要主机-前一次要主机,优选地使用堆栈管理器,检查在ISS内存在的具有与当前堆栈地址相同数值的本地MAC地址218的交换机单元200。先前存储了该当前堆栈地址(步骤408)。如果发现具有与堆栈地址相同的本地MAC地址的单元,这意味着先前的主要主机现在已经重新加入了ISS系统(步骤440)。随后,先前的主要主机作为ISS系统的单元重新加入该堆栈(步骤440),并获得当前的堆栈地址(步骤442)。
继续监视当前工作的主要主机以确定它是否已经故障。执行该监视而不考虑是否指定了重新启动时间。这使得次要主机能够担任主要主机的角色,并在主要主机故障时避免了中断。然而,如果重新启动时间已经到期(测试432),则堆栈管理器214执行本发明的未屏蔽特征。
图4C更详细地描述了该未屏蔽的特征。在第一操作中,当前操作或新的主要主机获取它的本地MAC地址218,例如M2(步骤452)。现在将该地址M2用作当前堆栈地址,并将其传送给ISS内的其它单元(步骤454)。随后,将这个当前堆栈地址存储作为新的当前堆栈地址(步骤456)。因为现在堆栈地址有了新的改变,所以例如通过网络耦合到ISS的远程设备现在必须更新它们的相应表格,包括第2层和第3层表格,以记录ISS 120的新的堆栈地址。如果使用生成树协议,则ISS 120也可能必须重新计算新的生成树。还可能必须重新计算链路集合协议。
如果已经指定不确定的重新启动时间(步骤434)或者如果主要主机在指定的重新启动时间内重新加入ISS(向后指向图4A的419),堆栈管理器通常保持使用旧的堆栈地址,而不考虑ISS系统内的哪个单元是主要主机或次要主机。维持和不替换堆栈地址,除非例如由网络管理员通过指示堆栈管理器使用新的堆栈地址替换堆栈地址的命令强制执行,或者当已经指定确定的重新启动时间和主要主机在确定的重新启动时间内尚未重新加入ISS时。换句话说,本发明的特征通常保存旧的堆栈地址和具有主要主机别名自身作为另一个地址,而不考虑主要主机的本地MAC地址与堆栈地址相同还是不同。通过保持堆栈地址表,意味着当主要主机故障时并不自动地进行改变,本发明的实施例最小化不必要的表格更新和不必要的计算,例如生成树,和更新,例如ARP表格更新。当网络管理员知道ISS配置时,尤其是在堆栈内包括的单元通常是稳定的并且不在延长的时间周期内改变时,这特别有用。这种作为不同地址的屏蔽将继续,直至存在强制或自动的未屏蔽模块。强制的未屏蔽模块可以由堆栈管理器214通过配置管理器222(未图示)接收。
在本发明的优选实施例中,本发明的ISS 120还能够手动地强制未屏蔽模块。这意味着使得当前主要主机单元的堆栈地址和本地MAC地址相同。在网络管理员例如确定从当前堆栈地址是M1的ISS中删除本地MAC地址例如也是M1的单元,并且将该单元安装在网络的另一部分内的那些情况下,这是有用的。强制主要主机单元的堆栈地址和MAC地址相同避免了复制MAC地址和在网络内的冲突。
图5是图示当交换机单元加入或重新加入ISS 120时根据本发明实施例的步骤的高层流程图。在第一操作中,加入的单元,也包括重新加入的单元,获取当前的堆栈地址(步骤502)。随后,加入的单元能够作为ISS的部分发送分组。给加入单元分配主要主机、次要主机还是空闲角色的确定取决于堆栈管理的实施方式。如本领域的普通技术人员公知的,存在给ISS系统120内的每个单元分配何种堆栈管理角色的多种机制。
图6A、6B和6C图示带有指定的确定重新启动时间,例如60秒的示例性四单元ISS系统600。图6A和图6B图示分别在故障转移之前和故障转移之后的ISS。图6C图示在前一主要主机加入堆栈之后的ISS。在这个例子中,ISS具有四个交换机单元601、602、603和604。每个单元具有它自己的由制造商分配的唯一本地MAC地址第一单元601具有M1本地MAC地址;第二单元602具有M2本地MAC地址;第三单元603具有M3本地MAC地址;和第四单元具有M4本地MAC地址。在初始选择过程中,通常在系统启动过程中,堆栈管理器214根据在ISS内实现的选择标准选择主要主机和次要主机。在这个示例性的实施例中,将第一单元601选择作为主要主机,而将第二单元602选择作为第二主机。给其它的单元603、604分配空闲管理角色。堆栈管理器214提取主要主机601的本地MAC地址,在这个例子中为M1,使用该地址作为堆栈地址,将该堆栈地址传送给ISS 600内的其余交换机单元,并将其存储作为当前的堆栈地址-M1。ISS内的每个单元优选地在存储器内存储同一堆栈地址。
参见图6B,在操作过程中,然而,主要主机601故障,例如变成脱机。这个故障和故障转移状态可能是故意或非故意的,可以包括管理员故意设置主要主机脱机,到主要主机的电缆移动和主要主机的电源关闭。因为主要主机故障601,次要主机602自动地作为新的主要主机工作。然而,堆栈地址-M1并不改变。
图6C图示在先前故障的单元601已经在指定的重新启动时间内加入堆栈600之后交换机的单元。因为第一单元在指定的重新启动时间,60秒,之内重新加入ISS 600,堆栈地址-M1并不改变。给在这个示例性实施例内的加入单元601分配空闲管理角色。
图7A、7B、7C和7D图示具有指定的重新启动时间,例如60秒,的示例性四单元系统ISS。图7A和图7B分别类似于图6A和图6B。图7A和图7B分别图示在故障转移之前和在故障转移之后的ISS 700。然而,图7C图示在指定的重新启动时间已经到期并且先前的主要主机在60秒的重新启动时间内未加入ISS 700之后的ISS 700。在该图中,堆栈管理器214获取主要主机702的本地MAC地址,在这种情况下为M2,并作为新的堆栈地址使用和传送该地址。在这种情况下,即使从ISS 700删除第一单元701,并安装在网络的另一部分内,也将不存在MAC地址的复制。然而,假设第一单元留在ISS 700内,并在确定的时间周期例如24小时之后加电并加入堆栈(图7D),则类似于其它单元,这个单元701以空闲的管理容量加入堆栈,并获取堆栈地址M2。因而,先前作为堆栈管理器工作的堆栈单元也可以加入本发明的ISS 120,而不需要对堆栈地址的任何改变。
图8A、8B、8C和8D图示示例性的ISS 800,但是具有不确定的重新启动时间。这意味着在不确定的时间周期内保持并不改变堆栈地址。图8A和图8B分别图示在故障转移之前和之后的ISS 800。图8A类似于图6A和图7A,而图8B类似于图6B和图7B。考虑到不存在指定的重新开始时间/不确定的重新启动时间,保持和不改变先前的堆栈地址,除非手工强制或者存在保证改变堆栈地址的故障转移。
图8C图示在第一单元已经加入ISS 800之后的ISS 800。给第一单元分配空闲交换机的角色。此加入可能已经在故障转移之后的任意时间上完成。在这个操作阶段,ISS 800依然保存它的堆栈地址M1。
假设在这个示例性ISS的继续操作过程中,新的主要主机802现在故障。图8D图示担任主要主机角色的次要主机803。选择第四单元804成为新的次要主机。即使这个第二主要主机故障,堆栈地址也保持不改变,并且即使在两次故障转移之后依然是相同的堆栈地址。因而,即使发生本来将会需要多次更新及计算的多次故障转移,对它的处理也不需要在耦合到ISS的远程设备部件内进行不必要的计算和更新,即使是ISS自身。在多次故障转移过程中不需要更新例如ARP表格,因为ISS 800使用相同的堆栈地址M1依然能够获知。因而,对于远程设备而言,主要单元的故障在某种程度上被屏蔽了。
图9A、9B和9C图示示例性的两单元ISS 900。通常,优选地给在两单元ISS内的加入单元分配次要主机角色。如此执行,以便加入单元能够作为主要主机的备份。所以,与给加入单元分配空闲角色的图6A、图6B和图6C不同,在这个两单元ISS 900内,给其分配次要主机角色。
图9A和图9B图示在故障转移之前和之后分别具有确定的重新启动时间-例如20分钟-的两单元ISS 900。在第一选择过程中,将第一单元901分配为主要主机,将第二单元902分配为次要主机。然而,如图9B所示,出现故障转移。因而,次要主机902变成主要主机。
图9C图示第一单元在规定的20分钟的重新启动时间内再次加入ISS。在这种情况下,第一单元901变成次要主机,并向其分配同样为M1的堆栈地址。堆栈地址M1并未改变。
图10A、10B和10C图示类似于图9A和图9B的两单元ISS 1000。然而,图10C图示第一单元1001在20分钟的规定重新启动时间内没有加入ISS 1000。在这种情况下,堆栈管理器替换旧的堆栈地址M1,获得主要主机的本地MAC地址,在这种情况下为M2,并且随后使用M2作为新的堆栈地址。
图11A、11B、11C和11D图示另外一个两单元ISS 1100,但是具有不确定的重新启动时间。图11A类似于图9A和图10A。图11B类似于图9B和图10B。然而,图11C图示第一单元1101在故障转移之后最终重新加入ISS。在这种情况下,第一单元作为被分配相同堆栈地址M1的次要主机1101加入。然而,主要主机1102随后出现故障。在图11D中,次要主机1101承担主要主机角色。即使在多次故障转移之后,M1的堆栈地址依然相同。
上文已经通过当前的优选实施例描述了本发明,从而能够理解本发明。然而,存在交换机、转发设备和堆栈管理器的多种配置,在此未详细描述,但是本发明仍然可以应用。因此,本发明不应当视为限制于在此描述的具体实施例,而应当理解为本发明具有广泛的可应用性,例如通常可应用于交换机、转发设备和堆栈管理器。例如,实现新的选择机制的堆栈管理器,例如具有负担多个管理角色的ISS,依然可以在本发明的特征范围内使用。
因此,在权利要求保护范围内的所有修改、变型或等同的结构和实施方式应当视为在本发明的范围之内。
权利要求
1.一种用于在堆栈交换机系统内耦合的交换设备,该堆栈交换机系统包括可操作地耦合的多个堆栈交换机,该交换设备包括两个堆栈端口,堆栈端口的至少之一适合于可操作地耦合多个堆栈交换机之一;和堆栈管理器,适合于选择主要主机交换机以执行堆栈交换机系统的主要堆栈管理功能;根据主要主机的本地地址将堆栈地址分配给多个堆栈交换机;当主要主机故障时,选择次要主机交换机准备用作新的主要主机交换机;接收重新启动时间,其中该重新启动时间是确定的固定周期或不确定的周期;和当主要主机故障和次要主机交换机用作新的主要主机交换机时,确定是否替换堆栈地址。
2.根据权利要求1所述的交换设备,其中堆栈管理器还适合于根据作为新的主要主机交换机工作的次要主机的本地地址,使用新的堆栈地址替换所述堆栈地址。
3.根据权利要求2所述的交换设备,其中堆栈管理器还适合于当主要主机故障并且主要主机在确定的固定周期重新启动时间内不能加入堆栈交换机系统时,使用新的堆栈地址替换所述堆栈地址。
4.根据权利要求1所述的交换设备,其中堆栈管理器还适合于接收使用新的堆栈地址替换所述堆栈地址的命令;基于所接收的命令,根据作为新的主要主机交换机工作的次要主机的本地地址,使用新的堆栈地址替换所述堆栈地址。
5.根据权利要求2所述的交换设备,其中堆栈管理器还适合于将所述新的堆栈地址分配给多个堆栈交换机。
6.根据权利要求2所述的交换设备,其中堆栈管理器还适合于选择新的次要主机以替换作为新的主要主机交换机工作的次要主机交换机。
7.根据权利要求1所述的交换设备,其中堆栈管理器还适合于通过比较多个堆栈交换机中每个堆栈交换机的本地地址与所述堆栈地址,监视主要主机。
8.根据权利要求2所述的交换设备,其中堆栈管理器还适合于支持主要主机加入堆栈交换机系统;和将新的堆栈地址分配给主要主机。
9.根据权利要求2所述的交换设备,其中堆栈管理器还适合于支持多个堆栈交换机之一作为空闲交换机加入堆栈交换机系统。
10.根据权利要求2所述的交换设备,其中堆栈管理器还适合于支持多个堆栈交换机之一作为新的次要主机加入堆栈交换机系统。
全文摘要
本发明的特征在于当出现主要主机交换机到次要主机交换机的故障转移时,避免了对堆栈交换机系统以及与这样一个系统通信的相邻节点的影响的实施例。本发明的特征通常支持堆栈交换机系统将它的堆栈地址保存固定或不确定的时间周期,即使当出现多个主要主机到次要主机的故障转移时。这样,最小化了某些协议—例如生成树和链路集合—的重新计算和某些表格—例如地址解析协议(ARP)和路由选择表格—的更新。
文档编号H04L29/12GK1937521SQ200510134000
公开日2007年3月28日 申请日期2005年12月30日 优先权日2004年12月30日
发明者文森特·马格雷特, 劳伦斯·罗斯 申请人:阿尔卡特公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1