首页 / 专利库 / 软件 / 虚拟交换机 / 交换系统、交换装置、交换机及由其执行的方法

交换系统、交换装置、交换机及由其执行的方法

阅读:734发布:2020-05-11

专利汇可以提供交换系统、交换装置、交换机及由其执行的方法专利检索,专利查询,专利分析的服务。并且本 发明 的一个 实施例 提供一种交换机系统。交换机系统包括:交换机上的一个或者多个端口(208,210),配置成发送基于TRILL协议封装的分组。交换机系统还包括控制机制。在操作期间,控制机制基于光纤信道协议形成逻辑交换机、接收用于逻辑交换机的自动指派的标识符而无需标识符的人工配置并且加入虚拟集群交换机(200)。,下面是交换系统、交换装置、交换机及由其执行的方法专利的具体信息内容。

1.一种交换机,包括:
转发电路装置,被配置成确定用于基于第一协议来封装的分组的输出端口,其中经封装的所述分组的入口交换机标识符标识在互联的交换机的网络中的远程交换机;以及控制电路装置,被配置成:
基于第二协议运行的控制平面控制所述互联的交换机的网络,其中所述互联的交换机的网络由标识符来标识,并且其中所述标识符与在所述互联的交换机的网络中标识相应的交换机的交换机标识符不同;
响应于加入所述互联的交换机的网络的交换机确定所述标识符被指派给所述交换机,其中所指派的所述标识符指明所述交换机已经加入所述网络。
2.根据权利要求1所述的交换机,
所述控制电路装置还被配置成将与所述互联的交换机的网络相关联的配置应用到所述交换机。
3.根据权利要求1所述的交换机,其中所述第一协议基于以太网协议。
4.根据权利要求1所述的交换机,其中所述第一协议基于多链路透明互连(TRILL)协议,并且其中所述分组被封装在TRILL标头中。
5.根据权利要求1所述的交换机,其中所述互联的交换机的网络作为以太网交换机运行。
6.根据权利要求5所述的交换机,其中所述标识符被指派给所述远程交换机。
7.根据权利要求1所述的交换机,其中所述控制电路装置还被配置成维护用于所述互联的交换机的网络的配置信息的副本,其中所述配置信息包括标识符。
8.根据权利要求7所述的交换机,其中用于所述互联的交换机的网络的所述配置信息包括被指派给所述互联的交换机的网络中的交换机的多个逻辑交换机标识符。
9.根据权利要求1所述的交换机,还包括:媒体访问控制MAC获知电路装置,被配置成:
从本地端口获知入口分组的源MAC地址;以及
为所述远程交换机构建控制消息,所述控制消息包括所获知的、与所述端口相关联的MAC地址和信息。
10.根据权利要求1所述的交换机,还包括转发电路装置,被配置成在转发所接收的分组之前,基于所接收的分组的目的地MAC地址来查询用于所述互联的交换机的网络的MAC地址获知服务。
11.一种交换系统,包括:
多个交换机,被配置成使用第一协议来传送分组;
其中所述交换系统与标识所述交换系统的标识符相关联;以及
控制电路装置,驻留于相应交换机上;
其中所述控制电路装置被配置为:
基于第二协议运行的控制平面将互联的交换机的网络作为单一逻辑交换机来控制;
其中所述标识符与在所述交换系统中标识相应的交换机的交换机标识符不同;
响应于加入所述交换系统的交换机确定所述标识符被指派给所述交换机,其中所指派的所述标识符指明所述交换机已经加入所述交换系统。
12.根据权利要求11所述的交换系统,
其中在所述交换系统中的相应的交换机被配置有在所述交换系统内标识所述交换机的标识符。
13.根据权利要求11所述的交换系统,其中所述标识符为FC交换机域ID。
14.根据权利要求11所述的交换系统,
其中所述分组被传输在基于多链路透明互连(TRILL)协议的多个交换机之间,并且其中所述分组被封装在TRILL标头中。
15.根据权利要求11所述的交换系统,其中所述多个交换机中的相应的交换机维护在所述交换系统中的所有交换机的配置信息的副本。
16.根据权利要求11所述的交换系统,还包括媒体访问控制MAC地址获知服务,所述MAC地址获知服务维护由所述多个交换机中的相应的交换机获知的MAC地址的记录。
17.一种由交换机执行的方法,包括:
确定用于基于第一协议来封装的分组的输出端口,其中经封装的所述分组的入口交换机标识符标识在互联的交换机的网络中的远程交换机;
基于第二协议运行的控制平面将所述互联的交换机的网络作为单一逻辑交换机来控制,其中所述互联的交换机的网络由标识符来标识,并且其中所述标识符与在所述互联的交换机的网络中标识相应的交换机的交换机标识符不同;
响应于加入所述互联的交换机的网络的交换机确定所述标识符被指派给所述互联的交换机的网络中的所述交换机,其中所指派的所述标识符指明所述交换机已经加入所述互联的交换机的网络。
18.根据权利要求17所述的方法,还包括在所述交换机处维护用于所述互联的交换机的网络的配置信息的副本。
19.一种交换装置,包括:
通信装置,用于确定用于基于第一协议来封装的分组的输出端口,其中经封装的所述分组的入口交换机标识符标识在互联的交换装置的网络中的远程交换装置,以及控制装置,用于
基于第二协议运行的控制平面将所述互联的交换装置的网络作为单一逻辑交换装置来控制,其中所述互联的交换装置的网络由标识符来标识,并且其中所述标识符与在所述互联的交换装置的网络中标识相应的交换装置的交换机标识符不同;
以及
响应于加入所述互联的交换装置的网络的交换装置确定所述标识符被指派给所述交换装置,其中所指派的所述标识符指明所述交换装置已经加入所述互联的交换装置的网络。
20.根据权利要求19所述的交换装置,其中所述第一协议基于多链路透明互连(TRILL)协议,并且其中所述分组被封装在TRILL标头中。

说明书全文

交换系统、交换装置、交换机及由其执行的方法

[0001] 本申请国际申请日为2011年5月3日、进入日为2012年12月20日的201180030594.5号发明专利申请(名称为“虚拟集群交换”)的分案申请。

技术领域

[0002] 本公开内容涉及网络设计。更具体而言,本公开内容涉及一种用于构造有助于自动配置的可缩放交换系统的方法。

背景技术

[0003] 因特网的不间断增长已经随之带来无法满足的带宽需求。因而设备销售商竞相构建用于转移业务的更大、更快和更通用交换机。然而交换机的尺寸不能无限增长。它受物理空间、功率消耗和设计复杂性限制,这仅列举了数个因素。更重要的是,因为过大系统经常由于它的复杂性而未提供规模经济性,所以简单地增加交换机的尺寸和吞吐量可能由于增加的每个端口的成本而被证实在经济上不可行。
[0004] 一种用于增加交换机系统的吞吐量的方式是使用交换机堆叠。在交换机堆叠中,多个更小规模的相同交换机在特殊模式中互连以形成更大逻辑交换机。然而交换机堆叠需要仔细配置端口和交换机间链路。所需人工配置量在堆叠达到某一尺寸时变得过分地复杂和冗繁,这妨碍交换机堆叠成为构建大规模交换系统时的实际选项。另外,基于堆叠的交换机的系统经常具有拓扑限制,这些限制由于结构带宽考虑而制约系统的可缩放性。

发明内容

[0005] 本发明的一个实施例提供一种交换机系统。交换机包括:交换机上的一个或者多个端口,配置成发送基于第一协议封装的分组。交换机系统还包括控制机制。在操作期间,控制机制基于第二协议形成逻辑交换机、接收用于逻辑交换机的自动指派的标识符而无需标识符的人工配置并且加入虚拟集群交换机。
[0006] 在关于这一实施例的变形中,虚拟集群交换机包括被允许以任意拓扑耦合的一个或者多个物理交换机。另外,虚拟集群交换机表现为单个交换机。
[0007] 在又一变形中,第一协议是多链路透明互连(TRILL)协议,并且在TRILL标头中封装分组。
[0008] 在关于这一实施例的变形中,控制机制形成的逻辑交换机是逻辑光纤信道(FC)交换机。
[0009] 在又一变形中,向逻辑交换机指派的标识符是FC交换机域ID。
[0010] 在关于这一实施例的变形中,控制机制还被配置成维护用于虚拟集群交换机的配置信息的副本。
[0011] 在关于这一实施例的又一变形中,用于虚拟集群交换机的配置信息包括向虚拟集群交换机中的物理交换机指派的多个逻辑交换机标识符。
[0012] 在关于这一实施例的变形中,交换机包括:媒体访问控制(MAC)机制,配置成获知与端口关联的传入分组的源MAC地址和对应VLAN标识符;并且向名称服务传达获知的MAC地址、对应VLAN标识符和对应端口信息。
[0013] 本发明的一个实施例提供一种交换系统,该系统包括配置成使用第一协议来传送分组的多个交换机。每个交换机包括控制机制。允许以任意拓扑耦合多个交换机。另外,控制机制基于第二协议自动配置交换系统内的相应交换机而无需人工配置,并且交换系统在外部表现为单个交换机。
[0014] 在关于这一实施例的变形中,交换系统内的相应交换机接收与形成于相应交换机上的逻辑交换机关联的自动配置的标识符。
[0015] 在又一变形中,逻辑交换机是逻辑FC交换机。此外,标识符是FC交换机域ID。
[0016] 在又一变形中,基于TRILL协议在交换机之间传送分组。向相应交换机指派与FC交换机域ID对应的TRILL R桥接器标识符。
[0017] 在关于这一实施例的变形中,相应交换机维护交换系统中的所有交换机的配置信息的副本
[0018] 在关于这一实施例的变形中,交换系统包括:名称服务,其维护相应交换机获知的MAC地址和VLAN信息的记录。附图说明
[0019] 图1A图示了根据本发明一个实施例的示例虚拟集群交换机(VCS)系统。
[0020] 图1B图示了根据本发明一个实施例的其中在CLOS网络中配置成员交换机的示例VCS系统。
[0021] 图2图示了根据本发明一个实施例的虚拟集群交换机内的协议栈。
[0022] 图3图示了根据本发明一个实施例的虚拟集群交换机的示例配置。
[0023] 图4图示了根据本发明一个实施例的虚拟集群交换机如何可以连接到不同边缘网络的示例配置。
[0024] 图5A图示了根据本发明一个实施例的如何结合图4中的例子在虚拟集群交换机中形成逻辑光纤信道交换机架构(Fiber Channel switch fabric)。
[0025] 图5B图示了根据本发明一个实施例的如何可以在物理以太网交换机内创建逻辑FC交换机的例子。
[0026] 图6图示了根据本发明一个实施例的示例VCS配置数据库
[0027] 图7A图示了根据本发明一个实施例的交换机加入虚拟集群交换机的示例过程。
[0028] 图7B呈现流程图,该流程图图示了根据本发明一个实施例的默认交换机加入VCS的过程。
[0029] 图7C呈现流程图,该流程图图示了根据本发明一个实施例的交换机重新加入先前加入的VCS的过程。
[0030] 图7D呈现流程图,该流程图图示了根据本发明一个实施例的交换机在加入过程期间的一般操作。
[0031] 图8呈现流程图,该流程图图示了根据本发明一个实施例的查找入口的目的地MAC地址并且在VCS中转发帧的过程。
[0032] 图9图示了根据本发明一个实施例的如何通过VCS传送数据帧和控制帧。
[0033] 图10图示了根据本发明一个实施例的包括自动端口简档管理器的逻辑VCS接入层(VAL)。
[0034] 图11图示了根据本发明一个实施例的端口简档自动迁移(AMPP)操作的例子。
[0035] 图12A图示了根据本发明一个实施例的示例端口简档内容。
[0036] 图12B图示了根据本发明一个实施例的三个示例端口简档。
[0037] 图13图示了根据本发明一个实施例的如何基于端口简档从属关系在VM之间实现转发。
[0038] 图14呈现流程图,该流程图图示了根据本发明一个实施例的创建和应用端口简档的过程。
[0039] 图15图示了根据本发明一个实施例的示例VCS成员交换机。
[0040] 图16图示了根据本发明一个实施例的VCS中的高级链路跟踪的示例配置。
[0041] 图17图示了根据本发明一个实施例的其中高级链路跟踪允许虚拟机在链路出故障时对传出业务重新寻路由的例子。
[0042] 图18呈现流程图,该流程图图示了根据本发明一个实施例的高级链路跟踪过程。
[0043] 图19图示了根据本发明一个实施例的有助于虚拟集群交换和高级链路跟踪的示例交换机。
[0044] 图20图示了根据本发明一个实施例的具有虚拟端口分组的示例VCS网络环境。
[0045] 图21A图示了根据本发明一个实施例的用于存储虚拟端口分组信息的示例数据结构。
[0046] 图21B图示了根据本发明一个实施例的作为虚拟端口分组的结果的在VCS内的逻辑虚拟网络。
[0047] 图22呈现流程图,该流程图图示了根据本发明一个实施例的实行虚拟端口分组的过程。
[0048] 图23图示了根据本发明一个实施例的用虚拟端口分组有助于虚拟集群交换的示例交换机。
[0049] 图24图示了根据本发明一个实施例的VCS中的名称服务操作的例子。
[0050] 图25呈现流程图,该流程图图示了根据本发明一个实施例的VCS中的以太网名称服务分布获知的MAC信息的过程。
[0051] 图26呈现流程图,该流程图图示了根据本发明一个实施例的经由MCT对获知的MAC地址的信息进行分布的过程。
[0052] 图27呈现流程图,该流程图图示了根据本发明一个实施例的更新MCT组中的链路状态的过程。
[0053] 图28图示了根据本发明一个实施例的有助于用以太网和MCT名称服务形成虚拟集群交换机的示例交换机。
[0054] 图29图示了根据本发明一个实施例的VCS中的示例等成本多路径化配置。
[0055] 图30图示了根据本发明一个实施例的VCS拥塞通知例子。
[0056] 图31图示了根据本发明一个实施例的示例混合干线。
[0057] 图32图示了根据本发明一个实施例的示例VCS成员交换机。
[0058] 图33图示了根据本发明一个实施例的包括用于有助于交叉数据中心通信的CNE设备的示例网络架构。
[0059] 图34图示了根据本发明一个实施例的具有CNE功能的VCS的示例实施方式。
[0060] 图35A呈现如下图,该图图示了根据本发明一个实施例的CNE设备如何跨越数据中心操纵广播、未知单播和多播(BUM)业务。
[0061] 图35B呈现如下图,该图图示了根据本发明一个实施例的CNE设备如何跨越数据中心操纵单播业务。
[0062] 图36图示了根据本发明一个实施例的其中两个CNE设备用来构造vLAG的例子。
[0063] 图37图示了根据本发明一个实施例的示例CNE设备。

具体实施方式

[0064] 呈现以下描述以使本领域任何技术人员能够实现并且运用本发明,并且在具体应用及其要求的背景中提供以下描述。对公开的实施例的各种修改对于本领域技术人员容易是明显的,并且这里限定的一般原理可以应用于其它实施例和应用而未脱离本发明的精神实质和范围。因此,本发明不限于所示实施例而是将被赋予与权利要求一致的最广范围。
[0065] 概述
[0066] 在本发明的实施例中,通过在常规传送协议之上运行具有自动配置能的控制平面(比如光纤信道控制平面)、由此允许互连大量交换机以形成单个可缩放逻辑交换机而无需繁重人工配置来解决构建通用、成本有效和可缩放交换系统的问题。作为结果,可以使用多个更小物理交换机来形成大规模逻辑交换机(这里称为“虚拟集群交换机”或者VCS)。在每个物理交换机上运行的控制平面所提供的自动配置能力允许以任意拓扑连接任何数目的交换机而无需端口和链路的冗繁的人工配置。这一特征使得有可能使用许多更小廉价交换机以构造可以外部视为单个逻辑交换机的大型集群交换机。
[0067] 应当注意虚拟集群交换机不同于常规交换机堆叠。在交换机堆叠中,基于特定拓扑在共同位置(经常在相同机架内)互连并且以特定方式人工配置多个交换机。这些堆叠的交换机通常共享共同地址、例如IP地址,因此可以外部将它们作为单个交换机来寻址。另外,交换机堆叠需要端口和交换机间链路的大量人工配置。人工配置的需要妨碍交换机堆叠成为构建大规模交换系统时的可行选项。交换机堆叠所施加的拓扑约束也限制可以堆叠的交换机数目。这是因为即使可行也很难设计如下堆叠拓扑,该堆叠拓扑允许总交换机带宽随着交换机单元数目而充分缩放。
[0068] 对照而言,VCS可以包括具有个别地址的任意数目的交换机、可以基于任意拓扑并且无需昂贵人工配置。交换机可以驻留于相同位置或者分布于不同位置。这些特征克服交换机堆叠的固有限制并且使得有可能构建可以视为单个逻辑交换机的大型“交换机场”。由于VCS的自动配置能力,个别物理交换机可以动态加入或者离开VCS不会破坏对网络的其余部分的服务。
[0069] 另外,VCS的自动和动态可配置性允许网络运营商以分布式和“渐进付款”方式构建它的交换系统而并不牺牲可缩放性。VCS对可变网络条件做出响应的能力使它成为其中网络负载经常随时间改变的虚拟计算环境中的理想解决方案。
[0070] 虽然基于作为传送协议的多链路透明互连(TRILL)和作为控制平面协议的光纤信道(FC)架构协议使用例子来呈现本公开内容,但是本发明的实施例不限于TRILL网络或者在特定开放系统互连参考模型(OSI参考模型)层中限定的网络。例如也可以用运行多协议标签交换(MPLS)协议用于传送的交换机实施VCS。此外,在本公开内容中可互换地使用术语“R桥接器”和“交换机”。使用术语“R桥接器”未使本发明的实施例仅限于TRILL网络。在http://tools.ietf.org/html/draft-ietf-trill-rbridge-protocol可用的IETF草案“RBridges:Base Protocol Specification”中描述TRILL协议,将其通过引用而结合于此。
[0071] 术语“虚拟集群交换机”、“虚拟集群交换”和“VCS”指代作为单个逻辑交换机来操作的一组互连的物理交换机。用于这些物理交换机的控制平面提供自动配置给定的物理交换机、从而当它加入VCS时需要很少或者无需人工配置的能力。VCS不限于来自特定销售商的具体产品系列。此外,“VCS”不是可以用来命令这里描述的交换系统的仅有术语。其它术语、比如“以太网架构”、“以太网架构交换机”、“架构交换机”、“集群交换机”、“以太网网状交换机”和“网状交换机”也可以用来描述相同交换系统。因此,在一些实施例中,可以可互换地使用这些术语和“VCS”。
[0072] 术语“R桥接器”指代路由桥接器,这些路由桥接器是实施如在IETF草案“RBridges:Base Protocol Specification”中描述的TRILL协议的桥接器。本发明的实施例不限于在R桥接器之中的应用。也可以使用其它类型的交换机、路由器和转发器。
[0073] 术语“帧”或者“分组”指代可以跨越网络一起传送的一组比特。“帧”不应解释为使本发明的实施例限于2层网络。“分组”不应解释为使本发明的实施例限于3层网络。“帧”或者“分组”可以替换为指代一组位的其它术语、比如“信元”或者“数据报”。
[0074] VCS架构
[0075] 图1A图示了根据本发明一个实施例的示例虚拟集群交换机系统。在这一例子中,VCS 100包括物理交换机101、102、103、104、105、106和107。给定的物理交换机在它的端口上运行基于以太网的传送协议(例如在它的交换机间端口上运行TRILL并且在它的外部端口上运行以太网传送),而它的控制平面运行FC交换机架构协议栈。TRILL协议有助于以路由的方式在VCS 100内和跨越VCS 100传送以太网帧(因为TRILL向以太网帧提供路由功能)。FC交换机架构协议栈有助于以与如何形成并且自动配置常规FC交换机架构相似的方式自动配置个别物理交换机。在一个实施例中,VCS 100可以外部表现为超高容量以太网交换机。关于FC网络架构、协议、命名/地址约定和各种标准的更多细节从NCITS/ANSI T11委员会(www.t11.org)可用的文档以及公共可用文献、比如Tom Clark的Addision Wesley 2003年第2版“Designing Storage Area Networks”中可用,通过整体引用将其公开内容结合于此。
[0076] 物理交换机可以使多个端口专用于外部使用(即耦合到VCS外部的终端主机或者其它交换机)而其它端口专用于交换机间连接。从外部来看,VCS 100表现为通向来自外界的设备的一个交换机,并且来自任何物理交换机的任何端口视为VCS上的一个端口。例如端口组110和112均为VCS外部端口并且可以如同它们是共同物理交换机上的端口一样来同样对待,尽管交换机105和107可以驻留于两个不同位置。
[0077] 物理交换机可以驻留于共同位置、比如数据中心或者中心办公室或者分布于不同位置。因此有可能使用在相同位置的一个或者多个机架中容纳的许多更小、廉价交换机来构造大规模集中式交换系统。也有可能让物理交换机放置于不同位置、因此创建可以从多个位置访问的逻辑交换机。用来互连物理交换机的拓扑也可以是多种多样的。VCS 100基于网状拓扑。在更多实施例中,VCS可以基于环、树或者其它类型的拓扑。
[0078] 在一个实施例中,VCS的协议架构基于来自标准IEEE 802.1Q以太网桥接器的单元,该桥接器通过基于光纤信道成帧和信令-2(FC-FS-2)标准的传送来仿真。所得交换机能够通过VCS从来自边缘交换机之一的传入以太网端口向不同边缘交换机上的传出以太网端口透明交换帧。
[0079] VCS由于它的自动配置能力而可以随着网络需求增加而动态扩展。此外,可以使用许多更小物理交换机来构建大规模交换机而无人工配置负担。例如有可能使用多个更小交换机来构建高吞吐量全无阻塞交换机。这一使用小型交换机以构建大型无阻塞交换机的能力显著减少与成本关联的交换机复杂性。图1B呈现根据本发明一个实施例的示例VCS,该VCS的成员交换机在CLOS网络中连接。在这一例子中,VCS 120使用在三级CLOS网络中连接的八个4x4交换机和四个2x2交换机来形成全无阻塞8x8交换机。可以用相似方式构建具有更高端口计数的大规模交换机。
[0080] 图2图示了根据本发明一个实施例的虚拟集群交换机内的协议栈。在这一例子中,在VCS 200内图示了两个物理交换机202和204。交换机202包括传入以太网端口206和交换机间端口208。交换机204包括传出以太网端口212和交换机间端口210。传入以太网端口206从外部设备接收以太网帧。按照媒体访问控制协议(MAC)层协议处理以太网标头。在MAC层上面是MAC客户端层,该MAC客户端层向转发数据库(FDB)214转交从帧的以太网标头提取的信息。通常,在常规IEEE 802.1Q以太网交换机中,在交换机中本地维护FDB 214,该交换机基于在以太网帧中指示的目的地MAC地址和VLAN执行查找。查找结果将提供对应输出端口。然而由于VCS 200不是单个物理交换机,所以FDB 214将返回传出交换机的标识符(即交换机204的标识符)。在一个实施例中,FDB 214是在所有物理交换机之中复制并且分布的数据结构。也就是说,每个物理交换机维护它自己的FDB 214副本。当给定的物理交换机获知以太网帧的源MAC地址和VLAN(与常规IEEE 802.1Q以太网交换机完成的操作相似)为经由入口端口可达时,获知的MAC和VLAN信息与传入以太网端口和交换机信息一起向所有物理交换机传播,因此每个物理交换机的FDB 214副本可以保持同步。这防止在终端站或者边缘网络到VCS的连通有改变时基于陈旧或者不正确信息的转发。
[0081] 经由交换机间端口208和210执行以太网帧在传入交换机202与传出交换机204之间的转发。根据TRILL标准,在外部MAC标头和TRILL标头中封装两个交换机间端口之间传送的帧。与给定的交换机间端口关联的协议栈包括以下各层(从下至上):MAC层、TRILL层、FC-FS-2层、FC E-端口层和FC链路服务(FC-LS)层。FC-LS层负责维护物理交换机的邻居的连通信息并且填充FC路由信息库(RIB)222。这一操作与在FC交换机架构中完成的操作相似。FC-LS协议也负责操纵物理交换机在VCS 200中的加入和离开。在http://www.tl1.org/ftp/tll/member/fc/ls/06-393v5.pdf可用的FC-LS标准中规定了FC-LS层的操作,通过整体引用将其公开内容结合于此。
[0082] 在操作期间,当FDB 214返回与传入以太网帧的目的地MAC地址对应的传出交换机204时,向路径选择器218传递目的地传出交换机的标识符。路径选择器218结合RIB 222执行基于架构最短路径优先(FSPF)的路由查找并且标识VCS 200内的下一跳跃交换机。换而言之,与在FC交换机架构中完成的路由相似,协议栈的FC部分执行路由。
[0083] 在每个物理交换机中也包括地址管理器216和架构控制器220。地址管理器216负责在物理交换机第一次加入VCS时配置物理交换机的地址。例如当交换机202第一次加入VCS 200时,地址管理器216可以协商随后用来在VCS 200内标识交换机的新FC交换域ID。架构控制器220负责管理并且配置VCS 200的控制平面上形成的逻辑FC交换机架构。
[0084] 一种用于理解VCS的协议框架的方式是将VCS视为具有以太网/TRILL传送的FC交换机架构。每个物理交换机从外部观点来看表现为TRILL R桥接器。然而交换机的控制平面实施FC交换机架构软件。换而言之,本发明的实施例有助于构造在FC控制软件上运行的“以太网交换机架构”。这一独特组合向VCS提供自动配置能力并且允许它以颇为可扩展的方式提供无处不在的以太网服务。
[0085] 图3图示了根据本发明一个实施例的虚拟集群交换机的示例配置。在这一例子中,VCS 300包括四个物理交换机302、304、306和308。VCS 300构成耦合到两个聚合交换机310和312的接入层。注意到,以环拓扑连接VCS 300内的物理交换机。聚合交换机310或者312可以连接到VCS 300内的任何物理交换机。例如聚合交换机310耦合到物理交换机302和308。这两个链路视为通向VCS 300的干线式链路,因为交换机302和308上的对应端口被认为是来自相同逻辑交换机VCS 300。注意若无VCS,这样的拓扑将是不可能的,因为FDB需要保持同步,而这由于VCS而变得容易。
[0086] 图4图示了根据本发明一个实施例的虚拟集群交换机如何可以连接到不同边缘网络的示例配置。在这一例子中,VCS 400包括由FC交换机架构控制平面控制的多个TRILL R桥接器402、404、406、408和410。在VCS 400中也包括R桥接器412、414和416。每个R桥接器具有可以连接到外部边缘网络的多个边缘端口。
[0087] 例如R桥接器412经由10GE端口与主机420和422耦合。R桥接器414经由10GE端口耦合到主机426。这些R桥接器具有用于与VCS 400中的其它TRILL R桥接器连接的、基于TRILL的交换机间端口。类似地,R桥接器416耦合到主机428和外部以太网交换机430,该外部以太网交换机耦合到包括主机424的外部网络。此外,网络设备也可以直接耦合到VCS 400中的任何物理交换机。如这里所示,TRILL R桥接器408耦合到数据存储器417,并且TRILL R桥接器410耦合到数据存储器418。
[0088] 虽然VCS 400内的物理交换机标注为“TRILL R桥接器”,但是它们在它们由FC交换机架构控制平面控制的意义上不同于常规TRILL R桥接器。换而言之,可以按照对应FC协议操纵交换机地址指派、链路发现和维护、拓扑会聚、路由和转发。具体而言,从可以在交换机加入VCS 400时自动指派的对应FC交换机域ID映射每个TRILL R桥接器的交换机ID或者别名(这在逻辑上与FC交换机架构相似)。
[0089] 注意TRILL仅用作在VCS 400内的交换机之间的传送。这是因为TRILL可以容易适应原生以太网帧。TRILL标准也提供可以在具有任意拓扑的任何路由式网络中使用的随时可用转发机制(尽管按照FC交换机架构协议完成VCS中的实际路由)。其它公用或者专有协议(比如多协议标签交换(MPLS)或者以太网协议(IP))也可以用于传送。
[0090] VCS形成
[0091] 在一个实施例中,通过在每个交换机的控制平面中实例化逻辑FC交换机来创建VCS。在创建逻辑FC交换机之后,为R桥接器上的每个以太网端口创建虚拟通用端口(表示为G_端口)。G_端口从FC交换机观点来看采取正常G_端口行为。然而在这一情况下,由于物理链路基于以太网,所以从G_端口向FC F_端口或者E_端口的具体转变取决于下层链路和物理层协议。例如,如果物理以太网端口连接到缺乏VCS能力的外部设备,则对应G_端口将变成F_端口。另一方面,如果物理以太网端口连接到具有VCS能力的交换机并且确认在另一侧上的交换机是VCS的部分,则G_端口将变成E_端口。
[0092] 图5A图示了根据本发明一个实施例的如何结合图4中的例子在虚拟集群交换机中形成逻辑光纤信道交换机架构。R桥接器412包含虚拟逻辑FC交换机502。对应于耦合到主机420和422的物理以太网端口,逻辑FC交换机502具有逻辑上耦合大了主机420和422的两个逻辑端口F_端口。此外,分别为主机420和422创建两个逻辑N_端口506和504。在VCS侧,逻辑FC交换机502具有将与VCS中的逻辑FC交换机架构中的其它逻辑FC交换机耦合的三个逻辑E_端口。
[0093] 类似地,R桥接器416包含虚拟逻辑FC交换机512。对应于耦合到主机428和外部交换机430的物理以太端口,逻辑FC交换机512具有耦合到主机428的逻辑F_端口和耦合到交换机430的逻辑FL_端口。此外,为主机428创建逻辑N_端口510,并且为交换机430创建逻辑NL_端口508。注意创建逻辑FL_端口,因为该端口耦合到交换机(交换机430)而不是普通主机,因此逻辑FC交换机512采取通向交换机430的任意回路拓扑。基于相同推理来创建逻辑NL_端口508以代表交换机430上的对应NL_端口。在VCS侧,逻辑FC交换机512具有将与VCS中的逻辑FC交换机架构中的其它逻辑FC交换机耦合的两个逻辑E_端口。
[0094] 图5B图示了根据本发明一个实施例的如何可以在物理以太网交换机内创建逻辑FC交换机的例子。术语“架构端口”指代用来耦合VCS中的多个交换机的端口。集群协议控制在架构端口之间的转发。术语“边缘端口”指代如下端口,该端口当前未耦合到VCS中的另一交换机单元。标准IEEE 802.1Q和3层协议对边缘端口上的转发进行控制。
[0095] 在图5B所示例子中,在物理交换机(R桥接器)520内创建逻辑FC交换机521。逻辑FC交换机521经由通向其它交换机单元的逻辑交换机间链路(ISL)参与FC交换机架构协议并且恰如物理FC交换机具有FC交换机域ID的那样具有向它指派的FC交换机域ID。换而言之,域分配、主交换机选择和冲突解决恰如它们将在物理FC ISL上那样工作。
[0096] 分别向逻辑F_端口532和534映射物理边缘端口522和524。此外,分别向逻辑E_端口536和538映射物理架构端口526和528。起初,当创建逻辑FC交换机521时(例如在引导序列期间),逻辑FC交换机521仅具有与四个物理端口对应的四个G_端口。随后根据耦合到物理端口的设备向F_端口或者E_端口映射这些G_端口。
[0097] 邻居发现是在两个具有VCS能力的交换机之间形成VCS的第一步骤。假设可以在第一次产生链路时通过在两个邻居交换机之间的握手过程来实现VCS能力的验证。
[0098] 分布式配置管理
[0099] 一般而言,VCS呈现自身为由多个成员交换机组成的一个统一交换机。因此,VCS的创建和配置至关重要。VCS配置基于在所有交换机内复制并且分布的分布式数据库。换而言之,每个VCS成员交换机维护VCS配置数据库的副本,并且向所有成员交换机传播对数据库的任何改变。作为结果,网络管理员可以例如通过从任何成员交换机执行命令行接口(CLI)命令从任一处配置VCS的任何部分。
[0100] 在一个实施例中,VCS配置数据库包括VCS的全局配置表(GT)和各自描述VCS成员交换机的交换机描述表(ST)的列表。成员交换机在它的最简单形式中可以具有包括全局表和一个交换机描述表的VCS配置数据库、例如[]。具有多个交换机的VCS将具有如下配置数据库,该配置数据库具有单个全局表和多个交换机描述表、例如[]。数目n对应于VCS中的成员交换机数目。在一个实施例中,GT可以包括至少以下信息:VCS ID、VCS中的节点数目、VCS支持的VLAN的列表、VCS中的所有交换机的列表(例如用于所有活跃交换机的FC交换机域ID的列表)和主交换机的FC交换机域ID(如在逻辑FC交换机架构中那样)。交换机描述表可以包括至少以下信息:IN_VCS标志、交换机是否为逻辑FC交换机架构中的主交换机的指示、用于交换机的FC交换机域ID、用于对应逻辑FC交换机的FC全球范围名称(WWN);交换机的映射ID并且可选地包括交换机的IP地址。注意如以下说明的那样,交换机可以具有在它加入VCS时向它动态指派的IP地址。可以根据向交换机指派的FC交换机域ID推导IP地址,并且IP地址可以具有与FC交换机域ID的一对一映射。
[0101] 此外,每个交换机的全局配置数据库与事务ID关联。事务ID指定向全局配置数据库引起的最新事务(例如更新或者改变)。可以比较两个交换机中的全局配置数据库的事务ID以确定哪个数据库具有最当前信息(即具有更当前事务ID的数据库更新)。在一个实施例中,事务ID是交换机的序号加上依序事务号。这一配置可以明确解析哪个交换机具有最新配置。
[0102] 如图6中所示,VCS成员交换机通常维护描述它的实例的两个配置表:VCS配置数据库600和默认交换机配置表604。VCS配置数据库600在交换机是VCS的部分时描述VCS配置。默认交换机配置表604描述交换机的默认配置。VCS配置数据库600包括GT 602,该GT包括VCS内的VCS标识符(表示为VCS_ID)和VLAN列表。在VCS配置数据库600中也包括多个ST、比如ST0、ST1和STn。每个ST包括对应成员交换机的MAC地址和FC交换机域ID以及交换机的接口细节。注意每个交换机也具有VCS映射的ID,该ID是VCS内的交换机索引。
[0103] 在一个实施例中,每个交换机也具有VCS映射的ID(表示为“映射的ID”),该ID是VCS内的交换机索引。这一映射的ID在VCS内唯一并且持续。也就是说,当交换机第一次加入VCS时,VCS向交换机指派映射的ID。即使交换机离开VCS,这一映射的ID仍然随交换机持续。当交换机在以后时间再次加入VCS时,相同的映射的ID由VCS用来取回用于交换机的先前配置信息。这一特征可以减少VCS中的配置开销量。持续的映射的ID也允许VCS在它重新加入VCS时“识别”先前配置的成员交换机,因为动态指派的FC架构域ID每当成员交换机加入VCS并且由VCS配置时将改变。
[0104] 默认交换机配置表604具有用于映射的ID的条目,该条目指向VCS配置数据库600中的对应ST。注意仅向VCS中的所有交换机复制并且分布VCS配置数据库。默认交换机配置表604在特定成员交换机本地。
[0105] 默认交换机配置表604中的“INV_VCS”值指示成员交换机是否为VCS的部分。在交换机由具有两个或者更多交换机域的FC交换机架构指派FC交换机域中的一个时则将其视为“在VCS中”。如果交换机是如下FC交换机架构的部分,FC交换机架构仅有一个交换机域、即它自己的交换机域,则交换机视为“不在VCS中”。
[0106] 当交换机第一次连接到VCS时,逻辑FC交换机架构形成过程向加入交换机分配新交换机域ID。在一个实施例中,仅直接连接到新交换机的交换机参与VCS加入操作。
[0107] 注意在加入交换机的全局配置数据库为当前并且基于两个数据库的事务ID的比较而与VCS的全局配置数据库同步(例如当成员交换机从VCS暂时断开并且之后不久重新连接时)的情况下,未执行平凡合并。也就是说,加入交换机可以连接到VCS,并且无需改变或者更新全局VCS配置数据库。
[0108] 当交换机加入VCS(见以下描述)时,VCS向形成于加入交换机内的逻辑FC交换机指派FC交换机域ID。可以向加入交换机自动指派与FC交换机域ID对应的IP地址(该IP地址在一个实施例中可以在VCS内部)。例如加入交换机的IP地址可以是127.10.10.FC_域_ID。此外,可以向加入交换机上的每个端口自动指派该交换机上的为该端口所特有的MAC地址。例如可以向加入交换机上的端口指派MAC地址OUI_FC_域_ID:0:0,其中OUI是用于端口的在组织上唯一的标识符,并且FC_域_ID是向逻辑FC交换机指派的交换机域ID。IP和MAC地址指派过程可以是交换机内的软件的部分,该部分软件控制FC交换机形成和加入/合并过程。
[0109] 用于给定的VCS成员交换机的自动指派的交换机IP地址和端口MAC地址允许从VCS内的任一处远程配置交换机上的任何端口。例如可以连接到VCS中的任何成员交换机的主机发出给定的成员交换机的配置命令,并且该配置命令标识交换机以由它的IP地址并且可选地由一个或者多个端口MAC地址配置。这样的配置命令可以包括关于VLAN配置的信息、服务质量(QoS)配置和/或接入控制配置,每项信息都可以是端口专属的。在一个实施例中,向交换机试探地发送对交换机的配置的改变。在交换机确认并且批准改变之后,向VCS中的所有成员交换机发送提交改变命令,因此可以在整个VCS内更新全局配置数据库。在又一实施例中,向VCS中的所有成员交换机试探地发送改变,并且仅在所有交换机确认并且批准试探改变之后发出提交改变命令。
[0110] VCS加入和合并
[0111] 图7A图示了根据本发明一个实施例的交换机加入虚拟集群交换机的示例过程。在这一例子中,假设交换机702在现有VCS内并且交换机704加入VCS。在操作期间,交换机702和704触发FC装填改变通知(SCN)过程。随后,交换机702和704二者执行预邀请(PRE-INVITE)操作。预邀请操作涉及到以下过程。
[0112] 当交换机经由链路加入VCS时,在链路的每端上的两个邻居均向另一交换机呈现来自先前时期(prior incarnation)(如果存在)的VCS四元组<先前VCS_ID,交换机_MAC,映射的ID,IN_VCS>。否则,交换机向对方交换机呈现默认元组。如果未从先前加入操作设置VCS_ID值,则使用为-1的VCS_ID值。此外,如果交换机的IN_VCS标志设置成0,则它向邻近交换机发出它的接口配置。在图7中的例子中,交换机702和704二者向另一交换机发送上述信息。
[0113] 在上述预邀请操作之后,选择用于加入过程的驱动器交换机。作为默认,如果一个交换机的IN_VCS值是1并且另一交换机的IN_VCS值是0,则选择具有IN_VCS=1的交换机作为驱动器交换机。如果两个交换机它们的IN_VCS值为1,则无操作发生、即预邀请操作不会造成邀请操作。如果两个交换机它们的IN_VCS值为0,则挑选交换机之一为驱动交换机(例如具有更低FC交换机域ID值的交换机)。驱动交换机的IN_VCS值然后设置成1并且驱动加入过程。
[0114] 在选择交换机702作为驱动交换机之后,交换机702然后尝试保留VCS配置数据库中的与交换机704的预邀请信息中的映射的ID的值对应的槽(slot)。接着,交换机702在VCS配置数据库中搜索任何映射的ID槽中的交换机704的MAC地址。如果发现这样的槽,则交换机702从标识的槽向保留的槽中复制所有信息。否则,交换机702向VCS配置数据库中复制在来自交换机704的预邀请期间接收的信息。然后向VCS中的所有交换机传播更新的VCS配置数据库作为数据库中的预备操作(注意尚未向数据库提交更新)。
[0115] 随后,预备操作可能造成或者可能未造成可以标记为报警或者致命错误的冲突。这样的冲突可以包括在加入交换机的本地配置或者策略设置与VCS配置之间的不一致。例如冲突出现于加入交换机被人工配置成允许具有特定VLAN值的分组通过而VCS不允许这一VLAN值从这一特定R桥接器进入交换机架构(例如当保留这一VLAN值用于其它目的时)时。
在一个实施例中,本地和/或与其它VCS成员交换机协调地远程操纵预备操作。如果有不可解决的冲突,则交换机702向交换机704发出预邀请失败(PRE-INVITE-FAILED)消息。否则,交换机702利用交换机的VCS合并视图(即更新的VCS配置数据库)生成邀请(INVITE)消息。
[0116] 在接收邀请消息时,交换机704接受或者拒绝邀请。如果邀请中的配置与交换机704可以接受的内容冲突,则可以拒绝邀请。如果邀请可接受,则交换机704作为响应发回邀请接受(INVITE-ACCEPT)消息。邀请接受消息然后在VCS中的所有成员交换机内触发最终数据库提交。换而言之,向VCS中的所有交换机更新、复制并且分布更新的VCS配置数据库。
[0117] 如果VCS中的多个交换机具有与新加入交换机的连通性,则所有这些邻近成员交换机可以向新加入交换机发送预邀请。加入交换机可以仅向随机选择的邻近成员交换机发出一个预邀请以完成加入过程。以下描述加入过程的各种使用情况。在以下描述中,“加入交换机”指代尝试加入VCS的交换机。“邻近VCS成员交换机”或者“邻近成员交换机”指代加入交换机连接到的VCS成员交换机。
[0118] 预配置VCS以接受交换机。向VCS预配置(例如全局配置数据库)加入交换机的MAC地址,该加入交换机具有用于加入交换机的可选预分配的映射的ID。可以允许加入交换机以在它的现有配置的VCS_ID字段中携带任何值。邻近VCS成员交换机可以在邀请消息中向加入交换机指派FC交换机域ID和恰当VCS ID。在一个实施例中,可以预配置加入交换机以加入现有VCS(例如用与VCS对应的值填充默认交换机配置表中的参数、比如映射的ID、VCS_ID和IN_VCS)。如果预配置的参数在交换机加入VCS时未确保如下槽,该槽具有全局配置数据库中的相同的映射的ID,则交换机可以回到以下描述的默认加入过程。
[0119] 默认交换机加入VCS。默认交换机是与VCS无任何先前加入记录的交换机。交换机如果它被迫进入工厂默认状态则可以变成默认交换机。加入默认交换机可以向邻近VCS成员交换机呈现它的初始配置信息(例如它的接口配置细节)。在一个实施例中,基于如下单调递增数选择VCS配置数据库中的槽,该数用作为用于加入交换机的映射的ID。在这一槽中相应地更新向加入交换机分配的对应FC交换机域ID和加入交换机的MAC。邻近VCS成员交换机然后发起预备事务,该预备事务向所有VCS成员交换机传播并且需要来自每个VCS成员交换机的对加入交换机的配置信息的显式验证。如果预备事务失败,则向加入交换机发送预邀请失败消息并且中止加入过程。
[0120] 图7B呈现流程图,该流程图图示了根据本发明一个实施例的默认交换机加入VCS的过程。在操作期间,在具有默认配置的加入交换机连接到邻近VCS成员交换机之后,VCS成员交换机保留全局配置数据库中的槽(操作722)。保留的槽对应于也向加入交换机指派的映射的ID值。随后,邻近VCS成员交换机内的逻辑FC交换机分配用于加入交换机的FC交换机域ID(操作724)。这一操作类似于FC交换机架构加入过程中的相似架构逻辑操作。
[0121] 邻近VCS成员交换机然后用分配的FC交换机域ID和加入交换机的MAC地址试探地更新全局配置数据库中的保留的槽(操作726)。接着,邻近VCS成员交换机向VCS中的所有成员交换机发送加入交换机的试探配置(操作728)并且确定是否所有VCS成员交换机确认并且已验证加入交换机的配置信息(操作730)。如果确认加入交换机的配置,则邻近成员交换机然后提交对全局配置数据库的改变并且完成加入过程(操作732)。否则,中止加入过程并且丢弃对全局配置数据库的试探的改变(操作734)。
[0122] 交换机重新加入先前加入的VCS。如果交换机出于某一原因而加入交换机先前属于的VCS(例如由于链路故障),则向加入交换机重新分配的FC交换机域ID将最可能相同。当这样的交换机加入VCS时,邻近VCS成员交换机先校验加入交换机的VCS_D是否与成员交换机上的现有VCS_ID相同。如果两个VCS_ID值相同,则邻近成员交换机尝试发现全局配置数据库中的如下槽,该槽具有在元组交换过程期间从加入交换机接收的相同的映射的ID值。如果全局数据库中的这样的槽可用,则为加入交换机保留槽。此外,在全局配置数据库中搜索与加入交换机的MAC地址的匹配。如果在另一槽中发现匹配,则向保留的槽复制来自该槽的配置信息。随后,加入过程如图7A中描述的那样继续。如果两个VCS_ID值不同,则系统如以下针对使用情况“交换机加入另一VCS”描述的加入过程。
[0123] 图7C呈现流程图,该流程图图示了根据本发明一个实施例的交换机重新加入先前加入的VCS的过程。在操作期间,邻近成员交换机先确定加入交换机的现有VCS_ID是否与邻近成员交换机的VCS_ID相同(操作740)。如果两个VCS_ID不同,则加入过程继续图7D中所示操作(操作741)。如果两个VCS_ID相同,这意味着加入交换机先前已经是相同VCS的部分,则邻近成员交换机进一步确定在配置数据库中是否有与加入交换机具有相同的映射的ID的槽(操作742)。如果具有,则邻近成员交换机保留全局配置数据库中的具有相同的映射的ID的槽(操作744)。否则,邻近成员交换机保留全局配置数据库中的如下槽,该槽具有也向加入交换机传达的新的映射的ID(操作746)。
[0124] 随后,邻近成员交换机确定全局配置数据库是否包含与加入交换机具有相同MAC地址的槽(操作748)。如果有这样的槽,这意味着全局配置数据库包含如下槽,该槽先前已经用于相同加入交换机的配置信息,则从标识的槽向保留的槽复制这些的信息(操作750)。否则,邻近成员交换机继续完成如图7A中所示加入过程。
[0125] 交换机加入另一VCS。这一使用情况出现于交换机从一个VCS断开、然后连接到不同VCS,而未被重置成默认状态时。这一场景也可以出现于交换机在它正在参与另一VCS过程中又连接到一个VCS时。在这样的情况下,在加入过程中将存在VCS_ID不匹配。此外,可能设置或者可能未设置加入交换机的配置表中的IN_VCS字段。如果未设置IN_VCS字段,这意味着加入交换机当前未参与VCS,则加入过程可以向交换机分配与交换机加入的VCS对应的新VCS_ID。在一个实施例中,在加入交换机的配置中设置IN_VCS字段,这意味着加入交换机当前参与不同VCS,则加入过程不被允许。可选地,加入交换机可以在设置成默认状态之后完成加入过程。
[0126] 均不在VCS中的两个交换机的初始加入。当两个交换机连接在一起并且它们二者不在VCS中时,选拔过程可以用来让它们之一成为VCS形成过程中的驱动交换机。在一个实施例中,具有更低FC交换机域ID的交换机将让它的IN_VCS字段设置成“1”并且驱动加入过程。
[0127] 加入两个VCS。在一个实施例中,允许两个VCS合并在一起。与FC交换机架构形成过程相似,两个VCS中的逻辑FC交换机将选择新的主FC交换机。这一新选择的主FC交换机然后向所有成员交换机重新指派FC交换机域ID。在指派FC交换机域ID之后,向所有成员交换机广播的“架构设立”消息开始VCS加入过程。
[0128] 在加入过程期间,主FC交换机的IN_VCS字段设置成“1”,而所有其它成员交换机的IN_VCS字段设置成“0”。随后,每个成员交换机可以使用上文描述的“交换机加入另一VCS”过程来加入VCS(该VCS起初仅包含具有主FC交换机的交换机)。
[0129] 从VCS去除交换机。当从VCS去除交换机时,它的邻近成员交换机通常在它的逻辑FC交换机接收“域不可达”通知。在接收这一通知时,邻近成员交换机从全局VCS配置数据库禁用这一交换机并且向所有其它成员交换机传播这一改变。可选地,邻近成员交换机未清楚全局配置数据库中的先前由去除的交换机使用的槽。这样,如果交换机的离开仅为暂时的,则仍然可以在交换机重新加入VCS时使用配置数据库中的相同槽。
[0130] 如果VCS由于链路故障而暂时未加入,则成员交换机中的逻辑FC基础架构可以检测交换机的断开并且发出多个“域不可达”通知。当未加入的交换机重新连接到VCS时,在交换机的配置信息与全局VCS配置数据库中的对应槽信息之间的比较允许使用全局配置数据库中的相同槽(即具有相同的映射的ID的槽)向VCS添加交换机。
[0131] 一般操作。图7D呈现流程图,该流程图图示了根据本发明一个实施例的交换机在加入过程期间的一般操作。这一操作适用于加入交换机和邻近VCS成员交换机二者。在加入过程开始时,交换机内的逻辑FC交换机接收关于链路上的新检测到的交换机域ID的SCN通知(操作760)。系统然后与邻近交换机(操作762)交换VCS四元组。随后,系统确定自身是否为VCS的部分(即是否它的IN_VCS=1)(操作764)。如果系统不是VCS的部分(这意味着本地交换机正在尝试加入VCS),则系统然后等待来自邻近成员交换机的邀请(操作766)。在接收邀请之后,系统确定邀请中的配置信息是否引起与本地交换机的任何未解决的冲突(操作768)。如果有未解决的冲突,则系统拒绝邀请(操作770)。否则,系统接受邀请(操作772)。
[0132] 如果系统确定自身已经是VCS的部分(即它的IN_VCS=1)(操作764),则系统然后进一步确定在全局配置数据库中是否有与加入交换机具有相同的映射的ID的现有槽(操作774)。如果这样的槽存在,则系统然后向加入交换机发送邀请(操作775)并且确定是否有在存储于这一槽中的配置信息与加入交换机提供的信息之间的任何未解决的冲突(操作
780)。如果存在,则系统取消邀请(操作782)。否则,系统用加入交换机的配置信息更新全局配置数据库并且向所有其它成员交换机传播更新(操作784)。
[0133] 如果在全局配置数据库中无与加入交换机具有相同的映射的ID的槽(操作774),则系统分配全局配置数据库中的临时槽(操作776)并且向加入交换机发送邀请(操作778)。在从加入交换机接收邀请接受(操作779)之后,系统然后更新全局配置数据库(操作784)并且完成加入过程。
[0134] VCS中的2层服务
[0135] 在一个实施例中,与以太网桥接器执行的操作相似,每个VCS交换机单元执行源MAC地址获知。经由与VCS交换机单元上的物理端口对应的逻辑Nx_端口接口向本地光纤信道名称服务器(FC-NS)中注册该物理端口上获知的每个{MAC地址,VLAN}元组。这一注册向Nx_端口标识的具体接口绑定获知的地址。每个VCS交换机单元上的每个FC-NS实例与结构中的每个其它FC-NS实例协调并且分布所有本地获知的{MAC地址,VLAN}元组。这一特征允许向VCS中的每个交换机散布本地获知的{MAC地址,VLAN}信息。在一个实施例中,各个交换机本地老化获知的MAC地址。
[0136] 图8呈现流程图,该流程图图示了根据本发明一个实施例的查找入口帧的目的地MAC地址并且在VCS中转发帧的过程。在操作期间,VCS交换机在它的以太网端口之一接收以太网帧(操作802)。交换机然后提取帧的目的地MAC地址并且查询本地FC名称服务器(操作804)。接着,交换机确定FC-NS是否返回与传出以太网端口对应的N_端口或者NL_端口标识符(操作806)。
[0137] 如果FC-NS返回有效结果,则交换机向标识的N_端口或者NL_端口转发帧(操作808)。否则,交换机在TRILL多播树上以及在所有参与该VLAN的N_端口和NL_端口上洪泛帧(操作810)。这一洪泛/广播操作与常规TRILL R桥接器中的广播过程相似,其中VCS中的所有物理交换机将接收并且处理这一个帧并且获知与传入R桥接器对应的源地址。此外,每个接收交换机向它的本地端口洪泛帧,这些端口参与帧的VLAN(操作812)。注意上述操作基于在交换机的TRILL标识符(或者别名)与它的FC交换机域ID之间有一对一映射这一假设。还存在在交换机上的物理以太网端口与对应逻辑FC端口与之间的一对一映射。
[0138] 端到端帧递送
[0139] 图9图示了根据本发明一个实施例的如何在VCS中传送数据帧和控制帧。在这一例子中,VCS 930包括成员交换机934、936、938、944、946和948。终端主机932与终端主机940通信。交换机934是与主机932对应的传入VCS成员交换机,并且交换机938是与主机938对应的传出VCS成员交换机。在操作期间,主机932向主机940发送以太网帧933。传入交换机934首先遇到以太网帧933。在接收帧933时,交换机934先提取帧933的目的地MAC地址。交换机934然后使用以太网名称服务来执行MAC地址查找,该服务提供传出交换机标识符(即传出交换机938的R桥接器标识符)。基于传出交换机标识符,交换机934中的逻辑FC交换机执行路由表查找以确定用于转发帧933的下一跳跃交换机和对应输出端口,该下一交换机是交换机936。传出交换机标识符然后用来生成TRILL标头(该标头指定目的地交换机的R桥接器标识符),并且下一跳跃交换机信息用来生成外以太网标头。随后,交换机934用恰当TRILL标头和外以太网标头封装帧933并且向交换机936发送封装的帧935。基于帧935的TRILL标头中的目的地R桥接器标识符,交换机936执行路由表查找并且确定下一跳跃。基于下一跳跃信息,交换机936更新帧935的外以太网标头并且向传出交换机938转发帧935。
[0140] 在接收帧935时,交换机938基于帧935的TRILL标头确定它是目的地R桥接器。对应地,交换机938从帧935剥离它的外以太网标头和TRILL标头并且检查它的内以太网标头的目的地MAC地址。交换机938然后执行MAC地址查找并且确定通向主机940的正确输出端口。随后向主机940发送原以太网帧933。
[0141] 如上文描述的那样,物理VCS成员交换机内的逻辑FC交换机可以向彼此发送控制帧(例如以更新VCS全局配置数据库或者向其它交换机通知获知的MAC地址)。在一个实施例中,这样的控制帧可以是TRILL标头和外以太网标头中封装的FC控制帧。例如,如果交换机944中的逻辑FC交换机与交换机938中的逻辑FC交换机通信,则交换机944可以向交换机946发送TRILL封装的FC控制帧942。交换机946可以恰如普通数据帧一样转发帧942,因为交换机946与帧942中的净荷无关。
[0142] 自动端口简档管理
[0143] 如今的服务器虚拟化基础结构(例如管理程序(Hypervisor),也称为虚拟机监视器)向每个以太网MAC地址关联服务器侧(例如管理程序或者适配器)虚拟以太网桥接器(VEB)端口简档,该以太网MAC地址由虚拟机(VM)用来通过VEB端口接入网络。VEB的端口简档属性的例子包括:在端口上允许的帧类型(例如所有帧、仅用某些VLAN值标注的帧或者未标注的帧)、允许使用的VLAN标识符和速率限制属性(例如基于端口或者接入控制的速率限制)。在如今的服务器虚拟化基础结构中,如果VM从一个物理服务器向另一物理服务器迁移,则VEB的端口简档随它迁移。换而言之,如今的服务器虚拟化基础结构提供服务器的与VM关联的VEB端口的自动化端口简档迁移。
[0144] 然而在现有技术中,留有在外部2层交换机和服务器虚拟化基础结构中支持的接入和服务质量(QoS)控制之间的间隙。也就是说,外部2层交换机具有与服务器VEB实施方式相比的更高级控制。虽然服务器虚拟化基础结构不断添加这些控制,但是预计这一间隙仍然存在。一些环境偏好于外部网络交换机提供的更高级控制。这样的环境的例子是具有在相同2层网络之上运行的若干应用类型的多层数据中心,每个应用类型具有不同高级网络控制。在这一类型的环境中,网络管理员经常偏好于使用外部交换机中可用的高级接入控制。
[0145] 如今的2层网络未提供用于在端点设备(例如VM)从一个交换机向另一交换机迁移时自动迁移与该设备关联的交换机接入和业务控制的机制。迁移可以是物理的、比如在一个物理系统上运行的并且向另一系统迁移的操作系统映像(应用、中间件、操作系统和关联状态)。迁移也可以是虚拟的、比如在一个系统上的管理程序之上运行的并且迁移成在另一系统上的管理程序之上运行的操作系统映像(OS映像)。
[0146] 本发明的实施例提供用于在OS映像从一个物理终端主机系统向连接到第二交换机的另一终端主机系统迁移时向第二交换机上的端口自动迁移驻留于交换机中并且与该OS映像关联的端口简档的机制。
[0147] 图10图示了根据本发明一个实施例的包括自动端口简档管理器的逻辑VCS接入层(VAL)。在这一例子中,VCS 100与多个物理服务器系统、比如系统1002耦合。每个物理服务器系统运行多个虚拟机(VM,也称为虚拟服务器)。例如系统1002包括四个VM,这些VM之一是VM 1004。VM可以专用于某一应用(例如即时消息服务、目录服务、数据库应用等)并且可以具有它自己的对网络的要求。运行任务关键应用的VM可能需要VCS 1000内的分离VLAN并且可以具有更严格的QoS要求(比如保障的端口宽度、低延时和保障的分组递送)。运行非临界应用的VM可以具有低得多的要求。
[0148] VCS 100内的外部耦合到物理终端主机系统的交换机形成逻辑VCS接入层(VAL)1010。在VAL 1010中实施端口简档自动迁移(AMPP)。在操作期间,向VCS 1000中的所有成员交换机创建并且分布经常针对VM的不同要求而定制的各种端口简档。如以下具体描述的那样,当VCS 1000的传入成员交换机检测到VM生成的分组时,识别并且使用VM的源MAC地址以标识对应端口简档,该对应端口建档然后应用于适当传入交换机端口。当VM从一个物理服务器移向另一物理服务器时,MAC地址检测机制可以快速标识VM耦合到的新物理交换机端口并且将相同端口简档应用于新端口。
[0149] 图11图示了根据本发明一个实施例的AMPP操作的例子。在这一例子中,VCS 1100包括分别耦合到两个物理服务器1116和1118的两个交换机1120和1122。物理服务器1116托管四个VM 1102、1104、1106和1008。每个VM具有虚拟端口(VP或者虚拟网络接口卡VNIC)。例如VM 1102具有VP 1110。向相应VP被指派有虚拟MAC地址。四个VP在逻辑上耦合到管理程序1114提供的虚拟交换机1112。虚拟交换机1112负责通过物理NIC 1117派发传出和传入业务。注意相应VM生成的以太网帧以对应VP的虚拟MAC作为它的源地址。在逻辑上,虚拟交换机1112作为聚合点来工作,该聚合点提供通向VCS 1100中的传入成员交换机的链路。物理服务器1118具有相似架构。在操作期间,VM可以从一个物理服务器向另一物理服务器迁移(VMware提供的“VMotion”功能)。这一迁移可以由事件驱动或者被预调度。这样的迁移经常用来应对诸如服务器负载、功率消耗、资源利用等多个参数的变化动态性。
[0150] 在操作期间,可以创建一个或者多个端口简档以指定应当在与一个或者多个VM对应的VCS交换机端口实行的多个要求/约束/限制。例如可以向VCS 1100的每个成员交换机创建并且分布用于VM 1102(可以由VP 1110的虚拟MAC地址标识)的端口简档。当VM 1102向网络发送它的第一以太网帧时,交换机1120将获知这一源MAC地址。在获知VP 1110的MAC地址时,交换机1120然后搜索它的端口简档数据库并且标识匹配端口简档。随后,标识的端口简档应用于交换机1120上的耦合到系统1116的端口。此外,相同端口简档应用于匹配MAC地址是帧的目的地MAC地址的端口。这样,在VCS的传入和出口端口二者实行相同网络参数。注意端口简档可以包括“软”参数。换而言之,端口简档中的要求和限制可以是某些MAC地址专属的并且可以不是对交换机端口的物理参数的“硬”限制,这是因为来自/去往多个VM的业务由相同物理交换机端口操纵。
[0151] 在一个实施例中,VCS 1100提供向所有成员交换机分布所有端口简档和端口简档到MAC映射信息的机制。可以使用命令行接口(CLI)或者其它网络管理软件来创建端口简档。此外,在迁移VM(比如VMware VMotion)时,VCS中的目标交换机端口可以自动激活正确端口简档配置。
[0152] 图12A图示了根据本发明一个实施例的示例端口简档内容。如图12A中所示,端口简档可以包含VM为了获得对LAN或者WAN的接入而需要的整个配置,该配置可以包括:基于以太网的光纤信道(FCoE)配置、VLAN配置、与QoS有关的配置和与安全有关的配置(比如接入控制列表ACL)。以上列举绝非全部或者穷举。另外,端口简档不必包含每个类型的配置信息。
[0153] 在一个实施例中,端口简档可以能够作为自备式配置容器来操作。换而言之,如果端口简档应用于新交换机而无任何附加配置,则端口简档应当足以设置交换机的全局和本地(接口级)配置并且允许交换机开始输送业务。
[0154] 端口简档内的VLAN配置简档可以限定:
[0155] ·VLAN成员关系,该关系包括标记的VLAN和未标记的VLAN;以及
[0156] ·基于VLAN从属关系的传入/传出VLAN过滤规则。
[0157] 端口简档内的QoS配置简档可以限定:
[0158] ·从入口帧的802.1p优先级向内部队列优先级的映射;(如果端口在QoS不信任模式中,则将向默认尽力而为优先级映射所有入口帧的优先级)
[0159] ·从入口帧的优先级向外传优先级的映射;
[0160] ·调度简档、比如加权轮循或者基于严格优先级的排队;
[0161] ·入口帧的优先级向基于严格优先级的或者加权轮循业务类别的映射;
[0162] ·对于基于严格优先级的或者加权轮循业务类别的流控制机制;以及
[0163] ·对多播数据速率的限制。
[0164] 端口简档内的FCoE配置简档限定端口为了支持FCoE而需要的属性,这些属性可以包括:
[0165] ·FCoE VLAN;
[0166] ·FCMAP;
[0167] ·FCoE优先级;以及
[0168] ·虚拟架构ID。
[0169] 端口简档内的安全配置简档限定服务器端口所需要的安全规则。然而安全规则可以在不同端口不同,因此可以允许一些本地配置的ACL超越来自端口简档的冲突规则。典型安全简档可以包含以下属性:
[0170] ·启用具有用于VM移动性的EAP TLV扩展的802.1x;以及
[0171] ·基于MAC的标准和扩展式ACL。
[0172] 在一个实施例中,每个端口简档可以具有与它关联的一个或者多个MAC地址。图12B图示了根据本发明一个实施例的三个示例端口简档。在这一例子中,端口简档PP-1与5个MAC地址关联。这些MAC地址可以是向不同VM指派的虚拟MAC地址。端口简档向MAC的映射信息分布于整个VCS内。可以用三种方式在服务器端口上激活端口简档:(1)当管理程序向端口简档ID绑定MAC地址时;(2)通过普通MAC获知;以及(3)通过经由管理接口的人工配置过程。
[0173] 有可能通过关联网络中的VM集与一个端口简档对这些VM进行分组。这一个组可以用来规定在VM之间的转发。图13图示了根据本发明一个实施例的如何基于端口简档成员关系在VM之间实现转发。在这一例子中,端口简档1具有两个成员:MAC-1和MAC-3。端口简档2具有四个成员:MAC-2、MAC-4、MAC-5和MAC-6。所有VM属于相同VLAN X。基于元组,可以确定策略组ID(GID)。向相同端口简档映射的所有MAC地址应当属于规定转发边界的相同策略组。这一配置允许如图13B中所示实行VLAN内的不同转发域。系统然后保证源MAC地址和目的地MAC地址是相同端口简档的部分。
[0174] 图14呈现流程图,该流程图图示了根据本发明一个实施例的创建并且应用端口简档的过程。在操作期间,系统接收用户创建的端口简档,该端口简档具有对应VM的MAC地址(操作1402)。这一MAC地址然后与端口简档关联并且可以以后用来标识简档。系统然后确定新简档是否创建对其它现有简档的依赖性或者冲突(操作1404)。如果是这样,则系统允许用户解决冲突配置和/或依赖性(操作1406)。
[0175] 随后,系统向整个VCS架构内的每个成员交换机分布端口简档和对应VM MAC地址(操作1408)。当启动或者迁移VM时,系统然后从接收的传入分组检测匹配虚拟MAC地址(操作1410)。基于获知的MAC地址,系统然后激活交换机端口上的对应端口简档(操作1412)。
[0176] 具有AMPP的示例VCS成员交换机
[0177] 图15图示了根据本发明一个实施例的示例VCS成员交换机。在这一例子中,VCS成员交换机是运行特殊VCS软件的TRILL R桥接器1500。R桥接器1500包括可以发送和接收以太网帧和/或TRILL封装帧的多个以太网通信端口1501。在R桥接器1500中也包括分组处理器1502、虚拟FC交换机管理模1504、逻辑FC交换机1505、VCS配置数据库1506、AMPP管理模块1507和TRILL标头生成模块1508。
[0178] 在操作期间,分组处理器1502提取入口帧的源和目的地MAC地址并且向传出帧附着恰当以太网或者TRILL标头。虚拟FC交换机管理模块1504维护逻辑FC交换机1505的状态,该交换机用来使用FC交换机架构协议来加入其它VCS交换机。VCS配置数据库1506维护VCS内的每个交换机的配置状态。TRILL标头生成模块1508负责为将向其它VCS成员交换机发送的帧生成性质TRILL标头。
[0179] 在从VM获知新MAC地址时,AMPP管理模块1507标识与获知的MAC对应的端口简档并且应用标识的端口简档。这一动态端口简档应用过程可以在很短时间段内对VM迁移做出响应、由此有助于虚拟计算环境中的自动端口配置。
[0180] 高级链路跟踪
[0181] 如今的服务器虚拟化基础结构(例如管理程序,也称为虚拟机监视器)通常提供物理服务器内的一个或者多个虚拟交换机(也称为虚拟以太网桥接器VEB)。每个虚拟交换机服务于多个虚拟机。当多个这样的服务器连接到VCS时,在虚拟机之间的通信话路数目可以很大。在这样的网络环境中,当网络链路或者端口出故障时,故障将通常损坏通向一个或者多个虚拟机的可达性。这一损坏可能影响一些虚拟机的通信话路。在常规网络中,这样的可达性损坏仅触发网络中的拓扑改变和/或MAC地址获知更新并且未向源虚拟机通知这些更新。对应地,利用常规技术,在没有经由专有协议、来自网络的一些信令的情况下,管理程序无法重新配置虚拟机的连通。
[0182] 本发明的实施例通过监视网络中的任何可达性损坏并且通知受影响的管理程序来有助于高级链路跟踪。作为响应,管理程序可以在它的控制之下重新配置虚拟机的连接性以绕过出故障的链路或者端口。在一个实施例中,可以在逻辑VCS接入层中实现这一高级链路跟踪功能。
[0183] 图16图示了根据本发明一个实施例的VCS中的高级链路跟踪的示例配置。在这一例子中,VCS 1600包括四个交换机(这些交换机可以是R桥接器)1620、1622、1624和1626。物理服务器1618分别经由两个网络接口卡(NIC)1603和1605耦合到两个交换机1622和1624。物理服务器1618托管由管理程序1601管理的四个VM 1622、1624、1626和1628。管理程序
1601提供两个虚拟交换机1602和1604。每个VM具有两个虚拟端口(VP)并且经由VP耦合到两个虚拟机交换机1602和1604。换而言之,物理服务器1618内的每个VM与虚拟交换机1602和
1604双归属。这一配置向每个VM提供冗余性,从而当物理NIC之一(即NIC 1603或者1605)出故障时,管理程序1601可以通知VM使用另一工作NIC。在正常操作期间,出于负载平衡目的,VM 1622和1624被配置成经由虚拟交换机1602通信,并且VM 1626和1628被配置成经由虚拟交换机1604通信。
[0184] 与服务器1618具有相似配置的物理服务器1617也耦合到VCS 1600。服务器1617包括四个VM 1632、1634、1636和1638。这四个VM各自与管理程序1641提供的虚拟交换机1642和1644双归属。虚拟交换机1642经由NIC 1643耦合到VCS成员交换机1620,并且虚拟交换机1644经由NIC 1645耦合到VCS成员交换机1626。在正常操作期间,VM 1632和1634经由虚拟交换机1642和NIC 1643与VCS 1600通信,并且VM 1636和1638经由虚拟交换机1644和NIC 
1645与VCS 1600通信。
[0185] 假设VM 1622和1624与VM 1636和1638通信。由于VM 1636和1638由管理程序1641配置成使用虚拟交换机1644和NIC 1645,所以在VM 1622和1624与VM 1636和1638之间的业务通常由VCS成员交换机1626输送。现在假设在交换机1620与1626之间的链路出故障。作为结果,不再可以经由NIC 1645到达VM 1636和1638。在本发明的实施例中,不仅在(按照路由协议操纵在VCS 1600内的)VCS拓扑更新中反映而且也经由NIC 1603向管理程序1601传达这一可达性更新信息。这一更新可以允许管理程序1601快速重新配置VM 1622和1624,从而这两个VM使用虚拟交换机1604和NIC 1605以访问VCS 1600。这样,来自VM 1622和1624的业务仍然可以经由交换机1624、交换机1620、NIC 1643和虚拟交换机1642到达VM 1636和1638。新数据路径绕过在交换机1620与1626之间的出故障的链路。这一重新配置可以在检测到链路故障之后不久发生、由此有助于在源VM的快速恢复。
[0186] 图17图示了根据本发明一个实施例的其中高级链路跟踪在链路出故障时允许虚拟机对传出业务重新寻路由的例子。在这一例子中,两个服务器1702和1704耦合到VCS 1700。服务器1702托管都与虚拟机1714和1716双归属的四个VM 1706、1708、1710和1712。在操作期间,VM 1706和1708经由VS 1714访问VCS 1700,并且VM 1710和1712经由VS 1716访问VCS 1700。服务器1704具有与服务器1702相似的配置。假设在整个VCS 1700内有从VS 
1714通向服务器1704中的VM 1718的仅一个路径。进一步假设在操作期间耦合到服务器
1704中的VM 1718的出口端口出故障。作为结果,VS 1718不再从VS 1714可达。高级链路跟踪机制可以向VS 1714通知失去通向VS 1718的可达性。在一个实施例中,VCS 1700可以与维护所有VM之间的连通模式信息的第三实体(比如VMware的vCenter)通信以获得关于受影响的VM的信息。在更多实施例中,VCS 1700可以向每个外部端口通知失去可达性并且让个别管理程序确定重新配置VM到VS的连通是否必要。
[0187] 图18呈现流程图,该流程图图示了根据本发明一个实施例的高级链路跟踪过程。在操作期间,系统先检测VCS中的链路(或者端口)故障(操作1802)。系统然后确定故障是否影响终端主机的可达性(操作1804)。如果故障未影响任何终端主机的可达性,则认为VCS可以在它的拓扑会聚之后从故障中恢复并且路由协议更新每个交换机的转发表。如果影响终端主机的可达性,则系统然后可选地标识与受影响的终端主机通信的入口端口(操作
1806)。随后,系统经由入口端口向终端主机通知可达性破坏(操作1806)。
[0188] 具有高级链路跟踪的示例VCS成员交换机
[0189] 图19图示了根据本发明一个实施例的示例VCS成员交换机。在这一例子中,VCS成员交换机是运行特殊VCS软件的TRILLR桥接器1900。R桥接器1900包括多个以太网通信端口1901,这些端口耦合到托管虚拟机的一个或者多个服务器并且可以发送和接收以太网帧和/或TRILL封装帧。在R桥接器1900中也包括分组处理器1902、虚拟FC交换机管理模块
1904、逻辑FC交换机1905、VCS配置数据库1906、高级链路跟踪模块1907和TRILL标头生成模块1908。
[0190] 在操作期间,分组处理器1902提取入口帧的源和目的地MAC地址并且向出口帧附加恰当以太网或者TRILL标头。虚拟FC交换机管理模块1904维护逻辑FC交换机1905的状态,该交换机用来使用FC交换机架构协议来加入其它VCS交换机。VCS配置数据库1906维护VCS内的每个交换机的配置状态。TRILL标头生成模块1908负责为将向其它VCS成员交换机发送的帧生成性质TRILL标头。
[0191] 在获知VCS中的已损坏的可达性时,高级链路跟踪模块1907标识受损坏影响的端口并且向管理程序通知损坏。这一通知可以允许管理程序加速受影响的VM的重新配置并且最小化服务损坏。另外,高级链路跟踪模块1907也监视与端口1901对应的所有链路的健康,在检测到任何链路或者端口故障时,高级链路跟踪模块1907可以向VCS中的其它交换机通知链路状态改变和任何可达性损坏。
[0192] 虚拟端口分组
[0193] 如今的服务器虚拟化基础结构(例如管理程序,也称为虚拟机监视器)通常提供物理服务器内的一个或者多个交换机(也称为虚拟以太网桥接器VEB)。每个虚拟交换机服务于多个虚拟机。当多个这样的服务器连接到VCS时,在虚拟机之间的通信话路数目可以很大。不同虚拟机经常属于不同客户,并且不同客户通常出于安全和服务质量的目的而需要专用和隔离的网络资源。
[0194] 在一个实施例中,每个客户的虚拟机基于它们的关联虚拟端口的MAC地址和VLAN标签放置于相同组中。在每个VCS成员交换机复制并且存储分组信息。在操作期间,当帧到达VCS成员交换机时,成员交换机可以通过查找与帧的源MAC地址和VLAN标签对应的组ID来实行分组策略。如果帧的与VLAN标签组合的目的地MAC地址属于相同组,则向恰当下一跳跃交换机转发帧。否则,丢弃帧。这一配置保证每个客户的虚拟机仅在本身内通信,由此创建VCS内的虚拟分区。
[0195] 图20图示了根据本发明一个实施例的具有虚拟端口分组的示例VCS网络环境。在这一例子中,VCS 2000包括四个交换机(这些交换机可以是R桥接器)2020、2022、2024和2026。物理服务器2018分别经由两个网络接口卡(NIC)2003和2005耦合到两个交换机2022和2024。物理服务器2018托管由管理程序2001管理的四个VM 2022、2024、2026和2028。管理程序2001提供两个虚拟交换机2002和2004。每个VM具有两个虚拟端口(VP)并且经由VP耦合到虚拟交换机2002和2004二者。换而言之,物理服务器2018内的每个VM与虚拟交换机2002和2004双归属。这一配置向每个VM提供冗余性,从而当物理NIC之一(即NIC 2003或者2005)出故障时,管理程序2001可以通知VM使用另一工作NIC。在正常操作期间,出于负载平衡目的,VM 2022和2024被配置成经由虚拟交换机2002通信,并且VM 2026和2028被配置成经由虚拟交换机2004通信。
[0196] 与服务器2018具有相似配置的物理服务器2017也耦合到VCS 2000。服务器2017包括四个VM 2032、2034、2036和2038。这四个VM各自与管理程序2041提供的虚拟交换机2042和2044双归属。虚拟交换机2042经由NIC 2043耦合到VCS成员交换机2020,并且虚拟交换机2044经由NIC 2045耦合到VCS成员交换机2026。在正常操作期间,VM 2032和2034经由虚拟交换机2042和NIC 2043与VCS 200通信,并且VM 2036和238经由虚拟交换机2044和NIC 
2045与VCS 2000通信。
[0197] 假设VM 2024、2028、2032和2036属于相同客户(如图20中的每个图元中的影线所示)并且这些VMS限于仅在本身内进行通信。通常,客户将向这些VM设置特定VLAN值。然而客户VLAN值不可以在VCS 2000内工作,因为客户VLAN值可能与VCS 2000内的现有VLAN设置冲突。一种用于解决这一问题的方式是将与特定客户的虚拟机的虚拟端口对应的MAC地址与客户的VLAN值一起放置于客户专属组中并且向这一个组指派唯一组ID。这一分组信息可以是向组ID映射{MAC,VLAN标签}元组的数据结构。向VCS 2000中的每个成员交换机复制并且分布这一数据结构。
[0198] 图21A图示了根据本发明一个实施例的用于存储虚拟端口分组信息的示例数据结构。在这一例子中,每个{MAC,VLAN标签}元组映射到组ID,这用来约束帧在不同组之间的转发。
[0199] 图21B图示了根据本发明一个实施例的作为虚拟端口分组的结果的在VCS内的逻辑虚拟网络。在这一例子中,两个服务器2102和2104耦合到VCS 2100。服务器2102托管都与虚拟交换机2114和2116双归属的四个VM 2106、2108、2110和2112。服务器2104托管都与交换机2118和2120双归属的四个VM 2122、2124、2126和2128。VM 2108、2112、2124和2128属于相同客户并且预计仅在本身内进行通信。
[0200] 在操作期间,VM管理员2124向VM 2108、2112、2124和2128配置与它们的共同客户对应的相同VLAN标签。对应地,用于这些机器的虚拟端口的MAC地址与指明的VLAN标签一起被指派以相同组ID。向VM 2106、2110、2122和2126及其相应VLAN标签指派不同组ID。然后向VCS 2100传达并且在每个成员交换机存储这一分组信息。
[0201] 当在VCS 2100内处理并且转发帧时,禁止将具有一个组ID的帧向与不同组ID对应的MAC地址-VLAN组合转发。因此,虚拟端口分组有效创建VCS 2100内的两个虚拟网络2120和2121。
[0202] 图22呈现流程图,该流程图图示了根据本发明一个实施例的实行虚拟端口分组的过程。在操作期间,VCS成员交换机从终端主机接收入口帧(操作2202)。交换机然后基于接收的帧的源MAC地址和VLAN标签标识组ID(操作2204)。此外,交换机进一步确定接收的帧的目的地MAC地址和VLAN标签是否指向相同组ID(操作2206)。如果是这样,则交换机基于目的地MAC地址和VLAN标签标识输出端口(操作2208)并且向标识的输出端口转发帧(操作2210)。否则,丢弃帧(操作2212)。
[0203] 具有虚拟端口分组的示例VCS成员交换机
[0204] 图23图示了根据本发明一个实施例的示例VCS成员交换机。在这一例子中,VCS成员交换机是运行特殊VCS软件的TRILLR桥接器2300。R桥接器2300包括多个以太网通信端口2301,这些端口可以耦合到托管虚拟机的一个或者多个服务器的一个或者多个服务器并且可以发送和接收以太网帧和/或TRILL封装帧。在R桥接器2300中也包括分组处理器2302、虚拟FC交换机管理模块2304、逻辑FC交换机2305、VCS配置数据库2306、虚拟端口分组模块
2307和TRILL标头生成模块2308。
[0205] 在操作期间,分组处理器2302提取入口帧的源和目的地MAC地址并且向传出帧附着恰当以太网或者TRILL标头。虚拟FC交换机管理模块2304维护逻辑FC交换机2305的状态,该交换机用来使用FC交换机架构协议来加入其它VCS交换机。VCS配置数据库2306维护VCS内的每个交换机的配置状态。TRILL标头生成模块2308负责为将向其它VCS成员交换机发送的帧生成性质TRILL标头。虚拟端口分组模块2307负责维护分组信息的副本并且实行分组策略。如结合图22描述的那样,当帧的{源MAC,VLAN标签}和{目的地MAC,VLAN标签}未映射到相同组ID时,防止向任何输出端口转发帧。在一个实施例中,虚拟端口分组模块2307可以与VM管理员(比如VMware Vcenter)通信以获得虚拟端口分组信息(例如图21A中所示完整数据结构)。
[0206] VCS名称服务
[0207] VCS允许R桥接器的互连架构作为单个逻辑交换机来工作。VCS名称服务有助于快速分布运行时间网络状态改变,这些改变包括新获知的MAC地址(在本公开内容中称为“以太网名称服务”或者“以太网NS”)和多机架干线(MCT)端口状态更新(在本公开内容中称为“MCT名称服务”或者“MCT NS”)。在于2010年3月16日提交、标题为"REDUNDANT HOST CONNECTION IN A ROUTED NETWORK"、发明人Somesh Gupta、Anoop Ghanwani、Phanidhar Koganti和Shunjia Yu的第12/725,249号美国专利申请(代理案号为BRCD-112-0439US)中提供关于MCT的更多细节,通过引用将其公开内容结合于此。
[0208] 以太网NS提供跨越VCS分布各种信息的能力。在一个成员交换机获知的MAC信息向所有其它成员交换机分布,这有助于快速MAC移动(例如在迁移虚拟机期间)和全局MAC获知。在一些实施例中,可以分布2层多播信息以有助于高效的VCS范围的多播,该信息可以是具有对应交换机/端口标识符和VLAN标签的多播MAC地址。可选地,以太网NS提供分布机制并且未维护与MAC有关的知识库的中心存储器。换而言之,在所有VCS成员交换机之中分布地复制并且存储以太网NS知识数据库。
[0209] 每个成员交换机维护在整个VCS内获知的所有MAC地址的数据库。这一数据库可以用来最小化洪泛量(以太网交换机在未识别帧的目的地MAC地址时的默认行为)。以太网NS也提供对可以通过因特网组管理协议(IGMP)侦听来获得的多播MAC向R桥接器/端口的映射信息的、VCS范围的分布。(可以在http://tools.ietf.org/html/rfc3376可用的IETF RFC 3376和在http://tools.ietf.org/html/rfc4541可用的IETF RFC 4541找到关于IGMP和IGMP侦听的细节。)以太网NS向所有R桥接器分布这一信息、由此允许VCS表现为单个交换机。通过跟踪并且转发IGMP加入和离开信息,以太网NS可以高效跟踪多播MAC信息并且维护准确2层多播组。
[0210] 呈现VCS为单个交换机的要求之一是支持干线式链路从外部主机向VCS架构内的不同R桥接器连接。这样的涉及到向不同R桥接器连接的干线化称为多机架干线化(MCT)。在概念上,通过呈现每个MCT组(即每个干线)为虚拟R桥接器来实现在VCS架构内支持向MCT目的地寻路由。在一些实施例中,虚拟R桥接器未被指派域ID,因此未将FSPF用于路由建立。取而代之,托管MCT的主R桥接器向VCS架构分布虚拟R桥接器ID和对应链路状态更新。主R桥接器负责经由MCT获知新MAC并且向VCS分布新MAC信息。
[0211] 当R桥接器加入VCS时,它将请求转存来自远程R桥接器的本地NS数据库。它直至已经接收DB转存才会对来自远程R桥接器的个别更新做出响应。在数据库在两个R桥接器之间同步之后,本地检测并且远程推送各个改变。如果本地数据库接收域不可达,则它负责去除用于该远程域的所有记录并且进行这一去除隐含的任何本地通知。
[0212] 图24图示了根据本发明一个实施例的VCS中的名称服务操作的例子。在这一例子中,VCS 2400包括四个成员交换机(R桥接器)2402、2404、2406和2408。假设终端主机2414在操作期间耦合到交换机2402。当终端主机2414发送它的第一以太网帧时,交换机2402不会识别这一入口帧的源MAC地址。在接收这一入口帧时,交换机2402然后确定帧在其上到达的端口(或者接口)和帧的VLAG标签。随后,交换机2402组装指示获知的MAC地址(对应于终端主机2414)的以太网NS更新帧、它的交换机标识符(在一个实施例中是交换机2402的R桥接器ID)、端口标识符和用于帧的VLAG标签。在一个实施例中,这一个帧是在TRILL标头中封装的FC注册状态改变通知(RSCN)。注意交换机2402可以通过查找全局配置数据库来获得VCS中的所有其它成员交换机的信息。随后,交换机2402可以分别向交换机2404、2408和2406发送以太网NS更新帧。在接收以太网NS更新帧时,每个成员交换机相应地更新它子集的MAC数据库。以这一方式,当成员交换机之一接收去往终端主机2414的以太网帧时,它可以向交换机2402转发该帧(而不是向它的所有端口对该帧进行洪泛)。
[0213] 在图24中的例子中也示出了MCT组2416。MCT组2416由与交换机2406和2408双归属的终端主机2412形成。假设交换机2406是MCT组2416中的主R桥接器。当第一次配置终端主机2412和MCT组2410时,交换机2406向MCT组2410指派虚拟R桥接器2410。此外,交换机2406向VCS 2400的其余部分通知终端主机2412的MAC地址。注意与终端主机2412的MAC地址关联的NS更新指示虚拟R桥接器2410的标识符(而不是交换机2406或者交换机2408的标识符)。以这一方式,VCS 2400的其余部分可以将终端主机2412与虚拟R桥接器2410相关联。当向终端主机2412转发帧时,VCS 2400中的成员交换机将朝着虚拟R桥接器2410转发帧(即通过在TRILL标头中设置R桥接器2410作为目的地R桥接器)。注意交换机2406也负责分布关于在虚拟R桥接器2410与交换机2406和2408之间的虚拟连通(虚线所示)的链路状态信息。
[0214] 在当链路之一(即在交换机2406与终端主机2412之间的链路或者在交换机2408与终端主机2412之间的链路)出故障时的情况下,作为MCT NS的部分,在一个实施例中,主R桥接器2406负责更新VCS 2400的其余部分使得主机2412的MAC地址不再与虚拟R桥接器2410关联。取而代之,主机2412的MAC地址现在与主机2412保持连接到的交换机相关联。在又一实施例中,交换机的职责可以是保持连接到主机2412以向VCS 2400的其余部分分布更新的MAC地址关联。
[0215] 图25呈现流程图,该流程图图示了根据本发明一个实施例的VCS中的以太网名称服务分布获知的MAC信息的过程。在操作期间,VCS成员交换机检测具有新源MAC地址的入口帧(操作2502)。交换机然后标识在其上接收入口帧的端口(操作2504)。随后,交换机用获知的MAC地址、交换机标识符、端口标识符和VLAN标签组装以太网NS更新帧(操作2506)。交换机然后向VCS中的所有成员交换机分布以太网NS更新帧(操作2508)。
[0216] 图26呈现流程图,该流程图图示了根据本发明一个实施例的经由MCT分布获知的MAC地址的信息的过程。在操作期间,假设MCT组中的交换机之一检测到具有新源MAC地址的入口帧(操作2602)。交换机然后确定生成帧的终端主机是否与MCT组双归属(操作2604)。在一个实施例中,交换机可以通过与MCT组的其它交换机通信来进行这一确定。在又一实施例中,交换机可以检查入口帧的链路聚合组(LAG)ID以确定终端主机是否使用LGA来发送。如果帧是MCT帧,则交换机然后用MAC地址、与MCT对应的虚拟R桥接器标识符、端口标识符和帧的VLAN标签来组装以太网NS更新帧(操作2606)。
[0217] 如果确定帧来自普通终端主机(即不是双归属的主机),则交换机用MAC地址、本地物理交换机标识符(如与虚拟R桥接器ID对比)、在其上接收帧的端口的标识符和帧的VLAN标签组装以太网NS更新帧(操作2607)。交换机然后向VCS中的所有成员交换机分布以太网NS更新帧(操作2608)。
[0218] 图27呈现流程图,该流程图图示了根据本发明一个实施例的更新MCT组中的链路状态的过程的流程图的过程。在操作期间,假设MCT伙伴交换机之一检测到链路或者端口故障,该故障是MCT组的部分(操作2702)。注意可以本地检测这一故障(这意味着本地交换机上的端口或者耦合到本地端口的链路已经出故障)或者远程检测这一故障(这意味着故障在伙伴交换机上出现并且伙伴交换机向本地交换机通知故障)。交换机然后确定MCT终端主机是否仍然连接到本地交换机(操作2704)。如果终端主机不再连接到本地交换机,则本地交换机可选地向MCT中的其它伙伴交换机通知故障(操作2710)并且未采取进一步动作,其中假设伙伴交换机将承担更新链路状态的职责(例如使用图27中所示相同过程)。
[0219] 如果MCT终端主机仍然连接到本地交换机,则交换机然后用终端主机的MAC地址、本地交换机的标识符(例如本地交换机的物理R桥接器ID)、端口——通过该端口连接终端主机——的标识符和恰当VLAN标签组装NS更新帧(操作2706)。交换机然后向VCS中的所有成员交换机分布NS更新帧(操作2708)。
[0220] 图28图示了根据本发明一个实施例的有助于用以太网和MCT名称服务形成虚拟集群交换机的示例交换机。VCS成员交换机是运行特殊VCS软件的TRILL R桥接器2800。R桥接器2800包括可以发送和接收以太网帧和/或TRILL封装帧的多个以太网通信端口2801。在R桥接器2800中也包括分组处理器2802、虚拟FC交换机管理模块2804、本地FC交换机2805、VCS配置数据库2806、名称服务管理模块2807和TRILL标头生成模块2808。
[0221] 在操作期间,分组处理器2802提取传入帧的源和目的地MAC地址并且向传出帧附加恰当以太网或者TRILL标头。虚拟FC交换机管理模块2804维护逻辑FC交换机2805的状态,该交换机用来使用FC交换机架构协议来加入其它VCS交换机。VCS配置数据库2806维护VCS内的每个交换机的配置状态。TRILL标头生成模块2808负责为将向其它VCS成员交换机发送的帧生成性质TRILL标头。基于传入帧的提取的MAC地址,NS管理模块2807向VCS的其余部分分布NS更新帧。NS管理模块2807也维护NS数据库2809的副本。NS数据库2809存储来自VCS中的每个成员交换机的所有获知的MAC地址信息。
[0222] 相等成本多路径化
[0223] 由于VCS使用架构最短路径有先(FSPF)路由协议和TRILL传送,所以本发明的实施例可以有助于出于负载平衡目的的相等成本或者近相等成本多路径化。图29图示了根据本发明一个实施例的VCS中的示例相等成本多路径化配置。在这一例子中,VCS 2930包括交换机2934、2936、2938、2944、2946和2948。假设业务流经由入口交换机2934进入VCS 2903并且经由出口交换机2948退出VCS 2930。基于跳跃距离,有两个相等成本数据路径2950和2952。在一个实施例中,当确定输出接口时,交换机2934的转发引擎可以返回与数据路径2950和
2952分别对应的两个可能输出端口。如果希望负荷平衡,则可以在两个数据路径之间拆分从交换机2934向交换机2948的业务。
[0224] 在一个实施例中,业务拆分可以基于帧标头中的任何字段。例如可以基于VLAN标签拆分业务。也可以基于4层端口号或者应用类型拆分业务。
[0225] 流控制和拥塞管理
[0226] 在本发明的一些实施例中,VCS可以通过实施多个流控制机制来实现无损分组传送。在一个实施例中,VCS成员交换机实施基于优先级的流控制(PFC)式机制以保证在邻近交换机之间的无损分组传送。利用基于优先级的流控制,业务类别由VLAN标签优先级值标识。基于优先级的流控制旨在于考察由于拥塞所致的帧损失。这由与IEEE 802.3x PAUSE相似,但是在各个优先级上操作的机制实现。这一机制实现支持对损失高度地敏感的更高层协议又未影响利用其它优先级的传统LAN协议的操作。可以在http://www.ieee802.Org/l/pages/802.lbb可用的IEEE 802.1Qbb标准中找到PFC的细节,通过引用而将其结合于此。
[0227] 在更多实施例中,VCS成员交换机也运用增强的发送选择机制,这些机制支持在不同业务类别之间的带宽分配。当业务类别中的赋予的负载未使用它的分配的带宽时,增强的发送选择将允许其它业务类别使用可用带宽。带宽分配优先级可以与严格优先级共存。VCS可以区分业务的优先级以向业务类别提供不同服务特性。有可能在优先级之间共享输送猝发负载的带宽而不是用严格优先级服务于它们而又针对要求最小延时的对时间敏感的和管理业务允许严格优先级。另外,当在给定优先级平的业务未使用它的分配时,有可能允许其它优先级使用该带宽。可以在http://www.ieee802.Org/l/pages/802.laz.html可用的IEEE 802.1Qas中发现ETS的细节,通过引用而将其结合于此。
[0228] 在一些实施例中,VCS成员交换机也可以实施拥塞通知机制亦有助于面向源的流控制。图30图示了根据本发明一个实施例的VCS拥塞通知的例子。在这一例子中,假设源主机3002经由VCS 3000向目的地主机3004发送帧。假设拥塞出现于中间交换机3006。由于帧积聚于交换机3006,所以它的对应队列3008变满。当队列3008的内容通过预定阈值时触发交换机3006内的队列监视机制。作为响应,交换机3006可以随机选择队列3008中的帧、提取所选帧的源MAC地址以构造拥塞通知帧并且向与提取的源MAC地址(该MAC地址是主机3002)对应的源设备发送这一通知帧。交换机3006可以用队列3008中的多个帧执行相同动作,从而如果多个源对拥塞起作用,则这些源可以都被通知。
[0229] 混合干线化
[0230] 在一个实施例中,进一步干线化在两个邻近VCS成员交换机之间的干线式链路以形成混合干线。这样,可以最小化在两个交换机之间的链路状态维护流量。图31图示了根据本发明一个实施例的示例混合干线。在这一例子中,在VCS成员交换机3102与3104之间形成两个链路干线组3106和3108。假设干线组3106和3108可以由两个交换机标识而未使用链路聚合组(LAG)ID,有可能基于干线3106和3108形成LAG 3110。在这一情况下,干线3106和3108可以视为逻辑链路。LAG 3110也可以包括其它单独的物理链路(未示出)。
[0231] 图32图示了根据本发明一个实施例的示例VCS成员交换机。在这一例子中,VCS成员交换机是运行特殊VCS软件的TRILLR桥接器3200。R桥接器3200包括可以发送和接收以太网帧和/或TRILL封装帧的多个以太网通信端口3201。在R桥接器3200中也包括分组处理器3202、虚拟FC交换机管理模块3204、逻辑FC交换机3205、VCS配置数据库3206、业务管理模块
3207和TRILL标头生成模块3208。
[0232] 在操作期间,分组处理器3202提取入口帧的源和目的地MAC地址并且向传出帧附着恰当以太网或者TRILL标头。虚拟FC交换机管理模块3204维护逻辑FC交换机3205的状态,该交换机用来使用FC交换机架构协议来加入其它VCS交换机。VCS配置数据库3206维护VCS内的每个交换机的配置状态。TRILL标头生成模块3208负责为将向其它VCS成员交换机发送的帧生成性质TRILL标头。业务管理模块3207有助于前述业务管理功能、比如多路径化、流控制、拥塞通知和混合干线化。
[0233] 具有会聚式网络扩展的VCS
[0234] 本发明实施例的一个目的是跨数据中心扩展VCS和TRILL网络并且满足部署所需要的可缩放要求。可以在两箱解决方案中实施会聚式网络扩展(CNE)设备,其中一个箱能够L2/L3/FCoE交换并且是VCS的部分,并且另一个箱有助于WAN隧道化以通过WAN传送以太网和/或FC业务。也可以在一箱解决方案中实施CNE设备,其中单件网络设备结合了L2/L3/FCoE交换与WAN隧道化的功能。
[0235] 如上文描述的那样,作为2层交换机的VCS使用TRILL作为它的交换机间连通并且递送单个逻辑2层交换机的概念。这一单个逻辑2层交换机递送透明LAN服务。VCS的所有边缘端口支持诸如链路聚合控制协议(LACP)、链路层发现协议(LLDP)、VLAN、MAC获知等标准协议和特征。VCS使用以太网名称服务(eNS)来实现分布式MAC地址数据库并且尝试尽可能避免洪泛。VCS也提供诸如虚拟连接聚合组(vLAG)、高级端口简档管理(APPM)、端到端FCoE、边缘回路检测等各种智能服务。
[0236] 在本发明的实施例中,出于交叉数据中心通信的目的,将每个数据中心表示为单个逻辑R桥接器。这一逻辑R桥接器可以被指派虚拟R桥接器ID或者使用执行WAN隧道化的CNE设备的R桥接器ID。
[0237] 图33图示了根据本发明一个实施例的包括用于有助于交叉数据中心通信的CNE设备的示例网络架构。在这一例子中,两个数据中心3344和3346分别经由网关路由器3324和3328耦合到WAN 3326。数据中心3344包括VCS 3316,该VCS经由它的成员交换机、比如交换机3310耦合到多个主机、比如主机3301。主机3301包括在双归属配置中耦合到虚拟交换机
3306和3308的两个VM 3302和3304。在一个实施例中,虚拟交换机3306和3308驻留于主机
3301上的两个网络接口卡上。虚拟交换机3306和3308耦合到VCS成员交换机3310。在VCS 
3316中也包括CNE设备3318。CNE设备3318也被配置成接收经由以太网(或者TRILL)链路
3312来自成员交换机3310的以太网(或者TRILL)业务和经由FC链路3314的FC业务二者。目标存储设备3320和克隆的目标存储设备3332(虚线所示)也耦合到CNE设备3318。CNE设备
3318维护经由网关路由器3324和3328跨越WAN 3326通向数据中心3346的FCIP隧道。
[0238] 类似地,数据中心3346包括VCS 3342,该VCS又包括成员交换机3332。成员交换机3332耦合到主机3341,该主机包括均耦合到虚拟交换机3338和3340的VM 3334和3336。在VCS 3342中也包括CNE设备3330。CNE设备经由以太网(TRILL)链路和FC链路耦合到成员交换机3332。CNE设备3330也耦合到目标存储设备3322和目标存储设备3320的克隆。
[0239] 在操作期间,假设VM 3302需要从主机3301移向主机3341。注意这一移动先前并不可能,因为虚拟机仅在相同2层网络域内可见。一旦3层设备、比如网关路由器3324终结2层网络域,用于特定虚拟机的所有标识信息(在2层标头中携带)丢失。然而在本发明的实施例中,由于CNE设备2层域从VCS 3316扩展至VCS 3342,所以现在有可能将VM 3302从数据中心3344移向数据中心3346。
[0240] 当从数据中心3344向数据中心3346转发TRILL帧时,CNE设备3318修改出口TRILL帧的标头,从而目的地R桥接器标识符是向数据中心3346指派的R桥接器标识符。CNE设备3318然后使用FCIP隧道以向CNE设备3330递送这些TRILL帧,该CNE设备又向这些TRILL帧的相应2层目的地转发这些帧。
[0241] 跨数据中心的TRILL架构形成
[0242] VCS使用FC控制平面以自动形成架构并且向每个成员交换机指派R桥接器标识符。在一个实施例中,CNE架构保持TRILL和SAN架构在数据中心之间分离。从TRILL观点来看,将每个VCS(对应于相应数据中心)表示为单个虚拟R桥接器。此外,CNE设备可以用TRILL链路和FC链路二者耦合到VCS成员交换机。CNE设备可以经由TRILL链路加入VCS。然而由于CNE设备保持TRILL VCS架构和SAN(FC)架构分离,所以在CNE设备与成员交换机之间的FC链路被配置用于FC多架构。
[0243] 如图34中所示,数据中心3408经由网关路由器3410耦合到WAN,并且数据中心3420经由网关路由器3412耦合到WAN。数据中心3408包括VCS 3406,该VCS包括成员交换机3404。在数据中心3408中也包括CNE设备3402。CNE设备3402经由TRILL链路和FC链路耦合到VCS成员交换机3404。CNE设备3402可以经由TRILL链路加入VCS。然而FC链路允许CNE设备3402维护具有VCS成员交换机3404的分离FC架构以承载FC业务。在一个实施例中,CNE设备3402上的FC端口是FC EX_端口。成员交换机3404上的对应端口是FC E_端口。在WAN侧上的CNE设备
3402上的端口(耦合到网关路由器3410)是FCIP VE_端口。数据中心3420具有相似配置。
[0244] 在一个实施例中,每个数据中心的VCS包括出于多播目的而指明为根R桥接器的节点。在初始设置期间,VCS中的CNE设备交换每个VCS的根R桥接器标识符。此外,CNE设备也交换每个数据中心的R桥接器标识符。注意这一R桥接器标识符代表整个数据中心。向本地VCS中的所有节点分布与数据中心R桥接器标识符有关的信息作为静态路由。
[0245] 跨数据中心转发BUM业务
[0246] 图35A呈现如下图,该图图示了根据本发明一个实施例的CNE设备如何跨数据中心操纵广播、未知单播和多播(BUM)业务。在这一例子中,两个数据中心DC-1和DC-2经由核心IP路由器耦合到IP WAN。DC-1中的CNE设备具有R桥接器标识符RB4,并且DC-2中的CNE设备具有R桥接器标识符RB6。另外,在DC-1中的VCS中,成员交换机RB1耦合到主机A。在DC-2中的VCS中,成员交换机RB5耦合到主机Z。
[0247] 假设主机A需要向主机Z发送多播业务并且主机A已经具有主机Z的MAC地址的知识。在操作期间,主机A组装以太网帧3502,该帧以主机Z的MAC地址(表示为MAC-Z)作为它的目的地地址(DA)并且主机A的MAC地址(表示为MAC-A)作为它的源地址(SA)。基于帧3502,成员交换机RB1组装TRILL帧3503,该帧的TRILL标头3506包括数据中心DC-1的根R桥接器的RB桥接器的标识符(表示为“DC1-根”)作为目的地R桥接器并且RB1作为源R桥接器。(也就是说,在DC-1内,在本地多播树上分布多播业务。)帧3503的外以太网标头3504以CNE设备RB4的MAC地址(表示为MAC-RB4)作为DA并且成员交换机RB1的MAC地址(表示为MAC-RB1)作为SA。
[0248] 当帧3503到达CNE设备RB4时,它进一步修改帧的TRILL标头以产生帧3505。CNE设备RB4用数据中心DC-2的根R桥接器标识符DC2-根替换TRILL标头3510中的目的地R桥接器标识符。将源R桥接器标识符改变成数据中心DC-1的虚拟R桥接器标识符DC1-RB(这允许数据中心DC-2获知数据中心DC-1的R桥接器标识符。外以太网标头3508以核心路由器的MAC地址(MAC-RTR)作为它的DA并且CNE设备RB4的MAC地址(MAC-DC-1)作为它的SA。
[0249] 随后在FCIP隧道中跨IP WAN传送帧3505并且到达CNE设备RB6。对应地,CNE设备RB6更新标头以产生帧3507。帧3507的TRILL标头3514保持与帧3505相同。外以太网标头3512现在以成员交换机RB5的MAC地址MAC-RB5作为它的DA并且CNE设备的RB6的MAC地址MAC-RB6作为它的SA。一旦帧3507到达成员交换机RB5,去除TRILL标头,并且向主机Z递送内以太网帧。
[0250] 在各种实施例中,CNE设备可以被配置成允许或者不允许未知单播、广播(例如ARP)或者多播(IGMP侦听)业务穿过数据中心边界。通过具有这些选项,可以限制跨越数据中心的BUM业务量。注意在数据中心之间的所有TRILL封装BUM业务可以与远程数据中心的根R桥接器标识符一起发送。在FCIP隧道的终结点完成这一转译。
[0251] 可以实施附加机制以最小化跨越数据中心的BUM业务。例如在CNE设备与任何VCS成员交换机之间的TRILL端口可以被配置成未参与任何VLAN MGID。此外,两个VCS上的eNS可以被配置成同步它们获知的MAC地址数据库以最小化具有位置MAC DA的业务。(注意在一个实施例中,在将获知的MAC地址数据库与不同VCS同步之前,仅在本地数据中心内洪泛具有位置MAC DA的帧。)
[0252] 为了进一步最小化BUM业务,可以通过侦听ARP响应以在VCS成员交换机上构建ARP数据库来减少广播业务、比如ARP业务。然后使用eNS跨不同数据中心交换并且同步获知的ARP数据库。基于代理的ARP用来对VCS中的所有已知ARP请求做出响应。另外,可以通过经由eNS共享IGMP侦听信息来跨数据中心分布多播组从属关系,从而减少跨数据中心的多播业务。
[0253] 跨数据中心转发单播业务
[0254] 描述在数据中心之间转发单播业务的过程如下。在FCIP隧道形成期间,交换代表数据中心的逻辑R桥接器标识符。当TRILL帧到达FCIP隧道的进入节点时,其中设置TRILL目的地R桥接器为远程数据中心的R桥接器标识符,将TRILL标头中的源R桥接器转译成向本地数据中心指派的逻辑R桥接器标识符。当帧退出FCIP隧道时,设置TRILL标头中的目的地R桥接器字段为本地(即目的地)数据中心的虚拟R桥接器标识符。内以太网标头中的MAC DA和VLAN ID然后用来查找对应目的地R桥接器(即目的地主机附着到的成员交换机的R桥接器标识符,并且相应地更新TRILL标头中的目的地R桥接器字段)。
[0255] 在目的地数据中心中,基于入口帧,所有VCS成员交换机获知在MAC SA(在帧的内以太网标头中)与TRILL源R桥接器(该R桥接器是向源数据中心指派的虚拟R桥接器标识符)之间的映射。这允许向正确远程数据中心发送去往该MAC地址的将来出口帧。注意由于向给定的数据中心指派的R桥接器标识符未对应于物理R桥接器,所以在一个实施例中,静态路由用来向本地CNE设备映射远程数据中心R桥接器标识符。
[0256] 图35B呈现如下图,该图图示了根据本发明一个实施例的CNE设备如何跨越数据中心操纵单播业务。假设主机A需要向主机Z发送单播业务并且主机A已经具有主机Z的MAC地址的知识。在操作期间,主机A组装以太网帧3502,该帧以主机Z的MAC地址(MAC-Z)作为它的DA并且主机A的MAC地址(MAC-A)作为它的SA。基于帧3502,成员交换机RB1组装TRILL帧3503,该帧的TRILL标头3509包括数据中心DC-2的虚拟R桥接器的R桥接器标识符(表示为“DC2-RB”)作为目的地R桥接器并且RB1作为源R桥接器。帧3503的外以太网标头3504以CNE设备RB4的MAC地址(MAC-RB4)作为DA并且成员交换机RB1的MAC地址(MAC-RB1)作为SA。
[0257] 当帧3503到达CNE设备RB4时,它进一步修改帧的TRILL标头以产生帧3505。CNE设备RB 40用数据中心DC-1的虚拟R桥接器标识符DC1-RB替换TRILL标头3511中的源R桥接器标识符(这允许数据中心DC-2获知数据中心DC-1的R桥接器标识符)。外以太网标头3508以核心路由器的MAC地址(MAC-RTR)作为它的DA并且CNE设备RB4的MAC地址(MAC-DC-1)作为它的SA。
[0258] 帧3504随后在FCIP隧道中跨IP WAN被传送并且到达CNE设备RB6。对应地,CNE设备RB6更新标头以产生帧3507。帧3507的TRILL标头3515具有更新的目的地R桥接器标识符,该标识符是RB5,这是DC-2中的耦合到主机Z的VCS成员交换机。外以太网标头3512现在以成员交换机RB5的MAC地址MAC-RB5作为它的DA并且CNE设备RB6的MAC地址MAC-RB6作为它的SA。一旦帧3507到达成员交换机RB5,去除TRILL标头,并且向主机Z递送内以太网帧。
[0259] 获知MAC地址并且跨数据中心分布配置信息
[0260] 跨越数据中心洪泛具有未知MAC Das的帧是一种用于数据中心获知另一数据中心中的MAC地址的方式。在R桥接器后面获知所有位置SA为MAC,并且它对于CNE设备无例外。在一个实施例中,eNS可以用来分布获知的MAC地址数据库,这减少跨越数据中心的洪泛量。
[0261] 为了优化刷新(flush),即使在R桥接器后面获知MAC地址,与MAC地址关联的实际VCS边缘端口仍然存在于eNS MAC更新中。然而边缘端口ID跨数据中心可能不再唯一。为解决这一问题,跨数据中心的所有eNS更新将用数据中心的R桥接器标识符限制MAC进入。这一配置允许跨数据中心传播端口刷新。
[0262] 在这里描述的架构中,不同数据中心中的VCS未加入彼此;因此保持分布式配置分离。然而为了允许虚拟机跨数据中心移动,有一些配置数据需要跨数据中心进行同步。在一个实施例中,出于CNE目的而创建特殊模块(用软件或者硬件)。这一模块被配置成取回为了有助于跨越数据中心移动虚拟机而需要的配置信息,并且在两个或者更多VCS之间同步它。
[0263] 在一个实施例中,跨数据中心分布获知的MAC地址数据库。而且,跨数据中心分布边缘端口状态改变通知(SCN)。当物理R桥接器下传(go down)时,将SCN转换成数据中心间FCIP链路上的多个端口SCN。
[0264] 具有CNE功能的VCS中的冗余性
[0265] 为了保护数据中心间连通,VCS可以形成在两个或者更多CNE设备之间的vLAG。在这一模型中,vLAG R桥接器标识符用作数据中心R桥接器标识符。FCIP控制平面被配置成知道这一布置并且在这样的情况下交换vLAG R桥接器标识符。
[0266] 图14图示了根据本发明一个实施例的其中两个CNE设备用来构造vLAG的例子。在这一例子中,VCS 1400包括两个CNE设备1406和1408。两个CNE设备1406和1408形成耦合到核心IP路由器的vLAG 1410。向vLAG 1410指派虚拟R桥接器标识符,也使用该标识符作为用于VCS 1400的数据中心R桥接器标识符。另外,vLAG 1410可以有助于针对VCS 1400内的任何成员交换机的入口和出口负载平衡(例如基于相等成本多路径化(ECMP))。
[0267] 在FC和以太网交换机间链路之间的路由
[0268] 现有路由模型假设每个交换机间链路(ISL)可以是通过向可达域的路径。然而如果具有FCIP功能的VCS节点经由FC和以太网ISL二者加入VCS,则需要额外仔细以保证仅FCoE存储业务使用FC链路而以太网ISL用于LAN业务。这可以通过仅允许FCoE VLAN业务使用FC链路而又允许所有非FCoE业务仅使用以太网ISL来实现。
[0269] CNE设备架构
[0270] 图37图示了根据本发明一个实施例的示例CNE设备。在这一例子中,CNE设备3700包括多个TRILL端口3702、FC端口3704和FCIP端口3705。TRILL端口3702和FC端口3704用来操纵本地数据中心内的业务。FCIP端口3705用来耦合到WAN网络设备、比如IP路由器。这些端口内部地耦合到负责更新接收的帧的标头的分组处理器3706。
[0271] 地址管理模块3708耦合到分组处理器3076,该模块负责维护虚拟数据中心R桥接器标识符、从远程数据中心获知地址信息并且更新用于去往远程数据中心的传出帧的源R桥接器字段。在CNE设备3700中也包括维护FCIP隧道并且负责经由FCIP隧道交换配置信息的FCIP管理模块3710以及管理与本地VCS的TRILL连接的TRILL管理模块3712。
[0272] 可以实现这里描述的方法和过程为可以存储于计算机可读非瞬态存储介质中的代码和/或数据。当计算机系统读取并且执行存储于计算机可读非瞬态存储介质上的代码和/或数据时,计算机系统执行实现为数据结构和代码并且存储于介质内的方法和过程。
[0273] 这里描述的方法和过程可以由硬件模块或者装置执行和/或包含于硬件模块或者装置中。这些模块或者装置可以包括但不限于专用集成电路(ASIC)芯片、现场可编程阵列(FPGA)、在特定时间执行特定软件模块或者代码段的专用或者共享处理器和/或现在已知或者以后开发的其它可编程逻辑器件。当激活硬件模块或者装置时,它们执行在它们内包括的方法和过程。
[0274] 已经仅出于示例和描述的目的而呈现本发明实施例的前文描述。它们并非旨在于穷举或者限制本公开内容。因而许多修改和变化将为本领域技术人员所清除。本发明的范围由所附权利要求限定。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈